Introduction à la détection d'objets en Computer Vision [2024]
En tant qu'humains, nous avons souvent du mal à identifier et à compter rapidement tous les objets qui nous entourent, mais les ordinateurs, grâce à la technologie de détection d'objet, excellent dans ce domaine. Cette capacité avancée de l'IA permet aux machines non seulement de détecter et d'énumérer les objets dans les images ou les vidéos avec une précision remarquable, mais aussi de les classer dans plusieurs catégories et d'identifier des objets tels que des personnes, des animaux ou des véhicules, par exemple.
De plus, ces systèmes peuvent localiser avec précision l'emplacement exact d'un objet au sein d'une image. Ce bond technologique, qui a considérablement évolué au cours des deux dernières décennies, a ouvert de nouveaux horizons au-delà de la recherche en IA. Il est essentiel dans des applications réelles, telles que les véhicules autonomes qui interprètent des scénarios de trafic complexes, et dans le commerce de détail, pour rationaliser les processus de paiement (par exemple, il s’agit d’une technique très utilisée pour les caisses automatiques les plus récentes).
Les derniers algorithmes de détection d'objets, en constante amélioration en termes de précision et de vitesse, transforment les industries en améliorant les tâches de vision par ordinateur dans la surveillance automatisée, la surveillance environnementale et même les diagnostics de santé avancés, démontrant l'impact de plus en plus profond de l'IA dans la vie quotidienne.
Avec cet article, nous vous proposons une introduction à la détection d’objets en Computer Vision, pour vous fournir un aperçu des méthodes et algorithmes de détection d'objets les plus avancés dans le domaine de l’IA.
Introduction : les bases de la détection d'objet
Avant de plonger dans les détails du "comment", examinons d'abord le "quoi". Qu'est-ce que la détection d'objets ? De manière concrète ? À quoi sert-elle et comment fonctionne-t-elle ? Ce ne sont là que quelques-unes des questions auxquelles nous tentonsde répondre dans cet article.
Détection d'objets : qu'est-ce que c'est ?
La détection d'objets est une technologie de pointe en apprentissage automatique et en apprentissage profond qui permet aux ordinateurs d'identifier et de localiser avec précision les objets au sein des images ou des vidéos. Elle appartient à une branche de l'intelligence artificielle appelée "Computer Vision".
Les programmes informatiques de détection d'objets visent à reproduire les processus complexes de la vision humaine à travers diverses données d'entraînement et l'orchestration d'algorithmes complexes : les machines perçoivent et comprennent le monde visuel avec un niveau de précision et de sophistication autrefois exclusivement réservé à la perception humaine.
Le domaine du "Computer Vision" est l'un des domaines qui évolue le plus rapidement. Au cœur de son progrès rapide se trouve le rôle important de la détection d'objets. Cet article vise à vous fournir un aperçu des principaux concepts essentiels à la compréhension des mécanismes de détection d'objets par une machine.
Faisons simple : la détection d'objets implique la création de boîtes englobantes autour d'objets préalablement identifiés. Ces boîtes englobantes servent à localiser précisément les positions exactes des objets dans une scène donnée ou à suivre leur mouvement à l'intérieur de celle-ci.
Pourquoi la détection d'objets est-elle importante ? Elle fait déjà partie de notre vie quotidienne...
Le rôle de la détection d'objets en Computer Vision va bien au-delà de l'identification d'objets ; c'est un mécanisme essentiel pour comprendre des contextes visuels complexes. Cette technologie permet des tâches nuancées comme distinguer des instances d'objets individuels (segmentation d'instance), comprendre des scènes pour générer des textes descriptifs (ajout de légendes à des images), et la détection et le suivi continus d'objets en temps réel à travers des séquences vidéo.
De plus, ses applications se sont répandues dans divers domaines, de l'amélioration de la sécurité publique grâce à la détection et au suivi de piétons et de véhicules, à la transformation du commerce de détail avec des caisses permettant des paiements automatisés, sans qu'il soit nécessaire de scanner chaque article individuellement.
Les avancées tant dans les modèles d'apprentissage automatique et profond que dans les réseaux neuronaux ont propulsé la détection d'objets à de nouveaux sommets, permettant un traitement en temps réel et une grande précision, importants pour des environnements dynamiques comme la conduite autonome ou les systèmes de surveillance avancés. Ces développements soulignent l'impact transformateur de la détection d'objets dans les développements techniques mais aussi dans la vie de tous les jours.
Une explication simple du principe, un concept-clé en intelligence artificielle
L'idée est d’entraîner un programme informatique à reconnaître différents types d'objets, à détecter des objets et à les compter, puis à localiser automatiquement les objets jusqu'à leur position précise au pixel près dans de nouvelles images.
Pour ce faire, le système est alimenté par des milliers de photos annotées, dans lesquelles chaque objet d'intérêt est identifié par une "boîte englobante". Par exemple, les chats sont délimités par des carrés bleus, les chiens par des carrés rouges, etc.
Comment ça marche ? Les grandes étapes
En se basant sur plusieurs données, soit une variété d'images et de données d'entraînement, l'algorithme IA détectera progressivement les motifs, les textures et les formes communes aux images de test utilisées pour chaque catégorie et apprendra à les reconnaître. Il pourra alors les identifier automatiquement dans n'importe quelle nouvelle image.
Différences avec la classification d'image et la segmentation sémantique
Avant d'aborder les aspects techniques de la détection d'objets, examinons ce qui distingue cette technologie de deux autres techniques de traitement d'image connexes : la classification et la segmentation d'image sémantique.
En quoi la classification d'image et la détection d'objets sont-ils des concepts différents ?
Alors que la classification d'image se contente simplement d'attribuer une étiquette globale à une image (par exemple, "plage"), sans localiser des objets spécifiques, la détection d'objets identifie chaque occurrence d'objet pertinente (parasols, personnes, ...) dans l'image d'entrée et en délimite sa position dans les images d'entrée.
La classification d'image implique de faire passer une image entière à travers un classificateur, généralement un réseau neuronal profond, pour obtenir une étiquette ou un tag correspondant. Les classificateurs analysent l'image complète mais ne fournissent pas d'informations sur l'emplacement spécifique de l'objet étiqueté à l'intérieur de l'image.
En revanche, la détection d'objets représente une technique plus avancée qui non seulement classe les objets mais les délimite également en dessinant une boîte englobante autour d'eux.
Quelle différence avec la segmentation sémantique ?
Quant à la segmentation d'image sémantique, il s'agit d'une technique qui détecte et sépare plusieurs objets, avec une plus grande précision qu'une simple boîte englobante. Dans la segmentation d'image sémantique, tous les pixels associés à une étiquette particulière sont marqués, mais cette méthode ne délimite pas les contours exacts de chaque objet individuel.
D'autre part, la détection d'objets, plutôt que de segmenter les objets, délimite précisément les positions de chaque instance d'objet séparée en les enfermant dans des boîtes englobantes.
Enfin, la segmentation d'instance combine le meilleur des deux mondes : cette technique implique de déterminer quels pixels dans une image appartiennent à une classe d'objet spécifique. D'abord, elle identifie les instances d'objets individuels, puis elle procède à la segmentation de chaque instance dans les boîtes englobantes détectées, qui sont appelées régions d'intérêt dans ce contexte.
Object Detection : une brève comparaison avec d'autres techniques de Computer Vision
Comparée à la reconnaissance faciale, qui identifie un seul type de détection d'objets en temps réel, ou à la détection de texte, qui identifie les mots écrits, la détection d'objets est une technologie beaucoup plus complexe. En effet, elle doit apprendre à identifier et classifier une multitude d'objets, dont les formes changent selon l'angle de vue.
Modèles et algorithmes de détection d'objet
L'art des systèmes de détection d'objets réside dans les algorithmes utilisés. Sans entrer dans les formules mathématiques complexes (vous pouvez consulter ces ressources si cela vous intéresse), nous pouvons distinguer 2 principales familles d'approches des détecteurs d'objets : les méthodes "one-shot" et les méthodes en deux étapes.
Approches en une étape ou "one-shot"
Les approches "one-shot", comme leur nom l'indique, tentent de réaliser l'ensemble de l'analyse en un seul passage. Elles appliquent un unique réseau neuronal convolutif directement à l'image pour effectuer simultanément la détection et la classification des objets.
Exemple de YOLO
L’exemple le plus connu d’algorithme one-shot est certainement YOLO (You Only Look Once). Grâce à une architecture neuronale très efficace, il offre d’excellents résultats tout en étant plus rapide que ses concurrents. Une solution idéale pour les applications temps-réel comme les voitures autonomes.
Approches en deux étapes
La détection d'objets en utilisant des algorithmes de R-CNN (réseaux de neurones convolutifs sur des régions) est basée sur les trois processus suivants :
1. Trouver des régions dans l'image qui pourraient contenir un objet. Ces régions sont appelées propositions de régions.
2. Extraire les caractéristiques des CNN des propositions de régions et classer les objets en utilisant les caractéristiques extraites.
Il existe trois variantes d'un R-CNN. Chaque variante tente d'optimiser, d'accélérer ou d'améliorer les résultats d'un ou de plusieurs de ces processus.
R-CNN
Le détecteur R-CNN génère d'abord des propositions de régions en utilisant un algorithme tel que Edge Boxes. Les régions proposées sont découpées de l'image et redimensionnées. Ensuite, le CNN classe ces régions découpées et redimensionnées. Finalement, les boîtes englobantes des propositions de régions sont affinées par une machine à vecteurs de support (SVM) qui est entraînée en utilisant les caractéristiques du CNN.
Fast R-CNN
Comme dans le détecteur R-CNN, le détecteur Fast R-CNN utilise également un algorithme comme Edge Boxes pour générer des propositions de régions. Contrairement au détecteur R-CNN, qui découpe et redimensionne les propositions de régions, le détecteur Fast R-CNN traite l'image entière. Tandis qu'un détecteur R-CNN doit classifier chaque région, Fast R-CNN regroupe les caractéristiques du CNN correspondant à chaque proposition de région. Fast R-CNN est plus efficace que R-CNN, car dans le détecteur Fast R-CNN, les calculs pour les régions qui se chevauchent sont partagés.
Faster R-CNN
Le détecteur Faster R-CNN ajoute un réseau de propositions de régions (RPN) pour générer directement dans le réseau les propositions de régions, au lieu d'utiliser un algorithme externe comme Edge Boxes. Le RPN utilise des boîtes d'ancrage pour la détection d'objets. Générer des propositions de régions dans le réseau est plus rapide et mieux adapté à vos données.
Quelle approche choisir ?
Il n'y a pas d'approche universelle pour la détection d'objets. Chaque méthode a ses avantages et ses inconvénients. Le choix des méthodes de détection d'objets dépend de l'application cible et des contraintes en termes de précision, de vitesse et de consommation de ressources.
Quelques conseils pour choisir un modèle de détection en fonction de vos cas d'usage...
Par exemple, pour un drone qui doit scanner des palettes dans un entrepôt, une solution rapide comme YOLO sera plus que suffisante. En revanche, dans un contexte médical où la précision est cruciale, un modèle R-CNN plus lent sera généralement préféré, mais avec des délimitations plus fines.
La détection d'objets au service du quotidien
Bien que très avancée d'un point de vue technologique, la détection d'objets a déjà de nombreuses applications concrètes pour le grand public. Du déverrouillage des smartphones par reconnaissance faciale à la modération automatique des réseaux sociaux et au contrôle de qualité industriel, cette technologie simplifie et sécurise certaines tâches quotidiennes auxquelles nous ne faisons pas toujours attention.
Détection de personnes
Parmi les applications grand public des algorithmes de détection d'objets qui font déjà partie intégrante de notre quotidien, la détection et la reconnaissance des personnes sont sans aucun doute les plus répandues.
Portées par les progrès fulgurants des algorithmes de Deep Learning et de Machine Learning ces dernières années, cette tâche complexe de localisation des humains dans les images et les vidéos s'est considérablement améliorée, au point de se fondre dans nombre de nos activités, souvent à notre insu.
Exemples au quotidien
Qui n'a jamais déverrouillé son smartphone d'un simple regard, grâce à la reconnaissance faciale ? Ces techniques rapides et faciles de vérification de l'identité sont rendues possibles par la détection de visages. Autre exemple : lorsque vous téléchargez une photo de profil sur un réseau social, les modèles de détection entrent immédiatement en action pour flouter ou bloquer tout contenu inapproprié. Enfin, dans nos villes, des caméras intelligentes équipées de cette technologie mesurent automatiquement le respect des distances sociales ou le port du masque pour lutter contre les épidémies.
Vidéosurveillance intelligente grâce à l'IA
La détection d'objets automatise également les tâches de surveillance vidéo, de détection d'anomalies, de détection de piétons et de détection d'anomalies chronophages, que ce soit dans les espaces publics, les points de vente ou les sites industriels sensibles.
Grâce à l'analyse en direct des images capturées, le logiciel peut générer des alertes lorsqu'un colis suspect est abandonné ou qu'un individu franchit une barrière interdite. C'est un moyen efficace d'assister les agents de sécurité en attirant leur attention sur des événements pertinents.
Détection d'objets pour les véhicules autonomes
Un autre domaine où la détection d'objets joue un rôle clé est la conduite autonome. Pour se frayer un chemin dans la circulation, les véhicules du futur s'appuient sur toute une batterie de capteurs vidéo qui scrutent en permanence l'environnement à la recherche de piétons, de cyclistes, d'autres voitures ou même d'animaux, afin d'adapter leur trajectoire en temps réel.
Des modèles formés à détecter des centaines de types d'objets différents nous permettent d'analyser plusieurs flux simultanément avec une précision redoutable, apportant une plus grande sécurité aux routes de demain.
Inspection visuelle dans l’industrie
La détection de défauts dans les produits fabriqués est désormais beaucoup plus facile sur les chaînes de production. Des caméras équipées de cerveaux artificiels inspectent chaque pièce à la recherche du moindre problème : peinture manquante, pièces mal positionnées, rayures, etc. Un gain considérable en productivité et en traçabilité pour les fabricants, le tout sans intervention humaine !
Analyse vidéo chirurgicale pour entraîner des modèles Computer Vision... pour des diagnostics plus précis
Les images vidéo chirurgicales constituent un flux de données complexe et souvent bruyant capturé par des caméras endoscopiques lors de procédures médicales critiques. La technologie de détection d'objets joue un rôle clé dans l'identification d'anomalies insaisissables telles que des polypes ou des lésions, nécessitant une intervention chirurgicale immédiate. De plus, on peut imaginer un monde dans lequel cette technologie de pointe remplit une fonction supplémentaire en fournissant des mises à jour en temps réel à l'équipe médicale, lui permettant de surveiller de près l'évolution de la procédure chirurgicale.
Avantages et inconvénients des modèles de détection d'objets
La détection d'objets est une technique puissante de vision par ordinateur, dotée de ses propres forces et limites. Comprendre quand utiliser la détection d'objets et quand envisager des méthodes alternatives est important pour résoudre efficacement des problèmes dans divers scénarios.
Voici une analyse des avantages et inconvénients des différentes méthodes de détection d'objets.
Quelques avantages...
Efficace pour les objets de taille moyenne
La détection d'objets excelle lorsqu'il s'agit d'objets occupant une portion modérée d'une image, généralement allant de 5% à 65% de la surface de l'image. Elle est compétente pour reconnaître des objets de tailles variées dans cette gamme.
Efficace lorsque les limites d'objet sont claires
Cette technique est très efficace pour détecter des objets avec des limites bien définies. Les objets présentant des bords distincts et des formes sont particulièrement adaptés à la détection.
Reconnaissance de clusters
La détection d'objets peut identifier des clusters d'objets comme une seule entité. Lorsque les objets sont regroupés de près, elle a la capacité de les traiter collectivement, ce qui peut être avantageux dans diverses applications.
Localisation à haute vitesse
Les processus de détection d'objets peuvent atteindre des performances en temps réel ou quasi réelles, souvent dépassant les 15 images par seconde (ips). Cette capacité de localisation rapide est inestimable dans des scénarios où la vitesse est importante.
Polyvalence pour les scénarios multi-objets
La détection d'objets convient bien aux scénarios où plusieurs objets doivent être identifiés simultanément dans une image ou une séquence vidéo. Cette polyvalence est particulièrement précieuse dans des applications telles que la surveillance, où la détection de divers objets dans une scène est essentielle pour la sécurité et la surveillance.
Nombreuses applications dans le monde réel
La détection d'objets trouve des applications répandues dans divers domaines du monde réel, y compris les voitures autonomes, l'imagerie médicale pour la détection de tumeurs, et le commerce de détail pour la gestion des stocks. Son adaptabilité et sa précision contribuent à son utilité étendue.
... mais aussi des inconvénients :
Limitations pour les objets allongés et les formes très irrégulières
La détection d'objets peut ne pas être optimale pour des objets allongés ou très fins, comme un crayon. Dans de tels cas, l'objet peut occuper une petite fraction de la boîte englobante, menant à un biais vers les pixels de fond plutôt que l'objet lui-même.
La détection d'objets peut également rencontrer des difficultés avec des objets aux formes très irrégulières ou complexes, comme des formations géologiques de forme irrégulière. La précision de la détection peut être compromise lorsque les objets s'écartent significativement des formes standard.
Inefficace pour les concepts non physiques
Les objets qui manquent de présence physique tangible, tels que des descripteurs comme "ensoleillé", "lumineux" ou "incliné", sont mieux traités en utilisant des techniques de classification d'image. La détection d'objets peut avoir du mal à gérer efficacement ces concepts abstraits.
Peu adapté lorsque les limites sont ambiguës
Lorsque les objets présentent des limites floues sous différents angles, la segmentation sémantique peut être un choix plus approprié. Par exemple, les images aériennes contenant le ciel, le sol ou la végétation, qui manquent de limites bien définies, sont mieux segmentées en utilisant cette approche.
Une gestion de l'occlusion qui peut poser des défis
Les objets fréquemment occultés (partiellement cachés) peuvent poser des défis pour la détection d'objets. Dans de tels cas, si possible, la segmentation d'instance est un choix privilégié au sein des réseaux de détection à deux étapes, car elle excelle à comprendre et à segmenter plus précisément les objets occultés que la détection basique par boîte englobante.
Intensif en ressources
La mise en œuvre de modèles de détection d'objets nécessite souvent des ressources informatiques substantielles, y compris des GPU ou TPU puissants. Cette demande en ressources peut être une limitation dans des environnements contraints en ressources ou sur des appareils en périphérie avec des capacités de traitement limitées.
Complexité du processus d'annotation des données
La création de jeux de données d'entraînement de haute qualité pour les modèles de détection d'objets, qui impliquent de marquer avec précision les limites et les catégories des objets, peut être chronophage et nécessiter beaucoup de main-d'œuvre. La qualité des données d'entraînement impacte directement la performance du modèle, rendant l'annotation des données une considération critique.
Limité à l'espace 2D pour de meilleures performances
La détection d'objets fonctionne principalement dans l'espace bidimensionnel et peut rencontrer des difficultés lorsqu'il s'agit d'identifier des objets dans des environnements tridimensionnels, tels que la détection d'objets dans des scans médicaux volumétriques ou dans des applications de réalité augmentée où les informations de profondeur sont cruciales.
L'efficacité de la détection d'objets dépend des caractéristiques spécifiques des objets et des scènes avec lesquels vous traitez. Pour prendre des décisions éclairées, il est essentiel d'évaluer si la détection d'objets s'aligne avec la nature de votre problème ou si des techniques alternatives telles que la segmentation d'instance, la classification d'image ou la segmentation sémantique pourraient être mieux adaptées pour atteindre vos objectifs. Comprendre ces nuances vous permet de sélectionner l'approche la plus appropriée pour vos besoins uniques en vision par ordinateur.
En conclusion...
Il est clair que la détection d'objets est déjà devenue une partie intégrante de notre vie quotidienne, à notre insu. Que ce soit une question de modération des réseaux sociaux ou d'optimisation des lignes de production, cette technologie d'intelligence artificielle apporte sa part d'aides discrètes.
Cependant, au milieu des réalisations remarquables de la détection d'objets, nous devons reconnaître les défis qui persistent à l'horizon. L'un de ces défis est la gestion de grands volumes de données d'entraînement et la multitude d'angles et de poses des objets. Bien que la détection d'objets ait fait des progrès significatifs dans le traitement des variations d'orientation des objets, des avancées supplémentaires sont nécessaires pour renforcer sa robustesse dans des scénarios complexes. Surmonter ce défi nécessitera une innovation continue et un raffinement des algorithmes de détection d'objets.
Pourtant, malgré ces défis, le rythme des progrès en intelligence artificielle reste implacable. Avec la recherche et le développement continus, il paraît évident que les applications de détection d'objets continueront à se diversifier et à évoluer. Dans les prochaines années, les techniques de détection d'objet devraient se répandre dans des domaines tels que la santé ou la surveillance environnementale. Dans le domaine de la santé, elles contribueront à la détection précoce de maladies grâce à l'imagerie médicale, aidant au diagnostic et au traitement opportuns des patients. Dans la surveillance de l'environnement, elles permettront de suivre et d'atténuer les impacts du changement climatique.
En conclusion, bien que des défis persistent, la trajectoire des progrès en intelligence artificielle nous assure que la détection d'objets est une technique prometteuse qui gagnera à être adoptée par les équipes R&D, pour construire des produits industriels et grand public de plus en plus sophistiqués.
Vous avez identifié un cas d'usage nécessitant d'appliquer des techniques de détection d'objet ? Problème : vous ne savez pas comment vous procurer les données d'entraînement nécessaires à la réussite de votre projet. Pas de panique, Innovatiana est un acteur spécialisé dans l'annotation de données pour l'IA : nos Data Labelers spécialisés et experts sont là pour vous aider à construire des datasets de qualité. N’hésitez pas à nous contacter.