YOLOv1: YOLO v1 Compréhension approfondie
YOLOv2: YOLOv2 / YOLO9000 Compréhension approfondie
Réimprimé de: YOLOv3 compréhension approfondie
YOLOv3 n'a pas trop d'innovation, il est principalement basé sur de bonnes solutions et intégré à YOLO. Cependant, l'effet est toujours bon.Sur la prémisse de maintenir l'avantage de la vitesse, la précision de la prédiction est améliorée , en particulier la capacité à reconnaître de petits objets est renforcée .
Les principales améliorations de YOLO3 comprennent: l'
ajustement de la structure du réseau, l'utilisation de fonctionnalités multi-échelles pour la détection d'objets et le remplacement de softmax par Logistic pour la classification d'objets.
Nouvelle structure de réseau Darknet-53
En termes d'extraction de caractéristiques d'image de base, YOLO3 utilise une structure de réseau appelée Darknet-53 (contenant 53 couches convolutives), qui s'appuie sur la pratique du réseau résiduel, et met en place des liens de raccourci entre certaines couches (Connexions de raccourci)
Le réseau Darknet-53 dans la figure ci-dessus utilise 256x256x3 comme entrée, et les nombres 1, 2, 8 dans la colonne la plus à gauche indiquent le nombre de composants résiduels répétés. Chaque composant résiduel a deux couches convolutives et un lien de raccourci. Le diagramme schématique d'un composant résiduel est le suivant:
Structure détaillée du réseau
L'image ci-dessus est référencée à partir de: yolo v3 de la série yolo [analyse approfondie]
Détection d'objets à l'aide de fonctionnalités multi-échelles
YOLO2 a utilisé la structure de passthrough pour détecter des caractéristiques à grain fin, et YOLO3 a également utilisé 3 cartes de caractéristiques de différentes échelles pour la détection d'objets.
En combinaison avec la figure ci-dessus, une fois que le réseau convolutif est à la 79e couche, il passe à travers les couches convolutives jaunes ci-dessous pour obtenir une échelle de résultats de détection. Par rapport à l'image d'entrée, la carte des caractéristiques utilisée pour la détection ici présente un sous-échantillonnage 32 fois. Par exemple, si l'entrée est 416 416, la carte des caractéristiques ici est 13 13. En raison du facteur de sous-échantillonnage élevé, le champ de réception de la carte de caractéristiques est ici relativement grand, il convient donc à la détection d'objets de taille relativement grande dans l'image .
Afin de réaliser une détection fine, la carte d'entités de la 79e couche commence à être à nouveau suréchantillonnée (suréchantillonnage et convolution de la 79e couche vers la droite), puis fusionnée avec la carte d'entités de la 61e couche (Concaténation), de sorte que la 91e couche est plus fine La carte des caractéristiques granulaires est également obtenue après plusieurs couches convolutives, qui sont 16 fois sous-échantillonnées par rapport à l'image d'entrée. Il a un champ réceptif à moyenne échelle et convient à la détection d'objets de taille moyenne .
Enfin, la carte d'entités de la 91e couche est à nouveau suréchantillonnée et fusionnée avec la carte d'entités de la 36e couche (Concaténation), et enfin une carte d'entités qui est sous-échantillonnée 8 fois par rapport à l'image d'entrée est obtenue. Il possède le plus petit champ de réception et convient à la détection d'objets de petite taille .
Boîte a priori de 9 balances
À mesure que le nombre et l'échelle des cartes d'entités en sortie changent, la taille de la boîte a priori doit également être ajustée en conséquence. YOLO2 a commencé à utiliser le clustering K-means pour obtenir la taille de la boîte a priori. YOLO3 poursuit cette méthode en définissant 3 boîtes a priori pour chaque échelle de sous-échantillonnage, et en regroupant a priori boîte de 9 tailles au total. Les 9 cases a priori de l'ensemble de données COCO sont: (10x13), (16x30), (33x23), (30x61), (62x45), (59x119), (116x90), (156x198), (373x326).
En termes d'allocation, des boîtes a priori plus grandes (116x90), (156x198), (373x326) sont appliquées à la plus petite carte de caractéristiques 13x13 (avec le plus grand champ réceptif), qui convient à la détection d'objets plus grands. La boîte a priori moyenne (30x61), (62x45), (59x119) est appliquée à la carte de caractéristiques moyenne 26 * 26 (champ récepteur moyen), qui convient à la détection d'objets de taille moyenne. La plus grande carte de caractéristiques 52x52 (champ de réception plus petit) applique des boîtes antérieures plus petites (10x13), (16x30), (33x23), ce qui convient à la détection d'objets plus petits.
Ressentez la taille de 9 cases a priori La case bleue de la figure ci-dessous est la case a priori obtenue par clustering. Le cadre jaune est la vérité terrain et le cadre rouge est la grille où se trouve le point central de l'objet.
La classification des objets softmax est devenue logistique
Lors de la prédiction de la catégorie cible, softmax n'est pas utilisé et la sortie logistique est utilisée pour la prédiction. Cela peut prendre en charge les objets multi-étiquettes (par exemple, une personne a deux étiquettes, Femme et Personne).
Entrée vers sortie
Indépendamment des détails de la structure du réseau neuronal, en général, pour une image d'entrée, YOLO3 la mappe à un tenseur de sortie de 3 échelles, qui représente la probabilité de divers objets dans chaque position de l'image.
Jetons un coup d'œil au nombre de prédictions faites par YOLO3. Pour une image d'entrée de 416x416, 3 cases a priori sont définies dans chaque grille de la carte des caractéristiques de chaque échelle, et il y a un total de 13x13x3 + 26x26x3 + 52x52x3 = 10647 prédictions. Chaque prédiction est un vecteur (4 + 1 + 80) = 85 dimensions. Ce vecteur 85 dimensions contient les coordonnées de l'image (4 valeurs), la confiance de l'image (1 valeur) et la probabilité de la catégorie d'objet (pour l'ensemble de données COCO , il existe 80 types d'objets).
A titre de comparaison, YOLO2 utilise des prédictions 13 13 5 = 845. La tentative de YOLO3 de prédire le nombre d'images a augmenté de plus de 10 fois, et elle est effectuée à des résolutions différentes, donc mAP et la détection de petits objets ont une certaine amélioration.
sommaire
YOLO3 s'appuie sur la structure résiduelle du réseau pour former un niveau de réseau plus profond et une détection multi-échelles, ce qui améliore l'effet de détection de mAP et de petits objets. Si COCO mAP50 est utilisé comme indice d'évaluation ( si la précision de la trame de prédiction ne vous dérange pas trop), les performances de YOLO3 sont assez étonnantes. Comme le montre la figure ci-dessous, avec la même précision, YOLOv3 vaut 3 ou 4 fois plus rapide que les autres modèles.
Cependant, si une trame de prédiction plus précise est requise et que COCO AP est utilisé comme norme d'évaluation , la précision de YOLO3 sera plus faible. Comme indiqué ci-dessous.