Fast R-CNN
Fast R-CNN est un algorithme d’apprentissage profond utilisé en vision par ordinateur pour la détection d’objets. Il représente une amélioration significative par rapport à son prédécesseur, R-CNN (Regions with Convolutional Neural Network features), en termes de vitesse et d’efficacité d’entraînement, tout en maintenant ou améliorant la précision de la détection.
Les concepts fondamentaux de Fast R-CNN reposent sur le partage des calculs convolutifs pour l’ensemble de l’image. Contrairement à R-CNN qui appliquait un réseau neuronal convolutif (CNN) indépendamment à chaque proposition de région (plusieurs milliers par image), Fast R-CNN traite l’image entière avec un CNN une seule fois pour générer une carte de caractéristiques globale (feature map). Ensuite, pour chaque proposition de région d’intérêt (Region of Interest – RoI), l’algorithme extrait un vecteur de caractéristiques de taille fixe à partir de cette carte partagée en utilisant une couche spécifique appelée RoI Pooling.
Le principe essentiel de la couche RoI Pooling est de surmonter le problème des tailles variables des régions d’intérêt. Les couches entièrement connectées (fully connected layers) qui suivent typiquement un CNN requièrent une entrée de taille fixe. RoI Pooling prend en entrée la carte de caractéristiques globale et les coordonnées d’une RoI (qui peut avoir n’importe quelle taille), et produit une petite carte de caractéristiques de taille fixe (par exemple, 7×7). Ceci est accompli en divisant la RoI en une grille de sous-fenêtres de taille fixe et en effectuant un max-pooling sur chaque sous-fenêtre.
Une fois les vecteurs de caractéristiques de taille fixe obtenus grâce au RoI Pooling, ils sont passés à travers une séquence de couches entièrement connectées. Ces couches se divisent ensuite en deux branches de sortie parallèles. La première branche est un classificateur Softmax qui prédit la classe de l’objet présent dans la RoI (parmi K classes d’objets plus une classe « arrière-plan »). La seconde branche est un régresseur de boîtes englobantes (bounding box regressor) qui affine les coordonnées de la proposition de région initiale pour mieux correspondre à la localisation précise de l’objet détecté.
L’importance de Fast R-CNN réside dans son optimisation drastique du processus de détection. En évitant les calculs redondants du CNN sur des régions qui se chevauchent, il accélère considérablement la vitesse d’inférence (détection sur de nouvelles images) et la vitesse d’entraînement par rapport à R-CNN. De plus, Fast R-CNN permet un entraînement de bout en bout (end-to-end) pour le classificateur et le régresseur de boîtes englobantes (à l’exception de la génération des propositions de régions elle-même), en utilisant une fonction de perte multi-tâches (multi-task loss) qui combine la perte de classification (Log loss) et la perte de régression (Smooth L1 loss). Cela simplifie le processus d’entraînement et améliore souvent la précision globale (mesurée par le score mAP – mean Average Precision). Son impact a été majeur, car il a ouvert la voie à des architectures encore plus rapides comme Faster R-CNN.
Les applications pratiques de Fast R-CNN couvrent un large éventail de tâches de détection d’objets. Il est utilisé dans les systèmes de surveillance pour détecter des personnes ou des véhicules, dans les véhicules autonomes pour identifier les piétons, les cyclistes, les autres voitures et les panneaux de signalisation, en robotique pour la manipulation d’objets, dans l’indexation et la recherche d’images par contenu, et même dans l’analyse d’images médicales pour repérer des anomalies comme des tumeurs ou des lésions. Par exemple, un système de sécurité pourrait utiliser Fast R-CNN pour analyser les flux vidéo et alerter en cas de détection d’une intrusion dans une zone restreinte.
Bien que Fast R-CNN soit une architecture spécifique, le terme peut parfois être utilisé dans un sens plus large pour désigner l’approche générale consistant à utiliser des cartes de caractéristiques partagées et le RoI Pooling pour la détection. Il est important de noter que Fast R-CNN repose toujours sur un algorithme externe pour générer les propositions de régions initiales (comme Selective Search ou EdgeBoxes), ce qui constitue sa principale différence avec son successeur, Faster R-CNN, qui intègre la génération de propositions dans le réseau lui-même via un Region Proposal Network (RPN). Il n’y a pas réellement de variations majeures portant le nom « Fast R-CNN », mais les principes qu’il a introduits ont été intégrés et adaptés dans de nombreuses architectures ultérieures.
Les concepts étroitement liés à Fast R-CNN incluent R-CNN (son prédécesseur direct, beaucoup plus lent), SPP-Net (Spatial Pyramid Pooling Network, qui a introduit l’idée de partager les calculs convolutifs mais avec un entraînement plus complexe), Faster R-CNN (son successeur direct, qui intègre la génération de propositions de régions), et plus généralement, les réseaux neuronaux convolutifs (CNN), la détection d’objets, la vision par ordinateur, les propositions de régions (Region Proposals), le RoI Pooling, la régression de boîtes englobantes (Bounding Box Regression), et l’apprentissage multi-tâches (Multi-task Learning). Il n’a pas de synonyme direct mais fait partie de la famille des détecteurs d’objets basés sur les régions (region-based object detectors) ou détecteurs en deux étapes (two-stage detectors). Les détecteurs en une étape (one-stage detectors) comme YOLO et SSD pourraient être considérés comme des approches alternatives, mais pas des antonymes directs.
Fast R-CNN a été proposé par Ross Girshick, alors chercheur chez Microsoft Research (maintenant chez Facebook AI Research – FAIR), dans un article publié en 2015. Il s’inscrit dans une évolution rapide des techniques de détection d’objets basées sur le deep learning qui a commencé avec R-CNN en 2014. Fast R-CNN a directement abordé les limitations de vitesse de R-CNN et SPP-Net, préparant le terrain pour l’introduction de Faster R-CNN quelques mois plus tard par la même équipe de chercheurs, qui est devenu une référence dans le domaine pendant plusieurs années.
Les avantages de Fast R-CNN par rapport à R-CNN sont clairs : une vitesse d’entraînement beaucoup plus rapide (environ 9 fois) et une vitesse d’inférence considérablement accrue (environ 145 fois plus rapide lors des tests initiaux sur VGG16), une meilleure précision de détection (mAP plus élevé), et un processus d’entraînement unifié grâce à la perte multi-tâches, éliminant le besoin d’entraîner séparément un classificateur SVM et des régresseurs de boîtes englobantes comme dans R-CNN.
Cependant, Fast R-CNN présente aussi des inconvénients et limitations. Son principal goulot d’étranglement reste la génération des propositions de régions, qui est effectuée par un algorithme externe (par exemple, Selective Search) et peut prendre plusieurs secondes par image, limitant ainsi la vitesse globale du système. Bien que beaucoup plus rapide que R-CNN, Fast R-CNN n’atteint généralement pas des performances en temps réel sur les GPU de l’époque, surtout comparé aux détecteurs en une étape plus récents. Sa performance dépend également fortement de la qualité des propositions de régions fournies en entrée. Ces limitations ont été largement adressées par Faster R-CNN.