Depuis que l'auteur de yolov3 s'est retiré de la mise à jour de l'algorithme yolo, mais n'a pas cessé d'améliorer yolo. En 2020, yolov4 a été publié et confirmé par l'auteur original. Dans l'article yolov4, de nombreuses expériences d'ablation ont été réalisées à des fins de comparaison, en utilisant de nombreuses stratégies d'entraînement, et la précision a été considérablement améliorée par rapport à yolov3.
Adresse de téléchargement papier : https://arxiv.org/pdf/2004.10934
Adresse du code papier : https://github.com/AlexeyAB/darknet
1. Introduction
Examinons d'abord la valeur AP de yolov4 sur l'ensemble de données coco, qui garantit la vitesse et mentionne la progression. Par rapport à yolov3, la valeur AP a augmenté de près de 10 %. On peut voir que l'effet de yolov4 est très bon. Par rapport à efficientDet, bien que la précision soit faible, il la dépasse de loin en vitesse et peut obtenir l'effet de réel -détection de temps.
Quelles améliorations yolov4 a-t-il apportées pour rendre son effet si évident ? De même, nous analysons d'abord l'architecture du réseau, la stratégie de formation et le traitement des données. Tout d'abord, en termes d'architecture réseau, le backbone utilise CSPDarknet53, la partie cou utilise la fusion de fonctionnalités PAN, la tête est similaire à yolov3 et utilise une sortie de convolution 1x1. BoF et BoS sont utilisés dans la stratégie de formation. BoF consiste à améliorer le réseau sans augmenter le coût du réseau lui-même, c'est-à-dire l'amélioration des données. BoS consiste à modifier l'architecture du réseau et à ajouter des modules au réseau pour améliorer les capacités du réseau.
2. Architecture réseau
2.1colonne vertébrale:
Pourquoi utiliser CSPDarknet53 ? L'auteur a fait des expériences. Parmi eux, CSPDarknet53 présente des avantages dans la détection, c'est-à-dire qu'il a une forte capacité d'extraction de caractéristiques, et en même temps, il a un grand champ récepteur et un grand nombre de paramètres, ce qui a une forte capacité d'apprentissage pour le modèle.
Dans le même temps, le module SPP est ajouté à CSPDarknet53, afin d'étendre davantage le champ réceptif du réseau et de réduire la perte d'informations.
2.2 cou et tête :
Dans la partie cou, le FPN dans yolov3 n'est pas utilisé, mais PANet est utilisé comme méthode d'agrégation de paramètres, où a est FPN, et la somme de a et b est PAN. Par rapport à FPN, un autre tour de sous-échantillonnage est ajouté. Et la tête est la même que yolov3
Mais concat est utilisé dans le PAN de yolov4 au lieu d'ajouter
La structure du réseau de yolov4 est formée des deux parties ci-dessus
3. Stratégie de formation
2.1, BoF et BoS
Utilisez Mish pour la fonction d'activation, CIoU pour la perte d'IOU, Mosaic pour l'amélioration des données, DropBlock pour la régularisation, CmBN pour la normalisation, le lissage des étiquettes, etc. Cette série de stratégies d'amélioration,
L'auteur prouve en outre l'efficacité de la stratégie utilisée à travers les expériences ci-dessus. Parmi yolov4, des stratégies pertinentes sont principalement proposées, et des améliorations sont apportées sur la base de yolov3.
Je recommande à tout le monde de jeter un œil au blog de ce grand gars pour plus de détails :