안녕하세요!
YOLO 결과 화면의 숫자가 낯설게 느껴지시나요?
상자와 점수가 무엇을 뜻하는지 알면 학습이 훨씬 쉬워집니다.
이번 글에서는 객체 탐지 평가의 흐름을 차례로 살펴봅니다.
IoU부터 정밀도, 재현율, mAP, 비최대 억제까지 연결합니다.
수식보다 간단한 탐지 상황을 중심으로 설명하겠습니다.
각 지표가 왜 필요한지도 함께 짚어보겠습니다.
먼저 객체 탐지 결과의 구조부터 보기
이미지 분류는 사진 전체에 하나의 이름을 붙입니다.
반면 객체 탐지는 물체의 종류와 위치를 함께 찾습니다.
YOLO는 보통 여러 개의 경계 상자를 예측합니다.
경계 상자는 물체를 둘러싼 직사각형 영역입니다.
각 예측에는 상자 좌표와 클래스 정보가 들어갑니다.
예측을 얼마나 확신하는지 나타내는 점수도 포함됩니다.
다만 최종 점수의 계산 방식은 구현마다 다를 수 있습니다.
객체성 점수와 클래스 확률을 조합하는 경우가 흔합니다.
정답 데이터에도 물체 종류와 실제 상자가 기록됩니다.
이 실제 상자를 정답 상자라고 부르겠습니다.
이 글에서 사용할 간단한 예시
한 장의 사진에 고양이 한 마리와 강아지 한 마리가 있습니다.
따라서 정답 물체는 모두 두 개입니다.
모델은 고양이 상자 A와 B를 겹쳐서 내놓았습니다.
강아지에는 상자 C 하나를 예측했습니다.
A의 점수는 0.92, B는 0.80이라고 가정하겠습니다.
C의 점수는 0.60이라고 두겠습니다.
이제 세 상자가 정답에 얼마나 잘 맞는지 판단해야 합니다.
그 출발점이 바로 IoU입니다.
1단계: IoU로 상자가 얼마나 겹치는지 확인하기
IoU는 Intersection over Union의 줄임말입니다.
예측 상자와 정답 상자의 겹침 정도를 나타냅니다.
두 상자가 겹친 면적을 먼저 구합니다.
그 값을 두 상자를 합친 전체 면적으로 나눕니다.
IoU = 겹친 영역의 넓이 ÷ 합친 영역의 넓이입니다.
값은 0부터 1 사이에 놓입니다.

상자가 전혀 만나지 않으면 IoU는 0입니다.
두 상자가 완전히 같으면 IoU는 1입니다.
예측 상자가 물체보다 지나치게 커도 값이 낮아집니다.
위치가 맞아도 크기가 부정확하면 불이익을 받는 셈입니다.
예시에서 A의 IoU가 0.78이라고 가정해 보겠습니다.
B의 IoU는 0.67, C의 IoU는 0.42라고 하겠습니다.
평가 기준을 IoU 0.50으로 정하면 A와 B는 통과합니다.
반면 C는 위치가 부족하게 맞아서 통과하지 못합니다.
IoU 기준값은 합격선을 뜻한다
IoU가 높다는 이유만으로 바로 정답 처리되지는 않습니다.
예측 클래스도 실제 클래스와 일치해야 합니다.
보통 일정 기준 이상 겹쳐야 올바른 탐지로 인정합니다.
이 기준을 IoU 임계값이라고 부릅니다.
임계값이 0.50이면 절반 수준의 겹침을 요구합니다.
0.75로 올리면 위치가 더 정확해야 통과합니다.
단, IoU 0.50이 모든 작업의 절대 기준은 아닙니다.
평가 규칙과 데이터 특성에 따라 기준이 달라집니다.
2단계: 정밀도와 재현율로 탐지 성향 읽기
IoU로 예측과 정답의 겹침을 확인했습니다.
이제 각 예측을 정답과 오답으로 나눌 수 있습니다.
올바르게 찾은 예측은 TP, 즉 참 양성입니다.
물체라고 했지만 틀린 예측은 FP, 즉 거짓 양성입니다.
실제 물체를 놓친 경우는 FN, 즉 거짓 음성입니다.
객체 탐지 평가는 주로 이 세 값을 사용합니다.
중복 상자는 모두 정답이 될 수 없다
A와 B는 모두 고양이 정답 상자와 잘 겹칩니다.
하지만 실제 고양이는 한 마리뿐입니다.
일반적인 평가에서는 하나의 정답을 한 번만 연결합니다.
보통 점수가 높은 A가 고양이 정답과 먼저 연결됩니다.
따라서 A는 TP가 되고 중복 예측 B는 FP가 됩니다.
IoU가 기준을 넘었어도 두 번째 상자는 오답입니다.
강아지 상자 C는 IoU가 0.42라서 FP입니다.
찾지 못한 실제 강아지는 FN으로 남습니다.
이 예시의 결과는 TP 1개, FP 2개, FN 1개입니다.
이 세 숫자로 Precision과 Recall을 계산합니다.
정밀도는 예측의 신뢰성을 본다
정밀도는 영어로 Precision입니다.
모델이 찾았다고 한 것 중 실제 정답의 비율입니다.
정밀도 = TP ÷ (TP + FP)로 계산합니다.
예시에서는 1 ÷ 3이므로 약 0.33입니다.
정밀도가 높으면 거짓 경보가 적다는 뜻입니다.
즉, 모델이 내놓은 결과를 비교적 믿기 쉽습니다.
불량품을 정상인데도 불량으로 판정하면 비용이 생깁니다.
이런 상황에서는 정밀도가 특히 중요할 수 있습니다.
재현율은 실제 물체를 얼마나 찾았는지 본다
재현율은 영어로 Recall입니다.
실제 물체 중 모델이 찾아낸 비율을 뜻합니다.
재현율 = TP ÷ (TP + FN)으로 계산합니다.
예시에서는 1 ÷ 2이므로 0.50입니다.
재현율이 높으면 놓친 물체가 적습니다.
대신 무리하게 많이 찾으면 FP가 늘 수 있습니다.
안전 장비 미착용자를 찾는 상황을 떠올려 보세요.
놓침이 위험하다면 높은 재현율이 더 중요할 수 있습니다.
신뢰도 임계값이 두 지표를 움직인다
모델은 각 예측에 신뢰도 점수를 붙입니다.
우리는 일정 점수 이상의 상자만 결과로 사용할 수 있습니다.
신뢰도 기준을 높이면 애매한 상자가 많이 사라집니다.
FP가 줄어 정밀도가 오를 가능성이 큽니다.
하지만 맞는 상자까지 제거되면 FN이 늘어납니다.
그 결과 재현율은 낮아질 수 있습니다.
반대로 기준을 낮추면 더 많은 물체를 후보로 잡습니다.
재현율은 오를 수 있지만 오탐도 함께 늘어납니다.
그래서 단 하나의 신뢰도 기준만 보고 평가하면 부족합니다.
여러 기준에서 Precision/Recall 변화를 살펴봐야 합니다.
3단계: mAP로 전체 탐지 성능 요약하기
신뢰도 기준마다 정밀도와 재현율은 달라집니다.
이 변화를 한눈에 나타낸 것이 PR 곡선입니다.
PR 곡선의 가로축에는 재현율을 놓습니다.
세로축에는 정밀도를 놓습니다.
좋은 모델은 많은 물체를 찾는 동안 오탐도 적습니다.
따라서 곡선이 오른쪽 위에 가까울수록 좋습니다.
AP는 클래스 하나의 성능을 요약한다
AP는 Average Precision의 줄임말입니다.
쉽게 말해 PR 곡선 아래의 면적을 요약한 값입니다.
고양이 클래스의 예측을 점수순으로 정렬해 봅니다.
상자를 하나씩 포함하며 정밀도와 재현율을 계산합니다.
높은 점수의 정답 상자가 먼저 나오면 AP가 좋아집니다.
높은 점수의 오답이 앞에 많으면 AP가 낮아집니다.
따라서 AP는 단순한 정답 개수만 보지 않습니다.
예측 점수의 순서가 적절한지도 함께 반영합니다.
곡선 면적을 구하는 세부 방식은 평가 규약마다 다릅니다.
결과를 비교할 때 같은 평가 도구를 써야 하는 이유입니다.
mAP는 여러 클래스의 AP를 평균낸다
mAP는 mean Average Precision의 줄임말입니다.
여러 클래스에서 구한 AP의 평균을 의미합니다.
고양이 AP가 0.80이고 강아지 AP가 0.60이라고 해봅시다.
단순 평균 mAP는 0.70입니다.
클래스별 데이터 수가 달라도 보통 AP를 같은 비중으로 평균냅니다.
그래서 드문 클래스의 낮은 성능도 결과에 드러납니다.
mAP 숫자 옆의 IoU 조건을 확인하기
mAP라고 적힌 숫자가 항상 같은 기준은 아닙니다.
특히 사용한 IoU 임계값을 확인해야 합니다.
mAP@0.5는 IoU 0.50에서 AP를 계산합니다.
상자의 위치가 어느 정도 맞으면 정답으로 인정합니다.
mAP@0.5:0.95는 여러 IoU 기준을 사용합니다.
일반적으로 0.50부터 0.95까지 0.05 간격으로 평가합니다.
이 방식은 느슨한 기준과 엄격한 기준을 함께 봅니다.
상자 위치가 정교하지 않으면 높은 점수를 받기 어렵습니다.
따라서 서로 다른 표기의 mAP를 바로 비교하면 안 됩니다.
데이터셋과 평가 코드도 같은지 확인해야 합니다.
4단계: 비최대 억제로 중복 상자 정리하기
YOLO는 한 물체 주변에 여러 후보 상자를 만들 수 있습니다.
그대로 두면 같은 물체가 여러 번 검출된 것처럼 보입니다.
이를 정리하는 대표 방법이 비최대 억제입니다.
영어 이름은 Non-Maximum Suppression, 줄여서 NMS입니다.
여기서 최대는 가장 높은 신뢰도 점수를 뜻합니다.
억제는 비슷한 나머지 상자를 제거한다는 의미입니다.
NMS가 작동하는 순서
첫째, 후보 상자를 신뢰도 점수가 높은 순서로 정렬합니다.
예시에서는 0.92인 A가 0.80인 B보다 먼저입니다.
둘째, 가장 높은 A를 최종 결과로 남깁니다.
그다음 A와 다른 후보 사이의 IoU를 계산합니다.
셋째, NMS 임계값보다 많이 겹치는 후보를 억제합니다.
A와 B의 겹침이 크다면 B는 삭제됩니다.
넷째, 남은 후보 중 점수가 가장 높은 상자를 선택합니다.
후보가 없어질 때까지 같은 과정을 반복합니다.
평가용 IoU와 NMS용 IoU는 목적이 다르다
두 과정 모두 IoU를 사용해서 혼동하기 쉽습니다.
하지만 비교하는 대상과 목적이 서로 다릅니다.
평가에서는 예측 상자와 정답 상자를 비교합니다.
올바른 탐지인지 판단하는 것이 목적입니다.
NMS에서는 예측 상자끼리 서로 비교합니다.
같은 물체를 가리키는 중복 후보를 줄이려는 과정입니다.
NMS 임계값을 너무 낮추면 상자를 과하게 지울 수 있습니다.
서로 붙어 있는 두 물체 중 하나가 사라질 수도 있습니다.
반대로 너무 높으면 중복 상자가 많이 남습니다.
이때 중복 예측이 FP가 되어 정밀도를 떨어뜨릴 수 있습니다.
클래스별 NMS인지도 살펴보기
많은 구현은 같은 클래스의 상자끼리 NMS를 적용합니다.
이를 클래스별 NMS라고 이해하면 됩니다.
클래스와 관계없이 상자를 억제하는 방식도 있습니다.
이를 클래스 비의존 NMS라고 부르기도 합니다.
어느 방식이 유리한지는 데이터와 사용 목적에 달렸습니다.
모델 설정을 비교할 때 후처리 조건도 함께 기록해야 합니다.
네 개념을 하나의 흐름으로 연결하기
개념을 배우는 순서는 IoU에서 시작하면 편합니다.
상자가 맞았는지 판단해야 다음 지표를 계산할 수 있습니다.
IoU와 클래스 정보를 이용해 TP, FP, FN을 정합니다.
그 결과로 정밀도와 재현율을 계산합니다.
여러 신뢰도 기준의 Precision/Recall을 모으면 PR 곡선이 됩니다.
곡선을 AP로 요약하고 클래스 평균을 내면 mAP가 됩니다.
비최대 억제는 중복 예측을 정리하는 후처리입니다.
그 설정은 최종 예측과 평가 점수에도 영향을 줍니다.
실제 실행 순서는 조금 다를 수 있다
개념상 IoU, Precision/Recall, mAP, NMS로 배웠습니다.
하지만 실제 평가 프로그램은 보통 NMS를 먼저 수행합니다.
모델의 원시 후보를 신뢰도로 거르고 NMS로 정리합니다.
그 결과를 정답과 연결해 TP와 FP를 결정합니다.
이후 정밀도와 재현율을 구하고 mAP를 계산합니다.
즉, 학습 순서와 평가 프로그램의 처리 순서는 다릅니다.
또한 일부 최신 탐지기는 NMS가 없는 구조를 사용하기도 합니다.
따라서 사용 중인 모델과 평가 코드의 방식을 확인해야 합니다.
예시를 끝까지 다시 계산해 보기
사진에는 고양이와 강아지 정답이 하나씩 있습니다.
NMS 전에는 A, B, C라는 세 예측이 있었습니다.
A와 B가 같은 고양이를 크게 겹쳐 찾았다고 가정합니다.
NMS는 점수가 높은 A를 남기고 B를 제거합니다.
남은 A는 정답 고양이와 IoU 0.78입니다.
평가 기준 0.50을 넘으므로 TP가 됩니다.
C는 강아지와 IoU 0.42라서 FP로 처리됩니다.
실제 강아지는 연결된 예측이 없으므로 FN입니다.
NMS 뒤에는 TP 1개, FP 1개, FN 1개입니다.
정밀도와 재현율은 모두 0.50입니다.
NMS가 없었다면 중복 B가 FP로 추가될 수 있습니다.
이 경우 정밀도는 약 0.33으로 더 낮아집니다.
다만 한 장의 결과만으로 AP나 mAP를 판단하기는 어렵습니다.
전체 평가 데이터의 점수 순위와 클래스를 함께 봐야 합니다.
직접 해보는 짧은 연습
연습 1: TP, FP, FN 구분하기
정답 사과는 두 개이고 예측 상자는 세 개라고 가정합니다.
IoU는 점수순으로 0.80, 0.30, 0.65입니다.
세 번째 상자는 첫 번째와 다른 사과를 찾았습니다.
평가 IoU 기준은 0.50입니다.
정답은 TP 2개, FP 1개, FN 0개입니다.
정밀도는 2/3이고 재현율은 1입니다.
연습 2: 임계값 변화 예상하기
신뢰도 기준을 0.25에서 0.70으로 올린다고 생각해 보세요.
낮은 점수의 예측이 먼저 제거됩니다.
오답이 주로 제거되면 정밀도는 좋아질 수 있습니다.
정답까지 없어지면 재현율은 낮아질 수 있습니다.
항상 같은 방향으로 변한다고 단정할 수는 없습니다.
어떤 점수대에 정답과 오답이 있는지가 중요합니다.
연습 3: 두 종류의 IoU 구별하기
예측과 정답의 IoU는 탐지 성공 여부를 판단합니다.
예측끼리의 IoU는 NMS에서 중복 여부를 판단합니다.
같은 IoU 계산을 사용하지만 질문은 서로 다릅니다.
누구와 누구를 비교하는지 먼저 확인해 보세요.
YOLO 결과를 비교할 때 확인할 항목
첫째, 같은 검증 데이터셋을 사용했는지 확인합니다.
데이터가 다르면 mAP 숫자를 공정하게 비교하기 어렵습니다.
둘째, mAP의 IoU 조건을 확인합니다.
mAP@0.5와 mAP@0.5:0.95는 다른 평가 결과입니다.
셋째, 신뢰도와 NMS 임계값을 확인합니다.
후처리 설정이 다르면 남는 상자도 달라집니다.
넷째, 클래스별 AP도 함께 살펴봅니다.
높은 평균값이 특정 클래스의 실패를 가릴 수 있습니다.
다섯째, 실제 예측 이미지도 직접 확인합니다.
숫자만으로는 중복 탐지와 작은 물체 실패를 놓칠 수 있습니다.
핵심 정리
IoU는 예측 상자와 정답 상자의 겹침을 측정합니다.
탐지가 위치까지 제대로 맞았는지 판단하는 출발점입니다.
정밀도는 모델이 찾은 결과 중 정답의 비율입니다.
재현율은 실제 물체 중 찾아낸 비율입니다.
mAP는 여러 신뢰도 기준과 클래스를 종합합니다.
단, IoU 조건과 평가 규약을 함께 확인해야 합니다.
비최대 억제는 같은 물체의 중복 상자를 정리합니다.
NMS 설정은 최종 결과와 평가 점수에 영향을 줍니다.
이 흐름을 이해하면 YOLO 성능표를 읽기 쉬워집니다.
모델의 문제점이 위치, 오탐, 놓침 중 무엇인지도 보입니다.
일부 이미지는 Pexels에서 제공되었습니다.
'공부' 카테고리의 다른 글
| R-CNN이란? 후보 영역부터 객체 분류까지 쉽게 이해하기 (0) | 2026.09.21 |
|---|---|
| AI 논문을 잘 읽는 방법: 연구 질문부터 Figure·Method까지 실전 순서 (0) | 2026.09.17 |
| YOLO 공부 전 필수 기초 1편: 이미지 픽셀, 바운딩 박스, 클래스, 학습 데이터 이해하기 (0) | 2026.09.16 |
| 객체 추적(Object Tracking) 알고리즘이란? 탐지부터 ID 유지까지 쉽게 이해하기 (0) | 2026.09.16 |
| 도커로 ROS 2가 동작하는 원리와 Cyclone DDS 네트워크 이해하기 (0) | 2026.09.14 |