yusukaid's IT note

[논문 리뷰]YOLO v7: Trainalbe bag-of-freebies sets new state-of-the-art for real-time object detectors 본문

논문 리뷰

[논문 리뷰]YOLO v7: Trainalbe bag-of-freebies sets new state-of-the-art for real-time object detectors

yusukaid 2022. 7. 19. 16:20

논문 출처: https://arxiv.org/pdf/2207.02696.pdf

Abstract

YOLO v7은 5~160fps 범위의 속도와 정확도 면에서 object detector를 능가하는 모델입니다. V100 GPU에서 30fps 이상의 알려져있는 실시간 오브젝트 검출과 중에서 가장 높은 정확도인 56.8%의 성능을 보입니다. YOLO v7-E6은 transformer 기반 검출 모델인 SWIN-L Cascade-Mask R-CNN 보다 속도는 509%, 정확도는 2%를 능가하며, convolution 기반 검출 모델인 ConvNext-XL Cascade-Mask R-CNN 보다 속도는 551%, 정확도는 0.7% 앞섭니다. 우리는 MS COCO 데이터셋을 통해 pre-train을 했습니다.


Conclusion

 이 논문에서 우리는 실시간 오브젝트 검출과 scaling 방법의 새로운 아키텍쳐를 목표로 하고 있습니다. 더 나아가서, 우리는 새로운 연구 주제인 오브젝트 검출의 진화 process도 찾고 있습니다. 연구 과정에서, 우리는 label 과제에 대한 할당량 문제와, 파라미터 대체 문제도 발견했습니다. 그 문제를 해결하기 위해서, 우리는 오브젝트 검출 향상을 위해 학습가능한 bag-of-freebies 기법을 도입했습니다. 그렇기 때문에 YOLO v7을 개발하게 된 것이고, 아트워크 문제에도 도달할 수 있게 됐습니다.


Introdution

실시간 오브젝트 검출은 컴퓨터 비전에서 중요한 주제입니다. 최근 들어서는 re-parameterization 모델과 dynamic label assignment 기법들이 네트워크 학습과 오브젝트 검출에서 급부상했습니다. 따라서 우리도 re-parameterization 전략을 gradient propagation path로 분석하고, planned re-parameterized model을 목표로 하고 있습니다. 게다가, dynamic label assignment 기법을 적용해 모델을 학습시킬 때, "서로 다른 분기의 output에 어떻게 dynamic target을 접목 시키는가?"하는 문제가 발생합니다. 이를 해결하기 위해 multiple output layers가 있는 모델에 dynamic label을 할당하는 coarse-to-fine lead guided label assignment 방법을 제안합니다.

본 논문의 contribution은 총 4개이며, 다음과 같습니다.

  1. 실시간 오브젝트 검출이면서 infernce를 증가시키지 않고도 정확도를 향상 시킬 수 있는 trainable bag-of-freebies 기법 제시
  2. re-paramaterization이 original 모듈을 대체하는 방법과 different output layers에 대한 dynamic label assigment stratgy 방법 등을 제안
  3. parameter 계산을 효과적으로 활용할 수 있는 실시간 오브젝트 검출의 발전과 compound scaling 제안
  4. 본 논문에서 제안한 기법들은 SOTA보다 파라미터 수를 40%, 계산양을 50% 감소 시킬 수 있으며, inference 시간이 더 빠르고 더 높은 정확도를 보임

Architecture


Extended efficient layer aggregation networks

위 (c)는  "어떻게 효과적인 네트워크를 디자인 할 것인가?"에 대한 질문을 고려한 모델입니다. 여기서 짧고 긴 gradient path를 제어함으로 써 더 깊은 네트워크가 효과적으로 학습하고 수렴할 수 있게 합니다. 그래서 (d) Extended-ELAN이 만들어진 것입니다. 이때 gradient path length와 computainal block의 스택 수와 상관 없이 stable state에 도달이 가능합니다. computainal block 더 많이 쌓이면 균형이 무너지며 parameter utilization rate가 감소합니다.

제안된 E-ELAN은 expand, shuffle, merge cardinality를 사용하여 original gradient path를 파괴하지 않고 network의 학습 능력을 지속적으로 향상시킬 수 있습니다. 아키텍쳐 측면에서 E-ELAN은 computational block의 아키텍쳐만 변경하는 반면 transition layer의 아키텍쳐는 변경되지 않습니다. 이러한 방법은 group conv를 사용하여 computational block의 channel과 cardinality를 확장하는 것입니다. computational layer의 모든 block에 동일한 group parameter와 channel multiplier를 적용하고, 각 computational block에서 계산된 feature map은 설정된 parameter g에 따라 group으로 묶인 다음 함께 연결됩니다. 이 때 각 feature map group의 channel 수는 원래 아키텍쳐 수와 동일합니다. 마지막으로 merge cardinality를 수행하기 위해 g개의 feature map group을 추가합니다. 


Model scaling for concatenation-based models

모델 scaling의 주된 목적은 모델의 일부 속성을 조정하고 inference 시간의 요구를 충족하기 위한 다양한 scale의 모델을 생성하는 것입니다. 예를 들자면 EfficientNet의 sclaing model은 너피, 깊이, 해상도를 고려했습니다. 그리고 YOLO v4는 영역 수를 조정했습니다. 이런 방법들은 PlainNet, ResNet과 같은 아키텍처에서 사용되나, scaling 또는 scaling down을 실행할 때 각 레이어의 in-degree 및 out-degree는 변경되지 않으므로 scaling 요소가 parameter와 computation에 미치는 영향을 분석할 수 있습니다. 

하지만 이런 기법을 concatenation-based architecture에 적용하면 scaling up or down을 수행할 때 concatenation-based computation block 다음에 있는 translation layer의 in-degree가 위 그림 (a)와 (b)처럼 감소하거나 증가합니다.

그렇기 때문에 concatenation-based 모델의 경우 서로 다른 scale factor를 별도로 분석할 수 없고 같이 고려해야 합니다. 예를 들어 scaling-up depth는 transition layer의 입력 채널과 출력 채널 간의 scale 변경을 일으키므로 모델의 하드웨어 사용량을 감소시킬 수 있습니다. 따라서 우리는 concatenation-based model을 위한 compound model scaling method을 제안합니다. computational block의 depth factor를 조정할 때도 해당 block의 출력 채널 변경도 계산해야합니다. 그 다음 transition layer에 동일한 변화량으로 width factor scaling를 수행합니다. 그 결과는 위 그림 (c)에 나타나 있습니다. 


Trainable bag-of-freebies


Planned re-parameterized convolution

RepConv는 Visual Geometry Group에서 우수한 성능을 달성했지만 ResNet, DenseNet 및 기타 아키텍쳐에 직접 적용하면 정확도가 크게 떨어집니다. 따라서 re-parameterized convolution을 다른 네트워크와 결합하기 위해서 gradient flow propagation path를 사용하며, planned re-parameterized convolution을 설계했습니다. 

RepConv는 실제로 3x3 convolution, 1x1 convolution 및 identity connection을 하나의 convolutional layer에 결합합니다. RepConv와 다른 아키텍처의 조합 및 해당 성능을 분석한 후 RepConv의 identity connection이 ResNet의 잔차와 DenseNet의 연결을 파괴하여 different feature maps에 대해 더 다양한 gradient를 제공한다는 것을 발견했습니다.

 

따라서 본 논문에서는  RepConv with-out identity connection (RepConvN)을 사용하여 planned reparameterized convolution의 아키텍쳐를 설계합니다. 여기서 residual 또는 concatenation이 있는 conv layer가 re-parameterized  convolution로 대체될  때 identity connection이 반드시 존재해야 합니다. 아래 그림은 PlainNet 및 ResNet에서 사용되는 "planned re-parameterized convolution" 예시를 보여줍니다.


Coarse for auxiliary and fine for lead loss

본 논문에서는 최종 output을 담당하는 head를 lead head라 하고, 학습을 보조하는데 사용되는 head를 auxiliary head라고 정의합니다. 과거에는 deep network trained에서 label assignment가 일반적으로 실제 GT를 직접 참조하고 주어진 규칙에 따라 hard label을 생성했습니다. 그러나 지난 몇 년동안 객체검출 연구에서는 네트워크에 의한 prediction output의 품질과 분포를 사용한 다음 ground truth와 함께 몇 가지 계산 및 최적화 방법을 사용하여 신뢰할 수 있는 soft label을 고려했습니다. 우리는 네트워크 예측 결과를 GT와 함께 고려하여 soft label을 할당하는 메커니즘을 “label assigner.”라고 했습니다. auxiliary head 또는 lead head와 상관없이 Deep supervision이 필요합니다. 

여기서 Lead Head Guided Label Assigner는 주로 lead head의 예측 결과와 정답 영역을 기반으로 계산되며 최적화 과정을 통해 Soft Label을 생성합니다. 이 Soft Label Setauxiliary head 또는 lead head 모두에 대한 target training mode로 사용됩니다. 이렇게 하는 이유는 lead head가 상대적으로 강력한 학습 능력을 가지고 있기 때문에 생성된 Soft Label이 더 잘 대표되어야 하기 때문입니다. 또한 이러한 학습을 일종의 generalized residual learning으로 볼 수 있습니다. shallower auxiliary head는 lead head가 학습한 정보를 직접 학습하게 함으로써 lead head는 아직 학습되지 않은 learning residual information에 더 집중할 수 있습니다.

Coarse-to-fine lead head guided label assignerlead head와 GT의 예측 결과를 사용하여 Soft Label을 생성했습니다. 우리는 이 과정에서 두 개의 다른 soft label(coarse label and fine label)을 생성합니다. auxiliary head의 학습 능력이 lead head만큼 강하지 않기 때문이며, 학습해야 할 정보를 잃지 않기 위해 객체에서 auxiliary head의 recall 최적화에 중점을 두게 됩니다. 이는 학습 과정에서 coarse label과 fine label의 importance가 동적으로 조정되도록 하고, fine label의 optimizable upper bound을 coarse label보다 항상 높게 합니다.


Experiments

YOLO의 각 버전별 비교 테이블과 그래프입니다. 전반적으로 YOLO v7이 더 강력하다는 것을 확인할 수 있습니다.