Les réseaux de neurones convolutifs basés sur les régions (R-CNN) sont une famille de modèles d'apprentissage automatique pour la vision par ordinateur, plus précisément pour la détection et la localisation d'objets. L'objectif initial du R-CNN était de prendre une image en entrée et de produire un ensemble de boîtes englobantes en sortie, où chaque boîte contient un objet ainsi que la catégorie (par exemple, voiture ou piéton) de cet objet. En général, les architectures R-CNN effectuent une recherche sélective sur les cartes de caractéristiques produites par un CNN.
Le R-CNN a été étendu pour accomplir d'autres tâches de vision par ordinateur, telles que le suivi d'objets depuis une caméra montée sur drone, la localisation de texte dans une image et la détection d'objets dans Google Lens. Mask R-CNN est également l'une des sept tâches du benchmark d'entraînement MLPerf, une compétition visant à accélérer l'entraînement des réseaux de neurones.
Historique
Le développement du R-CNN a connu plusieurs versions clés. Le R-CNN original a été introduit en novembre 2013, suivi par Fast R-CNN en avril 2015 et Faster R-CNN en juin 2015. Mask R-CNN est arrivé en mars 2017, étendant le cadre à la segmentation d'instances. En décembre 2017, Cascade R-CNN a été proposé, qui s'entraîne avec des seuils d'Intersection sur Union (IoU, également connue sous le nom d'indice de Jaccard) croissants, rendant chaque étape plus sélective face aux faux positifs proches. En juin 2019, Mesh R-CNN a ajouté la capacité de générer un maillage 3D à partir d'une image 2D.
Architecture
La famille R-CNN partage une architecture commune basée sur les propositions de régions et l'extraction de caractéristiques convolutives. L'idée centrale est de générer des régions candidates d'objets, d'extraire des caractéristiques à l'aide d'un CNN et de classer chaque région.
Recherche sélective
Étant donné une image (ou une carte de caractéristiques de type image), la recherche sélective (également appelée regroupement hiérarchique) segmente d'abord l'image à l'aide de l'algorithme de Felzenszwalb et Huttenlocher (2004). Elle fusionne ensuite itérativement les régions voisines similaires en fonction de la couleur, de la texture, de la taille et de la compatibilité de forme, produisant un ensemble d'hypothèses de localisation d'objets. L'algorithme procède comme suit :
- Segmenter l'image en régions initiales R = {r1, ..., rn}.
- Initialiser un ensemble de similarités S = ∅.
- Pour chaque paire de régions voisines (ri, rj), calculer la similarité s(ri, rj) et l'ajouter à S.
- Tant que S n'est pas vide :
- Obtenir la similarité la plus élevée s(ri, rj) = max(S).
- Fusionner les régions correspondantes rt = ri ∪ rj.
- Supprimer les similarités impliquant ri et rj de S.
- Calculer les similarités entre rt et ses voisins, les ajouter à S.
- Ajouter rt à R.
- Extraire les boîtes de localisation d'objets L de toutes les régions de R.
R-CNN
Avec le R-CNN original, la prédiction suit un processus en deux étapes. Une étape de recherche sélective de prétraitement génère un grand ensemble de candidats objets (généralement jusqu'à 2000), appelés régions d'intérêt (ROI). Celles-ci sont transmises à un CNN, qui prédit un score de classe d'objet et une estimation de boîte englobante indépendamment pour chaque ROI. Il est important de noter que les ROI sont fortement filtrées pour éliminer les candidats excédentaires. Le filtrage commence par la suppression des ROI assignées à la catégorie d'arrière-plan, une catégorie spécialisée notée par le CNN aux côtés des autres catégories. Les ROI restantes souffrent souvent d'une duplication importante, car plusieurs ROI couvrant le même objet sont toutes assignées à des catégories non liées à l'arrière-plan. Cela est résolu par une étape heuristique de suppression non maximale (NMS).
Fast R-CNN
Alors que le R-CNN original calculait indépendamment les caractéristiques du réseau de neurones sur chacune des jusqu'à deux mille régions d'intérêt, Fast R-CNN exécute le réseau de neurones une seule fois sur l'image entière. À la fin du réseau se trouve un module ROIPooling, qui découpe chaque ROI du tenseur de sortie du réseau, le redimensionne et le classe. Comme dans le R-CNN original, Fast R-CNN utilise la recherche sélective pour générer ses propositions de régions.
Faster R-CNN
Faster R-CNN intègre la génération de ROI directement dans le réseau de neurones, éliminant ainsi le besoin de recherche sélective externe. Cela rend le modèle entièrement entraînable de bout en bout et significativement plus rapide.
Mask R-CNN
Alors que les versions précédentes se concentraient sur la détection d'objets, Mask R-CNN ajoute la segmentation d'instances, produisant un masque de segmentation pour chaque objet détecté. Mask R-CNN a également remplacé ROIPooling par une nouvelle méthode appelée ROIAlign, qui peut représenter des fractions de pixel, améliorant ainsi la précision de localisation.
Applications et impact
Les modèles R-CNN ont été largement adoptés dans les applications de vision par ordinateur, notamment la conduite autonome, la surveillance et la recherche d'images. L'architecture a influencé les modèles ultérieurs de détection d'objets et reste un concept fondamental dans l'apprentissage profond pour la vision. Le benchmark MLPerf inclut Mask R-CNN comme tâche standard pour évaluer les performances d'entraînement, soulignant son importance pratique.
Voir aussi
Références
- Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR.
- Girshick, R. (2015). Fast R-CNN. ICCV.
- Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. NeurIPS.
- He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask R-CNN. ICCV.
Lectures complémentaires
- Parthasarathy, Dhruv (2017-04-27). "A Brief History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN". Medium. Consulté le 2024-09-11.