콘텐츠로 이동
Search

Precision and recall

이진 분류 기법(binary classification)을 사용하는 패턴 인식과 정보 검색 분야에서, 정밀도는 검색된 결과들 중 관련 있는 것으로 분류된 결과물의 비율이고, 재현율은 관련 있는 것으로 분류된 항목들 중 실제 검색된 항목들의 비율이다. 따라서 정밀도와 재현율 모두 관련도(Relevance)의 측정 기준 및 지식을 토대로 하고 있다.

mAP (Mean Average Precision)

mAP는 이진 분류기의 성능 지표로 사용되는 정밀도와 재현율을 이용한 지표이며 객체 검출 알고리즘의 성능을 평가하는데 널리 사용합니다.

  • 정밀도(Precision)는 양성으로 판정된 것 중 실제로 참인 것의 비율을 나타냅니다. ‘참 양성 / (참 양성 + 거짓 양성)’으로 정의됩니다.
  • 재현율(Recall)은 실제 값이 참인 것 중 판정이 양성인 것의 비율을 나타냅니다. ‘참 양성 / (참 양성 + 거짓 음성)’으로 정의됩니다.

$$ \text{Precision} = \frac{TP}{TP + FP}, \qquad \text{Recall} = \frac{TP}{TP + FN} $$

재현율은 민감도(sensitivity)라는 이름으로도 불립니다.

검출 결과의 참/거짓 판정

객체 검출에서 출력되는 경계 박스에는 위치와 신뢰도(confidence score)만 있을 뿐, 그 박스가 참인지 거짓인지는 출력되지 않습니다. 이 경계 박스를 실제로 참으로 볼지 거짓으로 볼지는 실제 위치(ground truth)와 검출된 객체 상자 간의 IoU 값이 일정 이상인지를 평가하여 이루어집니다.

$$ \text{IoU}(B_p, B_{gt}) = \frac{|B_p \cap B_{gt}|}{|B_p \cup B_{gt}|} \ge \tau $$

  • \(B_p\): 검출된 경계 박스, \(B_{gt}\): 실제 위치(ground truth) 박스
  • \(\tau\): IoU 임계값. PASCAL VOC는 0.5를 사용합니다.
  • 신뢰도가 높은 검출부터 차례로 매칭하며, 하나의 실제 객체에는 하나의 검출만 TP로 인정됩니다. 이미 매칭된 객체를 중복 검출한 박스는 FP로 처리합니다.

AP (Average Precision)

딥러닝 객체 검출 알고리즘에서는 검출된 상자가 참일 가능성을 나타내는 신뢰도(confidence score)가 같이 출력됩니다. 신뢰도가 얼마 이상일 때 양성으로 판정할지의 기준선인 ‘임계값’을 몇으로 정하는지에 따라서 양성으로 판정되는 상자가 달라지기 때문에 정밀도와 재현율도 모두 달라지게 됩니다. 임계값을 높은 값에서 낮은 값으로 바꿔가면서 실제로 참인 객체가 새로 검출(TP)될 때마다 정밀도와 재현율을 모두 측정하면, 검출된 참 객체 수만큼의 정밀도, 재현율 쌍이 생기게 됩니다. 여기서 정밀도(Precision)만을 골라 내어 평균을 낸 것이 평균 정밀도(AP; average precision)입니다. 끝까지 검출되지 못한 실제 객체는 정밀도를 0으로 보고 평균에 포함합니다.

검출 결과 \(n\)개를 신뢰도가 높은 순서로 정렬하고, \(k\)번째 검출이 TP이면 \(\text{rel}(k) = 1\), FP이면 \(\text{rel}(k) = 0\)으로 둡니다. 임계값을 \(k\)번째 검출의 신뢰도로 정했을 때의 정밀도와 재현율은 다음과 같습니다.

$$ P(k) = \frac{1}{k} \sum_{i=1}^{k} \text{rel}(i), \qquad R(k) = \frac{1}{N_{gt}} \sum_{i=1}^{k} \text{rel}(i) $$

AP는 TP가 나올 때마다(\(\text{rel}(k) = 1\)) 측정한 정밀도의 평균입니다.

$$ \text{AP} = \frac{1}{N_{gt}} \sum_{k=1}^{n} P(k)\, \text{rel}(k) $$

  • \(N_{gt}\): 실제 객체(ground truth)의 수
  • 분모가 검출된 TP 수가 아니라 \(N_{gt}\)이므로, 끝까지 검출되지 못한 객체는 정밀도 0으로 평균에 들어갑니다.

\(\Delta R(k) = R(k) - R(k-1) = \text{rel}(k) / N_{gt}\) 이므로, AP는 정밀도-재현율 곡선(PR curve) 아래의 면적을 구한 것과 같습니다.

$$ \text{AP} = \sum_{k=1}^{n} P(k)\, \Delta R(k) \approx \int_{0}^{1} p(r)\, dr $$

보간(interpolation) AP

PR 곡선은 지그재그 모양으로 흔들리기 때문에, 벤치마크에서는 보통 각 재현율 이상에서의 최대 정밀도로 곡선을 단조 감소하게 만든 뒤 AP를 계산합니다.

$$ p_{\text{interp}}(r) = \max_{\tilde{r} \ge r} p(\tilde{r}) $$

11-point 보간 (PASCAL VOC 2007): 재현율 0, 0.1, …, 1.0의 11개 지점에서 보간 정밀도를 평균냅니다.

$$ \text{AP}{11} = \frac{1}{11} \sum{r \in {0,\, 0.1,\, \dots,\, 1.0}} p_{\text{interp}}(r) $$

All-point 보간 (PASCAL VOC 2010 이후): 재현율이 바뀌는 모든 지점 \(r_k\) (\(r_0 = 0\))에서 보간 정밀도로 면적을 구합니다.

$$ \text{AP} = \sum_{k} (r_{k+1} - r_k)\, p_{\text{interp}}(r_{k+1}) $$

COCO는 재현율 0, 0.01, …, 1.0의 101개 지점을 사용합니다.

mAP

mAP는 평균 정밀도를 다시 한번 더 평균 낸 값입니다. 분류기가 검출 가능한 각 분류 별로 정해진 테스트셋에서 평균 정밀도를 구하고 평균 정밀도를 다시 한번 더 평균 내면 mAP 값의 결과가 나오게 됩니다.

$$ \text{mAP} = \frac{1}{|C|} \sum_{c \in C} \text{AP}_c $$

  • \(C\): 클래스(분류)의 집합
  • \(\text{AP}_c\): 클래스 \(c\)의 AP

AP 식을 대입하여 한 번에 쓰면 다음과 같습니다.

$$ \text{mAP} = \frac{1}{|C|} \sum_{c \in C} \frac{1}{N_{gt}^{(c)}} \sum_{k=1}^{n_c} P_c(k)\, \text{rel}_c(k) $$

IoU 임계값 \(\tau\)에 따라 결과가 달라지므로 보통 함께 표기합니다. 예를 들어 mAP@0.5는 \(\tau = 0.5\)일 때의 mAP입니다. COCO는 \(\tau\)를 0.50부터 0.95까지 0.05 간격으로 바꿔 가며 구한 10개의 mAP를 다시 평균내며, 이를 mAP@[.5:.95]로 표기합니다. (COCO 문서에서는 이 값을 그냥 AP라고 부릅니다.)

$$ \text{mAP}{0.5:0.95} = \frac{1}{10} \sum{\tau \in {0.50,\, 0.55,\, \dots,\, 0.95}} \text{mAP}_{\tau} $$

정보 검색 분야

정보 검색 분야에서, 정밀도와 재현율은 검색된 문서(retrieved documents; 웹 검색 엔진에 의해 생성된 문서들) 및 관련 있는 문서(relevant documents; 웹 문서들 중 찾고자 하는 주제와 실제로 관련 있는 것들)에 의해 정의된다.

정밀도

정보 검색 분야에서 정밀도(precision)는 검색된 문서들 중 관련 있는 문서들의 비율이다.

$$ \text{precision}=\frac{|{\text{relevant documents}}\cap{\text{retrieved documents}}|}{|{\text{retrieved documents}}|} $$

재현율

정보 검색 분야에서 재현율(recall)은 관련 있는 문서들 중 실제로 검색된 문서들의 비율이다.

$$ \text{recall}=\frac{|{\text{relevant documents}}\cap{\text{retrieved documents}}|}{|{\text{relevant documents}}|} $$

오차 행렬 (Confusion matrix) 표현

실제 정답

Positive

Negative

실험 결과

Positive

True Positive

False Positive</br>(Type I error)

Negative

False Negative</br>(Type II error)

True Negative

통계적 분류 분야에서 정밀도(precision)와 재현율(recall)은 다음과 같이 정의된다:

\(\text{Precision}=\frac{tp}{tp+fp} \,\)
\(\text{Recall}=\frac{tp}{tp+fn} \,\)

여기서 재현율은 Sensitivity로도 불리며, 정밀도는 Positive Predictive Value(PPV)로 불리기도 한다; 통계적 분류 분야에서 사용되는 다른 기준으로 True Negative Rate(Specificity)와 정확도(Accuracy) 등이 있다.

\(\text{True negative rate}=\frac{tn}{tn+fp} \,\)
\(\text{Accuracy}=\frac{tp+tn}{tp+tn+fp+fn} \,\)

APH (Average Precision weighted by Heading)

APH는 Waymo Open Dataset 벤치마크에서 도입된 3D 객체 검출(3D Object Detection) 평가 지표로, 기존 AP에 객체의 진행 방향(heading/yaw) 정확도를 가중치로 반영한 것이다. 자율주행 맥락에서 차량이나 보행자가 어느 방향을 향하고 있는지가 경로 예측에 결정적이기 때문에 도입되었다.

핵심 아이디어

일반 AP는 박스의 위치와 크기만 평가하지만, 자율주행에서는 같은 위치에 있어도 진행 방향을 잘못 추정하면 경로 예측이 완전히 틀어진다. APH는 이 한계를 보완하기 위해 각 True Positive에 heading 오차에 따른 가중치를 곱한다.

계산 방식

각 True Positive에 대해 heading 오차 \(\Delta\theta\)에 따른 가중치:

\(w = 1 - \frac{\min(|\Delta\theta|,\ 2\pi - |\Delta\theta|)}{\pi}\)

  • heading이 정확히 일치 (\(\Delta\theta = 0\)) → 가중치 1 (AP와 동일)
  • heading이 90° 차이 → 가중치 0.5
  • heading이 180° 반대 → 가중치 0 (TP로 카운트되지 않음)

따라서 다음이 항상 성립한다:

\(\text{APH} \leq \text{AP}\)

둘의 차이(AP − APH gap)가 클수록 모델의 방향 추정이 부정확하다는 의미이다.

Waymo 평가 난이도

Waymo Open Dataset은 두 가지 LEVEL로 평가한다:

난이도

조건

설명

LEVEL_1

박스 내 LiDAR 포인트 ≥ 5개

쉬움 (근거리, 잘 보이는 객체)

LEVEL_2

박스 내 LiDAR 포인트 ≥ 1개

어려움 (원거리, 가림 포함)

평가 결과 예시

# Waymo evaluation result example / Waymo 평가 결과 예시
# LEVEL_2 vehicle detection
{
    "AP":  0.752,   # Position only / 위치 정확도만
    "APH": 0.741,   # With heading / 방향까지 고려
    # The smaller the AP-APH gap, the more accurate heading estimation
    # AP-APH 차이가 작을수록 heading 추정이 정확함
}

See also

Favorite site

References


  1. Darkpgmr.tistory.com_-_Understanding_precision_and_recall.pdf ↩

  2. Tykimos.github.io_-_Evaluation_Talk.pdf ↩

lastmod 2026-10-15created 2026-10-15author Zer0 sitemap