Yolov8 Image Segmentation 사용 2

Cloud_ Ghost·2023년 7월 25일
1

AI

목록 보기
9/37

아까 처음 작성했던 내용을 이어서 가겠습니다.

이미지 Yolov8에 적용하기

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를 통해서 지정하는 습관을 미리 길러두면 더 좋을 듯 합니다.

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=True show_conf=True

원래 저장 될 때 처럼 이미지가 저장된 것을 확인할 수 있습니다.

show_labels=False show_conf=False일 때

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만 쳐져 있는것을 확인할 수 있습니다.

동영상을 Yolov8에서 적용해보기

첫번째 동영상 (실패ㅠㅠ)

동영상 출처 : https://www.shutterstock.com/ko/video/clip-1084247848-container-ship-loading-unloading-cargo-sea-port

저는 위 사이트에서 다운로드 했는데 다운로드 시 파일 확장명이 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가 나오지 않은것을 확인할 수 있었습니다ㅠㅠ

실행결과 1 (실패)

혹시나 싶어서 webm의 경우도 진행했는데 다행히 detection이 진행되긴 했으나 결과가 나오지는 않았습니다 ㅠㅠ

yolo task=detect mode=predict model=yolov8n.pt source=container_ship_loading_webm.webm co
nf=0.8

이렇게 진행했을 때 아쉽게도 detection을 하지 못 하는 모습을 보였습니다.

실행결과 2 (실패)

아무래도 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를 검출하는 것을 확인할 수 있었습니다!

profile
도망쳐서 도착한 곳에 낙원이란 있을 수 없는 거야.

2개의 댓글

comment-user-thumbnail
2023년 7월 25일

공감하며 읽었습니다. 좋은 글 감사드립니다.

1개의 답글