DeseoDeSeo
[Open cv] object Detection(객체 탐지) 본문
object Detection(객체 탐지)
: 이미지 내에서 객체(사물, 사람 등)를 감지해 내는 것 (어디에 있는지)
활용분야 : 체온 측정, cctv위급상황 감지, 드론을 활용한 교통상황 파악, 자율주행 차 차량 거리 파악
객체 탐지 알고리즘의 역사
< 발전 순서 >
1. Traditional Detection Methods (가장 기본적인 방법)
: 슬라이딩 윈도우 : 고정된 크기의 Window(초록박스)로 이미지의 좌상단부터 우하단으로 일일이 객체를 검출해
나가는 방식
< 문제점 >
: 객체가 없는 영역도 무조건 Sliding해야하며 여러 Scale의 이미지를 스캔하여 검출하는 방식
(수행시간⬆ , 검출성⬇)
2. Two-stage detector
영역 추정과 탐지, 두 단계를 따로 수행하는 방식
- Sliding window의 비효성으로 인해 R-CNN알고리즘에서는 객체가 있을법한 2000여개의 영역을 찾고
- 문제점 : 객체들이 다른 크기를 가지고 있으면 후보 영역을 찾는 정확도가 떨어진다.
선택적 검색(Selective Search)
- 처음에는 분할된 모든 부분들을 Bounding box로 만들어 리스트에 추가
색상, 무늬, 크기, 형태에 따라 유사독가 비슷한 부분들을 그룹핑(Bbox 개수 감소)
1,2단계를 계속 반복
- 장점 : 정확하다.
- 단점 : 느리다.
3. One-stage detector
selective search방식으로 인해 높은 정확도 객체 탐지가 가능하지만 여전히 낮은 속도로 실시간 적용 어려움.
- 영역 추정과 객체 탐지를 통합해 한 번에 수행함.
- (장점) : 탐지 속도의 획기적인 향상으로 실시간 탐지가 가능하다.
YOLO
: one-stage dector 방식으로 실시간 객체 검출 알고리즘의 선봉장
16년 v1 ~ 22년 v8까지 오픈소스로 출시됨.
v1은 two-stage detector의 faster R-CNN(vgg16 적용) 보다 6배 빠른 속도로 논문에 기재됨.
CNN(이미지 인식 ) VS YOLO(객체탐지)
라벨링을 쉽게 해주는 웹 사이트
< YOLO를 사용하기 위한 환경설정 진행 >
Anaconda Prompt에서
activate opencv
pip install git-python : python과 git을 연동하기 위해 필요한 라이브러리
conda install git
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
jupyter notebook