Object Detection 모델 성능 평가 지표(Evaluation Metric for Object Detection)
1. IoU(Intersection Over Union)
실측값이(ground truth)이 모델이 예측한 값이 얼마나 겹치는지를 나타내는 지표
IoU가 높을수록 잘 예측한 모델이다.
실제 Object Detection 예를 살펴보자.
위 그림에서 각 모델 A, B, C가 있다고 가정하자. 빨간 테두리는 이미 정답을 알고 있는 값으로 그린 bounding box이고, 파란 테두리는 모델의 예측을 나타낸다. 이때 Model C의 경우 예측한 범위가 실측값에 비해 너무 넓으므로 안좋은 모델이라고 할 수 있다. 그리고 Model B의 경우 실측값이 예측값의 범위를 벗어나므로 이 또한 좋은 모델이라고 할 수 없다.
Model A의 경우 약간의 오차가 있지만 비교적 좋은 모델이라고 할 수 있다.
2. Precision(정밀도) & Recall(재현율)
정밀도(precision)와 재현율(recall)은 일반적으로 object detection evaluation에는 사용되지는 않지만, 다른 지표를 계산하는 기본 지표 역할을 한다. 이를 제대로 알기 위해서 Confusion Matrix와 TP, FP, TN, FN이라는 4가지 표현에 대해서 먼저 알아보자. 예측하고자 하는 대상을 Positive로 놓고 예측(또는 실험)과 실제의 결과를 매트릭스를 표현한 것을 Confusion Matrix라고 한다.
그리고 4가지 표현에서 사용되는 영어를 살펴보자. 먼저, 가장 앞에 있는 T와 F는 True와 False의 약자로, 옳게 예측했으면 T, 예측에 실패하면 F가 붙는다. 그리고 뒤에 붙은 P와 N은 각각 Positive와 Negative의 약자로, 양성을 예측했는지 음성을 예측했는지를 나타낸다.
- TP(True Positive)
- Positive라고 예측하였고, 이 예측값이 실측값과 일치하는 것이다. 즉, 예측에 성공한 것이다..
- ex: 문제가 있는 객체(ex: 도둑)(Positive)를 문제가 있다고 잘(True) 판별한 것
- TN(True Negative)
- Negative라고 예측하였고, 이 예측값이 실측값과 일치하는 것이다. 즉, 예측에 성공한 것이다.
- ex: 문제가 없는 객체(ex: 일반인)(Negative)를 문제가 없다고 잘(True) 판별한 것
- FP(False Positive)
- Positive라고 예측했으나 실제값은 Negative인 경우이다. 즉, 예측에 실패한 것이다.
- ex: 문제가 있는 객체(ex: 도둑)(Positive)를 문제가 없다(ex: 일반인)고 잘못(False) 판별한 것
- FN(False Negative)
- Negative라고 예측했으나 실제값은 Positive인 경우이다. 즉, 예측에 실패한 것이다.
- ex: 문제가 없는 객체(ex: 일반인)(Negative)를 문제가 있다(ex: 도둑)고 잘못(False) 판별한 것
자, 이제 본격적으로 Precision과 Recall에 대해 하나씩 살펴보자.
그리고 Precision과 Recall는 둘다 0.0 ~ 1.0사이의 값을 가지며 높을수록 좋다.
2_1. 정밀도(Precision)
정밀도는 모델이 Positive라고 예측한 것 중에서 예측값과 실측값이 Positive로 일치하는 데이터의 비율을 뜻한다.
Precision이 1.0이라는 의미는 False Positive(거짓긍정)가 0건이라는 의미이다.
정확한 모델은 모든 positive를 찾지는 못하더라도 최소한 positive라고 예측한 것은 모두 positive인 것을 의미한다.
쉽게 말해, DMZ 부근에서 적의 남침을 대비해서 군인이나 군 장비를 식별하는 AI CCTV를 개발했다고 가정하자. 이때 판단한 데이터가 100개라면 100개 모두 실제로 적군이라는 것이다.
만약 모델이 안정적이지 않은 특징을 기반으로 객체를 예측하게 되면 거짓긍정(FP)이 많아져서 정밀도가 낮아진다.
요약하면, 정밀도(precision)는 조금 더 오류가 없는 것을 중요하게 생각한다.
2_2. 재현율(Recall)
재현율은 실제 값이 Positive인 대상 중에서 예측값과 실측값이 Positive로 일치하는 데이터의 비율을 뜻한다.
Recall이 1.0이라는 의미는 False Negative(거짓부정)가 0건이라는 의미이다.
만약 모델이 너무 엄격해서 정확한 조건을 만족할 때만 객체가 탐지된 것으로 간주하면 거짓부정(FN)이 많아져서 재현율이 낮아진다.
Recall이 높으면 몇 개의 negative를 positive로 분류할지라도 data에서 positive case를 잘 찾은것을 의미한다. Recall이 낮으면 데이터에서 positive case들을 전혀 찾을 수 없다는 것이다.
실무에서는 Recall이 더 우선시하는 경우가 많다. 왜냐하면 예측해야 할 것을 예측하지 못하면 치명적이기 때문이다. 예를 들어, 앞에서 예를 들었던 것처럼 군용 AI CCTV를 개발했는데 적을 예측해야 하는데 예측하지 못한다면 치명적일 것이다.
요약하면, 재현율(recall)은 실제 True인 값에 초점을 맞춘다.
2_3. PR 곡선(Precision-Recall Curve)
Recall 값의 변화에 따른 Precision값을 나타낸 곡선을 PR 곡선 또는 PR 커브라고 한다.
위 이미지는 필자가 Object Detection 프로젝트를 수행하고 numpy, scikit learn의 auc, matplotlib, seaborn을 통해서 PR 커브를 그래프로 표현한 이미지이다.
3. mAP(mean Average Precision)
mAP는 평균 정확도인데 mAP가 높을수록 모델이 정확하다고 볼 수 있으며, mAP가 낮으면 모델이 부정확하다고 볼 수 있다.
아래는 필자가 YOLOv5로 만든 키보드 인식 모델을 테스트 데이터셋으로 evaluation한 결과이다.
아래 결과를 보면 mAP50과 mAP50-95이 있다.
먼저 전자는 thresholds(임계값) 0.50에 대해 AP(평균 정밀도)의 mean(평균)을 구한 것이다.
그리고 후자는 0.50부터 0.95까지 step이 (0.05)일때, 각 thresholds(임계값: 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95)에 대해 AP(평균 정밀도)의 mean(평균)을 구한 것이다.
5. F1 Score
F1 Score는 Precision과 Recall의 조화평균 값이다.
'AI & BigData' 카테고리의 다른 글
[AI] Training Steps, Epoch (0) | 2023.08.21 |
---|---|
[MachineLearning] 선형 회귀 모델로 보험료 예측하기 (0) | 2023.08.18 |
[AI] CNN 이미지 분류 with PyTorch (0) | 2023.08.15 |
[AI] 가중치 규제(Regularization) (0) | 2023.08.11 |
[AI] 스테이블 디퓨전 AI 실사 모델 만들기 with Stable Diffusion WebUI (0) | 2023.07.27 |