Object Detection을 공부하기 전에 대략적인 기초 지식과 내용을 정리 하려고 한다. 객체 검출(Object Detection)은 영상처리나 CV 분야에서 기본적이고 또 많이 쓰이는 기법이다. 최근에는 얼굴 인식, 음성 인식, 비디오 인식, 이미지 분류 등 다양한 분야에 활용된다. 따라서 Object Detection을 공부하면서 기초적인 내용을 정리한다.
Object Detection의 정의
1. Image classfication : 입력으로 들어온 이미지 안에 단일 객체(object)에 대한 종류(class)를 구분
2. Image localization : 입력으로 들어온 이미지 안에 단일 객체(object)에 대한 위치를 Boudning box를 통해 예측
3. Object Detection : 여러 객체의 localization과 class를 예측
4. Instance Segementation : 여러객체의 object에 픽셀단위 위치와 class까지 판별한다.
Bounding box
아래의 두그림을 보면 객체의 위치를 특정하기 위해 사각형 형태로 객체의 위치를 예측했다. 예를 들어 bounding box는 (xmin,ymin,xmax,ymax) 형태로 표기한다. 왼쪽사진은 pixel 단위로 bounding box를 표시했다. 오른쪽 사진은 효율적인 연산을 위해 0~1사이의 값으로 Normalization 해준 값으로 사용한다.
IOU(Intersection Over Union )
IOU는 객체의 위치추정의 정확도를 평가하는 지표이다. 실제값(Ground Truth)와 모델이 예측한 값이 얼마나 겹치는지 나타내는 지표이다.
Ground-truth bounding box : 실제 객체 위치 / Predicted bounding box : 모델이 찾은 객체 위치 를 나타낸다.
따라서 겹치는 부분이 많으면 많을수록 모델이 얼마나 Object Detection을 잘했는지를 판단하는 근거가 된다.
IOU는 겹치는 부분(Overlap) / 전체 면적(Union) 을 통해 구해지게 된다.
위 이미지를 보면 오른쪽으로 갈수록 Ground-truth, Predicted bounding box간 차이가 거의 없다는 것을 확인 할수 있다.
보통 IOU값이 0.5 이상이면 잘 예측한 것으로 보기 때문에 threshold를 0.5로 설정하는 경우가 많다. IOU는 object detection 성능 평가 지표 mAP에서 사용된다.
Precision-Recall
실제 상황(Ground truth) | 실제 정답(Predict result) | ||
Positive | Negative | ||
Positive | True Positive | False Negative | |
Negative | False Positive | True Negative |
위의 표는 물체를 옳게 검출 했는지 옳지 않게 검출 했는지를 확인 하는 표이다.
Precision
보통 정확도를 의미한다. 모델이 True라고 분류한것 중에서 실제 True 인것의 비율
모델의 입장에서 판단한것이다.
$$ Precision = \frac{TP}{TP + FP} $$
Recall
보통 재현률을 의미한다. 실제 True인 것 중에서 모델이 True라고 예측한 비율
실제 정답의 입장에서 판단한것이다.
$$ Recall = \frac{TP}{TP + FN} $$
아래의 예시를 들어 설명하도록 하겠다.
아래의 표에서는 총 15개의 이미지에서 10개의 object가 검출이 되었다고 가정한 표이다.
이표에는 confidence와 TP/FP 가 표시가 되어있다.
이 표에서 10개중 7개는 옳게 검출(TF)이 되었고 3개는 잘못 검출(FP)이 되었다.
따라서 이표를 통해 precision과 recall을 계산할수 있다.
Precision : 옳게 검출된 얼굴 갯수/검출된 얼굴 갯수 = 7/10 = 0.7 이고
Recall : 옳게 검출된 얼굴 갯수/실제 얼굴 갯수 = 7/15 = 0.47 이다.
만약 confidence threshhold를 0.5가 아닌 0.95이상일때 검출 되었다 판단하면
Precision : 옳게 검출된 얼굴 갯수/검출된 얼굴 갯수 = 1/1 = 1 이고
Recall : 옳게 검출된 얼굴 갯수/실제 얼굴 갯수 = 1/15 = 0.067 이 된다.
Precision-Recall Tradeoff
일반적으로 Precision과 Recall은 서로 반비례적인 특성을 가진다. 이를 Precision-Recall Tradeoff 이라 한다. 따라서 Precision과 Recall은 상호 보완적인 평가 지표이기 때문에 어느 한쪽을 강제로 높이면 다른 쪽의 수치는 떨어진다.
아래와 같이 confidence threshhold를 조절하면서 계산하는 과정을 거치면 아래와 같은 표가 나온다.
PR Curve(Precision-Recall Curve)
위의 표를 x축에는 Recall, y축에는 Precision을 표현하면 PR curve가 나온다.
Average Precision( AP)
Precision-Recall Curve는 알고리즘의 성능을 전반적으로 파악하기에는 좋지만 다른 알고리즘과 정량적으로 비교하기에는 불편함이 있다. 따라서 나온 개념이 Average Precision(AP)이다. 이를 확인하기 위해 아래의 그래프에 Interpolation(보간법)을 이용해 그래프를 수정해준뒤(빨간색선) 그래프 선 아래의 면적을 계산한 값이 AP이다.
mAP(mean Average Precision)
AP는 단일 객체에대한 모델의 검출 성능을 측정한다. 각 객체에 대한 AP의 값이 나온다. 모델의 전체적인 성능을 측정하기 위해 각 class당 AP를 구한다음 전체 class로 나눠서 모델의 성능을 평가한다. 이를 mAP(mean Avreage Precision)이라 한다. 대표적으로 사용되는 모델의 평가지표이다.
Reference
https://herbwood.tistory.com/2
https://developer-lionhong.tistory.com/34
https://pseudo-lab.github.io/Tutorial-Book/chapters/object-detection/Ch1-Object-Detection.html
https://ctkim.tistory.com/entry/mAPMean-Average-Precision-%EC%A0%95%EB%A6%AC
https://sumniya.tistory.com/26
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다. 틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글 남겨주시거나 또는 이메일로 보내주시면
감사하겠습니다.