아까 처음 작성했던 내용을 이어서 가겠습니다.
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 save_txt=True
를 입력하게 되면 Yolo가 이미지에서 어디의 좌표를 통해 라벨링을 했는지 확인할 수 있습니다.
마찬가지로 runs > detect > predict4 > labels 에 들어가서 확인할 수 있습니다.
(여기서 predict3가 아닌 predict4로 넘어간 이유는
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 show=True
를 해서 저장했기에 predict3라는 폴더가 새롭게 하나 더 생겨서 그렇습니다.)
각 이미지들의 bounding box의 좌표를 확인할 수 있습니다.
다음으로
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 save_crop=True
를 하게 되면 각 bounding box를 crop하여 각각 개별의 이미지로 저장하게 됩니다.
runs > detect > predict5 > crops > person 순서로 폴더를 들어가면 crop된 이미지들을 확인할 수 있습니다.
위와 같이 이미지들을 crop해서 저장했음을 확인할 수 있습니다.
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 save_crop=True hide_labels=False hide_conf=False
에서 hide_labels와 hide_conf를 통해서 crop된 이미지에 person이라는 label과 conf값을 감출 수 있는데, 위 이미지에서 보이시듯 그런식으로 하지 않았음에도 이미 이미지에 label과 conf값, 그리고 bounding box까지 hide된 것을 확인할 수 있습니다.
(이 부분에 대해서 왜 지정해주지 않았음에도 없어진건지 아시는 분 계시다면 말씀해주시면 감사하겠습니다!)
실제 위의 코드로 실행시 hide_labels와 hide_conf의 경우 ultralytics 8.2로 update될 시 삭제될 예정이라고 하니 show_labels와 show_conf를 통해서 지정하는 습관을 미리 길러두면 더 좋을 듯 합니다.
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 save_crop=True show_labels=True show_conf=True
원래 저장 될 때 처럼 이미지가 저장된 것을 확인할 수 있습니다.
yolo task=detect mode=predict model=yolov8n.pt source=people.jpg conf=0.5 save_crop=True show_labels=False show_conf=False
원래 저장될때와 달리 labeling name과 conf값이 나오지 않고 bounding box만 쳐져 있는것을 확인할 수 있습니다.
저는 위 사이트에서 다운로드 했는데 다운로드 시 파일 확장명이 webm으로 되어있습니다.
mp4로 확장명을 변경해주기 위해서 아래의 사이트에서 mp4로 변경을 진행했습니다.
https://cloudconvert.com/webm-to-mp4
확장명 변경을 진행 한 이유는 유튜브에 나오는 확장명의 경우 mp4여서 따라 하기 위해서 변경을 진행했습니다.
저장한 동영상을 다시 yolov8 폴더에 넣어줍니다.
yolo task=detect mode=predict model=yolov8n.pt source=container_ship_loading.mp4 conf=0.8
를 통해서 실행한 결과 아쉽게도 bounding box가 나오지 않은것을 확인할 수 있었습니다ㅠㅠ
혹시나 싶어서 webm의 경우도 진행했는데 다행히 detection이 진행되긴 했으나 결과가 나오지는 않았습니다 ㅠㅠ
yolo task=detect mode=predict model=yolov8n.pt source=container_ship_loading_webm.webm co
nf=0.8
이렇게 진행했을 때 아쉽게도 detection을 하지 못 하는 모습을 보였습니다.
아무래도 conf값을 0.8로 높게 설정했던게 실패의 가장 큰 요인이 아닌가 생각합니다.ㅠㅠ
(조금 더 높은 값으로 설정하여 확실한 검출을 하고 싶었는데 잘 안되서 아쉽습니다)
2번째 동영상 출처 : https://www.shutterstock.com/ko/video/clip-1041136672-generic-electric-self-driving-cars-on-car
두번째 동영상의 경우에는 유튜브에서 나왔던 영상과 유사하게 자동차가 나오는 영상을 선택했습니다.
다시 진행한 결과 다행히 제대로 검출해내는것을 확인할 수 있었습니다!
yolo task=detect mode=predict model=yolov8n.pt source=many_car.webm conf=0.8
보시는 바와 같이 영상에 워터마크가 있음에도 제대로 car를 검출하는 것을 확인할 수 있었습니다!
공감하며 읽었습니다. 좋은 글 감사드립니다.