티스토리 뷰
객체 탐지 평가 지표: Precision, Recall, mAP, F1 Score 완전 이해하기
Vagabund.Gni 2025. 2. 18. 17:21목차
지난 글에서 컴퓨터 비전과 객체 인식에 대한 입문의 입문.. 정도 되는 개념을 알아보았다.
하지만 들을땐 그런가 보다 하고 들었는데 생각할수록 각종 지표의 개념과 의미가 헷갈려서..
글을 하나 따로 작성해 보았다.
제발 내가 이 글을 적으며 이해에 도달할 수 있기를.
서론
객체 탐지(Object Detection) 모델의 성능을 평가할 때 자주 등장하는 지표가 있다.
바로 프리시전(Precision), 리콜(Recall), mAP(Mean Average Precision), F1 Score이다.
이 지표들은 이론적으로 수식만 외우면 되는 것처럼 보이지만, 실제 상황에 적용해보려고 하면 막막할 때가 많다.
그래서 이번 글에서는 간단한 예제를 들어 최대한 쉽게 설명해보려고 한다.
기본 개념: TP, FP, FN, TN
지표를 설명하기 전에 반드시 알아야 할 개념이 있다.
바로 TP(True Positive), FP(False Positive), FN(False Negative), TN(True Negative)이다.

이것이 제법 헷갈리는데, 각 용어의 정확한 뜻과 의미는 다음과 같다.
용어 | 의미 |
TP(True Positive, 참 양성) | 객체가 있는데 모델도 잘 찾았다. |
FP(False Positive, 거짓 양성) | 객체가 없는데 모델이 있다고 착각했다. |
FN(False Negative, 거짓 음성) | 객체가 있는데 모델이 놓쳤다. |
TN(True Negative, 참 음성) | 객체가 없고 모델도 없다고 잘 판단했다. |
객체 탐지에서는 TN은 거의 의미가 없다.
왜냐하면 “아무것도 없는 곳에서 아무것도 검출하지 않았다”는 건 그냥 무시하면 되기 때문이다.
따라서 주로 TP, FP, FN만 사용한다.
예시: 고양이

예를 들어, 고양이를 탐지하는 AI 모델을 만들었다고 해보자.
상황 설정
- 이미지 1: 고양이가 1마리 있다.
- 이미지 2: 고양이가 2마리 있다.
- 이미지 3: 고양이가 없다.
- 이미지 4: 고양이가 1마리 있다.
모델이 아래와 같이 예측했다고 해보자.
이미지 | 실제 고양이 수 | 모델이 탐지한 고양이 수 |
이미지 1 | 1마리 | 1마리(정확히 맞춤) → TP +1 |
이미지 2 | 2마리 | 1마리만 탐지(1마리 놓침) → TP +1, FN +1 |
이미지 3 | 0마리 | 1마리 있다고 착각(없는데 찾음) → FP +1 |
이미지 4 | 1마리 | 0마리(놓침) → FN +1 |
정리해 보면
- TP: 2개 (정상적으로 찾음)
→ 이미지 1의 1마리, 이미지 2의 1마리 - FP: 1개 (없는 고양이를 찾음)
→ 이미지 3 - FN: 2개 (고양이를 놓침)
→ 이미지 2에서 1마리 놓침, 이미지 4에서 1마리 놓침
프리시전(Precision): 내가 찾은 것 중에 진짜가 몇 개냐?
프리시전(Precision)은 내가 탐지했다고 한 것 중에서 실제로 맞는 것(TP)의 비율이다.

- TP: 내가 찾은 것 중 진짜 맞은 것
- FP: 내가 찾았는데 가짜였던 것
우리 예제에 적용해 보자.
- TP = 2
- FP = 1

모델이 "고양이가 있다!"라고 한 경우 중 67%만 실제로 고양이가 있었다는 의미이다.
즉, 정확하게 찾아내는 능력을 의미한다.
리콜(Recall): 실제 강아지 중 내가 몇 개 찾았냐?
리콜(Recall)은 실제로 존재하는 것(TP + FN) 중에서 내가 맞춘 것(TP)의 비율이다.

- TP: 실제 고양이를 잘 찾은 것
- FN: 실제 고양이를 못 찾은 것
역시 우리 예제에 적용해 보자.
- TP = 2
- FN = 2

실제 강아지가 총 4마리 있었는데, 그중에서 50%만 찾아냈다는 뜻이다.
즉, 놓치지 않고 다 찾아내는 능력을 의미한다.
F1 Score: 프리시전과 리콜의 균형
F1 Score는 프리시전과 리콜의 조화를 본 값이다.
프리시전만 높으면 FP(거짓 경보)가 적지만, 놓치는 것(FN)이 많을 수 있다.
리콜만 높으면 FN(놓침)은 적지만, FP(오경보)가 많을 수 있다.
F1 Score는 Precision과 Recall이 균형 있게 좋은지 판단한다.

계속해서 우리 예제에 적용해 보자.

프리시전과 리콜의 조화평균으로 본 점수가 0.57이라는 뜻이다.
프리시전과 리콜 중 하나라도 너무 낮으면 F1 Score도 낮아진다.
mAP(Mean Average Precision): IoU 개념 추가
mAP는 조금 더 복잡하다.
IoU(Intersection over Union)라는 개념이 추가된다.
IoU란?
모델이 그린 박스와 실제 정답 박스가 겹치는 정도이다.


mAP란?
여러 임계값(0.5, 0.55, …, 0.95)에서의 AP(Average Precision)를 평균 낸 것이다.
- AP는 Precision-Recall 곡선을 그리고 그 아래 면적(Area Under Curve)을 구한 값이다.
- mAP는 여러 클래스(예: 강아지, 고양이, 사람) 각각에 대해 AP를 구하고 평균을 낸 것이다.


즉, mAP는 모델이 여러 객체를 얼마나 정확하게 탐지하는지 종합적으로 평가하는 지표이다.
1에 가까울수록 좋다.
핵심 요약
지표 | 의미 | 수식 | 높으면 좋은 이유 |
Precision | 내가 찾은 것 중 진짜 | TP / (TP + FP) | 잘못 탐지 안 함 |
Recall | 실제 존재하는 것 중 내가 찾은 것 | TP / (TP + FN) | 놓치지 않음 |
F1 Score | Precision과 Recall의 균형 | 2 * (Precision * Recall) / (Precision + Recall) | 균형 잡힘 |
mAP | 모든 클래스에서 평균적인 정확도 | IoU + Precision-Recall 곡선 이용 | 전체 탐지 성능 |
객체 탐지 평가 지표는 단순한 수식이 아니라 TP, FP, FN 상황을 머릿속에 그려보면서 이해하는 것이 중요하다.
결국 중요한 건 Precision과 Recall을 적절히 조화시키는 것이다.
특히 mAP는 공인 대회나 논문에서도 가장 많이 쓰는 종합적인 지표라는 점을 기억하자.
'ML+DL > Vision AI' 카테고리의 다른 글
활성화 함수와는 다르다! 활성화 함수와는! 소프트맥스(Softmax)함수 (0) | 2025.03.14 |
---|---|
CNN에서 활성화 함수가 여러번 적용되는 이유 (0) | 2025.03.11 |
비전 인공지능에서 백본(Backbone)이란? (0) | 2025.02.21 |
NMS(Non-Maximum Suppression) 알고리즘 이해하기 (0) | 2025.02.18 |
컴퓨터 비전과 객체 인식: YOLO 모델과 평가 지표에 대한 이해 (0) | 2025.01.21 |
CNN의 한계와 어텐션 기법, 그리고 비전 트랜스포머 모델 (0) | 2025.01.15 |
- Total
- Today
- Yesterday
- 알고리즘
- 야경
- a6000
- 파이썬
- 스프링
- Backjoon
- 남미
- 면접 준비
- 맛집
- spring
- 자바
- 여행
- 유럽
- 동적계획법
- 리스트
- BOJ
- 기술면접
- Python
- RX100M5
- java
- 세모
- 스트림
- Algorithm
- 지지
- 세계여행
- 유럽여행
- 중남미
- 칼이사
- 세계일주
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |