[X-SCADA AI] Yolo - Count 기능 따라하기
※ 해당 AI 기능을 활용하기 위해서는 기존 X-SCADA가 아닌 최신 버전의 X-SCADA AI가 필요합니다.
※ 해당 샘플은 다양한 객체들을 테스트할 수 있도록 제작된 샘플입니다. 보다 분명하고 최적화된 결과를 얻기 위해서는 추가 학습이 필요합니다.
기존 X-SCADA AI의 Yolo 기능 중 Count에 특화된 기능이 추가되어 따라하기를 준비했습니다.
해당 Count 기능은 Yolo와 Yolo Video 모두 사용가능하며, 이번에는 Yolo 기능을 통해서만 설명할 예정입니다.
1. 태그 생성하기
1) 프로젝트에 사용할 예정인 태그들을 태그 탐색기(Tag Explorer)에서 추가한다.
· capture : 카메라 기능 중 캡처 기능을 설정할 때 사용 (현재 샘플은 capture가 되는 시점을 기준으로 Yolo 탐지 및 분석 실시)
· object_count : 화면에 탐지된 객체의 종류가 몇 개인지 파악할 때 사용
· specific_count : 미리 설정한 특정 객체가 화면에 얼마나 탐지되었는지 확인할 때 사용
· total_count : 화면에 탐지된 전체 객체의 수를 확인할 때 사용
· YOLO_IMAGE : Yolo Video 결과를 이미지/영상으로 표현한다.
· YOLO_STRING : Yolo Video 결과를 문자로 표현한다.
2. 프로젝트 화면 작화하기
1) 카메라(Camera), 이미지(Image), 텍스트입력(TextEdit), 텍스트(Text) 등을 이용하여 화면을 작화한다.
2) 카메라(Camera) 객체의 속성(Properties) > 재생(Playback) > URL 항목에 연결할 카메라 주소를 입력한다.
· IP 카메라: onvif://(ID):(Password)@(카메라 IP):(포트)
· USB 카메라: usb://(연결할 카메라 순서).(연결할 마이크 순서)
3) 생성한 이미지(Image) 객체의 속성(Properties) > 바인딩(Binding) > URI Tag에 미리 생성한 "YOLO_IMAGE" 태그를 설정한다.
· 해당 객체를 통해 Yolo Video 결과를 이미지/영상으로 확인할 수 있다.
4) 텍스트입력(TextEdit) 객체의 속성(Properties) > 바인딩(Binding) > 태그(Tag) 에 미리 생성한 "YOLO_STRING" 태그를 설정한다.
· 해당 객체를 통해 Yolo Video 결과를 문자로 확인할 수 있다.
5) [Capture] 객체 더블클릭 후 클릭 – 태그값 설정(Click – Tag Value)을 설정한다.
· 해당 따라하기 샘플은 Capture 시점을 기준으로 Yolo 기능이 동작한다.
· Capture 버튼 클릭시 탐지 및 결과를 화면에서 확인할 수 있다.
6) Yolo Count 결과를 모니터링 화면에서도 파악할 수 있도록 텍스트(Text) 객체의 속성(Properties) > 바인딩(Binding) > 태그(Tag)에 미리 생성한 count 관련 태그들을 설정한다.
3. Yolo Video 설정하기
1) 상단 보기(View) > AI 작업 관리(AI Task Manager) 를 실행한다.
2) [추가(Add)] 버튼을 누른 뒤 Yolo 항목을 선택한 뒤 [OK]를 클릭한다.
· Description 하단에 있는 [Sample Download]를 눌러 Yolo Model을 다운로드한 뒤 압축해제 한다. (해당 파일은 Yolo Detection에 사용할 예정)
3) 아래와 같이 Output 항목과 Yolo > ModelPath를 설정한다.
· Output > Image : 미리 생성한 "YOLO_IMAGE" 태그를 설정한다. (해당 설정을 진행해야 Yolo 결과를 태그로 받아올 수 있다.)
· Output > Result : 미리 생성한 "YOLO_STRING" 태그를 설정한다. (해당 설정을 진행해야 Yolo 결과를 태그로 받아올 수 있다.)
· Yolo > ModelPath : Yolo Video에서 사용할 Yolo Weight 파일이 있는 폴더를 지정한다.
4) Yolo > Classes 항목에서 Yolo로 보고자 하는 객체들을 설정한다.
· 많은 Class 중 이번 교육 샘플에서는 Person, Cup, Cell phone만을 설정한다.
5) Yolo > PostProcess 항목에 들어가서 [Add]를 누른 뒤 ObjectCount, SpecificCount, TotalCount항목을 추가한다.
6) objectcount_1 > Object Count > Result 항목에 미리 생성한 "object_count" 태그를 설정한다.
· Object Count : 화면에 탐지된 객체의 종류가 몇 종류인지 확인할 때 사용한다. (개 3마리, 고양기 4마리, 사람 2명일 때, 3종류의 Class가 탐지되었기 때문에 결과는 3이 된다.)
· Result : Yolo Detection 시, 탐지된 객체가 몇 종류인지를 object_count 태그를 통해 확인할 수 있다.
7) specificcount_1 > Specific Count >Object, Result 항목을 설정한다.
· Specific Count : 화면에 탐지된 객체 중 특정 객체만을 지정하여 몇 개가 탐지되었는지 확인할 때 사용한다. (해당 샘플은 화면에 있는 다양한 객체들 중 사람만을 카운팅한다.)
· Object : Yolo Detection 시, 어떤 특정 객체를 탐지할 지 설정할 수 있다.
· Result : Yolo Detection 시, 특정 객체 탐지 결과를 specific_count 태그를 통해 확인할 수 있다.
8) totalcount_1 > Total Count > Result 항목에 미리 생성한 "total_count" 태그를 설정한다.
· Total Count : 화면에 탐지된 모든 객체의 수를 알고 싶을 때 사용한다.
· Result : Yolo Detection 시, Total Count 결과를 object_count 태그를 통해 확인할 수 있다.
9) 카메라(Camera) 객체의 속성(Properties) > AI > 작업 목록(Task) 항목에서 미리 생성 및 설정한 Yolo_task_1 작업을 설정한다.
· AI 작업 목록을 설정해야 해당 카메라를 통해 Yolo 기능을 연동 및 사용가능하다.
4. Yolo Video 실행하기
1) 모든 설정을 끝마쳤으면 저장 후 X-SCADA AI Viewer로 실행한 뒤 [Capture] 버튼을 클릭해본다.
2) 미리 설정한 Class들을 가져와 [Capture]를 눌러 Yolo Detection이 잘 되는지 확인한다.