객체 탐지란?
- 한 이미지에서 객체와 그 경계 상자를 탐지
- 객체 탐지 알고리즘은 일반적으로 이미지를 입력으로 받고, 경계 상자와 객체 클래스 리스트를 출력
- 경계 상자에 대해 그에 대응하는 예측 클래스와 클래스의 신뢰도를 출력
객체 탐지가 어느 곳에 주로 활용될까?
- 자율 주행 자동차에서 다른 자동차와 보행자를 찾을 때
- 의료 분야에서 방사선 사진을 사용해 종양이나 위험한 조직을 찾을 때
- 제조업에서 조립 로봇이 제품을 조립하거나 수리할 때
- 보안 산업에서 위협을 탐지하거나 사람 수를 셀 때
Bounding Box
- 이미지에서 하나의 객체 전체를 포함하는 가장 작은 직사각형
![](https://blog.kakaocdn.net/dn/bwQ6qU/btsdegjyrtW/Vzy7nwZ6sLILIb6MltYRPk/img.png)
IOU (Intersection Over Union)
- 실측값과 모델이 예측한 값이 얼마나 겹치는지를 나타내는 지표
- IOU가 높을수록 잘 예측한 모델
NMS (Non-Maximum Suppression, 비최댓값 억제)
- 확률이 가장 높은 상자와 겹치는 상자들을 제거하는 과정으로 최댓값을 갖지 않는 상자들을 제거
- 1. 확률 기준으로 모든 상자를 정렬하고 먼저 가장 확률이 높은 상자를 취함
2. 각 상자에 대해 다른 모든 상자와의 IOU를 계산
3. 특정 임곗값을 넘는 상자는 제거
모델 성능 평가
- 정밀도와 재현율
- 일반적으로 객체 탐지 모델 평가에 사용되지는 않지만, 다른 지표를 계산하는 기본 지표 역할을 함
- True Positives (TP): 예측이 동일 클래스의 실제 상자와 일치하는지 측정
- False Positives (FP): 예측이 실제 상자와 일치하지 않는지 측정
- False Negatives (FN): 실제 분류값이 그와 일치하는 예측을 갖지 못하는지 측정
- 정밀도 = TP / TP + FP, 재현율 = TP / TP + FN
- 모델이 안정적이지 않은 특징을 기반으로 객체 존재를 예측하면 거짓긍정(FP)이 많아져서 정밀도가 낮아짐
- 모델이 너무 엄격해 정확한 조건을 만족할 때만 객체가 탐지된 것으로 간주하면 거짓부정(FN)이 많아져서 재현율이 낮아짐
- 정밀도-재현율 곡선
- 신뢰도 임계값마다 모델의 정밀도와 재현율을 시각화
- 모든 bounding box와 함께 모델이 예측의 정확성을 얼마나 확실하는지 0 ~ 1사이의 숫자로 나타내는 신뢰도를 출력
- 임계값 T에 따라 정밀도와 재현율이 달라짐
- 임계값 T 이하의 예측은 제거함
- T가 1에 가까우면 정밀도는 높지만 재현율은 낮음
놓치는 객체가 많아져서 재현율이 낮아짐. 즉, 신뢰도가 높은 예측만 유지하기때문에 정밀도는 높아짐 - T가 0에 가까우면 정밀도는 낮지만 재현율은 높음
대부분의 예측을 유지하기때문에 재현율은 높아지고, 거짓긍정(FP)이 많아져서 정밀도가 낮아짐
- 예를 들어, 모델이 보행자를 탐지하고 있으면
특별한 이유없이 차를 세우더라도 어떤 보행자도 놓치지 않도록 재현율을 높여야 함 - 반면,
모델이 투자 기회를 탐지하고 있다면
일부 기회를 놓치게 되더라도 잘못된 기회에 돈을 거는 일을 피하기 위해 정밀도를 높여야 함 - 그러므로 어떠한 모델의 특성(동작)에 따라서 재현율을 높이거나, 정밀도를 높이거나 하게 됨
AP (Average Precision, 평균 정밀도) 와 mAP(mean Average Precision)
- 곡선의 아래 영역에 해당
- 항상 1x1 정사각형으로 구성되어 있음 (즉, 항상 0 ~ 1 사이의 값을 가짐)
- 단일 클래스에 대한 모델 성능 정보를 제공
- 전역 점수를 얻기위해서는 mAP를 사용
예를 들어, 데이터셋이 10개의 클래스로 구성된다면 각 클래스에 대한 AP를 계산하고, 그 숫자들의 평균을 다시 구함 - mAP 사용 예시
- 최소 2개 이상의 객체를 탐지하는 대회인 PASCAL Visual Object Classes와 Common Objects in Context에서 사용됨
- COCO 데이터셋이 더 많은 클래스를 포함하고 있기 때문에 보통 Pascal VOC보다 점수가 더 낮게 나옴
데이터셋
- VOC Dataset
- 2005년부터 2012년까지 진행
- Object Detection 기술의 benchmark로 간주
- 데이터셋에는 20개의 클래스가 존재
- 훈련 및 검증 데이터 : 11,530개
- ROI에 대한 27,450개의 Annotation이 존재
- 이미지당 2.4개의 객체 존재
- http://host.robots.ox.ac.uk/pascal/VOC/
- COCO Dataset (Common Objects in Context)
- 200,000개의 이미지
- 80개의 카테고리에 500,000개 이상의 객체 Annotation이 존재
- https://cocodataset.org/#home
참고자료
더보기
객체 탐지 Object Detection - YOLO의 모든것 / 포트홀 탐지, 연기 탐지, 안전모 탐지, 주차공간 탐지
'ML > YOLO의 모든것' 카테고리의 다른 글
[Object Detection] YOLO의 모든것 - 커스텀 학습 (0) | 2023.05.15 |
---|---|
[Object Detection] YOLO의 모든것 - 다양한 탐지 모델 (0) | 2023.05.12 |
[Object Detection] YOLO의 모든것 - YOLOv3, YOLOv5 (0) | 2023.05.01 |
[Object Detection] YOLO의 모든것 - YOLO란? (0) | 2023.05.01 |
[Object Detection] YOLO의 모든것 - 객체 탐지의 역사 (0) | 2023.05.01 |