빵형의 개발도상국님의 영상을 응용해서 진행
aquarium
데이터셋을 이용해서 진행
- 해당 데이터셋에 들어가서 다운로드를 누르면 다음과 같이 어떤 모델의 사용할지 선택할 수 있는 화면이 나온다. - 주피터 노트북에서 작업을 할 것이기 때문에 terminal code를 받고 복사해준다. - curl
로 해당 링크에 자료를 다운로드 받아준다.
yolov5
를 git clone으로 다운로드 받아준다. requirement.txt
를 설치해준다. %cd /content/yolov5/
!python train.py --img 416 --batch 16 --epochs 100 --data /content/dataset/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name aquarium_yolov5s_results
directory를 train.py가 들어있는 폴더로 이동한다음에 학습을 진행한다. 학습 조건은 yolov5 공식문서 train custom data에 나와있는 조건으로 진행했다. (epoch은 100으로 변경)
yolov5s
로 진행 P : 0.173
, R: 0.00278
mAP: 0.00155
정도로 낮았다.P : 0.845
, R: 0.73
mAP: 0.795
로 모델 성능이 향상된 것을 파악할 수 있다. %load_ext tensorboard
%tensorboard --logdir /content/yolov5/runs/
위 지정한 폴더에 보면 weights
폴더에 학습된 결과가 있다. 이 학습된 모델로 이제 짧은 영상에 적용을 해보기로 했다.
따로 로컬에서 작업을 해도 되지만 이왕 코랩에서 하는 거 일치하기로 했다.
위에 버튼을 클릭해서 영상을 업로드를 하게 되면 해당 영상에 대한 주소를 가져올 수 있다.
!python detect.py --weights /content/yolov5/runs/train/aquarium_yolov5s_results2/weights/best.pt --source "{video_src}"
해당 영상에 대해서 경로를 변수에 지정을 하고 그 변수를 detect.py를 이용하여 객체 탐지를 진행해주면 된다.
이미지를 학습할 때 라벨링된 데이터가 600장정도로 많지 않았고 그 중에 많은 경우 물고기였기 때문에 판단을 정확히 못한 것 같다.
재미있게 봤습니다!!ㅎㅎ