본문 바로가기

소프트웨어/CNN, YOLO 알고리즘

CNN YOLO 정확도 정밀도 재현율 의미 Accuracy Precision Recall mAP

#정확도 #정밀도 # 재현율 #Precision Recall #mAP #YOLO 정밀도 #YOLO 재현율 #Object Detection #Classification #YOLO알고리즘 #YOLO V2 #Object Detection 평가척도 #정밀도 재현율


안녕하세요 오늘은 CNN / YOLO / SSD 등의 모델에서 정확도를 나타내는 지표에 대해서 알아보겠습니다.


Classification의 문제는 정확도(Accuracy)를 통해서 지표를 표현 합니다.


즉 아래와 같이 전체 이미지 수에 대해서 얼만큼 분류를 잘했는지 확인하면 됩니다.




아래의 경우 10개 중 7개를 맞췄으므로 70% 정확도를 가진 모델이라고 말할 수 있습니다.



아래와 같이 Confusion Matrix를 이용하여 표현 하기도 합니다.




단일 클래스 문제에서는 정확도를 표현하는 방법은 너무 쉽습니다.



이러한 정확도는 단일 Classification이 아닌 Object Detection 문제에서는 적용이 힘듭니다.


아래사진을 강아지라고 구별을 한 것이 맞는지 사람이라고 하는것이 맞는지 모호해지기 시작합니다.


또한 Object Detection 이라는 것이 박스마다 하나의 클래스를 나타내기 때문에 정확도는 의미가 없습니다.


여기서 나온 개념이 바로 정밀도(Precision)와 재현율(Recall )입니다.




정밀도(Precision)란 검출 결과가 얼마나 정확하지를 표현하며

재현율(Recall)은 얼마나 잘 검출 했는지를 표현 합니다.



강아지는 100% 찾았지만(Recall) 사람을 강아지로 인지한 알고리즘(Precision)

즉 알고리즘이 개는 100% 잘 검출 하지만(Recall) 결과는 66%만큼 정확합니다(Precision).



강아지는 50% 찾았지만(Recall) 사람을 강아지로 인지하지 않은 알고리즘(Precision)

즉 알고리즘은 50%만큼 강아지를 검출하지만(Recall)  검출된 결과는 무조건 강아지 입니다(Precision)




충분히 이해가 가셨을 거라고 생각합니다.

결국은 재현율과 정밀도는 Trade-Off 관계 입니다




Precision(정밀도) ▶ TP / (TP+FP)  TP / (검출결과가 얼마나 정확한지)

 Precision 은 분류기가 P로 예측한 sample 중에서 맞게 예측한 것의 비율


Recall(재현율) ▶ TP / (TP+FN) ▶ TP / (얼마나 잘 검출했는지)

 Recall 은 Ground Truth 의 총 positive sample 중에서 positive로 맞게 예측한 것의 비율  



그럼 Detection알고리즘의 정확도 수치로 작용되는 mAP (mean Average Precision) 에 대해서 알아보겠습니다.

Precision : 분류기의 성능평가지표로 사용하는 Precision-Recall 에서의 Precision과 같은 의미입니다

인식기 (object-detector) 가 검출한 정보들 중에서 Ground-Truth 와 일치하는 비율을 의미합니다.

AP (Average Precision) : Recall value [0.0, 0.1, …, 1.0] 값들에 대응하는 Precision 값들의 Average 입니다.

mAP (mean Average Precision) : 1개의 object당 1개의 AP 값을 구하고, 여러 object-detector 에 대해서 mean 값을 구한 것이 mAP 입니다.(면적).




즉 mAP가 높을 수록 성능 좋은 알고리즘이라고 말할 수 있습니다.