Il existe différentes approches de machine learning pour les tâches de détection d’objets. Parmi les exemples, citons la méthode de Viola-Jones8 et l’histogramme de gradients orientés.9 La recherche et le développement en matière de détection d’objets privilégient toutefois les réseaux de neurones convolutifs (CNN). Cette page traite des deux types de CNN les plus abordés dans la recherche en détection d’objets. Notez que ces modèles sont testés et comparés à l’aide de jeux de données de référence, comme le jeu de données Microsoft COCO ou encore ImageNet.
Un R-CNN (réseau neuronal convolutif basé sur les régions) est un détecteur en deux étapes qui utilise une méthode appelée propositions de régions pour générer 2 000 prédictions de régions par image. Le R-CNN déforme ensuite les régions extraites pour en uniformiser la taille, et il les fait passer par des réseaux distincts pour extraire et classer leurs caractéristiques. Chaque région est notée en fonction de la fiabilité de sa classification. Le R-CNN rejette ensuite les régions dont les IoU se chevauchent au profit de la région sélectionnée ayant obtenu le meilleur score. Les autres régions classées les mieux notées qui ne se chevauchent pas constituent la sortie du modèle.10 Comme on peut s’y attendre, cette architecture est lente et coûteuse en termes de calcul. Les Fast R-CNN et les Faster R-CNN sont des évolutions qui réduisent la taille de l’architecture du R-CNN et donc le temps de traitement, tout en augmentant la précision.11
Les algorithmes YOLO (You Only Look Once) forment une famille d’architectures de détection en une seule étape basée sur Darknet, un framework CNN open source. Développée pour la première fois en 2016, l’architecture YOLO privilégie la vitesse. En effet, sa rapidité en fait l’option de choix pour la détection d’objets en temps réel, et c’est d’ailleurs pour cela qu’on le qualifie communément de détecteur d’objets de pointe. L’algorithme YOLO se distingue des R-CNN à plusieurs égards. Alors que les R-CNN font passer les régions d’images extraites à travers plusieurs réseaux qui en extraient les caractéristiques et classent les images séparément, YOLO condense ces étapes dans un réseau unique. Ensuite, tandis que les R-CNN font environ 2 000 propositions de régions, YOLO fait moins de 100 prédictions de boîtes englobantes par image. Outre sa rapidité supérieure à celle des R-CNN, YOLO produit également moins de faux positifs pour les régions d’arrière-plan, avec des erreurs de localisation toutefois plus élevées.12 L’algorithme YOLO a fait l’objet de nombreuses mises à jour depuis sa création, généralement axées sur sa vitesse et sa précision.13
Bien que développées à l’origine pour la détection d’objets, les versions plus récentes de R-CNN et de YOLO permettent également d’entraîner les modèles de classification et de segmentation. Plus précisément, Mask R-CNN associe détection d'objets et segmentation, tandis que YOLOv5 permet d’entraîner différents modèles de classification, de détection et de segmentation.
Bien sûr, il existe bien d’autres architectures de modèles outre R-CNN et YOLO. SSD et Retinanet reposent sur une architecture simplifiée similaire à YOLO.14 Développée par Facebook (aujourd’hui Meta), l’architecture DETR associe le CNN à un modèle de type transformer et offre une performance comparable à celle de Faster R-CNN.15