본문 바로가기

Computer Vision/Deep Learning

Object Detection의 결과 성능 평가지표들

Intersection Over Union (IOU)

Overlap between two bounding boxes (Bgt, Bp)

IOU 적용함으로써 detection valid한지 (True Positive) or not valid한지 (False positive) 말할 있음

Bp Bgt 교집합 / Bp Bgt 합집합

 

True Positive : 맞다고 추측하고 실제로 맞음. IOU >= Threshold

False Positive : 맞다고 추측하고 실제로는 틀림. IOU < Threshold

False Negative : 아니라고 추측하고 실제로는 맞음. Ground Truth 아예 detect 못함

True Negative : 아니라고 추측하고 실제로 아님.

True negative IOU에서 쓰이지 않는 개념임. Corrected misdetection 반영하기 때문.

잘못된 bounding box들이 여러 있는데 걔네를 잘못됐다고 했다고..그게 좋은 성능을 가졌다는 것을 나타내지는 않기 때문에 사용하지 않는 개념이다.

보통  IOU Threshold 50%, 75%, 95% 사용한다.

 

 

Precision

적절하게 Detection 하는지. 5000개의 object detection했는데 100개가 진짜인 것과,

100개를 detection 했고 80개가 맞는 것을 구분하는 지표

 

Recall

모든 적절한 경우를 찾게 하는 능력을 평가하는 지표

모든 Bgt 대해 맞게 detectiond gt 비율로, Bgt 100개인데 그중 몇개를 detection했는지 분석

 

Confidence Level

예측한 class 대해 어느정도의 확신을 가지고 있는지.

 

 

 

 

Object Detection Popular Metrics

Precision * Recall Curve

Precision 모든 detection 대해 맞는 detection 몇개냐

Recall 모든 정답값에 대해 몇개나 detection 했냐

보통의 알고리즘에서는 recall precision 반비례 관계이므로  curve 그렸을 1 가까울수록 좋은거임

특정 class 대해 어떤 모델이, recall 증가시켰을 precision 여전히 좋다면 성능이 좋다고 고려될 있음

Precision Recall 다른 방법으로 어떻게 표현할 있냐면

0 False Positive == High Precision

0 False Negative == High Recall

 

성능이 좋지 못한 모델같은 경우 모든 ground truth object 찾기 위해 먼저 detected objects 개수를 늘려야함. recall 먼저 상승시켜야 한다.

==> 따라서 보통의 Precision * Recall 그래프는 High Precision Value에서 시작해서 recall 증가시키는 방향으로 진행됨.

 

Average Precision

Precision * Recall Curve Area Under the Curve (AUC) 계산함으로써 performance 계산 가능하다.

AP curve 보통 지그재그 (위아래로) curve이기 때문에 서로 다른 curve 비교하는 쉽지 않기 때문임. (비교한다 하더라도 커브가 쉴새없이 만남… 둘다 지그재그일 경우에)

따라서 Average Precision (AP) 서로 다른 모델을 비교하는 도움됨

Average Precision: 0~1 사이의 모든 recall 값에 대해 평균을 precision == precision * recall curve AUC

 

 

11-Point interpolation:

Precision * Recall Curve 모양을 요약하기 위해 나온 개념.

0-1 recall 11등분한 상태에서의 precision 평균낸

with

where 

is the measured precision at recall 

.

 

point에서 얻어진 precision 쓰지 않음.

Average Precision 11 단계 ( 0.0~1.0) r에서 precision interpolation 하는데 이때 recall value r보다 애들 max precision 취해서 interpolating.

 

 

Then How to Increase Recall?

Threshold 0.5라고 했을 때의 Precision, Recall 구한 후에 Detection 결과의 confidence 값의 threshold 조절하며 Recall 조절…

잘 와닿지 않음…

==> 링크 참조:

https://datascience.stackex...

BB  | confidence | GT
----------------------
BB1 |  0.9       | 1
----------------------
BB2 |  0.9       | 1
----------------------
BB3 |  0.7       | 0
----------------------
BB4 |  0.7       | 0
----------------------
BB5 |  0.7       | 1
----------------------
BB6 |  0.7       | 0
----------------------
BB7 |  0.7       | 0
----------------------
BB8 |  0.7       | 1
----------------------
BB9 |  0.7       | 1
----------------------

 

이런식의 table 있을 confidence 기준으로 나열해놓고 BB1, BB1-BB2, BB1-BB3까지의

Precision recall 계속 계산해나가면

rank=1  precision=1.00 and recall=0.14
----------
rank=2  precision=1.00 and recall=0.29
----------
rank=3  precision=0.66 and recall=0.29
----------
rank=4  precision=0.50 and recall=0.29
----------
rank=5  precision=0.40 and recall=0.29
----------
rank=6  precision=0.50 and recall=0.43
----------
rank=7  precision=0.43 and recall=0.43
----------
rank=8  precision=0.38 and recall=0.43
----------
rank=9  precision=0.44 and recall=0.57
----------
rank=10 precision=0.50 and recall=0.71

 

출처: <https://datascience.stackexchange.com/questions/25119/how-to-calculate-map-for-detection-task-for-the-pascal-voc-challenge>

 

이렇게 .

 

Accuracy

Object Detection에서는 False False라고 예측한 경우는 의미가 없으므로… Accuracy 자주 쓰일지는 몰겠음.

아무튼 True True라고 옳게, False False라고 옳게 답하는 경우 모두 고려하는 Accuracy.

 

이때 domain 편중되어있다면, Data domian bias 심하다면 성능 차이가 있음.

예를 들면 예측하고자 하는 달이 매우 맑기만 하고 거의 비오는 날이 아니라면, 오는 예측하는 성능이 낮을수밖에 없음…

 

 

F1 Score

Precision Recall 조화평균

데이터 label 불균형 구조일때 성능평가 가능

 

 

, 어떤 비중이 걔가 끼치는 bias 줄어든다.

 

COCO Detection Challenge에서 쓰이는

AP Across Scales, AR Across Scales 단순히 Object Size 대해 나열한 것이다.

작은 Object부터 Object까지 detection 했냐는 것인데,

Small object(Area < 32^2) 대한 AP, medium object  대한 AP 이런 식인 거다.

 

 

++ 정확성 아니라 FPS (Frame Per Second) 매우 중요한 성능평가 지표.

 다만 FPS Precision, Recall 등과는 다르게 성능을 평가할 사용된 하드웨어 등에 많은 영향을 받기 때문에

항상 절대적인 값이 아니고 상대적인 성능평가 지표라는 것이 단점이다.

'Computer Vision > Deep Learning' 카테고리의 다른 글

no module named 'tensorflow' error 해결  (0) 2020.09.27
Gaussian Mixture Model - GMM  (0) 2020.07.09
SNIPER: Efficient Multi-Scale Training  (0) 2020.02.20
Feature Pyramid Network - FPN  (0) 2020.02.18