[Notes de lecture papier] ENet : une architecture de réseau neuronal profond pour la segmentation sémantique en temps réel

ENet : une architecture de réseau neuronal profond pour la segmentation sémantique en temps réel

Cet article présente le réseau de segmentation d'images le plus rapide actuel, ENet, en utilisant un grand nombre d'astuces

Résumé

 Dans les appareils de pointe, la puissance de calcul en temps réel est importante, et l'inconvénient des réseaux neuronaux profonds pour cette tâche est qu'ils nécessitent de nombreux calculs en virgule flottante et ont de longues durées d'exécution, ce qui entrave leur utilisation.

  • Cet article présente ENet, une nouvelle architecture de réseau neuronal profond pour des réseaux neuronaux efficaces, créée spécifiquement pour les tâches nécessitant un fonctionnement à faible latence.
  • ENet est 18 fois plus rapide, nécessite 75 fois moins de Flops, possède 79 fois moins de paramètres et offre une précision similaire ou supérieure à celle des modèles existants.

introduction

  • L'architecture originale de classification spatiale et de segmentation fine des images : SegNet ou réseau entièrement convolutif sont basés sur VGG16, mais ces architectures sont de très grands modèles conçus pour la classification multi-classes, alors ces modèles ont un grand nombre de paramètres et un long réseau de raisonnement temporel .
  • ENET Nouvelle architecture de réseau neuronal optimisée pour une inférence rapide et une grande précision

structure du réseau

module de goulot d'étranglement dans ENet

insérer la description de l'image ici

Celui de gauche est secondaire, celui de droite est primaire

cinq étapes

Initialiser le module

insérer la description de l'image ici

À gauche, treize noyaux de convolution sont utilisés pour l'opération de convolution, et à droite se trouve MaxPooling. Enfin, trois canaux sont obtenus. Les résultats des deux côtés sont concaténés et les canaux sont fusionnés, ce qui peut réduire l'espace de stockage.

étape 1

Appartient à l'étage d'encodeur, comprenant cinq Bottlenecks, le premier Bottleneck sous-échantillonne l'entrée, suivi de quatre goulots d'étranglement répétés

étape 2-3

Appartenant à l'étage encodeur, la bouteille 2.0 de l'étape 2 est sous-échantillonnée, suivie d'une convolution atreuse ou d'une convolution décomposée, l'étape 3 n'est pas sous-échantillonnée, et les autres sont les mêmes

étape 4-5

Il appartient à l’étage décodeur. Relativement simple, un suréchantillonnage configure deux goulots d'étranglement ordinaires

  • L'architecture du modèle n'utilise aucun biais sur les projections, ce qui réduit les appels au noyau et les opérations de stockage.
  • La norme par lots est utilisée dans chaque opération de convolution
  • L'étage d'encodeur utilise le remplissage et le pooling maximum pour le sous-échantillonnage
  • Le décodeur utilise le dégroupage maximum avec convolution de trous pour terminer le suréchantillonnage

Présenter l'encodeur

  • Col de bouteille sous-échantillonné

    • La taille de l'image sous-échantillonnée devient 128 x 128
    • Ensuite, l'opération de convolution conv est une opération de convolution ordinaire asymétrique signifie convolution décomposée, et Dilated est une convolution creuse
    • Chaque goulot d'étranglement réduira d'abord la dimension, puis augmentera la dimension après l'opération de convolution
    • Chaque couche convolutive est suivie d'opérations de norme par lots et PReLU
  • Les lignes auxiliaires incluent les opérations de pooling maximum et de remplissage. Le pooling maximum est responsable de l'extraction des informations de contexte.

    • le rembourrage est responsable du remplissage du canal, puis réalise la fusion résiduelle ultérieure et effectue l'opération PReLU après la fusion
  • Col de bouteille non sous-échantillonné

    • La ligne principale se compose de trois couches convolutives
    • Le premier est une réduction de dimensionnalité 1x1
    • Alors il y a trois circonvolutions
    • Enfin, la dimension brute
    • Lot de normes PReLU

diverses astuces

  • Afin de réduire les appels au noyau et les opérations de stockage, l'architecture réseau de l'auteur n'utilise pas de biais, mais uniquement des poids.

  • Résolution de la carte des fonctionnalités

    • Le sous-échantillonnage d'une image perd des informations sur les fonctionnalités
    • Utilisez la convolution des trous pour élargir le champ réceptif et collecter plus d'informations
  • Sous-échantillonnage précoce

    • Le traitement d'images de tailles relativement grandes consommera beaucoup de ressources informatiques
    • Le modèle d'initialisation d'ENet réduira considérablement la taille de l'entrée, car les informations visuelles sont hautement redondantes dans l'espace et peuvent être compressées en une représentation plus efficace.
  • Taille du décodeur

    • L'encodeur et le décodeur de l'auteur ne sont pas symétriques en miroir, la plupart du réseau implémente l'encodeur et une petite partie implémente le décodeur. L'encodeur effectue principalement le traitement et le filtrage des informations, tandis que l'encodeur suréchantillonne la sortie de l'encodeur et affine les détails.
  • Opérations non linéaires

    • Généralement, il est préférable de faire ReLU et Batch Norm avant la couche convolutive, mais l'utilisation de ReLU sur ENet réduit la précision.
    • ENet a très peu de couches, utilisez donc PReLU
  • Changements de dimensionnalité préservant les informations

    • Dans la phase d'initialisation, l'auteur utilise 3 * 3 CNN et maxpolling pour effectuer des opérations parallèles, puis effectue des opérations de contact sur la carte des caractéristiques. L'auteur a constaté que le temps d'accélération est dix fois supérieur.
  • convolution factorisée

    • Divisez le noyau de convolution n × n en n × 1 et 1 × n (proposé par Inception V3). Il peut réduire efficacement la quantité de paramètres et améliorer le champ de réception du modèle.
  • circonvolution dilatée

  • Abandon spatial

    • L'abandon ordinaire définira aléatoirement cette partie des éléments sur 0, et SpatialDropout définira aléatoirement tous les éléments de cette partie de la zone sur 0.

décrochage normal
insérer la description de l'image ici

Spatial Dropout : le dropout ordinaire définira aléatoirement et indépendamment certains éléments à zéro, tandis que SpatialDropout1D définira aléatoirement tous les zéros sur une latitude spécifique.

insérer la description de l'image ici

insérer la description de l'image ici

À propos de la convolution Atrous

  • La taille du noyau de convolution est de 3 x 3 foulées = 1 r = 2, et r est appelé facteur d'expansion. Lorsque r = 1, cela signifie qu'il n'y a pas d'espace entre les éléments du noyau de convolution, c'est-à-dire que la différence de position entre deux éléments adjacents est de 1, ce qui est une convolution normale.
  • Ici, r = 2 signifie qu'il y a un écart entre chaque élément du noyau de convolution et que la différence de position entre deux éléments adjacents est de 1.

insérer la description de l'image ici

Pourquoi utiliser la convolution dilatée

Développez le champ réceptif. Le champ réceptif fait référence à la taille en pixels de l'image originale correspondant à un pixel de la carte des caractéristiques.

insérer la description de l'image ici

  • L’une des principales raisons de l’utilisation de la convolution de trous est d’augmenter le champ de réception, afin qu’il puisse mieux fonctionner sur des objets à grande échelle dans les tâches de détection et de segmentation.
  • Le défaut de convolution des trous se reflète principalement dans l'existence d'un effet de grille

Je suppose que tu aimes

Origine blog.csdn.net/qq_44653420/article/details/132515540
conseillé
Classement