728x90

YOLO란?

YOLO시리즈는 Object detection 분야에서 많이 사용되고 있는 모델입니다. YOLOV7이 출시되어 부족하지만 해당 논문을 리뷰를 해보려고 합니다.

 

먼저 논문을 리뷰하기전에 YOLO란 뭔지 간단히 설명을 드리면 YOLO란 You Only Look Once라는 약자로 구성이 되어있으며, 다른 모델들에 비해 빠른 처리속도를 지니고 있어서 Real Time Object Detection(실시간 객체탐지)가 가능한 모델입니다.

 

SSD와 같은 하나의 이미지 데이터를 여러개의 이미지 데이터로 나누어 분석하는 것이 아닌, 전체의 이미지를 이용한 Labeling을 통한 학습을 진행하고 예측하기 때문에 배경의 노이즈 부분에서 물체를 인식하는 오류가 발생할 확률이 낮습니다.

 

기존의 YOLO 신경망은 아래와 같습니다. 신경망 구조는 SSD와 같은 모델에 비해 간단한 신경망으로 구성이 되어있는 것을 확인 할 수 있으며, 입력한 이미지 데이터는 7X7X30의 데이터로 변환합니다. 이 셀은 가로세로 7개의 격자로 나뉜 30개의 행렬데이터이며 이 셀을 그리드셀이라고 합니다.

YOLO의 경우 하나의 이미지 데이터를 입력하면 물체들을 찾아 bounding box와 가장 높은 확률의 클래스를 찾은 후 각 그리드셀에서 물체의 확률과 IOU값을 비교해 가장 높은 확률을 가진 클래스를 검출해 해당 그리드셀의 클래스를 확정한다.

 확정된 클래스의 확률이 일정한 값( threshold )이상의 그리드셀을 이용해 bounding box를 그린다. 이 과정은 아래의 사진과 같다.

또한 YOLO가 동작하는 코드의 순서는 아래의 순서대로 진행된다.

 

1. YOLO모델과 해당하는 클래스 목록을 가져온다.
2. detect_image함수를 호출해 process_image함수로 입력한 이미지의 크기를 조정한다.( 입력 데이터는 (416,416,3) 으로 변환. YOLO모델이 학습한 이미지 크기.)
3. 변환된 이미지 데이터를 YOLO모델을 이용해 물체 인식을 시행.
4. 출력된 bounding box에 사용될 데이터와 해당하는 클래스, 클래스의 확률을 출력.
5. box_draw함수로 이미지에 검출된 물체의 크기에 맞게 bounding box를 그리기.

 

YOLO라는 것을 이제 어느정도 알았으니 YOLOV7 논문 리뷰를 시작해봅시다.

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

먼저 YOLOV7에 대해 자세히 알아보기전에 bag-of-freebies라는 이론을 알아야한다.

간단히 설명하면 bag-of-freebies란 inference 중에 추가 계산 비용을 발생시기키 않으면서, 모든 Object Detection Network의 성능을 향상시키기 위해 조합하는 여러가지 기법을 통칭한다.

 

Abstract

논문에 따르면 YOLOv7의 경우 5fps ~ 160fps 범위에서 지금까지 존재하는 모든 object detector의 성능을 능가합니다. GPU V100에서 30fps 이상으로 알려진 모든 object detector 중 가장 높은 정확도인 56.8% AP(average precision)를 가지고 있습니다. 또한, YOLOv7-E6 object detectors는 transformer 기반의 detector인 SWINL Cascade-Mask R-CNN보다 속도면에서 509%, 정확도면에서 2% 뛰어난 성능을 보이고 있으며, convolution 기반의 detector인 ConvNeXt-XL Cascade-Mask R-CNN보다 속도면에서 551%, 정확도면에서 0.7% 뛰어난 성능을 보인다고 합니다.

 

YOLOV7의 경우 MS COCO dataset으로 학습후 검증한 모델입니다.

MS COCO dataset Object Detection 결과

Introduction

Real-Time Object Detection은 Copmuter Vision분야의 중요한 요소로 자리잡고 있습니다.

Real-Time Object Detection을 실행하는 컴퓨터 장치는 CPU, GPU, NPU로 구성합니다. NPU의 경우 Nano, TX2와 같은 jetson AI edge devices(Nvidia), edge TPU(google) 등이 속해 있습니다.

 

 YOLOV7 논문에서 제안된 개발 방향은 현재 많은 모델이 사용하는 Real-Time Object Detection과는 다릅니다. Object Detection의 정확도를 향상시키기 위해 training cost를 강화할 수 있지만, inference cost를 증가시키지 않는 방향으로 최적화된 모듈과 최적화 방법에 초점을 맞추었습니다. 이를 앞에서 설명한 bag-of-freebies라고 합니다.

 

 최근 model re-parameterization과 dynamic label assignment 방법이 네트워크 학습 및 객체 탐지에서 중요한 주제가 되어 왔는데 해당 논문에서는 model re-parameterization을 위해 서로 다른 네트워크 계층에 적용할 수 있는 model

re-parameterization 전략을 분석하고, 모델을 제안했습니다. 또한, dynamic label assignment 기술을 사용하여 multiple output layers로 모델 학습을 할 경우, 문제가 발생하는데 이를 해결하기 위해 새로운 label assignment 방법인 coarse-to-fine lead guided label assignment 방법을 제안했습니다.

 

논문이 제안하는 contributions은 다음과 같습니다.

  1. real-time object detection이 inference cost를 증가시키지 않고도 detection 정확도를 크게 향상시킬 수 있도록 trainable bag-of-freebies 방법을 제안한다.
  2. object detection 방법의 발전을 위해, re-parameterized module이 original module을 대체하는 방법과 dynamic label assignment strategy가 다른 output layers assignment하는 방법에서 발생하는 문제를 해결할 수 있는 방법을 제안한다.
  3. parameters와 computation을 효과적으로 활용할 수 있는 real-time object detector를 위한 'extend' 및 'compound scaling' 방법을 제안한다.
  4. 본 논문에서 제안한 방법들은 SOTA real-time object detector의 약 40%의 파라미터와 50%의 계산을 줄일 수 있으며, inference speed가 더욱 빠르고 detecton 정확도가 더욱 높다.

Related word

1) Real-time object detectors

현재 SOTA real-time object detector는 YOLO와 FCOS를 기반으로 하고있습니다.

SOTA real-time object detector는 다음과 같은 특성을 따릅니다.

  • 보다 빠르고, 강력한 네트워크 아키텍처
  • 보다 효과적인 기능 통합 방법
  • 보다 정확한 detection 방법
  • 보다 robust한 loss function
  • 보다 효율적인 label assignment 방법
  • 보다 효율적인 훈련 방법

 논문에서는 추가 data나 대형 모델이 필요한 self-supervised leaerning이나 knowledge distillation 방법을 쓰지 않으며

대신, 보다 robust한 loss function, 효율적인 label assignment 방법보다 더 효율적인 훈련 방법과 관련된 SOTA 방법에서 파생된 문제에 대해 새로운 trainable bag-of-freebies를 논문에서 제안하고 있습니다.

 

2) Model re-parameterization

Model re-parametrization은 inference 단계에서 multiple computational modules을 하나로 병합한다.

model re-parameterization은 ensemble technique으로 간주할 수 있으며, 이를 module-level ensemble과 model-level ensemble로 나눌 수 있습니다. 

 

최종 inference model을 얻기 위한 model-level reparameterization로는 서로 다른 training data로 동일한 여러 모델을 훈련한 다음, 이 모델들의 가중치를 평균화하는 것과 서로 다른 iteration number에서 모델 가중치의 가중 평균을 취득하여 수행하는 방법들이 있습니다.

 

module-level re-parameterization은 최근 더 인기있는 연구 이슈인데 이 방법은 training 하면서 module을 동일하거나 다른 여러 module branches로 분할하고, inference 하면서 multiple branched modules를 완전히 equivalent module로 통합하는 것이다. 그러나, 제안된 모든 re-parameterized module을 다른 아키텍처에 완벽히 적용할 수 있는 것은 아니다. 

이러한 점을 염두에 두고, 새로운 re-parameterization module과 다양한 아키텍처 관련 application strategies를 제안한다.

 

3) Model scaling

Model scaling은 이미 설계된 모델을 scale up 또는 scale down하여 다양한 computing devices에 적합하게 만드는 방법이다. model scaling 방법은 일반적으로 network parameters, computation, inference speed, accuracy에 대한 균형을 맞추기 위해 resolution(size of input image), depth(number of layer), width(number of channel), and stage(number of feature pyramid)와 같은 다양한 scaling factors를 사용한다.

 

Network architecture search(NAS)는 일반적으로 사용되는 model scaling method 중 하나이다. NAS는 복잡한 규칙을 정의하지 않고도 search space에서 적절한 scaling factors를 자동으로 찾을 수 있다. 그러나, NAS의 단점은 model scaling factors를 찾기위해 하는 계산(Cost)이 너무 비싸다는 것이다. 

 

researcher는 scaling factors와 parameters, operation의 양 사이의 관계를 분석해서, 일부 규칙들을 직접 추정하여 model scaling에 필요한 scaling factors를 구한다. 논문의 내용에 따르면, 대부분의 model scaling method가 scaling factor를 독립적으로 분석하며, compound scaling category 방법조차도 scaling factor를 독립적으로 최적화하는 것을 알 수 있다.

그 이유는, 대부분 인기있는 NAS 아키텍처가 별로 상관 관계가 없는 scaling factor를 다루기 때문이다.

 

 DenseNet 또는 VoVNet과 같은 concatenation기반의 모델들이 scaling 될 때 일부 layer들의 입력 폭을 변경한다는 것을 알고있고, 해당 아키텍처는 concatenation 기반이기 때문에, 이 모델에 대한 새로운 compound scaling method를 설계해야 한다. 

 

Architecture

1) Extended efficient layer aggregation networks

효율적인 아키텍처 설계에 관한 대부분의 논문에서 주로 고려해야할 사항은  parameter의 개수, computation양, computational density라고 말합니다. 메모리 접근 cost를 감소하는 특성에서부터 입출력 채널 비율, 아키텍처 분기 수, 네트워크 추론 속도에 대한 영향을 분석했다.

 

추가적으로 activation에서 model scaling을 수행할 때, convolutinoal layers의 출력 tensor 요소 수를 고려해야한다. 아래 그림2 (b)의 CSPVoVNet은 그림2 (a)인 VoVNet을 변형시킨 구조이다. 앞서 언급한 기본적인 설계 문제를 고려할 뿐만 아니라, CSPVoVNet의 아키텍처가 다양한 layer의 가중치로 더 다양한 기능을 학습할 수 있도록 gradient path도 분석한다. 위에서 설명한 gradient analysis approach는 추론을 더 빠르고 정확하게 한다. 

 

그림2 (c)의 ELAN은 '효율적인 네트워크를 설계하는 방법이 무엇인가?' 를 고려한 모델이다. ELAN의 경우 다음과 같은 결론에 도달할 수 있는데 가장 짧고, 가장 긴 gradient path를 제어함으로써, deeper network가 효과적으로 학습하고 수렴할 수 있다. 논문에서는 ELAN을 기반으로 한 확장모델인 E-ELAN을 제안하며, 주요 아키텍처는 그림2 (d)에 나와 있다. large scale ELAN에서는 computational blocks의 스택 수와 gradient path 길이와 관계없이 안정적인 상태에 도달하였다. 더 많은 computation block들이 무제한으로 쌓인다면, 이 안전한 상태가 파괴될 수 있고, parameter 이용률이 낮아질 수 있다. 제안된 E-ELAN은 expand, shuffle, merge cardinality를 사용해서 original gradient path를 파괴하지 않고, 네트워크의 학습 능력을 지속적으로 향상시킬 수 있다.

 

 아키텍처 측면에서, E-ELAN은 computational block의 아키텍처만 변경하는 반면, transition layer의 아키텍처는 완전히 변경되지 않는다. 이러한 전략은 group convolution을 사용하여 computational block들의 채널과 카디널리티를 확장하는 것이다. computational layer의 모든 computational block들에 동일한 group parameter와 channel multiplier를 적용하고, 각 compuational block에 의해 계산된 feature map은 설정된 parameter g에 따라 g group으로 섞인 다음, 함께 연결된다.

 

 이 때, feature map의 각 그룹의 채널 수는 원래 아키텍처의 채널 수와 같을 것이다. 마지막으로, merge cardinality를 수행하기 위해 feature map의 g group을 추가한다. E-ELAN은 original ELAN 설계 아키텍처를 유지하는 것 이외에도 다양한 computational block group을 안내하여 보다 다양한 기능을 학습할 수 있다.

 

그림 2

 

2) Model scaling for concatenation-based models

model scaling의 주요 목적은 모델 일부 속성을 조정하고, 서로 다른 inference speed 요구를 충족하기 위해 다양한 scale의 모델을 생성하는 것이다. 예를 들어, EfficientNet의 경우 scaling model은 너비, 깊이, 해상도를 고려했다.

scaling된 YOLOv4의 경우, stage 수를 조정하였다. 이러한 방법들은 주로 PlainNet이나 ResNet과 같은 아키텍처에서 사용된다.

 

 이러한 아키텍처가 scale up 또는 scale down을 실행할 때, 각 layer의 in-degree 및 out-degree는 변경되지 않으므로 scaling factor가 parameter의 양과 computation에 미치는 영향을 독립적으로 분석할 수 있다. 그러나, 이러한 방법들을 concatenation기반의 아키텍처에 적용한다면, scaling up 또는 scaling down을 깊게 수행할 때, 그림 3 (a), (b)와 같이 concatenation-based computational block 다음에 있는 tranlation layer의 in-degree가 감소하거나 증가하는 것을 볼 수 있다.

 

 위의 현상을 통해, concatenation-based model은 서로 다른 scaling factors를 별도로 분석할 수 없고, 함께 고려해야 한다.  예를 들어, scaling-up depth는 transition layer의 입력 채널과 출력 채널 사이의 비율 변화를 유발하여 모델의 하드웨어 사용량을 감소시킬 수 있다. 따라서, concatenation-based model에 해당하는 compound model scaling method를 제안해야 한다.

 

 computational block의 depth facor를 조정할 때, 해당 block의 출력 채널의 변화를 계산해야 한다. 그 다음, transition layer에 대해 동일한 변화량으로 width factor scaling을 수행할 것이며, 그 결과는 그림 3 (c)에 나타나 있다. 이렇게 제안한 compound scaling method는 초기 설계 시 모델이 가지고 있던 특성을 유지하고, 최적의 구조를 유지할 수 있다.

 

그림 3

 

 

Trainable bag-of-freebies

1) Planned re-parameterized convolution

RepConv는 VGG에서 우수한 성능을 달성했지만, ResNet 및 DenseNet 및 기타 아키텍처에 직접 적용하면 정확도가 크게 저하된다. 따라서, gradient flow path를 사용하여 re-parameterized convolution이 다른 네트워크와 결합하는 방법을 분석한다. 또한, re-parameterized convolution도 설계하였다.

 

RepConv는 실제 3 x 3 convolution, 1 x 1 convolution, identity connection을 하나의 convolutional layer에 결합한다. RepConv와 다른 아키텍처의 조합 및 해당 성능을 분석한 후, RepConv의 identity connection이 ResNet의 잔차와 DenseNet의 연결을 파괴하여 다양한 feature map에 더 다양한 gradient를 제공한다는 것을 발견하였다. 이러한 이유로, RepConv without identity connection(RepConvN)을 사용하여 planned re-parameterized convolution의 아키텍처를 설계한다.

 

 여기서 residual 또는 concatenation이 있는 convolutional layer가 re-parameterized convolution으로 대체될 때, identity connection이 없어야 한다. 아래 그림 4는 PlainNet 및 ResNet에서 사용되는 "planned re-parameterized convolution"의 예를 보여준다. 이는 residual-based model과 concatenation-based model에서 planned re-parameterized convolution 실험은 ablation study(모델이나 알고리즘의 feature 들을 제거하면서 그것이 성능에 어떤 영향을 줄지 연구하는 것) 에서 나올 것이다.

그림 4

2) Coarse for auxiliary and fine for lead loss

Deep supervision은 deep network를 훈련하는데 자주 사용되는 기술이다. 이것은 네트워크의 중간 계층에 auxiliary head를 추가하고, assistant loss을 가이드로하는 얕은 network 가중치를 추가하는 것이다. 

 

 일반적으로 잘 수렴하는 ResNet 및 DenseNet과 같은 아키텍처의 경우에도, deep supervision은 여전히 많은 task에서 모델의 성능을 크게 향상시킬 수 있다. 그림 5 (a)와 (b)는 각각 deep supervision이 없는 object detector 아키텍처와 deep supervision이 있는 object detector 아키텍처를 보여준다. 논문에서는 최종 출력을 담당하는 헤드를 lead head라고 하며, 학습을 보조하는데 사용되는 헤드를 auxiliary head라고 한다.

 

과거에는 deep network 학습에서 레이블 할당은 일반적으로 ground truth를 직접 참조하고, 주어진 규칙에 따라 hard label을 생성하였다. 그러나 최근 몇 년 동안, object detection에서 네트워크에 의한 예측 출력의 품질과 분포를 사용한 다음 ground truth와 함께 몇 가지 계산 및 최적화 방법을 사용해서 신뢰할 수 있는 soft label을 고려한다. 

 

 논문에서는 네트워크 예측 결과를 ground truth과 함께 고려한 다음, soft label을 할당하는 매커니즘을 "label assigner"라고 한다. deep supervision은 auxiliary hear 또는 lead head의 상황에 관계없이 목표에 대한 학습을 할 필요가 있다. soft label assigner 관련 기술을 개발하는 동안, 우연히 새롭게 파생된 "auxiliary head와 lead head에 soft label을 할당하는 방법"을 발견했다. 지금까지 관련 문헌들은 이 문제를 탐구하지 않았다.

 

 현재 가장 인기 있는 방법의 결과는 그림 5 (c)와 같이 auxiliary head와 lead head를 분리한 후, 자체 예측 결과와 ground truth를 이용하여 label assignment를 실행하는 것이다. 논문에서 제안된 방법은 lead head 예측에 의해 auxiliary와 lead head 모두를 안내하는 새로운 label assignment 방법이다. 다시 말해서, auxiliary head 및 lead head에 사용되는 coarse-to-fine hierarchical labels을 생성하기 위해 lead head를 지침으로 삼는다. 제안된 두 가지 deep supervision label assignment strategy는 각각 그림 5 (d)와 (e)에 나와 있다.

 

 lead head guided label assigner는 주로 lead head와 ground truth의 예측 결과를 기반으로 계산되고, 최적화 프로세스를 통해 soft label을 생성한다. 이러한 soft label set은 auxiliary head와 lead head 모두에 대한 target training model로 사용된다. 이렇게하는 이유는, lead head가 상대적으로 학습 능력이 강하기 때문에, soft label이 source data와 target 간의 상관 관계를 더 잘 나타나게 하기 위함이다. 그러한 학습을 일종의 generalized residual learning으로 볼 수 있다.

 

shallower auxiliary head가 lead head가 학습한 정보를 직접 학습할 수 있게 함으로써, lead head는 아직 학습되지 않은 residual information을 학습하는데 더욱 집중할 수 있게 된다. Coarse-to-fine lead head guided label assigner는 lead head와 ground truth의 예측 결과를 사용하여 soft label을 생성하였다. 그러나, 그 과정에서 두 가지 다른 soft label인 coarse label과 fine label을 생성한다. 그 이유는 auxiliary head의 학습 능력이 lead head에 비해 강하지 않기 때문이며, 학습해야 할 정보가 손실되지 않도록 object detection task에서 auxiliary head의 recall 최적화에 중점을 둘 것이기 때문이다.

 

 lead head의 출력은 최종 출력으로 높은 recall 결과를 필터링할 수 있다. 그러나, coarse label의 추가 가중치가 fine label에 가까울 경우, 최종 예측에서 bad prior가 발생할 수 있다는 점을 유의해야한다. 따라서, 이러한 extra coarse positive grid가 영향을 덜 받도록 하기 위해, decoder에 제한을 두고 extra coarse positive grid가 soft label을 완벽하게 생성할 수 없도록 했다. 이러한 매커니즘을 통해 fine label과 coarse label의 중요성이 학습 과정 중에서 동적으로 조정되도록 하고, fine label의 optimizable upper bound를 coarse label보다 항상 높게 만든다.

그림 5

 

3) Other trainable bag-of-freebies

훈련할 때, 3가지의 추가적인 bag-of-freebies를 사용하였다.

  1. conv-bn-activation topology의 배치 정규화는 주로 batch normalization layer를 convolutional layer에 직접 연결한다. 이 목적은 batch normalization의 평균과 분산을 inference stage에서 convolutional layer의 bias와 weight로 통합하는것이다.
  2. convolution feature map과 결합된 YOLOR의 Implicit knowledge는 inference stage에서 pre-computing을 통해 벡터로 단순화시킬 수 있다. 이 벡터는 이전 혹은 다음 convolutional layer의 bias 및 가중치와 결합될 수 있다.
  3. 최종 inference model로 EMA 모델을 사용한다.

 

 

Experiments

1) Experimental setup

Microsoft COCO dataset을 이용하여 실험을 수행하고, object detection method를 검증하였다. 이 모든 실험은 pre-trained model을 사용하지 않았다. 즉, 모든 모델은 처음부터 학습하였다. 개발 과정 동안, 학습하기 위해 train 2017 set을 사용하였고, 검증 및 하이퍼파라미터 선택을 위해 val 2017 set을 사용하였다. 마지막으로, test 2017 set에서 object detection의 성능을 보여주고, SOTA object detection algorithm과 비교하였다.

 

edge GPU, normal GPU, cloud GPU의 기본 모델을 설계하였다. 이들은 각각 YOLOv7 tiny, YOLOv7, YOLOv7-W6으로 불린다. 또한, 다양한 서비스 요구사항에 대한 model scaling한 기본 모델을 사용하고, 다양한 유형의 모델을 제공한다.

YOLOv7의 경우, neck에 stack scaling을 하고, 제안된 compound scaling method를 사용하여 전체 모델의 깊이와 폭을 scaling-up하고, 이를 사용하여 YOLOv7-X를 얻는다.

 

YOLOv7-W6의 경우, 새롭게 제안된 compound scaling method를 사용하여 YOLOv7-E6과 YOLOv7-D6을 얻는다.

YOLOv7-tiny는 edge GPU 지향 아키텍처이기 때문에, leaky ReLU를 활성화 함수로 사용할 것이다.

다른 모델의 경우, 활성화 함수로써 SiLU를 사용한다. 

 

2) Baselines

YOLO의 이전 버전과 SOTA object detector YOLOR을 baseline으로 선택한다. 표1은 제안된 YOLOv7 모델과 동일한 설정으로 학습된 baseline의 비교를 보여준다. 결과를 통해 YOLOv4와 비교할 경우, YOLOv7은 parameter가 75% 감소하고, 계산이 36% 줄었으며, AP가 1.5% 더 높은 것을 볼 수 있다. SOTA YOLO-CSP와 비교할 때, YOLOv7은 parameter가 43% 적고, 연산이 15% 적으며, AP가 0.4% 더 높다. 작은 모델의 성능에서는, YOLOv4-tiny-31과 비교하면, YOLOv7은 parameter 수를 39% 줄이고, 계산양을 49% 줄였지만 같은 AP를 유지한다. cloud GPU 모델에서, 이 모델은 parameter 수를 19% 줄이고, 계산량을 33% 줄이면서, 여전히 더 높은 AP를 가질 수 있다.

표 1

 

3) Comparison with state-of-the-arts

제안된 방법과 general GPU와 mobild GPU에 대한 SOTA object detector를 비교하고, 그 결과를 표2에 나타내었다. 표2의 결과로부터 제안된 방법이 전체적으로 최고 속도 및 정확성 trade-off를 가지고 있다는 것을 알 수 있다.

YOLOv7-tiny-SiLU를 YOLOv5-N과 비교하면, AP에서 10.7% 더 정확하고, 127fps가 더 빠르다. 또한 YOLOv7은 161fps에서 51.4% AP를 가지고 있는 반면, PPYOLOE-L은 78fps에서 같은 AP를 가지고 있다. parameter 사용 측면에서, YOLOv7은 PPYOLOE-L보다 41% 적게 사용한다.

114fps inference speed를 가진 YOLOv7--X와 99fps inference speed를 가진 YOLOv5-L을 비교하면, YOLOv7-X가 3.9%의 AP가 향상되었다. YOLOv7-X를 비슷한 규모의 YOLOv5-X와 비교하면, inference speed는 YOLOv7-X가 31fps 빠르다. 또한, parameter와 계산량 측면에서, YOLOv7-X는 YOLOv5-X에 비해 parameter의 22%, 연산의 8%를 감소시키지만, AP는 2.2% 향상됨을 볼 수 있다.

입력 해상도 1280을 사용하여 YOLOv7와 YOLOR을 비교해보면, inference speed는 YOLOv7-W6이 YOLOR-P6보다 6fps 빠르고, detection rate도 1% AP가 증가했다.

YOLOv7-D6은 YOLOR-E6에 가까운 inference speed를 가지지만, 0.8% AP가 높다. 

YOLOv7-E6은 YOLOR-D6에 가까운 inference speed를 가지지만, 0.3% AP가 높다.

표 2

 

 

Conclustions

본 논문에서는 real time object detector의 새로운 아키텍처와 model scaling method를 제안한다. 또한, object detection method의 진화하는 과정이 새로운 연구 주제를 생성한다는 것을 발견하였다. 연구 과정에서 re-parameterized module의 교체 문제와 동적 레이블 할당 문제를 발견하였다. 이러한 문제를 해결하기 위해, object detection의 정확도를 향상시키는 trainable bag-of-freebies method를 제안한다. 위 내용을 바탕으로, SOTA object detection 시스템인 YOLOv7 시리즈를 개발했다.

Reference

https://durian9s-coding-tree.tistory.com/136

 

YOLO ( You Only Look Once )란 무엇인가

YOLO란 You Only Look Once의 약자로, 다른 모델들에 비해 빠를 처리속도를 보여 실시간으로 객체탐지가 가능하다. SSD와 같이 하나의의 이미지 데이터를 여러개의 이미지 데이터로 나누어 분석하는것

durian9s-coding-tree.tistory.com

https://arxiv.org/abs/2207.02696

 

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

YOLOv7 surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS and has the highest accuracy 56.8% AP among all known real-time object detectors with 30 FPS or higher on GPU V100. YOLOv7-E6 object detector (56 FPS

arxiv.org

https://inni-iii.tistory.com/50

 

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

paper : https://arxiv.org/abs/2207.02696 github : https://github.com/WongKinYiu/yolov7 YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors YOLOv7 surpasses all known object detectors in both speed and accuracy in the

inni-iii.tistory.com

 

728x90

+ Recent posts