- deep learning
- Convolution 종류
- 딥러닝
- Weight initialization
- image classification
- LeNet 구현
- SPP-Net
- object detection
- overfeat
- Optimizer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
I'm Lim
[개념 정리] Object Detection Metric 본문
1. Object detection이란?
Object detection이란 사진 내 물체의 위치를 파악하는 것을 뜻합니다. Image Localization 문제와는 다르게 Object detection 문제는 한 사진 내에 여러 가지 객체가 존재할 수 있습니다. 또한, Image Classification 문제와는 다르게 Object detection 문제는 분류뿐만 아니라 객체가 어느 위치에 존재하는지에 관한 정보를 예측해야 합니다.
위에서 말한 객체가 어느 위치에 존재하는지에 관한 정보를 바운딩 박스가 담고 있습니다. 바운딩 박스는 Classification이 아닌 Regression 문제이므로 얼마큼 실제 바운딩 박스와 유사한지를 평가해야 합니다. 따라서, Object detection 문제는 Image Classification 문제에서 사용했던 Accuracy로는 평가하기 힘들어집니다.
2. 성능 평가 지표
위의 내용은 Object detetcion을 위한 적절한 평가지표가 다음 두 조건을 갖춰야 됨을 알려줍니다.
- 바운딩 박스 예측 값이 실제 바운딩 박스 값과 얼마나 차이나는지 평가
- 여러 객체에 대해 고려하여 평가
1 ) Precision vs Recall
Object Detection 문제에서는 첫 번째 조건을 만족시키기 위해 Precision, Recall의 개념을 사용합니다.
- TP : 실제 객체가 있는 위치를 Object Detection 모델이 객체가 있다고 예측했다라는 의미입니다.
- FP : 실제 객체가 없는 위치를 Object Detection 모델이 객체가 있다고 예측했다라는 의미입니다.
- FN : 실제 객체가 있는 위치를 Object Detection 모델이 객체가 없다고 예측했다라는 의미입니다.
이러한 맥락에서 본다면, Precision은 모델이 객체가 있다고 예측한 위치 중에 실제로 객체가 있는 비율이 됩니다. 같은 논리로 Recall은 실제로 객체가 있는 위치를 모델도 객체가 있다고 예측하는 비율이 됩니다.
예를 들어, 한 사진 내에 객체가 100개가 있고, Object detection 모델이 50개의 객체를 검출하였고, 그중 40개가 실제로 객체라는 가정을 하겠습니다. 그렇다면, Precision은 40/50 = 0.8이 되고, Recall은 40/100 = 0.4가 됩니다.
2 ) Intersection Over Union (IOU) : 모델이 잘 예측했는지에 관한 정의
위에서 Precision은 모델이 객체가 있다고 예측한 위치 중에 실제로 객체가 있는 비율이 된다고 했습니다. Object Detection 문제에서 객체의 존재여부는 바운딩 박스에 의해 결정이 됩니다. 그러면, 모델이 예측한 바운딩박스와 실제 바운딩박스가 얼마나 같아야 모델이 올바른 예측을 했다고 볼 수 있는지에 관한 의문이 생깁니다.
예를 들어, 실제 바운딩 박스와 모델이 예측한 바운딩 박스가 완전히 동일해야 올바른 예측을 했다고 할 수 있을 것이고, 겹치기만 한다면 잘 예측했다고 할 수도 있을 겁니다.
여기서, 모델이 올바른 예측을 했는지에 관한 정의를 내리는 기준으로 IOU를 사용합니다.
IOU의 개념자체는 교집합을 합집합으로 나눈 것으로 쉽습니다. 이 IOU의 값이 특정 임계값을 넘으면 TP, 그렇지 않으면 FP로 판단합니다. 이를 통해 IOU라는 개념은 모델의 예측 바운딩 박스가 기준이라는 것을 알 수 있습니다 (FN의 개념이 사용되지 않은 것이 근거). 이 특정 임계값은 데이터 셋에 따라 다르지만, PASCAL VOC 데이터 셋과 COCO 데이터 셋은 아래와 같이 정했습니다.
3 ) Precision-Recall Curve
생각해 보면 Precision과 Recall은 trade-off 관계에 있다는 걸 알 수 있습니다. 쉽게 이야기하자면, 실제 클래스와 예측 클래스의 개수는 정해져 있고, TP와 TN이 고정되어 있는 상황이라면 FN과 FP는 숫자놀음에 불과해지기 때문입니다 ( FN = Total - TP - TN - FP ).
이러한 상황 속에서 Object Detection의 성능지표로 Precision만을 고려하기엔 무리가 있습니다 (단적인 예로 FP가 0이고, FN이 10이며 TP가 1인 상황이라면 Precision이 1이 되기 때문입니다). 그렇기 때문에 Precision과 Recall을 적절히 고려하는 것이 올바른 성능지표라고 할 수 있습니다.
이를 위해, Precision-Recall Curve를 이용합니다. 이해를 위해 실제 바운딩 박스가 15개인 상황의 예시로 설명을 하겠습니다.
- R의 경우에 precision은 1/1이므로 1이 되고, recall은 1/15이므로 0.0666이 됩니다.
- Y의 경우에 precision은 1/2이므로 0.5이고, recall은 1 / 15이므로 0.0666입니다.
- 마지막으로, J의 경우에 precision은 2/3이므로 0.666이고, recall은 2 / 15이므로 0.133입니다.
※ Confidence score : 바운딩 박스 안에 물체가 있을 확률을 뜻하며, Classifier에 의해 주로 계산됩니다.
위 표를 그래프로 나타내면 아래와 같습니다. 이를 Precision-Recall Curve라고 합니다.
4 ) Average Precision (AP)
Precision-Recall Curve의 아래의 면적을 Average Precision (AP)이라고 합니다. 보통 계산의 편의를 위해서, 엄밀한 면적을 구하는 것이 아니라 아래의 그림과 같이 보간하여 면적을 계산합니다.
따라서, 위 그림의 AP는 다음과 같이 계산됩니다.
3. Mean Average Precision (mAP)
위 2번의 기본 전제조건은 "객체의 종류가 하나이다"입니다. 하지만, Object Detection 문제는 여러 개의 객체를 분류 및 검출하는 것입니다. 따라서, Mean Average Precision은 클래스 별로 AP를 진행하고, 이를 평균 내는 방식을 사용하겠다는 겁니다.
Reference
[ 1 ] https://stephenallwright.com/precision-recall-cacluator/
[ 2 ] https://medium.com/analytics-vidhya/iou-intersection-over-union-705a39e7acef
[ 3 ] Padilla, Rafael, Sergio L. Netto, and Eduardo AB Da Silva. "A survey on performance metrics for object-detection algorithms." 2020 international conference on systems, signals and image processing (IWSSIP). IEEE, 2020.
'Object Detection' 카테고리의 다른 글
[개념 정리] Non Max Suppression (0) | 2023.01.24 |
---|---|
[논문 정리] R-CNN (0) | 2023.01.24 |
[개념 정리] Object Detection Region Proposal (0) | 2022.12.27 |
[데이터 셋] COCO dataset (1) | 2022.12.24 |
[데이터 셋] PASCAL VOC dataset (0) | 2022.12.24 |