논문 출처 : https://arxiv.org/abs/1612.08242
YOLOv2(You Only Look Once version 2)는 YOLO 모델의 개선된 버전으로, 2016년에 Joseph Redmon과 Ali Farhadi가 발표한 논문 "YOLO9000: Better, Faster, Stronger"에서 소개되었다. 이 논문은 YOLOv2와 함께 YOLO9000이라는 모델도 제안하며, 물체 인식에서 더 나은 성능과 정확도를 달성하기 위해 여러 가지 새로운 기술들을 도입했다.
이 논문은 YOLO의 기본 철학을 유지하면서도, 다양한 최적화 기법과 새로운 기술을 적용하여 더 나은 정확도와 효율성을 달성했다. 특히, YOLOv2는 다양한 크기의 물체를 인식할 수 있도록 개선되었으며, 속도와 정확성 사이의 균형을 맞추는 데 중점을 두었다.
논문 제목에 9,000이라는 숫자가 있는데 이는 9천가지 종류의 객체를 탐지할 수 있는 실시간 object detection 모델이기 때문이다. 이 모델은 VOC 2007 data에서 76.8mAP를 67 fps 달성했으며, 78.6mAP를 40 fps로 달성했다고한다. object detection과 classification을 함께 학습시키는 방법을 통해 detection dataset에 존재하지 않는 라벨들에 대해서도 예측이 가능하며 여전히 빠른 실행 속도를 유지하며 9000개 이상의 object category에 대해 예측한다.
Better: 더 나은 정확성 (Improved Accuracy)
기존 YOLO 모델에 비해 물체 인식의 정확도를 크게 향상시켰다.
- Batch Normalization: YOLOv2는 모든 컨볼루션 레이어에 배치 정규화를 적용하여 학습을 안정화하고, 과적합을 방지하여 모델의 일반화 성능을 높였다. 이 방법은 기존 YOLO 모델에 비해 약 2%의 mAP(mean Average Precision) 향상을 가져왔다.
- High-Resolution Classifier: 모델이 학습 중간에 높은 해상도 이미지를 사용하여 더욱 세밀한 특징을 학습하게 한다. 처음에는 낮은 해상도로 학습을 시작한 후, 네트워크를 높은 해상도로 전환하여 더욱 정교한 특징을 추출하는데, 이러한 접근법은 작은 물체나 세밀한 부분을 더 잘 감지할 수 있게 해준다.
- Anchor Boxes: YOLOv2는 바운딩 박스를 예측하기 위해 앵커 박스를 도입했다. 앵커 박스는 다양한 크기와 비율을 가지는 사전 정의된 박스들로, 이를 통해 다양한 크기의 물체를 더 잘 인식할 수 있으며, 이를 통해 작은 물체나 목잡한 장면에서의 성능을 개선하는데 도움이 되었다고 한다.
- Dimension Clusters: 앵커 박스의 크기와 비율을 설정하기 위해, YOLOv2는 K-평균 클러스터링을 사용하여 학습 데이터에서 가장 자주 나타나는 박스 차원들을 선택했다. 이를 통해 모델이 더욱 최적화된 앵커 박스를 사용할 수 있게 되었고, 바운딩 박스 예측의 정확성이 향상되었다.
Faster: 더 빠른 처리 속도 (Increased Speed)
실시간 물체 인식을 염두에 두고 설계되었으며, 속도와 정확도 간의 균형을 유지하는 데 중점을 두었다:
- Darknet-19: YOLOv2는 새로운 백본 네트워크로 Darknet-19를 도입했는데, 이 네트워크는 19개의 컨볼루션 레이어와 5개의 맥스풀링 레이어로 구성되어 있으며, 경량화된 구조로 인해 연산 속도가 매우 빠르다. Darknet-19는 이미지넷(ImageNet) 데이터셋에서 분류 정확도를 높게 유지하면서도, YOLOv1에서 사용된 모델보다 훨씬 빠른 속도를 보여준다.
- Multi-Scale Training: YOLOv2는 학습 중에 다양한 해상도의 이미지를 사용하여 모델이 다양한 크기와 스케일에 적응할 수 있도록 훈련되었다. 이는 모델이 더 작은 해상도에서도 빠르게 동작할 수 있게 하며, 동시에 높은 해상도에서의 정확도를 유지할 수 있게 한다. 이 접근법은 다양한 해상도의 입력 이미지에서 균형 잡힌 성능을 제공하는 데 기여했다.
Stronger: 더 강력한 확장성과 일반화 능력 (Improved Flexibility and Generalization)
더 강력한 확장성과 일반화 능력을 갖추도록 설계되었다.
- YOLO9000: YOLO9000은 ImageNet과 COCO 데이터셋을 결합하여 9,000개 이상의 클래스를 실시간으로 인식할 수 있는 모델이다. 이는 단순히 더 많은 클래스를 인식할 수 있는 것뿐만 아니라, 새로운 클래스를 더 잘 일반화할 수 있는 능력을 제공한다.
- Hierarchical Classification: YOLO9000은 계층적 분류 체계를 사용하여, 다양한 수준의 클래스에서 물체를 인식할 수 있다. 이를 통해 학습 데이터에 없는 클래스도 더 높은 수준의 계층에서 유사한 클래스로 인식할 수 있게 된다. 예를 들어, "Dog"라는 클래스를 학습했더라도 "불독"이나 "리트리버"와 같은 세부 클래스를 일반화하여 인식할 수 있다.
- WordTree: YOLO9000은 WordTree라는 계층 구조를 활용하여 각 클래스 간의 관계를 정의하고, 클래스별 확률을 조정하여 모델이 더 많은 클래스에서 효과적으로 학습할 수 있도록 한다. 이를 통해 새로운 데이터셋과 클래스에도 쉽게 확장될 수 있으며, 다양한 애플리케이션에서 사용될 수 있는 강력한 유연성을 제공한다.
Conclusion
YOLOv2는 "Better, Faster, Stronger"라는 슬로건에 걸맞게, 물체 인식에서의 정확도, 속도, 확장성을 모두 크게 개선한 모델이다. 이 논문은 YOLO의 기본 철학을 유지하면서도 여러 가지 최적화와 혁신적인 기술을 도입하여, 실시간 물체 인식의 새로운 표준을 제시했으며, 다양한 크기의 물체를 좀 더 효율적으로 인식할 수 있고, 실시간 애플리케이션에서 탁월한 성능을 발휘할 수 있는 모델로 자리 잡았다.
Limitation
YOLOv2는 여러 측면에서 기존 YOLO 모델을 크게 개선했지만, 작은 물체 인식, 복잡한 장면에서의 성능, 앵커 박스 설정의 제약, 다양한 스케일 처리의 한계, 정밀도와 속도 간의 trade off, 그리고 새로운 환경에서의 일반화 능력에서 여전히 한계가 있다.
source code: https://pjreddie.com/darknet/yolo/#google_vignette