- mAP - Mean Average Precision2023년 05월 03일
- Cat_Code
- 작성자
- 2023.05.03.:38
본 글은 네이버 부스트 캠프 AI Tech 기간동안
개인적으로 배운 내용들을 주단위로 정리한 글입니다
본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고
복습 중요도를 선정해서 정리하였습니다
✅ Week 9
1. Confusion Matrix - Precision, Recall
2. Intersection Over union - IoU
3. PR Curve
4. Average Precision - AP
5. Mean Average Precision - mAP
Intro
Computer Vision 분야에서 Obejct Detection은 Deep learning의 발전이후 급격하게 관심을 받고 발전한 분야이다
Object Detection과 기존 Classification과의 차이점은 input image에서 객체의 위치를 탐지하는 localization이 추가되었다는 것이다
즉,Classification보다 조금더 난이도 있는 task라고 할 수있다
이러한 Object Detection의 모델을 평가하는 기준에는 2가지의 분류가 있다
(1) 성능 (2) 속도
속도에는 FPS와 Flops가 있으며
오늘 자세히 살펴볼 성능 지표에는 mAP가 대표적이다
mAP를 이해하기위해서는
Confusion Matrix, PR Curve, AP 등 다양한 개념을 먼저 이해할 필요가 있다
그럼 순서대로 살펴보자
1. Confusion Matrix - 오차행렬
Confusion Matrix는 모델의 Prediction 성능을 평가하기 위해 Ground True와 Predict 값을 비교하는 표이다
자세히 살펴보면
TP : True Positive - 검출 되어야할 것이 검출 - 긍정으로 예측한 값 중 실제 긍정인 값
FN : False Negative - 검출 되어야할 것이 검출 되지 않음 - 부정으로 예측한 값 중 실제 긍정인 값
FP : False Positive - 검출 되지 말아야할 것이 검출 - 긍정으로 예측한 값 중 실제 부정인 값
TN : True Negative - 검출 되지 말아야할 것이 검출 되지 않음 - 부정으로 예측한 값 중 실제 부정인 값
이렇게 만들어진 Confusion Matrix를 활용해서
Precision과 Recall을 구할 수 있다
✅Precision - 정밀도
: 모델이 긍정이라고 예측한 값중 실제 긍정인 값의 비율 - 즉, 예측 기준으로 모델 평가
✅Recall - 재현도
: 실제 긍정인 값 중 모델이 긍정이라고 예측한 값의 비율 - 즉, 실제 값의 기준으로 모델 평가
이 두개의 값을 활용해서
F1 Score를 구할 수 있다
물론 오늘 살펴볼 내용과는 관계는 없지만 참고!!
2. Intersection Over union - IoU
IoU는 임계값을 정해서 실제 Ground True box가 예측한 bbox의 교집합이 입계값 이상인 경우 양성으로 하는 평가지표로
임계값이 0.5 인경우를 예로든다면 Ground True box와 bbox의 교집합이 0.5 이상인 경우 양성이된다
IoU를 활용하는 이유는 예측한 bbox의 위치를 평가하기 위해서 활용한다
위에서 배운 Confusion Matrix를 활용하면 bbox의 TP, FP, FN, TN을 구할 수 있고
이렇게 구한 것들로 정밀도와 재현도를 계산할 수 있다
하지만 이렇게 구한 Precision, Recall의 경우 동일 모델이라도 Confidence score 에 따라서 달라질 수 있다
즉, Threshold의 값에 따라서 변화 할 수 있는 것이다
위의 사진을 보면 확인할 수 있듯이 Precision과 Recall이 confidence에 따라서 값이 변화하는 것을 확인할 수 있는데
두 값의 관계가 Trade-off 관계에 있다는 것도 확인 할 수 있다
3. PR Curve
이렇게 구한 Precsion과 Rcall 그리고 confidence를 활용해서 PR Curve를 그릴 수 있다
PR 곡선은 Precsion과 Rcall의 관계를 그래프로 표현한 것으로
Confidence 값의 변화에 따라서 변화하는 Precsion과 Recall의 관계를 표현할 수 있다
이러한 그래프를 통해서 모델의 전체적인 성능을 평가하는 지표에 활용한다
위 그래프는 confidence score를 내림차순으로 정렬하여서 그린 PR 곡선으로
이를 활용해서 AP를 구할 수 있다
4. Average Precision - AP
이처럼 PR 곡선이 있다고 가정해보자
우리가 구하고 싶은 것은 AP - Average Precision이다
간단하게 구할 수 있다
앞에서 살펴본 그래프를 단조적 감소 형태로 변환 시켜준다 - 위 이미지
이렇게 그린 그래프로
선아래의 면적을 구하면 AP의 값이 된다
위의 그래프를 예시로 해서
계산을 해보면
: 1 * 0.33 + 0.86 * (0.4-0.33) + 0.77 * (0.46 - 0.4) = 0.4364이다
5. Mean Average Precision - mAP
AP를 이해했다면 mAP는 더욱 간단해진다
실제로 모델이 예측을 할때 Class 하나만 예측하는 경우는 거의 없을 것이다
위의 과정까지는 하나의 Class에 대한 AP를 구하는 방법이었기 때문에
간단하게 각 클래스의 AP를 구해주고
이를 평균을 내면 mAP가 된다
즉, 모든 Class AP의 평균을 구한 것이 mAP이다
✅pyothon 으로 구현한 mAP
Python으로 구현한 mAP(mean Average Precision)
이번 포스팅에서는 Object Detection 모델의 성능 평가 지표인 mAP(mean Average Precision)을 python으로 구현하는 과정을 살펴보도록 하겠습니다. 구현 과정을 살펴보면 Kaggle과 같은 경진대회 참여시, 모델
herbwood.tistory.com
'[네이버 부스트캠프] > ⭐주간 학습 정리' 카테고리의 다른 글
Neck (0) 2023.05.08 2 Stage Detectors (0) 2023.05.03 [부스트 캠프]Week 8 회고 및 Week 9 목표정리 (0) 2023.05.03 Docker (0) 2023.04.27 파이썬 버전 관리 (0) 2023.04.25 다음글이전글이전 글이 없습니다.댓글