본문 바로가기

DL_general

YOLO

motive

grid 방식에서는 grid cell의 개수가 곧 proposal의 수로 proposal을 구하는 과정에서 오버헤드가 전혀 없다.

YOLO는 실시간성을 확보하기 위해 proposal의 수가 적은 grid 방식을 발전시켜 사용했다.

unified detection

  1. 입력 이미지를 7X7 그리드 영역으로 나눠준다.
  2. 각 grid cell은 두 개의 bbox와 bbox에 대한 confidene score를 갖는다. 각 grid cell에서 크기가 일정하지 않은 bbox 2개를 생성한다.
    1. cell에 object가 없으면 confidence score는 0
    2. Grid cell이 7x7=49개 이므로 bbox는 총 98개이다. Bbox 안에 object가 있을 것 같다고 확신할수록 박스를 굵게 그린다.
  3. Bbox는 x, y, w, h와 confidence로 구성된다.
    1. 이 값들은 0, 1 범위 값으로 정규화됨
  4. 각 grid cell은 conditional class probability를 갖는다.
    1. 논문에서는 Pascal VOC 데이터셋을 사용하여 class 개수 = 20
  5. 평가지표 = 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를 나타낸다.

이 두 값을 곱하면 경계박스의 클래스 분류 확률을 구할 수 있다.

 

  1. 그리드 셀 하나에 2개의 경계박스 후보가 있고 각 경계박스에 대한 클래스 분류 점수를 얻는다.
  2. 2번째 그리드 셀에서도 클래스 분류 점수 2개를 얻는다.
  3. 마지막 그리드 셀에서 클래스 분류 점수 2개를 얻는다.
  4. 경계 박스가 7x7이므로 클래스 분류 점수는 7x7x2개로 총 98개가 된다.
  5. 98개의 클래스 분류 점수중에서 스레시 홀드(0.2)보다 작은것은 전부 0으로 채워준다. 클래스 20개의 점수가 [0.1 , 0.1, 0.5 ,0 ,0 ,0.25, 0.1, 0, 0 ....]이렇게 나올 텐데 0.2보다 작으면 그것은 해당 클래스가 아닐거라고 판단한다.
  6. NMS

 

장단점

  1. 장점
    1. 간단한 처리과정으로 속도가 매우 빠르다.
    2. 기존의 다른 real time detection system들과 비교했을 때 두배정도 높은 mAP를 보인다.
    3. image 전체를 한 번에 바라보는 방식으로 class에 대한 맥락적 이해도가 높다. 이로인해 낮은 background error(false-positive)를 보인다.
    4. object에 대한 좀 더 일반화된 특징을 학습한다. 가령 natural image로 학습하고 이를 artwork에 test했을 때 다른 detection system들에 비해 훨씬 높은 성능을 보여준다.
  2. 단점
    1. 상대적으로 낮은 정확도 (특히 작은 object에 대해)
    2. 새로운/독특한 형태의 박스의 경우 정확히 예측하지 못한다
    3. 각각의 grid cell이 하나의 클래스만을 예측할 수 있으므로 작은 object 여러개가 다닥다닥 붙어있는 경우 제대로 예측하지 못한다.

https://blog.naver.com/sogangori/220993971883

https://ctkim.tistory.com/91

https://curt-park.github.io/2017-03-26/yolo/

 

'DL_general' 카테고리의 다른 글

XGBoost  (1) 2023.03.15
localization  (0) 2023.03.15
cosine similarity  (0) 2023.03.08
auto encoder  (0) 2023.03.07
Federated learning  (0) 2023.03.06