Object Detection의 이해 2

타키탸키·2021년 8월 8일
1

Vision

목록 보기
4/11
post-thumbnail

👮‍♂️ NMS의 이해

NMS(Non Max Supression)

  • Object Detection 알고리즘
    • Object가 있을 만한 위치에 많은 Detection을 수행하는 경향이 강하다
    • 있을 만한 위치를 놓치면 안 되기 때문에 가능성 있는 곳을 모두 추천
    • 정확한 위치 특정보다는 있을 만한 곳 모두 제시
  • NMS
    • Detected 된 Object의 Boundig Box 중,
      • 비슷한 위치에 있는 box를 제거
      • 가장 적합한 box를 선택

NMS 수행 로직

  • Detected 된 Bounding Box 별로 특정 Confidence threshold 이하 Bounding Box는 먼저 제거
    • confidence score < 0.5
  • 가장 높은 confidence score를 가진 box 순으로 내림차순 정렬
    • confidence score: 대상일 확률
  • 아래 로직을 모든 box에 순차적으로 적용
    • 높은 confidence scroe를 가진 box와 겹치는 다른 box를 모두 조사
    • IOU가 특정 threshold 이상인 box를 모두 제거
      • 예:) IOU Threshold > 0.4
    • 남아 있는 box만 선택
  • 많은 박스가 제거되는 조건
    • 높은 Confidence Score
    • 낮은 IOU Threshold
  • MAX인 값만 가져온다면?
    • MAX보다 낮지만 수치가 높은 bounding box까지 함께 제거
    • 두 임계점을 모두 활용해야 한다

👮‍♂️ mAP의 이해 - 정밀도와 재현율

Object Detection 성능 평가 Metric - mAP

  • mAP(mean Average Precision)
    • 재현율(Recall): Object가 Detected된 비율
    • 재현율의 변화에 따른 정밀도(Precision)의 평균 성능 수치
  • 관련 지표
    • IOU
    • Precision-Recall Curve
    • Average Precision
    • Confidence threshold
      • Bounding Box가 대상임을 확정할 수 있는 확률 임계점
  • 성능 비교표
    • Inference Time에 따른 AP 성능 비교
    • Inference Time이 낮을수록, AP가 높을수록 좋은 수치
    • YOLO는 Inference Time에서 뛰어난 수치
      • AP는 상대적으로 낮다
    • RetinaNet은 높은 AP 성능을 가짐 >> 높은 정확도

정밀도(Precision)와 재현율(Recall)

  • 주로 이진 분류에서 사용되는 성능 지표
    • 이진 분류(Binary Classification)
      • Yes or No
  • 정밀도
    • 예측을 Positive로 한 대상 중에 예측과 실제 값이 Positive로 일치한 데이터의 비율
    • Object Detection
      • 검출 알고리즘이 검출 예측한 결과가 실제 Object들과 얼마나 일치하는지를 나타내는 지표
  • 재현율
    • 실제 값(Object)이 Positive인 대상 중에 예측과 실제 값이 Positive로 일치한 데이터의 비율
    • Object Detection
      • 검출 알고리즘이 실제 Object들을 빠뜨리지 않고 얼마나 정확히 검출 예측하는지를 나타내는 지표
  • 좋은 알고리즘은 정밀도와 재현율을 모두 만족해야 한다!

IOU 값에 따라 Detection 예측 성공 결정

  • Object Detection에서 개별 Object에 대한 검출(Detection) 예측이 성공했는지의 여부를 IOU로 결정
  • 대표적인 Object Detect Challenge
    • PASCAL VOC Challenge
    • COCO challenge
  • 일반적으로 PASCAL VOC Challenge에서 사용된 기준을 적용하여 IOU가 0.5 이상이면 예측 성공으로 인정
  • COCO challenge에서는 여러 개의 IOC 기준을 변경해 가면서 예측 성공을 적용
    • 예:) 0.5부터 0.9까지 0.05 단위로 기준을 증가시킴

오차 행렬(Confusion Matrix)

  • 오차 행렬
    • 이진 분류의 예측 오류가 얼마인지와 더불어 예측 오류의 유형을 함께 나타내는 지표
  • 각 지표
    • 예측 클래스(Predicted Class)
    • 실제 클래스(Actual Class)
    • Negative(0) / Positive(1)
    • True: 일치 / False: 불일치

TP, FP, FN에 따른 정밀도와 재현율

  • 정밀도
    • TP / (FP + TP)
    • 전체 예측 중에 성공 비율
    • 정밀도가 좋아지려면 FP가 낮아야 한다
  • 재현율
    • TP / (FN + TP)
    • 성공과 실패 중에 성공 비율
    • 재현율이 좋아지려면 FN이 낮아야 한다
  • TP(True Positive)
    • 예측 성공
    • 실제 대상을 예측함
    • Bounding Box 알맞은 위치에 생성
  • FP(False Positive)
    • 예측 실패(실제 Negative)
    • IOU가 0.5 미만
  • FN(False Negative)
    • 실제 Positive >> 예측X
    • Bounding Box가 있어야 하는데 생성X

업무에 따른 재현율과 정밀도의 상대적 중요도

  • 재현율이 상대적으로 더 중요한 지표인 경우
    • 실제 Positive인 데이터 예측을 Negative로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
    • 예:) 암 진단, 금융 사기 판별
  • 정밀도가 상대적으로 더 중요한 지표인 경우
    • 실제 Negative인 데이터 예측을 Positive로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
    • 예:) 스팸 메일

정밀도와 재현율의 맹점

  • 정밀도를 100%로 만드는 법
    • 확실한 기준이 되는 경우만 Positive로 예측
      • 나머지는 모두 Negative로 예측
    • 전체 환자 1000명 중 확실한 Positive 징후를 가진 환자는 단 1명
      • 해당 환자만 Positive로 예측하고 나머지는 모두 Negative로 예측
      • FP는 0, TP는 1
      • 1/(1+0)=1 >> 100%
  • 재현율을 100%로 만드는 법
    • 전체 환자 1000명을 Positive로 예측
    • 이 중 실제 양성인 사람이 30명
      • TN은 수치에 포함X
      • FN은 아예 0
      • 30/(30+0) >> 100%

Confidence 임곗값에 따른 정밀도-재현율 변화

  • Confidence 임곗값에 따라 정밀도와 재현율의 값이 변화됨
    • Confidence 임곗값이 낮으면, Bounding Box 수 많아짐 >> 난사
    • Confidence 임계값이 높으면, Bounding Box 수 적어짐 >> 신중함

정밀도/재현율 트레이드 오프

  • 정밀도 재현율 트레이드 오프(Precision Recall Trade-off)
    • Confidence 임곗값(Threshold)을 조정
      • 정밀도와 재현율의 수치를 높일 수 있음
      • 임곗값이 높으면 정밀도가 증가하고 재현율이 감소함
    • 정밀도와 재현율은 상호 보완적인 평가 지표
      • 어느 한 쪽을 강제로 높이면 다른 하나의 수치는 떨어지기 쉬움
  • 정밀도 재현율 곡선(Precision-Recall Curve)
    • Confidence 값을 조정하여 얻어진 Recall 값의 변화에 따른 Precision 값을 나타낸 곡선
    • AP
      • Precision 값의 평균
      • 정밀도 재현율 곡선의 면적 값으로 계산

👮‍♂️ mAP의 이해 - mAP 계산하기

Confidence에 따른 Precision과 Recall의 변화

  • confidence: 0.9
    • 매우 신중함
    • 한 번의 시도에 성공(1/1)
    • 하나의 대상만을 탐지하기 때문에 재현율은 낮음
  • confidence: 0.6
    • 4번 예측해서 2번 맞춤 >> 정밀도: 0.5
    • 5개의 예측 중 2번 맞춤 >> 재현율: 0.4
  • confidence: 0.5
    • 10번 예측해서 5번 맞춤 >> 정밀도: 0.5
    • 5개의 예측 중 5개 맞춤 >> 재현율: 1

AP(Average Precision) 계산하기


  • 그래프
    • 일반적으로 지그재그 형태
    • 일정한 값을 유지하다가 특정 지점에 오면 변화
  • AP 계산하기
    • 오른쪽 최대 Precision 값 연결
      • 0.4 / 0.6 / 0.8 / 1.0
    • 너비가 AP
  • 초기(VOC) 계산법
    • 개별 11개(0.0~1.0까지) Recall 포인트 별로 최대 Precision의 평균값을 구함

mAP(mean Average Precision)

  • AP는 한 개의 Object에 대한 성능 수치
  • mAP는 여러 Object들의 AP를 평균한 값

COCO Challenge에서의 mAP

  • PASCAL VOC
    • 예측 성공을 위한 IOU를 0.5 이상으로 고정
  • COCO Challenge
    • IOU를 다양한 범위로 설정하여 예측 성공 기준을 정함
    • IOU 0.5부터 0.05씩 값을 증가
    • 0.95까지 해당하는 IOU별로 mAP 계산
    • 크기의 유형(대/중/소)에 따른 mAP도 측정
    • AP@[.50:.05:.95]
      • 시작 IOU: 0.5
      • 증가 Step: 0.05
      • 최종 IOU: 0.95
      • 위 값들에 따른 AP 값

데이터 세트와 알고리즘 별 mAP 수치 예시

  • VOC
    • mAP 값이 전반적으로 높다
  • COCO
    • AP50(0.5)
    • 까다로운 편
    • ResNet: 좋은 성능

* 출처: 인프런 '딥러닝 컴퓨터 비전 완벽 가이드'
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글