SSD (Single Shot Detector) est une famille de modèles de détection d'objets en apprentissage profond qui effectuent la classification et la localisation en un seul passage avant d'un réseau de neurones. Contrairement aux détecteurs à deux étapes plus anciens qui proposent d'abord des régions puis les classifient, SSD discrétise l'espace de sortie des boîtes englobantes en un ensemble de boîtes par défaut avec différents ratios d'aspect et échelles, puis prédit la classe d'objet et le décalage de boîte pour chaque boîte par défaut en une seule fois. Cette conception rend SSD nettement plus rapide que ses prédécesseurs tout en maintenant une précision compétitive, ce qui en a fait un choix populaire pour les applications en temps réel telles que la surveillance vidéo, la conduite autonome et la réalité augmentée.
L'architecture SSD a été introduite dans un article de 2016 intitulé « SSD: Single Shot MultiBox Detector » par Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu et Alexander C. Berg. Les travaux ont été menés chez Google et présentés à la Conférence européenne sur la vision par ordinateur (ECCV) en 2016. Le modèle a été construit sur la base du backbone VGG-16, une architecture bien connue de réseau de neurones convolutif, et a ajouté plusieurs couches convolutionnelles auxiliaires qui réduisent progressivement la résolution spatiale des cartes de caractéristiques. Ces cartes de caractéristiques multi-échelles permettent au détecteur de gérer des objets de tailles variées, les couches antérieures capturant des détails fins pour les petits objets et les couches ultérieures fournissant des informations plus sémantiques pour les grands objets.
Architecture et conception
L'innovation centrale de SSD est l'utilisation de boîtes par défaut, également appelées boîtes d'ancrage, qui sont des boîtes englobantes prédéfinies avec différents ratios d'aspect et échelles à chaque emplacement de carte de caractéristiques. Pour chaque boîte par défaut, le réseau prédit les probabilités de classe et quatre décalages relatifs aux coordonnées de la boîte. Pendant l'entraînement, les boîtes par défaut sont appariées aux objets de vérité terrain en fonction d'un seuil d'intersection sur union (IoU), et la fonction de perte combine la perte de localisation (L1 lisse) et la perte de confiance (entropie croisée softmax). SSD utilise également un minage négatif difficile pour traiter le déséquilibre entre les exemples positifs et négatifs, en maintenant un ratio d'environ 1:3.
Le réseau utilise des cartes de caractéristiques provenant de plusieurs couches, généralement conv4_3, conv7, conv8_2, conv9_2, conv10_2 et conv11_2, chaque couche produisant un nombre différent de boîtes par défaut. Par exemple, dans le SSD300 original (taille d'entrée 300x300), le nombre total de boîtes par défaut est de 8732. L'approche multi-échelle est cruciale car elle permet au modèle de détecter les petits objets à l'aide de cartes de caractéristiques à haute résolution et les grands objets à l'aide de cartes à basse résolution, sans nécessiter d'étape explicite de proposition de régions.
Entraînement et optimisation
SSD a été entraîné sur les ensembles de données PASCAL VOC et Microsoft COCO. Sur l'ensemble de test PASCAL VOC 2007, SSD300 a atteint 72,1 % de précision moyenne (mAP) à 58 images par seconde (FPS) sur un seul GPU Nvidia Titan X, tandis que SSD512 a atteint 76,8 % de mAP à 22 FPS. Ces résultats ont surpassé les modèles de pointe de l'époque, Faster R-CNN (73,2 % de mAP à 7 FPS) et YOLO (63,4 % de mAP à 45 FPS), en termes de compromis vitesse-précision. Le processus d'entraînement a utilisé des techniques d'augmentation de données telles que les recadrages aléatoires, la distorsion des couleurs et le retournement horizontal pour améliorer la robustesse.
Les auteurs ont également introduit une variante appelée SSD avec fusion de caractéristiques, qui combine des cartes de caractéristiques de bas et haut niveau pour améliorer davantage la détection des petits objets. Des travaux ultérieurs, tels que DSSD (Deconvolutional Single Shot Detector) et FSSD (Feature Fusion Single Shot Multibox Detector), se sont appuyés sur les idées de SSD pour améliorer la précision, bien qu'ils aient souvent sacrifié une partie de la vitesse.
Impact et héritage
SSD a eu un impact durable sur le domaine de la vision par ordinateur et de la détection d'objets. Il a démontré que les détecteurs à une seule étape pouvaient atteindre une précision comparable à celle des détecteurs à deux étapes tout en étant beaucoup plus rapides, ce qui a influencé des modèles ultérieurs comme RetinaNet et les versions de YOLO. Le concept de boîtes par défaut et de prédiction multi-échelle a été largement adopté dans de nombreux détecteurs modernes, y compris EfficientDet et les branches basées sur des ancres des architectures plus récentes. SSD est également devenu un composant standard dans de nombreux frameworks de apprentissage automatique et a été inclus dans l'API de détection d'objets TensorFlow, le rendant accessible aux praticiens.
Dans le contexte de la recherche en intelligence artificielle, SSD est souvent cité comme une étape clé dans la transition vers des modèles efficaces en temps réel pouvant fonctionner sur des appareils de périphérie. Ses principes de conception ont été appliqués au-delà de la détection d'objets, comme dans la détection de visages et la détection de texte. La capacité du modèle à équilibrer vitesse et précision en a fait un choix populaire pour les systèmes embarqués et les applications mobiles, et il reste un point de référence dans les benchmarks académiques.
Développements connexes
Après SSD, plusieurs améliorations ont été proposées. Le modèle RetinaNet a introduit la perte focale pour traiter le problème de déséquilibre de classes dans les détecteurs à une seule étape, atteignant une meilleure précision que SSD sur COCO. La famille YOLO, à partir de YOLO9000, a intégré des prédictions multi-échelles similaires à celles de SSD. De plus, la variante MobileNet-SSD a combiné SSD avec des backbones légers pour le déploiement mobile, démontrant que le détecteur pouvait être adapté à des environnements à ressources limitées.
Dans le paysage plus large des architectures de apprentissage profond, SSD est souvent comparé aux méthodes basées sur les régions comme Faster R-CNN et aux détecteurs basés sur des transformateurs plus récents tels que DETR (Detection Transformer), qui éliminent le besoin d'ancres conçues manuellement. Cependant, la simplicité et l'efficacité de SSD ont assuré sa pertinence continue, en particulier dans les scénarios où la latence est critique.
Voir aussi
Références
- Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.-Y., & Berg, A. C. (2016). SSD: Single Shot MultiBox Detector. ECCV.
- Lin, T.-Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal Loss for Dense Object Detection. ICCV.
- Redmon, J., & Farhadi, A. (2017). YOLO9000: Better, Faster, Stronger. CVPR.