1. mAP가 무엇인지
mAP는 평균 정밀도(Average Precision, AP)의 평균을 의미합니다.
여기서 정밀도(Precision)와 재현율(Recall)을 기반으로 AP를 구하고, 이를 클래스별로 평균내어 최종적으로 mAP를 계산합니다.
- Precision(정밀도) : 모델이 예측한 객체가 실제로 정답일 확률
- Recall(재현율) : 실제 객체 중에서 모델이 정확히 탐지한 비율
AP(Average Precision)는 Precision-Recall 곡선을 기반으로 특정 클래스에서 모델이 얼마나 정확한지를 수치화한 값이며, mAP는 이를 모든 클래스에 대해 평균 낸 값입니다.
2. 왜 mAP를 사용하는지
객체 탐지에서는 단순히 정확도(Accuracy)만으로 모델의 성능을 평가하기 어렵습니다.
그 이유는 다음과 같습니다.
1) 객체가 여러 개 존재할 수 있음
- 이미지 분류(Classification) 문제와 달리 객체 탐지에서는 여러 개의 객체를 찾는 것이 목표입니다.
2) 정확한 위치 예측이 중요함
- 객체의 좌표(Bounding Box)가 정확해야 하므로, 단순한 맞춘 개수로는 평가할 수 없습니다.
3) 모델의 균형적인 성능 평가 필요
- Precision이 높더라도 Recall이 낮으면 좋은 모델이 아닙니다.
- Precision-Recall 균형을 반영하는 AP, 그리고 전체 클래스의 평균인 mAP가 필요합니다.
3. mAP의 장점
✅ 정확한 평가 가능 : 모델이 객체를 얼마나 정확히 탐지했는지를 정량적으로 평가할 수 있음.
✅ 다양한 IoU 기준 적용 가능 : 다양한 IoU 값에서 모델의 성능을 확인 가능.
✅ Precision-Recall 균형 반영 : Precision과 Recall의 조화를 평가하여 모델이 한쪽으로 치우치지 않도록 함.
4. mAP가 사용되는 곳
- YOLOv8 등 객체 탐지 모델의 성능 평가
- 자율 주행 자동차 : 차량, 보행자 탐지 정확도 평가
- 의료 영상 분석 : 종양이나 이상 부위 탐지 정확도 분석
- 스마트 팜 : 작물 상태 분석 및 병해충 탐지 성능 평가
5. mAP를 계산하는 과정
mAP는 IoU(Intersection over Union) 임계값을 기준으로 TP(참 양성)를 판단하여 계산됩니다.
1) IoU (Intersection over Union)
- 예측한 바운딩 박스와 실제 정답 바운딩 박스가 얼마나 겹치는지를 나타냄.
- 공식
- IoU가 특정 임계값(예 : 0.5) 이상이면 TP로 간주함.
2) Precision-Recall 곡선 생성
- 여러 IoU 임계값을 설정하고 Precision과 Recall 값을 계산하여 곡선을 그림.
- 곡선 아래 면적을 적분하여 AP(Average Precision)를 얻음.
3) mAP 계산
- 클래스별 AP 값을 평균 내어 최종적으로 mAP를 얻음
- 일반적으로 사용하는 mAP 계산 방식
- mAP@0.5 : IoU 0.5 이상을 TP로 간주하여 계산한 mAP
- mAP@0.5-0.95 : IoU 0.5~0.95까지 0.05 간격으로 평균낸 mAP
6. mAP를 향상시키는 방법
mAP는 모델의 성능을 평가하는 핵심 지표이기 때문에, 이를 최적화하면 객체 탐지 모델의 성능을 크게 개선할 수 있습니다. 아래는 mAP를 향상시키는 주요 기법입니다.
1) 데이터 증강(Augmentation) 기법 활용
- 랜덤 크롭(Random Cropping) : 이미지 일부만 잘라서 학습하면 모델이 작은 객체도 감지할 수 있음
- 좌우 반전, 회전 : 다양한 각도에서 객체를 감지하는 데 도움을 줌.
- 색상 변화 : 밝기, 대비, 색조 등을 조정하면 모델이 다양한 조명 환경에서 적응할 수 있음.
2) 높은 해상도의 입력 이미지 사용
- 작은 객체를 더 잘 감지하려면 모델의 입력 이미지 해상도를 높이는 것이 효과적.
- YOLOv8에서는 imgsz 파라미터를 조절하여 해상도를 변경 가능.
- 단, 해상도가 너무 높으면 연산량이 증가하여 속도가 느려질 수 있음.
3) 적절한 앵커 박스 설정
- Faster R-CNN이나 YOLO 같은 모델은 기본적인 앵커 박스(Anchor Box) 크기를 설정하는데, 데이터셋에 맞지 않으면 mAP가 낮아질 수 있음.
- YOLO에서는 autoanchor 기능을 사용하면 최적의 앵커 박스를 자동으로 설정 가능.
4) Loss Function 튜닝
- 객체 탐지 모델의 손실 함수(Loss Function)를 적절히 조정하면 학습이 더욱 최적화됨.
- YOLOv8에서는 CIoU Loss(Complete IoU)를 사용하여 박스 좌표 최적화를 수행함.
- 일반적인 Binary Cross-Entropy Loss 대신 Focal Loss를 사용하면 Hard Example(어려운 예제) 학습에 더 효과적임.
5) 학습률 스케줄링(Learning Rate Scheduling) 적용
- 학습 초반에는 큰 학습률을 사용하여 빠르게 수렴하고, 후반부에는 작은 학습률을 사용하여 최적값을 찾도록 해야 함.
- YOLOv8에서는 Cosine Annealing 방식으로 학습률을 조절할 수 있음.
6) IoU 임계값 조정
- 기본적으로 IoU 임계값을 0.5로 설정하지만, 이를 높이면 더 엄격한 평가가 가능함.
- mAP@[0.5:0.95]를 기준으로 성능을 평가하는 것이 일반적이며,
IoU를 0.75 이상으로 설정하면 더욱 정밀한 모델을 만들 수 있음.
mAP는 객체 탐지 모델의 성능을 평가하는 핵심 지표로, Precision-Recall 곡선과 IoU 기준을 활용하여 모델이 얼마나 정확하게 객체를 탐지하는지를 정량적으로 나타내는 값입니다.
특히 YOLOv8에서 모델의 성능을 분석할 때 mAP@0.5와 mAP@0.5-0.95를 주로 활용합니다.