본문 바로가기

[Detection] Object detection 기본 용어 정리 및 성능 평가 지표

Derrick 발행일 : 2022-06-28
728x90
반응형

 

이번 포스팅을 통해 객체 탐지를 할 때 기본 용어 성능 평가지표에 대해 알아보자.

 

1. Region Proposals

Region Proposal이란, 주어진 이미지에서 물체가 있을법한 위치(영역)를 찾는 모듈을 의미한다.
ex) R-CNN에서는 'Selective Search' 알고리즘을 적용하여 2천개의 물체가 있을법한 박스를 찾는다.
→ 물체가 있을법한 박스 = RoI (=Region Of Interest)
→ Selective Search는 주변 픽셀 간의 유사도를 기준으로 Segmentation을 만들고, 이를 기준으로 물체가 있을법한 박스를 추론한다.
→ R-CNN 이후, Region Proposal도 Neural network가 수행할 수 있도록 발전됨. 

 

[ Regions of Interest (RoIs) proposed by the system ]

 

→ 위 사진을 보면, 해당 영역에 물체가 있을 확률(objectness score)을 바탕으로 RoI 박스 생성됨.

 

2. Non-maximum suppression (NMS)

NMS란, object detector가 예측한 수많은 bounding box들 중에서 정확한 bounding box을 선택하도록 하는 기법이다. 이미지에서 객체는 다양한 크기와 형태로 존재하고, 이것들을 완벽하게 추출하기 위해서 object detection 알고리즘은 여러 개의 bounding boxes를 생성한다.
 이것들 중 하나의 bounding box만을 선택하는데, 이 때 적용하는 기법이 Non-max suppression(NMS)이다.

 

 

3. Detection 성능 평가 지표

Object Detection의 모델을 평가할 수 있는 지표에 대해 알아보자.
모델이 얼마나 객체 탐지를 성공적으로 수행했는가는 2가지 측면에서 확인할 수 있다.
얼마나 빠르게 탐지하는가? (to measure detection speed) - mAP (Accuracy 측면)
얼마나 잘 탐지하는가? (to measure network precision) - FPS (모델의 효율성 측면) 

3-1. FPS (Frames Per Second)

FPS란, Frame Per Second로 '초당 frame 수' 라고 해석할 수 있다.

 

 

 

 

 위의 영상처럼 30fps보다 60fps의 경우, frame의 움직임이 끊기지 않고 더 자연스러워 보인다. Object Detection에서의 'FPS'라는 것은 초당 detection하는 비율을 의미한다.
 만약 초당 30개의 frame에 대해 detection을 수행한다면, 30fps가 되는 원리이다.
보통 사람이 느끼는 Real Time은 "30fps" 수준, 즉 초당 연속적인 frame을 30개 이상 처리할 수 있다면 끊기지 않는 자연스러운 영상으로 인식할 수 있다고 볼 수 있다.

 

0

 

 FPS에서 중요한 개념 중 하나는 'inference time'이며, 이는 하나의 frame을 detection하는데 걸리는 시간이다. 만약 Object Detection 모델이 너무 방대해서 inference time이 길어지게 된다면, fps 비율은 낮아진다.
ex) 하나의 frame을 detection 수행하는 데 걸리는 시간이 0.1초라면, 10fps가 되는 원리이다.

 

Q) 자율주행 차량 내 Unit에 inference time이 오래 걸리는 Object Detection 모델을 사용하면?
물론 어떤 물체가 갑자기 뛰어드는 상황 같은 경우, 정상적으로 detection 하지 못할 확률이 매우 크다. 따라서 Object Detection 모델의 성능을 파악할 대, (m)AP 지표도 중요하지만 inference time도 중요하게 사용된다.

3-2. mAP (Mean Average Precision)

mAPFast R-CNN, SSD, YOLO와 같은 object detector의 정확도(Accuracy)를 측정할 수 있는 지표이다. mAP를 이해하기 전에 precision(정밀도), recall(검출율) 그리고 AP(Average Precision)에 대해 알아보자

 
 # Precision & Recall

 

[ Precision & Recall ]

 

- Precision : 모델이 True로 예측한 값들 중에서 실제값(Actual)도 True인 비율
 → TP / (TP + FP)
 - Recall : 실제값(Actual)이 True인 것들 중에서 모델이 True라고 예측한 비율
 → TP / (TP + FN)

 

[ Confusion matrix with advanced classification metrics ]

 

→ 위의 confusion matrix는 task 수행 시, 실제값(Actual value)와 예측값(Predicted value)를 비교하는 table이다.

 

- True Positive (TP) : 실제값이 True인 경우 예측값도 True일 때 - 올바른 탐지 (IoU >= threshold)
- False Positive (FP) : 실제값 False인 경우 예측값은 True일 때 - 오탐지 (IoU <= threshold)
- True Negative (TN) : 실제값이 False인 경우 예측값도 False일 때 - 미적용
- False Negative (FN) : 실제값이 True인 경우 예측값은 False일 때 - 미탐지

 

 일반적으로 Recall이 높아져도 Precision이 유지되는 경우, Class 검출을 위한 모델 성능을 좋게 평가한다. 더불어 Precision과 Recall이 모두 높은 경우에도 높은 성능으로 평가된다. 

 

[ Precision-Recall curve(P-R) of a Good Model ]

 

 위 그래프처럼, 검출할 Object들을 모두 찾아내기 위해 Object 수를 많이 Detecting 하는 경우에는 일반적으로 P-R curve가 높은 Precision으로 시작하지만, Recall이 증가함에 따라 감소하는 추이를 보인다.
 (FP 가 높은 경우 = Precision이 낮아짐)
사실상 Recall과 Precision가 모두 최고치로 높이는 것은 불가능하다. (Trade-off 관계)
따라서 이 2가지를 어느 수준에서 조절할 수 있도록 threshold를 설정하는 것이 중요한데, 이 경우 위와 같은 P-R curve를 그려서 확인한다. 

 

 # AP (Average Precision)

Precision-Recall curve하나의 알고리즘에 대한 threshold를 결정하는 데 주로 사용되고, 서로 다른 알고리즘을 수치로 비교하기 위해서는 AP 지표를 사용한다.
- AP는 여러 알고리즘 간의 성능 비교가 가능한 알고리즘 성능 평가 지표이다.
- AP는 0~1 사이의 모든 Recall에 대응하는 Precision을 평균을 산출한 것이며, 결과적으로 Precision과 Recall을 종합하여 알고리즘을 평가하는데 용이하다.

 

[ Formula of AP ]

 

AP는 위 수식에서 확인할 수 있듯이, 각 threshold의 precision 가중치의 합으로 계산되며 이 때의 가중치는 바로 이전과 threshold와 현재의 threshold의 recall값 차이로 정의된다.

 

[ AP Score in P-R curve ]

 

위 그래프에서 AP는 P-R curve의 아래 면적(보라색) 값이며, 이 AP가 클수록 성능이 좋은 알고리즘이라고 해석

 

 # mAP (Mean Average Precision)

Object detection하나의 객체에 대한 binary class만 존재하는 것이 아닌, 여러 객체를 탐지(multi-class)한다. 이때 mAP는 AP를 class에 대해 average한 결과값이다.

 

[ mAP 공식 ]

 

 해당 class에 대한 Prediction값의 Accuracy를 구한 후, 모든 class에 대한 평균을 산출함으로써 해당 모델이 어느 정도의 탐지 성능을 가지는 지 알 수 있다.

3-3. IoU (Intersection over Union)

IoU는 object detector의 정확도를 측정하는데 이용되는 하나의 평가 지표이다.
 → 즉, 설계된 알고리즘이 출력한 예측 바운딩 박스는 IoU를 이용하여 평가된다.

 

 

→ 위의 공식은 IoU를 계산하는 식이며, 아래 2개의 값을 나누어서 구할 수 있다.

 

- Area of Overlap
 : predicted bounding box와 ground-truth bounding box가 겹치는 부분
- Area of Union
 : predicted bounding box와 ground-truth bounding box를 둘러싸는 영역

 

[ IoU scores range from 0 (no overlap) to 1 (100% overlap) ]

 

 Classification 이슈와는 다르게, Object detection의 경우 예측한 bounding box과 ground-truth box와 일치하는 경우는 거의 없기 때문에 '얼마나 일치하는지 측정하기 위한 평가 지표'인 IoU를 정의한 것이다. 여기서 IoU가 높다는 것은 model이 bounding box를 정확하게 예측했다는 의미이다.

 


References>

 

 

 

댓글