YOLO9000: Better, Faster, Stronger

– YOLOv2의 성능

– 성능 향상의 요인

1.  Batch Normalization

– 모든 컨볼루션 레이어에 배치 정규화를 추가

2.  High Resolution Classifier

– ImageNet 데이터로 classfication net 먼저 학습시켜서 고해상도 이미지에도 잘 동작하게 함

3.  Convolutional

– FCL(Fully Conneted Layer)를 Convolution Layer로 대체

4.  Anchor Boxes

– 경계 박스를 처음부터 직접 예측 -> 앵커 박스를 초기값으로 사용하여 예측

5.  new network

– Darknet-19 를 특징 추출기로 사용

6.  Dimension Clusters

– 실제 경계 박스들을 클러스터링하여 최적의 앵커박스를 찾음

7.  Location prediction

– 위치 예측 파라미터에 sigmoid 함수를 사용하여 네트워크의 학습이 보다 안정적이다.

8.  passthrough

– 26×26 크기의 중간 특징맵을 skip 하여 13×13레이어에 붙임(concatenate)

9.  Multi-Scale Training

– 학습데이터의 크기를 320×320, 352×352, …, 608×608 로 resize 하면서 다양한 스케일로 학습시킴

10. Fine-Grained Features

– 최종 특징맵의 크기를 7×7에서 13×13으로 키움

1.  Batch Normalization

– 배치 정규화는 미니배치를 사용하여 학습할 때 학습이 빠르게 수렴하도록 해주고,

   정규화(regularization)효과도 있는 것으로 알려져있다.

2.  High Resolution Classifier

– Darknet-19를 classfication network로 사용하여 ImageNet 데이터를 epoch 10으로 학습시킨다.

너무 많이 학습하게 되면 가중치들이 클래스 분류에만 너무 특화되도록 학습되기 때문이다.

– 마지막 컨루션 레이어와 Avgpool, Softmax를 제거하고 오브젝트 디텍션 레이어4개를 추가한다.

이 최종 네트워크로부터 경계 박스와 오브젝트 검출에 대한 학습이 시작된다.

3.  Convolutional

– 기존의 YOLO는 마지막 단의 FCL 에서 부터 경계 박스의 좌표정보를 직접 예측했다.

– YOLOv2는 FCL을 Convolution으로 대체했다.

4.  Anchor Boxes

– 앵커 박스를 사용하면서 공간 위치로부터의 클래스 예측 매커니즘도 분리시켰다.

– 모든 앵커 박스에 대해서 그것이 오브젝트일 확률를 예측하고 클래스를 분류한다.

– 예측된 경계 박스가 오브젝트일때 어떤 클래스인지를 예측하기 때문에 이것은 조건부 확률이 된다.

– 앵커박스를 사용하면서 정확도(accuracy)는 69.5 mAP 에서 69.2 mAP 로 조금 떨어졌으나

재현율(recall)은 81%에서 88%로 크게 상승했다.

5.  new network

– Darknet-19 를 특징 추출기로 사용

– VGG와 유사하지만 연산량이 훨씬 적다.

6.  Dimension Clusters

– 어떤 앵커박스를 사용할 지에 대해 결정해야 한다.

– 기존의 앵커박스는 종횡비가 1,1/2,2 인 직사각형을 사용했다.

– YOLOv2는 VOC 와 COCO 데이터셋에 있는 오브젝트의 경계 박스를 클러스터링해서 앵커박스의

종횡비와 크기를 결정했다.

7.  Location prediction

– 위치 예측 파라미터에 sigmoid 함수, 경계박스의 중심이 그리드셀 안에 있어야 한다는 등의

   제약(constrain) 을 걸어놓아서 네트워크의 학습이 보다 안정적이다.

8.  passthrough

– YOLO 는 하나의 특징맵에서만 경계 박스 후보를 제안한다.

– YOLOv2 의 13×13 특징맵은 큰 오브젝트 검출할 때에는 크기가 충분하지만 작은 오브젝트에

대해서는 불충분 할 수 있다.

– Faster R-CNN 이나 SSD 의 경우에는 크기가 다른 특징 맵에서 크기가 다른 경계 박스 후보를

제안하는 것으로 이문제를 해결한다.

– YOLOv2는 이 문제에 대한 해결방법으로 간단한 skip-layer 를 사용했다.

– 26×26 크기의 중간 특징맵을 skip 하여 13×13레이어에 붙인다(concatenate).

– 26×26 특징맵에는 13×13 특징맵에 비해 고해상도의 특징이 들어있다.

– 두 개의 특징맵의 크기가 다르기 때문에 그냥 붙일 수는 없다.

– 26x26x512 의 특징맵을 13x13x(512*4) 특징맵으로 변환한다.

– 26×26 의 특징맵의 한 포인트에서 주위 2×2의 데이터를 4채널로 모양을 바꿔준다.

9.  Multi-Scale Training

10. Fine-Grained Features

Leave a Reply

Your email address will not be published. Required fields are marked *