YOLOv7은 5FPS~160FPS 범위에서 현재까지 알려진 obejct detector와 비교했을 때 speed와 accuracy 측면에서 앞선다. 300FPS이상의 GPU V100에서 56.8%의 accuacy로, all known real-time object detector 중에서 가장 높은 accuracy를 보인다.
YOLOv7는 다른 dataset이나 pre-trained weight를 쓰지 않고, 오직 MS COCO dataset 만으로 학습시켰다. 그럼에도 현존하는 모든 YOLO based-object detector와 여러 transformer-based object dector에 대하여 speed와 accuracy 측면에서 모두 앞선다.
real-time object detection을 수행하는 computing device는 주로 mobile CPU/GPU, NPU를 사용하는 edge device이다.
edge CPU의 inference speed 향상: MCUnet, NanoDet
다양한 GPU의 inference speed 향상: YOLOX, YOLOR
CPU를 사용하는 real-time object detector는 MobileNet, ShuffleNet, GhostNet을 기반으로 한다
GPU를 사용하는 real-time object detector는 (ResNet, DarkNet, DLA)+CSPNet 을 기반으로 한다
trainable bag-of-freebies: training cost를 키우고, inference cost는 유지하는 방식으로 object detection의 성능을 향상시키는 modules과 optimization methods
Model re-parameterization -> gradient propagation path, planned re-parameterized model
Dynamic label assignment -> coarse-to-fine lead guided label assignment
1) Trainable bag-of-freebies -> inference cost 그대로, training cost 증가 -> accuracy 향상
2) Trainable bag-of-freebies
Model re-parameterization -> original module로 대체
Dynamic label assignment -> assignment to different output layer로 다룬다
3) "extend", "compound scaling" -> parameter와 computation을 효율적으로 다룬다
4) 위의 방법으로 SOTA real-time object detector에 대하여 parameter를 40%, computation을 50% 줄이고, inference speed와 detection accuracy을 높일 수 있었다
이를 위해서는 다음 특성을 가지고 있어야 한다.
1) a faster and stronger network architecture
2) a more effective feature integration method
3) a more accurate detection method
4) a more robust loss function
5) a more efficient label assignment method
6) a more efficient training method
module-level ensemble: 동일한 여러 model들을 각각 다른 training data로 학습시켜 weight를 구한 후, 평균을 내는 방식으로 학습한다.
training time 동안 하나의 module을 다수의 같거나/다른 module branch들로 나누고,
inference time 동안 하나의 module로 통합한다.
많이 연구되고 있는 문제
model-level emsemble: 가중치가 고려된 model weight의 평균을 다른 iteration number로 학습시킨다.
expand(group convolution)/shuffle/merge cardinality -> 더 다양한 feature를 학습할 수 있다.
기존의 efficient 구조는 parameter의 개수, computation의 양, coomputation density만을 고려했지만, E-ELAN은 memory access cost, input/output channel ratio, architecture의 branch 개수, element-wise operation 등을 고려하는 것이다.
CSPNet(gradient path) -> 더 다양한 feature를 학습할 수 있도록 함