[논문 리뷰] YOLOv7

이해성·2023년 6월 15일
0

AI

목록 보기
1/5

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

Introduction

Computer Vision 분야에 속한 Real-time object detection은 모바일 CPU, GPU, NPU를 포함하여 여러가지 프로세서에서 실행되고 있다. 본 연구에서는 edge 단에서 cloud 단까지의 다양한 프로세서들에 대하여 Real-time object dectection의 학습과 실행 성능을 향상시키는데 목적을 두고 있다.

최근의 연구에서 real-time object detection은 각기 다양한 프로세서들에 맞추어 연구되었다. 예를 들어 MCUNet과 NanoDet은 저전력 단일 칩을 이용하는 edge단의 실행(Inference)성능을 향상시키는데 집중하였다. YOLOX와 VOLOR은 다양한 GPU들에서의 실행 속도 향상에 집중하였다. 가장 최근에는 모델의 효율적인 구조(Architecture)에 집중하여 연구되어 왔다. 프로세서 종류에 따른 자주 사용되는 모델 구조의 종류는 다음과 같다.

  • CPU에서 이용되는(학습과 실행 모두?) 모델 구조의 대표적 예시는 MobileNet, ShuffleNet, GhostNet 등이 있다.

  • GPU의 경우 ResNet, DarkNet, DLA, CSPNet 등이 있다.

    본연구에서는 위 예시 모델 구조들과는 다른 방법으로 real-tiem object dector에 접근할 것이다. 구조적인 측면 외에도 본 연구에서는 학습의 최적화에 대해서도 다룬다. 실행 시의 Cost를 늘리지 않으면서 학습 시 Cost를 늘려 예측 정확도를 높이는 방향으로 최적화 한다. 지금까지 제시한 새로운 구조, 최적화 방법들을 'trainable bag-of-freebies'라 일컫는다.

최근 real-time detector 분야에서 model re-parameterization 과 dynamic label assignment가 주요한 화제로 떠올랐다. 본 연구에서는 두 방법에 대하여 몇가지 새로운 이슈들을 소개하고자 한다.

  • 서로다른 network의 계층에 대한 model re-parameterization 전략을 gradient paropagation path 개념을 사용하여 분석하고, planned re-parameterized model을 제시한다.
  • dynamic label assigment을 살펴보면 여러 개의 출력들의 동적인 목적지를 설정하는 문제가 존재하는 것을 알 수 있다. 해당 문제를 본 연구에서는 coasrse-to-fine lead guided label assignment라는 방법을 이용해 해결한다.

    Introduction Summary

    • 실행에 잇어 손실을 끼치지 않고 정확성을 높이는 방법, trainable bag-of-freebies 제시
    • re-parametearized module의 기존 module 대체 방법, 여러 개의 출력에 대한 동적 라벨링 방법 제시
    • extend, compound scaling 방법 제시

Real-time object detectors

현재 대부분의 real-time object detectors 들은 주로 YOLO, FCOS 모델들에 기반한다. 좋은 real-time detectors가 되기 위한 조건은 다음과 같다.

  • 빠르고 강한 network 구조
  • 효율적인 integreation 구조
  • 높은 정확도
  • 알맞은 손실 함수
  • 효율적인 라벨 할당
  • 효율적인 학습

본 연구에서는 마지막 3개의 조건을 다룬다.

Model re-parameterization

model re-parameterization은 각기 다르게 학습된 모델들을 실행 시 합쳐 사용하는 기술을 일컫는다. 이는 주로 module-level과 model-level의 두 계층에 대하여 진행된다. 두 계층에 대한 re-parameterization을 진행함에 있어서 모델 별로 다른 학습 데이터를 사용한다는 점과 WAVG(Weighted AVeraGe)를 사용한다는 점은 동일하다.
최근에는 module 계층에 대한 연구가 더 많이 이루어지고 있다. 이는 하나의 모듈을 서로 다른 여러개의 모듈 branch로 분기시켜 학습 시킨 후 실행시 합쳐 사용하는 기술이다. 기존의 module-level re-parameterization은 범용성이 떨어져, 각 모델 구조에 맞는 re-parameterizaed module들이 통용되지 않았다. 본 연구에서는 여러 모델 구조에서 사용할 수 있는 re-parameterized module을 제안한다.

Model scaling

Model scaling이란 이미 작성된 모델의 크기를 키우거나 줄이는 작업을 의미한다. 입력되는 사진의 크기나, 계층의 수, feature-pyramid의 규모등이 그 대상이다. model scaling을 위한 대표적인 방법이 Nework architecture search(NAS)이다. NAS는 scaling을 자동으로 해주지만 많은 연산량을 필요로 한다. 연산량을 줄이기 위한 연구가 많이 진행되었지만 대부분의 연구들이 factor들간의 상관관계를 고려하지 않고 있다. 이는 NAS가 각각 독립적인 factor들을 이용하기 때문이다. 본 연구에서는

Architecture

Extended efficient layer aggregation networks

효율적인 모델을 만들기 위해선 파라미터들의 개수를 조절해야 한다. 계층간 입력과 출력의 개수를 신경써야한다. CSPVoVNet은 VoVNet의 변형 모델인데, 더 다양한 요소들을 학습 시키기 위해 gradient path를 다변화 했다. 이와 같은 방법은 실행 시 더 빠르고 정확도 높은 결과를 도출한다. ELAN 모델은 가장 길지만 짧은 경로를 이용함으로써 네트워크를 더 깊게 만들고 더 효과적인 학습을 가능케 했다. ELAN은 사진에 보이는 구조에서 안정된 상태를 가진다. 계층을 추가하는 등의 행위는 파라미터들의 이용률을 감소시켜 비효율적이다. Extended ELAN은 이를 해결하기 위해 ELAN에 expand, shuffle, mergre cardinality를 추가한 모델이다. 기존의 모델 구조를 유지하면서 입력을 확장하거나 섞고, 합병하며 파라미터의 학습과 이용이 효율적으로 행해지도록 한다.

Model scaling for concatenation-based models

Trainable bag-of-freebies

Planned re-parameterized convolution

RepConv가 VGG에 대하여 훌륭한 성과를 거두었지만, 이를 ResNet이나 DenseNet과 같은 다른 모델들에 적용하면 좋지 못한 결과가 나온다. RepConv는 3*3 conv와 1*1 conv 그리고 identity connection으로 이루어져 있다. RepConv를 Resnet에 적용하였을 때, identity connection이 residual을 무효화시키는 것을 관찰할 수 있다. 이를 해결하기 위해 identity connection이 없는 RepConv (RepConvN)을 고안했다. 이러한 planned re-parameterized convolution의 성과는 뒤 ablation study를 참고하길 바란다.

Coarse for auxiliary and fine for lead loss

Deep supervison은 deep networks를 학습시키는데 사용되는 방법으로 auxiliary head를 추가하여 얕은 계층 가중치에 대한 loss를 보조해주는 역할을 한다. 이러한 auxiliary의 학습을 위해 사용되는 head를 auxiliary head라 한다. Deep network를 학습시키는데 있어 정답 여부를 결정하는 hard label이 필요하다. YOLO같은 컴퓨터 비전에서는 확률을 나타내는 soft label이 필요하다. ground truth를 기준으로 bounding box regression 예측치와 soft label을 labeling 하는 label assigner가 필요하다.
현재 auxiliary head를 위한 label assigner 연구는 미진하다. 그중 가장 많이 사용되는 방법은 lead와 auxiliary에 대하여 분리된 assigner를 사용하는 방법이다. 본 연구에서는 lead head prediction을 기준 삼아 lead head의 label과 auxiliary head의 label을 lableling 하는 두가지 방법을 제안한다.

Lead head guided label assigner
Lead head의 결과와 ground truth를 바탕으로 Lead head에 대한 soft label을 도출한다. 이를 auxiliary head에도 적용을 시키는데, 이는 lead가 auxiliary에 비해 상대적으로 높은 학습 능력을 가지고 있기 때문이다. 이는 낮은 계층에 auxiliary의 lead head로 부터 직접 학습한 결과가 반영되기에 residual의 효과를 띈다.

Coarse-to-fine lead head guided label assigner
마찬가지로 lead head의 결과와 ground truth를 바탕으로 soft label을 생성한다. 1개 set의 soft label을 생성하는 것이 아니라 2개 sets의 soft label을 생성해 fine 한 것은 lead head에게로, positive grid를 조금 더 허용해 coarse 한 것은 auxiliary에게로 보낸다. 이와 같이 차이를 두는 이유는 auxiliary의 학습 능력이 lead에 비해 떨어지며, 학습해야할 요소를 잃어버리지 않기 위해서다. coarse soft label이 완벽에 가까울수록 학습의 효율이 떨어지는 것을 유념해 positive grid를 조절해야 한다.

Other trainable bag-of-freebies

학습에 사용된 다른 freebies를 소개하겠다. 이 freebies 들은 기존에 존재하던 방법들로 본 연구를 통해 새로 고안한 것이 아니다.

Batch normalization in conv-bn-activation topology
batch 정규화에 사용되는 평균과 분산을 Conv 레이어의 가중치들과 통합한다.
Implicit knowledge in YOLOR combine with convolution featrue map in additionand multiplication manner
YOLOR에서 획득한 내재적 지식(모델의 구조)을 단순화해 하나의 벡터로 나타낸다. 이러한 벡터들은 주변 레이어들의 가중치와 합쳐질 수 있다.

(작성예정)

profile
열심히하겠습니다열심히하겠습니다열심히하겠습니다

0개의 댓글