YOLO v5 모델로 Object Detection(객체 인식) inference(추론) 해보기 - 미드 office parkour 예제 동영상
YOLOv5에 대한 자세한 소개는 이전 글을 참조해주시고, 이 포스트에서는 추론 과정에 대해서 다루고자 합니다.
[분류 전체보기] - YOLO v5 공개! 개념, 이론, 논문 대신에 iOS...?
Colab 환경에서 YOLOv5의 사용법과 코드를 공유합니다. 먼저 '수정 > 노트 설정 > 하드웨어 가속기 > None에서 GPU로 변경'을 해주시구요! YOLOv5를 official하게 공개한 ultralytics의 github repo로부터 clone을 하고, 필요한 requirements에 대해서 설치를 합니다. 그리고 torch, ipython display, google drive download 패키지들을 import 합니다.
!git clone https://github.com/ultralytics/yolov5 # clone repo
!pip install -r yolov5/requirements.txt # install dependencies
%cd yolov5
import torch
from IPython.display import Image, clear_output # to display images
from utils.google_utils import gdrive_download # to download models/datasets
clear_output()
print('Setup complete. Using torch %s %s' % (torch.__version__, torch.cuda.get_device_properties(0) if torch.cuda.is_available() else 'CPU'))
예제로 사용할 동영상은 미드 Office에서 파쿠르(Parkour)를 하는 장면입니다. 이전에 YOLO 예제에서 사용된 적이 있기에 저도 가져와봤습니다. 다운로드는 gdrive_download 함수로 다음과 같이 받을 수 있습니다.
gdrive_download('1iivzAgvtDqtlIp-CDCzwxK5m9wlX2hFZ','Office-Parkour.mp4')
만약 직접 다운로드 하고싶으시다면, 아래의 링크를 활용하시되, 구글 드라이브를 mount하셔야 한다는 점을 잊지 마시길 바랍니다!
drive.google.com/file/d/1iivzAgvtDqtlIp-CDCzwxK5m9wlX2hFZ/view?usp=sharing
(Office-Parkour.mp4 파일을 ipynb 파일과 동일한 위치에 위치시킨다고 가정하고 코드를 작성하도록 하겠습니다.)
%%time
!python detect.py --weights yolov5x.pt --img 1280 --conf 0.4 --source ./Office-Parkour.mp4
weights의 yolov5x.pt는 없는 경우에 자동으로 다운로드가 됩니다. 끝의 x를 s, m, l로도 바꾸어 속도와 성능의 차이를 경험해보시면 좋을 듯 합니다. 이 예제에서는 가장 성능이 좋은 xlarge 모델로 inference 해보겠습니다.
실행을 해보면, 이러한식으로 프레임의 결과들이 출력됩니다.
결과파일은 ./inference/output 폴더에 있습니다. 그 폴더 내에있는 파일을 다운로드하기 위해서는 google.colab의 files를 이용하면 됩니다! (아니면 구글 드라이브 마운트를 하여서, 드라이브로 옮겨야하겠죠)
from google.colab import files
files.download('./inference/output/Office-Parkour.mp4')
저는 여기서 생각보다 오래걸리더라구요... 인내심이 적은건지... 원파일은 18.5MB 였는데 결과 파일은 87.0MB로 용량이 늘었습니다. 인코딩이 최적화가 안되어서 그런건지, 박스가 추가되는 것이 요란해서 압축이 잘 안되는 건지는 모르겠습니다. 결과 영상을 함께 즐겨보시죠 :)
혹시 YOLO v5 모델을 직접 학습해보고 싶으시다면 다음의 코드를 참조해주세요!
[분류 전체보기] - YOLOv5 학습 예제 코드 (튜토리얼) - 마스크 쓰고 있는/안 쓴 얼굴(사람) 찾기
'📚 딥딥러닝' 카테고리의 다른 글
DevOps와 MLOps (0) | 2020.07.13 |
---|---|
객체 검출/물체 인식의 NMS보다 좋은 앙상블 방법, Weighted Boxes Fusion(WBF): ensembling boxes for object detection models 논문 리뷰 및 정리 (0) | 2020.07.06 |
YOLOv5 학습 예제 코드 (튜토리얼) - 마스크 쓰고 있는/안 쓴 얼굴(사람) 찾기 (3) | 2020.06.29 |
YOLO v5 공개! 개념, 이론, 논문 대신에 iOS...? (0) | 2020.06.22 |
Keras baseline using MFCC for Sound Classification (0) | 2020.06.16 |
댓글
이 글 공유하기
다른 글
-
DevOps와 MLOps
DevOps와 MLOps
2020.07.13 -
객체 검출/물체 인식의 NMS보다 좋은 앙상블 방법, Weighted Boxes Fusion(WBF): ensembling boxes for object detection models 논문 리뷰 및 정리
객체 검출/물체 인식의 NMS보다 좋은 앙상블 방법, Weighted Boxes Fusion(WBF): ensembling boxes for object detection models 논문 리뷰 및 정리
2020.07.06 -
YOLOv5 학습 예제 코드 (튜토리얼) - 마스크 쓰고 있는/안 쓴 얼굴(사람) 찾기
YOLOv5 학습 예제 코드 (튜토리얼) - 마스크 쓰고 있는/안 쓴 얼굴(사람) 찾기
2020.06.29 -
YOLO v5 공개! 개념, 이론, 논문 대신에 iOS...?
YOLO v5 공개! 개념, 이론, 논문 대신에 iOS...?
2020.06.22