Détection des objets

Disponible avec une licence Image Analyst.

Les méthodes et concepts suivants sont essentiels pour comprendre et réaliser une détection des objets dans AllSource.

Single Shot Detector (SSD)

Single Shot Detector (SSD) effectue un passage unique sur l’image pour détecter plusieurs objets. SSD est considéré comme l’un des types de modèle de détection des objets les plus rapides avec une exactitude relativement élevée.

SSD comporte deux composantes : un modèle de backbone et une tête de détection. Le modèle de backbone est un réseau de classification d’images pré-entraîné en tant qu’extracteur d’entités. Il s’agit généralement d’un réseau tel que ResNet entraîné sur Imagenet d’où la couche de classification entièrement connectée a été retirée. La tête de détection est seulement composée d’une ou de plusieurs couches convolutives ajoutées à ce backbone, et les sorties sont interprétées comme les zones de délimitation et les classes d’objets dans la localisation spatiale des activations des couches finales.

Cellule de grille

Au lieu d’utiliser une fenêtre coulissante, SSD divise l’image à l’aide d’une grille, chaque cellule étant chargée de détecter des objets dans cette région de l’image. La détection des objets implique de prédire la classe et la localisation d’un objet dans cette région. En l’absence d’objets, on considère qu’il s’agit d’une classe d’arrière-plan et la localisation est ignorée. Vous pouvez par exemple utiliser une grille de 4 sur 4 dans l’exemple ci-dessous. Chaque cellule de grille peut générer la position et la forme de l’objet qu’elle contient.

Grille de 4 sur 4

Exemple de grille de 4 sur 4.

Si une cellule de grille contient plusieurs objets ou que vous devez détecter plusieurs objets de différentes formes, vous allez utiliser la zone d’ancrage.

Zone d’ancrage

Plusieurs zones d’ancrage peuvent être attribuées à chaque cellule de grille dans SSD. Ces zones d’ancrage sont prédéfinies et chacune est chargée d’une taille et d’une forme dans une cellule de grille. Par exemple, la piscine qui apparaît dans l’image ci-dessous correspond à la zone d’ancrage la plus haute, tandis que le bâtiment correspond à la zone la plus large.

Exemple de deux zones d’ancrage

Exemple de deux zones d’ancrage.
Légende des deux zones d’ancrage
Légende des deux zones d’ancrage.

SSD utilise une phase d’appariement pendant l’entraînement pour apparier la zone d’ancrage appropriée aux zones de délimitation de chaque objet de réalité de terrain dans l’image. Globalement, la zone d’ancrage dont le degré de superposition avec un objet est le plus élevé, est chargée de prédire la classe et la localisation de l’objet en question. Cette propriété permet d’entraîner le réseau et de prédire les objets détectés ainsi que leurs localisations une fois le réseau entraîné. En pratique, chaque zone d’ancrage est spécifiée par des proportions et un niveau de zoom.

Proportions

Tous les objets ne sont pas de forme carrée. Certains sont plus longs et d’autres plus larges, à des degrés divers. L’architecture SSD permet aux proportions prédéfinies des zones d’ancrage d’en tenir compte. Vous pouvez utiliser le paramètre ratios pour spécifier les différentes proportions des zones d’ancrage associées à chaque cellule de grille à chaque niveau de zoom ou d’échelle.

Zones de délimitation des bâtiments

La zone de délimitation du bâtiment 1 est plus haute, tandis que la zone de délimitation du bâtiment 2 est plus large.

Niveau de zoom

Il n’est pas nécessaire que les zones d’ancrage aient la même taille que la cellule de grille. Il peut être intéressant de trouver des objets plus petits ou plus grands dans une cellule de grille. Le paramètre zooms permet de spécifier le niveau de mise à l’échelle voulu par rapport à chaque cellule de grille. Comme dans l’exemple de la zone d’ancrage, la taille du bâtiment est généralement plus large que celle de la piscine.

RetinaNet

RetinaNet est un modèle de détection des objets en une seule étape qui fonctionne bien avec des objets denses et à petite échelle. C’est pour cette raison qu’il est couramment utilisé avec l’imagerie aérienne et satellite.

Architecture

L’architecture d’un modèle RetinaNet comprend quatre composantes principales1 :

  • Parcours de bas en haut : le réseau backbone de ResNet, qui calcule les cartes d’entités à différentes échelles, quel que soit le backbone ou la taille d’image en entrée.
  • Parcours de haut en bas et connexions latérales : le parcours de haut en bas suréchantillonne les cartes d’entités plus grossières spatialement à partir de niveaux de pyramide plus élevés et les connexions latérales fusionnent les couches de haut en bas et les couches de bas en haut avec la même taille spatiale.
  • Sous-réseau de classification : prédit la probabilité qu’un objet soit présent à chaque localisation spatiale pour chaque zone d’ancrage et classe d’objets.
  • Sous-réseau de régression : régresse le décalage des zones de délimitation à partir des zones d’ancrage pour chaque objet de réalité de terrain.

Perte focale

La perte focale (FL) est une amélioration par rapport à la perte d’entropie croisée (CE). Elle permet de gérer le problème de déséquilibre des classes avec les modèles de détection des objets en une seule étape. Les modèles en une seule étape souffrent d’un problème de déséquilibre des classes de premier plan-d’arrière-plan extrême en raison de la densité d’échantillonnage des zones d’ancrage (localisations éventuelles des objets1). Dans RetinaNet, chaque couche pyramidale peut avoir des centaines de zones d’ancrage. Quelques-unes seulement sont affectées à un objet de réalité de terrain, tandis que la grande majorité sera une classe d’arrière-plan. Ces exemples simples (détections avec probabilités élevées) génèrent des valeurs de perte réduites, mais peuvent collectivement surcharger le modèle. La perte focale réduit la part des exemples simples en matière de perte et accroît l’importance de corriger les exemples incorrectement classés.

Échelles

Échelle des zones d’ancrage. La valeur par défaut est définie sur [2, 2.3, 2.6], ce qui convient à la plupart des objets dans tout jeu de données. Vous pouvez changer les échelles en fonction de la taille des objets dans votre jeu de données.

Proportions

Proportions des zones d’ancrage. La valeur par défaut est définie sur [0.5, 1, 2], ce qui signifie que les zones d’ancrage auront les proportions 1:2, 1:1, 2:1. Vous pouvez modifier les proportions en fonction de la forme des objets d’intérêt.

YOLOv3

YOLO (You Only Look Once ) v3 utilise l’architecture Darknet-53. Cela contraste avec l’utilisation de la gamme d’architectures de backbone ResNet par d’autres modèles tels que SSD et RetinaNet. Darknet-53 est une version plus approfondie de Darknet-19, qui était utilisé dans YOLOv2, une version précédente. Comme son nom l’indique, cette architecture de backbone comporte 53 couches convolutives. L’adaptation des couches résiduelles de style ResNet a amélioré son exactitude tout en conservant l’avantage de la vitesse. Cet extracteur d’entités a des performances supérieures à celles de ResNet101 et identiques à celles de ResNet152, tout en étant environ 1,5 fois et 2 fois plus rapide, respectivement2.

YOLOv3 bénéficie d’améliorations incrémentielles sur ses versions précédentes2. Il utilise le suréchantillonnage et la concaténation des couches d’entités avec des couches d’entités antérieures qui préservent les entités détaillées. L’utilisation de trois échelles pour la détection constitue également une amélioration. Cela a permis au modèle de détecter correctement des objets de différentes échelles dans une image. D’autres améliorations concernent les sélections de zones d’ancrage, la fonction de perte, etc. Pour une analyse détaillée de l’architecture YOLOv3, consultez l’article sur les nouveautés de YOLO v3 Lien externe.

Faster R-CNN

Avant Faster R-CNN (Region-based Convolutional Neural Network), les modèles utilisaient différents algorithmes pour proposer des régions, qui étaient calculés sur le processeur et provoquaient un engorgement. Faster R-CNN a amélioré l’architecture de détection des objets en remplaçant l’algorithme de recherche de sélection dans Fast R-CNN par un réseau convolutif nommé RPN (Region Proposal Network). Le reste de l’architecture du modèle reste le même que dans Fast R-CNN. L’image est intégrée dans un réseau neuronal convolutif (CNN) pour produire une carte d’entités à partir de laquelle les entités des régions proposées par le RPN sont sélectionnées et redimensionnées par une couche de regroupement, puis intégrées dans une couche FC avec deux têtes : un classificateur Softmax et un régresseur de zone de délimitation. Cette conception a amélioré la vitesse de détection pour la rapprocher du temps réel3.

Faster R-CNN

Architecture de Faster R-CNN3.

Réseau de proposition régionale

Le réseau de proposition régionale (RPN, Region Proposal Network) saisit une image et renvoie des régions d’intérêt contenant des objets, comme d’autres algorithmes de proposition de régions. Le RPN renvoie également un score d’objet, qui mesure la probabilité selon laquelle la région aura un objet au lieu d’un arrière-plan3. Dans Faster R-CNN, le RPN et le réseau de détection partagent la même architecture de backbone. La dernière couche partagée du backbone fournit une carte d’entités de l’image qui sert au RPN pour proposer des régions.

Avec une fenêtre coulissante, un petit réseau est superposé à la carte d’entités. À chaque fenêtre spatiale, plusieurs zones d’ancrage ont des échelles et des proportions prédéterminées. Cela permet au modèle de détecter des objets d’une large gamme d’échelles et de proportions dans la même image. Les zones d’ancrage sont généralement créées à trois échelles et trois proportions différentes, ce qui génère neuf zones d’ancrage à chaque localisation spatiale, indiquant le nombre maximal de propositions régionales à cette localisation spatiale. Le petit réseau est ensuite intégré aux couches entièrement connectées avec deux têtes : l’une pour le score d’objets et l’autre pour les coordonnées des zones de délimitation des régions proposées. Notez que ces couches, bien que similaires aux dernières couches du détecteur d’objets Fast R-CNN, ne sont pas identiques et n’ont pas les mêmes pondérations. Le RPN réalise le classement des régions sans tenir compte des classes car il est uniquement chargé de rechercher les régions contenant les objets. Pour plus d’informations sur le RPN, consultez l’article sur Faster R-CNN pour la détection des objets Lien externe.

Mask R-CNN

Mask R-CNN est un modèle de segmentation d’instances. Il a été développé sur le modèle de Faster R-CNN. Le modèle Faster R-CNN est un réseau neuronal convolutif basé sur des régions4 qui renvoie des zones de délimitation pour chaque objet et son étiquette de classe avec un score de confiance.

Faster R-CNN prédit la classe d’objets et les zones de délimitation, mais Mask R-CNN est une extension de Faster R-CNN avec des branches supplémentaires pour prédire les masques de segmentation sur chaque région d’intérêt (RoI). Dans la deuxième étape de Faster R-CNN, le groupe RoI est remplacé par RoIAlign, ce qui permet de préserver les informations spatiales qui sont mal alignées en cas de groupe RoI. RoIAlign utilise l’interpolation binaire pour créer une carte d’entités de taille fixe, par exemple 7 sur 7. La sortie de la couche RoIAlign est ensuite intégrée à la tête du masque, qui se compose de deux couches convolutives. Un masque est généré pour chaque RoI, ce qui segmente une image pixel par pixel. Pour éviter le lissage excessif des limites imprécises, pour les objets avec des limites irrégulières, le modèle a été amélioré de façon à inclure un module de réseau neuronal de rendu basé sur les points : PointRend.

Segmentation d’instances

La segmentation d’instances intègre une tâche de détection des objets (où l’objectif est de détecter un objet et sa zone de délimitation prédite dans une image) et une tâche de segmentation sémantique, qui classe chaque pixel dans des catégories prédéfinies. Vous pouvez ainsi détecter des objets dans une image tout en segmentant avec précision un masque pour chaque instance d’objet.

La segmentation d’instances vous permet de résoudre de nombreux problèmes, notamment :

  • Détection des dommages, où il est important de connaître l’étendue des dommages.
  • Voitures autonomes, où il est important de connaître la position de chaque voiture dans la scène.
  • Génération d’emprises pour chaque bâtiment individuel : un problème SIG courant.

Bibliographie

[1] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal Loss for Dense Object Detection, http://arxiv.org/abs/1708.02002 arXiv:1708.02002, (2017).

[2] Joseph Redmon, Ali Farhadi. YOLOv3: An Incremental Improvement, https://arxiv.org/abs/1804.02767 arXiv:1804.02767, (2018).

[3] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, http://arxiv.org/abs/1506.01497 arXiv:1506.01497, (2015).

[4] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, http://arxiv.org/abs/1506.01497 arXiv:1506.01497, (2015).