귀퉁이 서재

컴퓨터 비전 - 6. 비최댓값 억제(NMS)와 mAP(mean Average Precision) 본문

딥러닝 컴퓨터 비전

컴퓨터 비전 - 6. 비최댓값 억제(NMS)와 mAP(mean Average Precision)

Baek Kyun Shin 2022. 5. 8. 00:13

※ 이 글은 권철민 님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 작성했습니다.

이번 시간에는 경계 박스 추출 기법인 비최댓값 억제와 객체 탐지의 성능 지표인 mAP에 대해 알아보겠습니다.


비최댓값 억제(NMS)

객체 탐지 알고리즘은 물체가 있을 만한 위치에 여러 경계 박스를 추천합니다. 정확히 물체가 있는 영역만 추천하는 게 아니라 물체가 있을 만한 모든 영역을 추천합니다. 가능성이 있는 영역을 모두 추천하는 거죠. 이렇게 한 객체 주변에 여러 경계 박스를 추천하면 어떻게 가장 그럴듯한 경계 박스를 꼽을까요? 바로 비최댓값 억제라는 기법으로 경계 박스를 추립니다.

비최댓값 억제(Non-Maximum Suppression, NMS)란 경계 박스 가운데 가장 확실한 경계 박스만 남기고 나머지 경계 박스는 제거하는 기법입니다. 다음 그림을 보시죠.

출처 : https://www.researchgate.net/figure/Non-Maximal-Suppression_fig5_345061606

왼쪽은 비최댓값 억제를 적용하기 전 경계 박스 모습입니다. 자동차 주변에 여러 경계 박스가 있네요. 자동차가 있을 법한 경계 박스를 모두 표시한 겁니다. 그런데 비최댓값 억제를 적용하니 자동차를 탐지하는 가장 확실한 경계 박스만 남고 나머지 경계 박스는 없어졌습니다.

비최댓값 억제의 입력값과 출력값, 절차는 다음과 같습니다.

  • 입력값(input): 예측 경계 박스들의 리스트(B), 경계 박스들의 신뢰도 점수(Confidence Score), IoU 임계값(N)
  • 출력값(output): 최종 경계 박스들의 리스트(D)
  • 비최댓값 억제 절차
    1. B에서 신뢰도 점수가 가장 높은 경계 박스를 선택해 D에 추가합니다(D는 처음에 빈 리스트입니다). 그리고 B에서 해당 경계 박스를 제거합니다.
    2. 방금 D에 추가한 경계 박스와 B에 있는 다른 모든 경계 박스를 비교해 IoU를 계산합니다. 만약 IoU가 IoU 임계값(N)보다 크면 그 경계 박스를 B에서 제거합니다(이 절차는 신뢰도 점수가 가장 높은 경계 박스와 겹치는 다른 경계 박스를 제거하는 방법입니다. 꼭 필요한 경계 박스만 남기기 위해서죠).
    3. 다시 B에서 신뢰도 점수가 가장 높은 경계 박스를 선택해 D에 추가하고, 해당 경계 박스를 B에서 제거합니다.
    4. 이 경계 박스와 B에 있는 다른 모든 경계 박스를 비교해 IoU를 계산하고, IoU 임계값(N)보다 큰 경계 박스들을 B에서 제거합니다.
    5. 이 과정을 B에 아무것도 남지 않을 때까지 반복합니다.

이 절차를 반복하면 예측한 경계 박스 중 가장 정확한 경계 박스만 남습니다. 다시 말해, 가장 물체를 잘 나타내는 경계 박스만 남습니다. 이렇게 비최댓값 억제 기법을 사용해야 쓸데없는 경계 박스들을 없앨 수 있습니다.

mAP

mAP(mean Average Precision)란 재현율(Recall) 변화에 따른 정밀도(Precision)의 값의 평균입니다. 객체 탐지의 성능 지표로 사용합니다(재현율과 정밀도가 무엇인지 궁금하신 분은 머신러닝 - 10. 교차검증(Cross Validation)과 혼동행렬(Confusion Matrix)을 참고해주세요).

객체 탐지에서는 개별 객체 예측을 성공했는지 여부를 IoU로 결정합니다. 일반적으로 PASCAL VOC Challenge에서 사용한 기준을 적용해, IoU가 0.5보다 크면 예측 성공으로 인정합니다. 곧, 실제 경계 박스와 예측 경계 박스가 50%보다 더 많이 겹치면 객체 탐지 예측에 성공했다고 간주합니다(한편, COCO Challenge에서는 여러 IoU 값을 기준으로 예측 성공을 판단합니다). PASCAL VOC와 COCO에 대해서는 다음 게시글에서 자세히 알아볼 예정입니다.

예측 성공 IoU 기준

신뢰도 임계값(Confidence Threshold)이 낮을수록 더 많은 예측 경계 박스를 만들게 되므로 정밀도는 낮아지고 재현율은 높아집니다. 신뢰도 임계값이 낮으면 그만큼 난사하면서 많은 경계 박스를 만드는 겁니다. 반면 신뢰도 임계값이 높을수록 예측 경계 박스를 만드는 데 신중해집니다. 정밀도는 높아지고 재현율은 낮아지죠. 곧, 신뢰도 임계값에 따라 정밀도와 재현율이 달라집니다.

신뢰도 임계값에 따른 재현율(Recall)과 정밀도(Precision)의 변화

정밀도와 재현율은 상호 보완적인 평가 지표입니다. 어느 한쪽을 높이면 다른 한쪽이 떨어지기 마련이죠. 이를 정밀도/재현율 트레이드오프(Trade-off)라고 부릅니다.

다음 그림은 신뢰도에 따른 재현율과 정밀도의 변화를 나타낸 곡선입니다. 이를 정밀도-재현율 곡선이라고 부릅니다. 

정밀도-재현율 곡선

이때 정밀도 값의 평균을 AP(Average Precision)라고 합니다. 일반적으로 AP는 정밀도-재현율 곡선의 면적 값입니다. AP는 객체 한 개를 측정하는 성능 수치입니다. mAP(mean Average Precision)은 여러 객체들의 AP 평균값입니다.

MS COCO 대회에서는 여러 IoU 임계값을 활용해 mAP를 측정합니다. 다음 표와 같이 말이죠.

MS COCO의 정밀도-재현율 곡선

지금까지 경계 박스 추출 기법인 비최댓값 억제와 객체 탐지의 성능 지표인 mAP에 대해 알아봤습니다.

0 Comments
댓글쓰기 폼