DL_general
YOLO
홍시맛쿠키
2023. 3. 13. 14:17
motive
grid 방식에서는 grid cell의 개수가 곧 proposal의 수로 proposal을 구하는 과정에서 오버헤드가 전혀 없다.
YOLO는 실시간성을 확보하기 위해 proposal의 수가 적은 grid 방식을 발전시켜 사용했다.
unified detection
- 입력 이미지를 7X7 그리드 영역으로 나눠준다.
- 각 grid cell은 두 개의 bbox와 bbox에 대한 confidene score를 갖는다. 각 grid cell에서 크기가 일정하지 않은 bbox 2개를 생성한다.
- cell에 object가 없으면 confidence score는 0
- Grid cell이 7x7=49개 이므로 bbox는 총 98개이다. Bbox 안에 object가 있을 것 같다고 확신할수록 박스를 굵게 그린다.
- Bbox는 x, y, w, h와 confidence로 구성된다.
- 이 값들은 0, 1 범위 값으로 정규화됨
- 각 grid cell은 conditional class probability를 갖는다.
- 논문에서는 Pascal VOC 데이터셋을 사용하여 class 개수 = 20
- 평가지표 = conditional class probability x class-specific confidence score
Network design
24개의 conv layer와 2개의 FC layer로 이루어져있다
마지막 특징 데이터 7x7x30가 예측 결과이다. 이 안에 경계박스와 클래스 정보 등 모든 것이 들어있다.
30개의 채널은 (경계박스 정보 4개, 경계박스 안에 object가 있을 확률(confidence))x2, 어떤 클래스일 확률 20개로 구성된다.
노란색 경계가 ROI, object 후보이다. 둘은 모양이 비슷할 수도 있고 다를 수도 있다.
[x1, y1, w1, h1, obj1 conf score, x2, y2, w2, h2, obj2 conf score, 20개 class 확률]
30개의 채널 중 뒤 20개 채널에는 해당 grid cell에 object가 있다면 어떤 object일지에 대한 확률이 저장되어 있다.
또한 30개 채널 중 앞 5개 채널 중 뒷부분은 object 여부 confidence score를 나타낸다.
이 두 값을 곱하면 경계박스의 클래스 분류 확률을 구할 수 있다.
- 그리드 셀 하나에 2개의 경계박스 후보가 있고 각 경계박스에 대한 클래스 분류 점수를 얻는다.
- 2번째 그리드 셀에서도 클래스 분류 점수 2개를 얻는다.
- 마지막 그리드 셀에서 클래스 분류 점수 2개를 얻는다.
- 경계 박스가 7x7이므로 클래스 분류 점수는 7x7x2개로 총 98개가 된다.
- 98개의 클래스 분류 점수중에서 스레시 홀드(0.2)보다 작은것은 전부 0으로 채워준다. 클래스 20개의 점수가 [0.1 , 0.1, 0.5 ,0 ,0 ,0.25, 0.1, 0, 0 ....]이렇게 나올 텐데 0.2보다 작으면 그것은 해당 클래스가 아닐거라고 판단한다.
- NMS
장단점
- 장점
- 간단한 처리과정으로 속도가 매우 빠르다.
- 기존의 다른 real time detection system들과 비교했을 때 두배정도 높은 mAP를 보인다.
- image 전체를 한 번에 바라보는 방식으로 class에 대한 맥락적 이해도가 높다. 이로인해 낮은 background error(false-positive)를 보인다.
- object에 대한 좀 더 일반화된 특징을 학습한다. 가령 natural image로 학습하고 이를 artwork에 test했을 때 다른 detection system들에 비해 훨씬 높은 성능을 보여준다.
- 단점
- 상대적으로 낮은 정확도 (특히 작은 object에 대해)
- 새로운/독특한 형태의 박스의 경우 정확히 예측하지 못한다
- 각각의 grid cell이 하나의 클래스만을 예측할 수 있으므로 작은 object 여러개가 다닥다닥 붙어있는 경우 제대로 예측하지 못한다.
https://blog.naver.com/sogangori/220993971883
https://curt-park.github.io/2017-03-26/yolo/