Object Detection 분야는 크게
One step과 Two step으로 나누는데, 최근 One step의 방식을 따르는 알고리즘 중 사용해본 모델이 Yolo v5였다.
Yolo는 You Only Look Once의 약자로 이름 자체가 One step을 따른다는 것을 시사한다.
사실 Yolo 모델을 설명하려면 Object Detection과 Anchor등 설명할 개념이 많아 여기엔 실행해본 코드에 대한 설명을 하고자 한다.
우선 실행한 코드는 Kaggel에 나와있었던 Hard Head Detection with YOLOv5로 Lital Davar라는 이스라엘의 개발자 분이 올려놓은 코드를 참조했다.
코드가 워낙 좋아서 세팅만 따라한다면 어렵지 않게 헬멧 디텍션 모델링을 완성할 수 있다.
우선 환경은 구글 코랩을 사용한다.
위 링크를 클릭해 Data에 있는 annotations폴더와 images폴더를 다운받아 Input이라는 폴더에 넣어 사용할 구글 드라이브에 세팅을 해야하는데, 파일 구성은 아래의 표처럼 생각하면 이해하기 쉽다.

참고로 여기서 mytesting은 본인이 테스트할 이미지를 넣으면 되므로 처음 세팅에선 무시해도 된다.
Lital Davar 코드의 전체적인 흐름은 아래와 같다.

폴더 세팅을 완료한 뒤 구글 코랩 환경에서 코드를 실행하면 아래와 같은 결과가 보일 것이다.

확실히 YOLO가 FaterRCNN에 비해 굉장히 빠르다. 특히 캐글에 올라와있던 YOLOv5의 경우 모델을 사이즈별로 구분해 놓았다. 코드를 실행한다면 모델을 다운받아 저장하는 과정이 나오는데, 여기서 파란색 문서 이모티콘이 바로 YOLOv5의 다양한 사이즈라고 보면 된다. x -> l로 갈수록 모델의 크기가 크며 시간이 오래 걸린다.

여러 모델 테스트 결과 사이즈별 성능이 다이나믹한 차이는 없었지만 시간이 좀 걸리고 코랩의 특성상 GPU할당 세션이 불안정하다보니 무작정 큰 모델을 돌릴기 보단 m정도로만 돌려도 충분히 좋은 결과를 냈던 것으로 기억한다.
GitHUB repository에 코드는 올려져있다.
https://github.com/hahahacho11/mldlcode/blob/main/HardHeadDetectionwithYOLOv5.ipynb
GitHub - hahahacho11/mldlcode: Machine Learning & Deep Learning
Machine Learning & Deep Learning. Contribute to hahahacho11/mldlcode development by creating an account on GitHub.
github.com
확실히 아는 것이라도 코드 연습을 하지 않으면 그냥 개념을 지나가고 마는거 같아서 실습해 보는 것을 추천한다.