Finition Yolov4

YOLOv4 a effectué de nombreux tests sur certaines astuces couramment utilisées dans l'apprentissage en profondeur, et a finalement sélectionné ces astuces utiles: WRC, CSP, CmBN, SAT, activation Mish, augmentation des données Mosaic, CmBN, régularisation DropBlock et perte CIoU.

Notions de base:

CBL: Il se compose de trois fonctions d'activation: Conv + Bn + Leaky_relu.
CBM: Le plus petit composant de la structure du réseau Yolov4, composé de trois fonctions d'activation: Conv + Bn + Mish.
DBL: Darknetconv2d_BN_Leaky dans le code est le composant de base de yolo_v3. C'est convolution + BN + Relu Leaky.
SPP: utilisez la méthode de mise en commun maximale de 1 × 1, 5 × 5, 9 × 9, 13 × 13 pour effectuer une fusion multi-échelle.
CSP: Le nom complet de CSPNet est Cross Stage Partial Networks, qui est un cross-stage réseau partiel, CSPNet résout le problème de duplication des informations de gradient de l'optimisation du réseau dans un autre cadre de réseau neuronal convolutif à grande échelle Backbone intègre les changements de gradient dans la carte des caractéristiques du début à la fin, réduisant ainsi la quantité de paramètres et la valeur FLOPS du modèle, et la vitesse et la précision de l'inférence, et réduit la taille du modèle.
CSPX: Tirant les leçons de la structure du réseau CSPNet, il se compose de trois couches convolutives et de modules X Res unint Concate.
Unité Res: Il s'agit d'un module résiduel Resnet classique. Une entrée passe par deux DBL, et est directement connectée, puis ajoutée. Cette connexion classique est également largement utilisée dans divers réseaux, de sorte que le réseau peut être construit. Plus profond, y compris YOLOV4 est également un dérivé sur cette base.
RESn: Passez d'abord à travers un DBL puis + N Res unités unitaires pour former
Concat: tenseur épissage, la dimension sera agrandie, comme expliqué dans Yolov3, correspondant à l'opération de routage dans le fichier cfg.
Ajouter: Ajout de tenseurs sans étendre la cote, ce qui correspond à l'opération de raccourci dans le fichier cfg.

 Comparé à Yolo v3, le diagramme de structure de Yolo v4 a plus de structure CSP et de structure PAN.
Les boîtes bleues sont plusieurs modules couramment utilisés dans le réseau:
CBM: Le plus petit composant de la structure de réseau Yolo v4, qui est composé de la fonction d'activation Conv (convolution) + BN + Mish .
CBL: Le plus petit composant de la structure de réseau Yolo v4, qui est composé de la fonction d'activation Conv (convolution) + BN + Leaky relu .
Unité Res: Composant résiduel, empruntant à la structure résiduelle du réseau ResNet, afin que le réseau puisse être construit plus profondément.
CSPX: Tirant les leçons de la structure du réseau CSPNet, il se compose de trois couches convolutives CBM et de modules X Res unint Concat.
SPP: fusion multi-échelle utilisant la méthode de mise en commun maximale de 1 × 1, 5 × 5, 9 × 9, 13 × 13


Épissage de tenseur et addition de tenseur Concat: l' épissage de tenseur augmentera les dimensions de deux tenseurs. Par exemple, deux tenseurs de 26 × 26 × 256 et 26 × 26 × 512 sont épissés, et le résultat est 26 × 26 × 768.
Ajouter: addition de tenseur, addition de tenseur directement, sans élargir la dimension, par exemple, 104 × 104 × 128 et 104 × 104 × 128 sont ajoutés, et le résultat est toujours de 104 × 104 × 128.

Le nombre de couches convolutives dans Backbone:
chaque CSPX contient 3 + 2 × X couches convolutives, donc l'ensemble du réseau backbone Backbone contient un total de 2+ (3 + 2 × 1) +2+ (3 + 2 × 2) +2 + (3 + 2 × 8) +2+ (3 + 2 × 8) +2+ (3 + 2 × 4) + 1 = 72.

1.2 Innovations de YOLO V4

Afin de faciliter l'analyse, la structure globale de Yolov4 est divisée en quatre sections principales:

(1) Terminal d'entrée: L'innovation mentionnée ici se réfère principalement à l'amélioration du terminal d'entrée pendant la formation, qui comprend principalement l'amélioration des données Mosaic, cmBN et l'apprentissage d'auto-antagonisme SAT.
(2) Réseau dorsal backbone: il combine diverses nouvelles méthodes, notamment: CSPDarknet53, la fonction d'activation Mish et Dropblock.
(3) Cou: Le réseau de détection de cible insère souvent des couches entre BackBone et la couche de sortie finale, comme le module SPP dans Yolov4, structure FPN + PAN
(4) Prédiction: Le mécanisme de trame d'ancrage de la couche de sortie est le même que celle de Yolov3, principalement L'amélioration est la fonction de perte CIOU_Loss lors de l'entraînement, et le nms filtré par la boîte de prédiction devient DIOU_nms

1.2.1 L'innovation à l'entrée

(1) Amélioration des données de
la mosaïque La mosaïque utilisée dans Yolov4 fait référence à la méthode d'amélioration des données CutMix proposée à la fin de 2019, mais CutMix n'utilise que deux images pour l'assemblage, tandis que l'amélioration des données de la mosaïque utilise 4 images, agrandies au hasard et recadrées au hasard, arrangement aléatoire pour l'épissage. D'après l'article, il présente un énorme avantage d'enrichir le fond de l'objet détecté! ** Et lorsque BN est calculé, les données de quatre images seront calculées à la fois!

1.2.1 Innovation de BackBone

(1) CSPDarknet53
CSPDarknet53 est une structure Backbone basée sur le réseau backbone Yolov3 Darknet53 et empruntant à l'expérience de CSPNet en 2019, qui contient 5 modules CSP.

 La taille du noyau de convolution devant chaque module CSP est de 3 × 3, et la taille de pas est de 2, donc il peut jouer le rôle de sous-échantillonnage.
Étant donné que Backbone a 5 modules CSP, si l'image d'entrée est 608608 , la règle de changement de la carte des caractéristiques est: 608-> 304-> 152-> 76-> 38-> 19
Après 5 modules CSP, la
taille 19 19 est obtenue. carte.

Le diagramme complet de la structure du réseau est le suivant:

 La structure de réseau de YOLOv4 est composée de CSPDarknet53, SPP, PANet, en-tête YOLOv3, etc. Ce qui suit explique chaque partie une par une:

 

Yolov4 adopte la structure de réseau CSPDarknet53 dans le réseau fédérateur Backbone, qui présente trois avantages principaux:
Avantage 1: Améliore la capacité d'apprentissage de CNN, le rendant léger tout en maintenant la précision.
Avantage 2: réduire les goulots d'étranglement informatiques
Avantage 3: réduire le coût de la mémoire 

(2) Fonction d'activation de Mish La fonction d'activation de
Mish est la fonction d'activation proposée au second semestre 2019. La comparaison graphique avec la fonction d'activation de leaky_relu est la suivante:

La fonction d'activation Mish est utilisée dans le Backbone de Yolov4, tandis que la fonction Leaky_relu est toujours utilisée dans le réseau suivant.

Au cours du test expérimental, l'auteur de Yolov4 a utilisé le réseau CSPDarknet53 pour effectuer des tâches de classification d'images sur l'ensemble de données ImageNet, et a constaté que la précision de TOP-1 et TOP-5 utilisant la fonction d'activation Mish était légèrement supérieure à celle lorsqu'ils n'étaient pas utilisés. .
Par conséquent, lors de la conception de la tâche de détection de cible Yolov4, le réseau fédérateur Backbone utilise toujours la fonction d'activation Mish.

(3) Dropblock
utilisé dans Dropblock Yolov4 est en fait similaire à la fonction Dropout dans les réseaux courants, et c'est aussi une méthode de régularisation pour atténuer le surajustement.
L'effet d'abandon traditionnel est meilleur sur la couche FC et plus faible sur la couche conv . La raison peut être que les unités d'entités de la couche conv sont spatialement liées. En utilisant l'abandon pour supprimer aléatoirement certaines entités, le réseau peut toujours obtenir des informations des zones adjacentes , de sorte que les informations d'entrée peuvent toujours être envoyées à la couche suivante, provoquant un surajustement du réseau. DropBlock et est rejeté avec les caractéristiques des informations successives de la FIG .
La figure ci-dessous est un exemple simple. (A) est l'image d'entrée et la tête, les pieds et les autres zones du chien sont corrélés. (B) Les informations sont éliminées de manière aléatoire au moyen de la suppression.A ce moment, des informations pertinentes peuvent être obtenues à partir de la zone voisine (le masque avec x est le masque des informations de rejet). c est la méthode de DropBlock, qui supprime toutes les fonctionnalités d'une certaine zone.

Framework d'algorithme Dropblock 

DropBlock a deux paramètres: block_size (la taille du bloc de dépôt), γ (paramètre de la distribution de Bernoulli) 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/wzhrsh/article/details/110533635
conseillé
Classement