엔지니어스 - Engineeus

Probability score & Objectness(Confidence score)란? 본문

Autonomous Tech./└ ML Programing

Probability score & Objectness(Confidence score)란?

Engineeus 2021. 1. 13. 18:29
728x90

yolo 시스템이나 기타 딥러닝 시스템에서 Probability와 Objectness 라는 것이 있다.

 

이 두개는 뭘까?

 

Objectness

Objectness는 이전에 한번 설명 한 적이 있다. 하지만 간단히 설명 하면, YOLO시스템을 통해 어떤 Bounding box가 검출이 된다. 이 Bounding box는 x, y, w, h, confidence로 구성된다. x, y는 박스의 중앙값이며 w, h는 넓이와 높이 이다. confidence는 박스에 객체가  있는지 없는지에 대한 확률 이다.

따라서, 내가 Objectness(Confidence threshold)를 0.3으로 두면 30% 정확도가 안된다면, 그 박스는 버려지게 된다.

즉, 박스에 객체가 있는지 없는지에 대한 정확도 이다. 무슨 객체 인지는 아직 몰라도 된다. 그냥 물체가 있는지, 없는지.

 

Probability

그럼 Probability란 무엇일까?

Probability는 위에서 Objectness에서 걸러진 박스를 대상으로 한번 더 필터링 하는 과정이다. Bounding box에 물체가 있긴 한데, 이제 이게 무슨 물체인지(Class) 알아야 한다. 그래야 우리가 클래스별로 색을 칠하던, 아이콘을 씌우던, 자동차라고 표시를 하던지 한다.

위에서 Confidence score에서 필터링 되어 내려온 Bounding box는  C(클래스 개수에 따라 다름)개의 Conditional Class Probability값을 갖는다. 

 

이는 Softmax로 들어가서 제일 높은값을 찾아지게 된다.

*Softmax(소프트맥스)는 입력받은 값을 출력으로 0~1사이의 값으로 모두 정규화하며 출력 값들의 총합은 항상 1이 되는 특성을 가진 함수이다.

 

(ex) 클래스가 5개 (기차, 승용차, 버스, 자전거, 오토바이)라면?

box[0].probability = 0.4 (기차에 대한 확률)

box[1].probability = 0.2 (승용차에 대한 확률)

box[3].probability = 0.1 (버스에 대한 확률)

box[4].probability = 0.1 (자전거에 대한 확률)

box[5].probability = 0.2 (오토바이 대한 확률)

 

마침내 기차로 판단이 되고, Probability threshold의 값을 넘게 되면 추후 NMS라는 작업을 하고 최종 Box에 표시가 되는 것이다.

 

Comments