티스토리 뷰

공부/Data Science

Object Detection: YOLO(1)

eℓlie 2022. 2. 10. 16:40

Object Detection

- obejction과 bounding box를 탐지하는 model로, 입력변수는 image, 출력변수는 bounding box와 object class list

- bounding box에 대하여 그에 대응하는 class와 해당 class의 confidence를 출력

(※applications: 분리수거 모델, 방사선 사진으로 종양 탐지, 마스크 미착용자 탐지 등…)

 

IoU: Intersection over union

ground truth와 predict result가 얼마나 겹치는지를 확인하고자 하는 지표로, 1에 가까울수록 모델의 정확도가 높음

cf. ground truth ≠ label; label은 (정확히 0/1로 알 수 있는)정답, ground truth는 어떻게 예측되었으면 하고 원하는 

💬 나의 궁금증: Is object detection a classification problem?

→더 알아보기: the difference between image classification and object detection

NMS: Non-maximum suppression3

object detector가 탐지한 bounding box 중 가장 정확한 bounding box를 선택하기 위한 기법

from https://www.pyimagesearch.com/2015/02/16/faster-non-maximum-suppression-python/

boxes list에 있는 모든 bounding box와의 IoU를 계산해 비교한 뒤, threshold보다 높은 IoU를 가지는 bounding box들을 boxes list에서 제거하고 final box에 추가하는 과정을 반복하는 알고리즘

 

ROC curve and Precision-recall curve

precision과 recall 사이에는 trade-off가 존재하며, precision과 recall 중 무엇을 model evaluation metrics로 사용할 것인지는 예측하고자 하는 값의 특성에 따라 달라짐

precision이 더 중요한 사례: 유리병 분리 모델, 투자 기회 탐지 모델(FP를 피하는 것이 FN을 피하는 것보다 절실한 경우)

recall이 더 중요한 사례: covid-19 감염자 판별 모델(조금이라도 P일 가능성이 있는데 이를 놓치지 않아야 하는 경우)

💬 실제 covid-19 감염자 판별 키트에 대한 evaluation과는 다를 수 있음: recall이 1이라는 전제 하에서 precision이 높아지도록 설계하는 것이 이상적일 것

from https://www.researchgate.net/figure/a-Example-of-Precision-Recall-curve-with-the-precision-score-on-the-y-axis-and-the_fig1_321672019
 
 

ROC(receiver operating characteristic) curve: recall-fallout 간의 관계를 threshold(T, 임곗값)에 따라 시각화한 그래프로, AUC(area under curve, 최댓값은 1)의 면적이 넓을수록 모델의 성능이 높음

💬 if 내 모델의 auc가 0.5라면 basic model과 비슷한 성능을 내고 있다는 뜻이므로 예측률이 낮은 것 (=잘못 만들었다)

cf. F1 score: precision과 recall의 조화평균으로 계산