[X-SCADA AI] Yolo Video – ForLoop 기능 따라하기
※ 해당 AI 기능을 활용하기 위해서는 기존 X-SCADA가 아닌 최신 버전의 X-SCADA AI가 필요합니다.
※ 해당 샘플은 다양한 객체들을 테스트할 수 있도록 제작된 샘플입니다. 보다 분명하고 최적화된 결과를 얻기 위해서는 추가 학습이 필요합니다.
기존 X-SCADA AI의 Yolo를 실시간으로 모니터링 및 분석이 가능하도록 Yolo Video가 추가되었습니다.
그 중 Yolo Video의 세부 기능 중 하나인 ForLoop 기능을 활용해볼 수 있는 샘플을 준비했습니다.
해당 기능을 사용하면 특정 대상을 지속 추적할 수 있습니다.
ForLoop 기능은 Yolo와 Yolo Video 모두 사용가능하며, 이번에는 Yolo Video 기능을 통해서만 설명할 예정입니다.
사용된 모델 > YoloV4 (다운로드 : Google Drive(클릭), 해당 모델을 다운로드 받아 압축해제 한 뒤 추후 Yolo Detection에 사용할 예정)
1. 태그 생성하기
1) 프로젝트에 사용할 예정인 태그들을 추가한다.
· YOLO_IMAGE : Yolo Video 결과를 이미지/영상으로 표현한다.
· YOLO_STRING : Yolo Video 결과를 문자로 표현한다.
· personX.hasCup : X번째 사람이 컵(Cup)을 소유하고 있는지에 대한 결과를 표현한다.
· personX.hasCellphone : X번째 사람이 휴대폰(Cellphone)을 소유하고 있는지 표현한다.
2. 프로젝트 화면 작화하기
1) 이미지(Image), 텍스트입력(TextEdit), 텍스트(Text) 등을 이용하여 화면을 작화한다.
2) 생성한 이미지(Image) 객체의 속성(Properties) > 바인딩(Binding) > URI Tag에 미리 생성한 "YOLO_IMAGE" 태그를 설정한다.
· 해당 객체를 통해 Yolo Video 결과를 이미지/영상으로 확인할 수 있다.
3) 텍스트입력(TextEdit) 객체의 속성(Properties) > 바인딩(Binding) > 태그(Tag) 에 미리 생성한 "YOLO_STRING" 태그를 설정한다.
· 해당 객체를 통해 Yolo Video 결과를 문자로 확인할 수 있다.
4) 텍스트(Text) 객체의 속성(Properties) > 바인딩(Binding) > 태그(Tag)에 미리 생성한 hasCup, hasCellphone 태그들을 설정한다.
3. Yolo Video 설정하기
1) 상단 보기(View) > AI 작업 관리(AI Task Manager) 를 실행한다.
2) [추가(Add)] 버튼을 누른 뒤 Yolo Video 항목을 선택한 뒤 [OK]를 클릭한다.
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 > Tracking Classes 항목에서 추적 관찰할 객체를 선별하여 선택한다.
6) Yolo > Regions 항목에서 카메라(Camera) 화면 안에서 탐지할 구역을 지정한다.
· 해당 기능 사용 시 카메라의 모든 화면을 탐지하는 것이 아니라 특정 구역만을 지정하여 탐지하는 것이 가능한다.
· 상단 [USB Camera]와 [IP Camera] 중 하나를 선택한 뒤 주소창에 카메라 주소(Camera Address)를 입력한 뒤 실행시켜서 미리 카메라 화면을 확인한다.
· 오른쪽 설정창에 있는 [Add Region]을 누르면 여러 개의 구역을 추가 및 설정할수도 있다. (이번 교육에서는 하나의 구역만 추가 및 설정함)
7) Yolo > PostProcess 항목에 들어가서 [Add]를 누른 뒤 ForLoop 항목을 추가한다.
8) For Loop > Object 항목에 "person" 항목을 설정한다.
9) For Loop > Data 항목에 dataItem을 2개 추가시킨 뒤 아래와 같이 태그를 설정한다.
· dataItem_1 : Cup을 탐지하는 용도로 사용 예정
· dataItem_2 : Cellphone을 탐지하는 용도로 사용 예정
10) [Add Sub Action] 버튼을 누른 뒤 IsInclude를 2개 추가한다.
11) isinclude_1와 isinclude_2의 Sub Action 항목을 아래와 같이 설정한다.
4. Yolo Video 실행하기
1) 모든 설정을 끝마쳤으면 저장 후 X-SCADA AI Viewer로 실행한다.
2) 컵이나 휴대폰을 들어 의도한대로 결과가 나오는지 확인한다.
3) 미리 설정한 Region 구역 밖으로 객체를 옮긴 뒤 탐지 구역에 맞춰 탐지가 잘 이루어지는지 확인한다.
· 현재 하단 파란색 원 밖으로 넘어가면 탐지가 되지 않도록 설정함
4) 첨부한 프로젝트 파일(.xix)을 실행하면 해당 과정의 설정을 모두 확인할 수 있다.