이전 YOLO9000 논문 리뷰 : 2023.01.06 - [Paper Review] - [Paper Review] YOLO9000:Better, Faster, Stronger
[Paper Review] YOLO9000:Better, Faster, Stronger
이전 YOLO 논문 리뷰 : 2022.11.22 - [Paper Review] - [Paper Review] YOLO [Paper Review] YOLO 이전 Faster R-CNN 리뷰 : 2022.11.18 - [Paper Review] - [Paper Review] Faster R-CNN [Paper Review] Faster R-CNN 이전 Fast R-CNN 리뷰 : 2022.11.16 - [Pa
josh3255.tistory.com

이번에 리뷰할 논문은 YOLOv3이다. 저자가 소개에서 언급하듯 이번 YOLOv3는 마감 기한일이 빠듯해서 급하게 Tech Report 형태로 작성한 논문입니다. YOLOv3는 RetinaNet을 제외한 이전 연구들에 비해서 빠른 속도와 강력한 성능을 보여주었으며, mAP@.5에 대해서는 RetinaNet과 비슷한 성능을 보여줍니다.
논문의 실험은 주로 다른 논문들에서 적용된 기법들을 이전 YOLO9000에 적용하는 방식으로 진행되었습니다.
The Deal
1. Bounding Box Prediction

논문의 저자는 경계상자의 추론에 있어서 다른 논문들과 같이 앵커박스를 이용하여
손실함수 계산은 예측하는 모든 상자가 아닌 Ground Truth와 가장 높은 IOU를 보이는 1개의 경계상자에 대해서만 연산을 수행했다고 합니다.
2. Class Prediction
논문에서는 Multil-abel Classification을 사용하여 경계상자의 클래스를 예측한다. 이 때 더 나은 성능을 위해 소프트맥스를 사용하지 않고 binary cross entropy를 사용하는 독립적인 로지스틱 분류기를 사용하였다. 소프트맥스를 사용하지 않은 이유는 예측한 상자가 하나의 클래스만을 가지고 있지 않기 때문이라고 한다. (여자, 사람과 같이)
3. Predictions Across Scales & Feature Extractor
YOLOv3는 FPN과 유사한 방식을 사용하여 3개의 다른 크기에 대해서 상자를 예측한다. 이를 위해 기본 특징 추출기에 몇 개의 컨볼루션 레이어를 추가하고 최종적으로 bounding box offsets, 1 objectness, 80 class predictions를 위한

3개의 서로 다른 크기의 특징맵은 3개의 컨볼루션 레이어에서 추출하며, 추출한 특징맵을 concatenation하여 결과를 예측한다. 이런 식으로 여러개의 특징맵을 결합할 경우 더 세분화된 정보를 얻을 수 있다고 한다.
4. Training
YOLOv3는 hard negative mining (negative sample을 학습 용도로 모으는 것) 같은 기법을 사용하지 않고 multi-scale training, data augmentation, batch normalization과 같은 표준적인 방식들을 사용하여 네트워크를 학습하고 테스트 했다고 한다.
Things We Tried That Didn’t Work
YOLOv3는 성능 향상을 위해 다양한 방법들을 적용했지만 몇 가지 방법들은 오히려 모델의 안정성이나 mAP를 떨어뜨렸다.
1. Anchor Box
YOLOv3는 다른 네트워크처럼 앵커 박스에서 오프셋을 예측하는 방식에 대해 시도해봤지만 잘 동작하지도 않고 모델의 안정성 또한 떨어뜨렸다고 한다.
2. Linear
YOLOv3는 로지스틱 활성화 대신에 선형 활성화를 이용해
3. Focal Loss
논문의 저자들은 YOLOv3에 Focal Loss를 적용했을 때 오히려 mAP가 떨어졌다고 언급하면서 그 이유로 YOLOv3가 separate objectness predictions, conditional class predictions에 강인하기 때문이라고 추측한다.
4. Dual IOU thresholds and truth assignment
YOLOv3는 Faster R-CNN처럼 학습과정에서 2개의 IOU를 사용해 0.7을 넘는 경우에는 positive sample, 0.3 이하는 negative sample, 사이값은 제외하는 식으로 학습했지만 결과는 좋지 않았다고 한다.
다음글에서는 YOLOv4에 대해서 리뷰하겠습니다.