Object detection이란?
Object Detection(객체 감지)란 컴퓨터 비전의 하위 분야 중 하나로 전체 디지털 이미지 및 비디오 내에서 유의미한 특정 객체를 감지하는 작업을 합니다. 이러한 object detection은 Image retrieval(이미지 검색), Image annotaition(이미지 주석), Face detection(얼굴 인식) , Video Tracking(비디오 추적) 등 다양한 분야의 문제를 해결하기 위해 사용됩니다.
Object detection은 2가지로 나눌수 있는데 1-Stage Detector와 2-Stage Detector로 나눌 수 있습니다. 저는 여기서 YOLO의 특성중 1-Stage Detector에 대해 좀 더 자세히 볼 예정입니다.
1-Stage Detector
위 사진 처럼 해당 input file을 를 한 번만 보고 convolution 층의 grid cell 별로 찾고자 하는 물체가 있을 확률과
해당 grid cell이 어떤 클래스일지 확률을 계산하며 classification 과 localization을 동시에 수행해 객체를 탐지하는 방법입니다.
YOLO의 구조는 하나의 convolution network가 이미지 내에서 찾고자 하는 객체의 bounding box의 위치 정보인 x,y,w,h의 값과 bouding box의 class확률을 동시에 계산해줍니다.
해당 진행 방식을 바탕으로 yolo는 점점 발전해 나가며 yolov5까지 도달하게 되었습니다.
Data set
Ai model의 성능평가, 또는 모델을 학습시킬 때에 모델의 성능을 향상시키기 위한 용도로, object detection의 경우 COCO, PASCAL등의 데이터 셋이 대표적으로 사용되고 있습니다.
YOLOv5 model
- YoLov5는 s,m,l,x 4가지 버전이 있습니다.
- s는 제일 가벼운 모델이며, 진행속도가 빠른대신, 정확성이 떨어진다는 단점이 있습니다.
- x는 제일 무거운 모델이며, 진행속도가 느린대신, 정확성이 좋다는 장점이 있습니다.
- 모델링을 하는 데이터셋의 양과 pc의 사양에 따라 적절한 모델을 선택하여 학습을 진행해야 합니다.
이들은 각각 depth multiple과 width multiple의 차이로 발생하게 됩니다. 또한 이전의 시리즈와 다른 backbone의 아키텍처를 사용하는데 CSPNet을 이용하여 학습능력을 강화시키는 것과 동시에 정확도를 유지하며 경량화를 가능하게 구성하였습니다. 기본적으로 parameter 수가 감소하면 정확도가 감소하게 되는데 bottle-neck 현상을 방지하여 shortcut connection으로 덧셈 연산이 필요 없게 되어 결과적으로 정확도는 향상되는 효과가 있습니다..
Yolov5 불러오기
!git clone https://github.com/ultralytics/yolov5 # clone
%cd yolov5
%pip install -qr requirements.txt # install
해당 모델을 불러오기위해 git clone을 통해 yolov5 라이브러리를 불러옵니다. 이후 requirements를 실행시켜 yolov5가 작동할 수 있는 module 환경을 세팅해줍니다.
참고: 논문인용, object detection, Yolo_git
'AI > Computer vision' 카테고리의 다른 글
Yolov5 Deep learning (2) (0) | 2022.07.07 |
---|---|
Detectron 2 with custom dataset (0) | 2022.07.06 |
Detectron2 공부하기 (0) | 2022.07.05 |
COCO dataset (0) | 2022.06.27 |