Search

Object Detection (객체 탐지)

사용 분야

자율 주행
스포츠
의료
군사

정의

Classification + Localization(하나의 obejct 위치를 잡아내는 것)
Multi-Labeled Classification + Bounding Box Regression
다중 분류와(클래스 구분) 위치를 잡아내는 회귀가 합해진 딥러닝 모델이라고 보면 된다.

Object Detection 주요 키워드 정의

Bounding Box
하나의 Object가 포함된 최소 크기의 박스
박스를 만드는 기준은 min, max 나 center, width, height 등 다양하다.
즉, Bounding Box를 통해 object의 위치 정보를 담았다고 보면 된다.
IoU (Intersection over Union)
박스간 중복 영역 크기를 통해 측정하는데,
겹치는 영역이 넓을수록 좋은 예측이라고 보면 된다.
0 ~ 1 사이의 값을 갖고 1에 가까울수록 박스간 중복 정도가 크다.
IntersectionoverUnion(IoU)=AreaofOverlapAreaofUnionIntersection over Union(IoU) = \frac{Area of Overlap}{Area of Union}
Confidence Score
Bounding Box 안에 Object가 있는지 모델이 확신하는 정도
따라서 확률의 의미는 아니다. 또, 값이 크다고 해서 정말도 object 가 있는 것도 아니다.
Ground-Truth Bounding Box (즉, 정답(실제) bounding box)의 Confidence Score 는 1이 될 것이다.
한편, Predicted Bounding Box의 Confidence Score 는 0 ~ 1사이의 값을 갖는다.
1에 가까울수록 모델은 해당 Bounding Box안에 object가 있다고 판단할 것이다.
이 score 값은 모델에 따라 계산하는 방식이 조금씩 다르다.
ex) object가 있을 확률, object가 있을 확률 X IoU, object가 특정 클래스일 확률 X IoU ,…
Precision(정밀도) / Recall(재현율)
Precision : object가 있다고 예측했는데, 실제로 있을 확률 (예측 관점)
Recall : 실제 object가 있는데, 있을 것이라고 예측한 확률(실제 관점)
Confidence Score 의 임곗값에 따라 이 Precision, Recall 값이 변화한다.
Confidence Score의 임곗값 설정에 따라 살아남는 박스들의 수에 영향을 미치기 때문에 당연히 Recall,precision 값이 영향을 받을 수밖에 없다.
IoU의 임곗값에 따라서도 Precision, Recall 값에 영향을 미친다.
Precision - Recall Curve
모델의 학습 과정에서 그려진다.
모델 스스로가 Confidence Score threshold를 다양하게 바꾸면서 나온 결과인 recall와 precision을 모두 감안할 수 있는 그래프라고 보면 된다.
AP ( average precision )
Precision - Recall Curve 그래프 아래 면적
MAP (mean average precision)
각 클래스별 AP를 합산하여 평균을 낸 것
Confidence Score와 Recall/Precision 의 관계
Confidence Score의 임곗값을 높이면 Target의 예측 정밀도가 높아진다. 한편, 재현율은 변화 없다.
Confidence Score의 임곗값을 내리면 Target의 예측 정밀도가 낮아진다. 한편 재현율은 높아진다.

NMS(Non - Maximum - Suppression)

“추론 과정”의 알고리즘 → 예측할 때를 의미
동일 Object에 대한 중복 박스 제거
NMS 과정
1.
Confidence Score 임곗값 이하의 Bounding Box 제거
2.
남은 Bouding Box들을 Confidence score 내림차순으로 정렬
3.
첫 Bouding Box와의 IoU값이 임곗값 이상인 다른 박스들을 제거
→ 중복 제거의 의미
4.
Bounding Box가 하나 될 때까지 반복
Confidence Score의 임곗값이 높을수록, IoU 임곗값이 낮을수록 중복 박스에 대한 판단히 엄격해진다!
하이퍼 파라미터predict 에서 설정!
Confidence Score 임곗값
IoU 임곗값

Annotation

이미지 안의 정보에 대해서 별도의 파일로 제공되는 것을 Annotation 파일이라고 한다. Annotation 파일에는 Object의 위치 정보, 클래스 정보, 클래스명 등의 정보가 담겨 있다.

UltraLytics : YOLO

!pip install ultralytics # 라이브러리 설치 from ultralytics import YOLO # 라이브러리 불러오기 model = YOLO() # 모델 선언 (구조 및 가중치 설정) model.train() # 학습 model.val() # 검증 model.predict() # 예측
Python
복사

Roboflow : Universe

컴퓨터 비전의 End - to - End 개발 가능 - Annotation - Dataset Split - Preprocessing - Augmentation - Training …
!pip install roboflow from roboflow import Roboflow
Python
복사
Roboflow 데이터 탐색하기
Object Detection에 사용할 데이터셋을 다운로드 받은 뒤,
1.
데이터셋 폴더의 내부 구조 확인하기
test(옵션)
images / labels 폴더 내부에는 동일한 이름의 이미지 파일과 텍스트 파일이 저장되어 있음
labels 폴더의 txt 파일에는 클래스 정보와 Normalize된 x, y, w, h가 담겨있다.
images
labels
train
images
labels
valid
images
labels
README.dataset.txt
README.roboflow.txt
data.yaml
데이터셋에 대한 정보
training , validation, test set에 대한 경로
nc 클래스의 수
names 클래스별 이름