Algorithmes de détection d’objets

Quels sont les algorithmes de détection d’objets par les réseaux de neurones?

En général, les détecteurs d’objets basés sur l’apprentissage en profondeur extraient des caractéristiques de l’image ou de l’image vidéo d’entrée. Un détecteur d’objets résout deux tâches successives :

  • Tâche n° 1 : trouver un nombre arbitraire d’objets (peut-être même zéro), et
  • Tâche n° 2 : classer chaque objet et estimer sa taille à l’aide d’un cadre de sélection.

En fonction de l’étude menée ou du résultat attendu, on peut utiliser des algorithmes qui combinent les deux tâches ( algorithmes à une étage) ou utiliser des algorithmes qui font séparément les tâches ( algorithmes à deux étages). Voyons plus en détails les deux types d’algorithmes, leurs avantages et inconvénients.  

  1. Méthodes  ou algorithmes à une étage: les détecteurs à une étape prédisent simultanément la probabilité de la classe de sortie et la position exacte de l’objet à détecter. Ils combinent les deux tâches en une seule ce qui fait que le processus prend moins de temps  ce qui fait que ces algorithmes sont les plus utilisés dans la détection en temps réel. Ces  détecteurs d’objets à un étage donnent la priorité à la vitesse d’inférence et sont super rapides mais pas moins bons (moins précis) pour reconnaître des objets de forme irrégulière ou un groupe de petits objets. Parmi les détecteurs à un étage les plus populaires on a:  YOLO,  SSD ,  RetinaNet, HOG etc….
  2. Méthodes ou algorithmes à deux étages: les détecteurs d’objets à deux étages utilisent d’abord le réseau de suggestion régional ( RPN) pour générer des boîtes à suggestions régionales approximatives puis utilisent  une tête de détection dédiée pour classer les objets dans l’image. En d’autre terme,  une proposition de région d’objet avec des méthodes conventionnelles de vision par ordinateur ou des réseaux profonds, suivie d’ une classification d’objet basée sur des caractéristiques extraites de la région proposée avec une régression de boîte englobante. Les méthodes en deux étapes ou étages permettent d’obtenir la précision de détection la plus élevée, mais sont généralement plus lentes. Les détecteurs d’objets à deux étages trouvent d’abord une région d’intérêt et utilisent cette région recadrée pour la classification. Parmi les détecteurs à deux étages ou étapes les plus populaires on a: R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN etc…

Détection des objets

Détection des objets

Qu’est-ce que la détection d’objets ?

En vision par ordinateur ou computer vision,  la détection d’objets  est désignée par une méthode permettant de détecter la présence d’une instance ou d’une classe d’objets dans une image numérique[1] https://fr.wikipedia.org/wiki/D%C3%A9tection_d’objet.

Selon la terminologie usuelle on peut distinguer la détection, de la localisation et de la reconnaissance d’objets :

  • détection (ou classification) : présence d’une instance de l’objet dans l’image
  • reconnaissance : identification d’une instance particulière (« déchets  », « le visage d’une personne »…)
  • localisation (ou parfois détection) : situation précise de l’instance (détectée ou reconnue) dans l’image (cadre englobant ou segmentation de la zone).

Il est important de noter que pour des entités visuelles localisées (objet, visage, personne…), la détection et la localisation se confondent souvent.

La détection d’une classe d’objets est généralement considérée comme un problème plus difficile que la reconnaissance d’une instance particulière, puisqu’il faut identifier les caractéristiques communes à la classe en faisant abstraction de la variété des différentes instances au sein de ladite classe.

Approche générale

La détection d’un objet dans une image se décompose souvent en trois étapes qui sont:

Les méthodes utilisées pour faire la détection d’objets sont subdivisées en deux grandes familles (les méthodes de seuillages d’images(1) ou les méthodes utilisant l’intelligence artificielle (2) le machine learning ou le deep learning), chacune a ses avantages et inconvénients que nous allons décrire plus bas. 

1- Technique ou méthode de seuillage d’images: ne nécessitent généralement pas de données historiques(données pour faire un entrainement) pour la formation et ne sont pas supervisées par nature. La méthode de seuillage choisie est appliquée directement sur l’image ce qui permet d’avoir une segmentation binaire( segmentation en deux classes) avec une des deux classes représentant l’objet à identifier ou à détecter.

  • Avantages: ces tâches ne nécessitent pas d’ images annotées , où les humains étiquettent les données manuellement (pour une formation supervisée).
  • Inconvénients : ces techniques sont limitées à plusieurs facteurs, tels que les scénarios complexes (sans arrière-plan unicolore), l’occlusion (objets partiellement masqués), l’éclairage et les ombres, et l’effet de fouillis. Ces techniques ne peuvent pas être appliquées sur des images avec plusieurs variations d’éclairage ou d’arrière-plan.

2-Les méthodes d’intelligence artificielle ( machine learning ou le deep learning): reposent généralement sur une formation supervisée . Les performances sont limitées par la puissance de calcul  des GPU en fonction de la machine utilisée et des données(images).

  • Avantages : La détection d’objets d’apprentissage en profondeur ou par les techniques de l’intelligence artificielle est beaucoup plus robuste à l’occlusion, aux scènes complexes et à l’éclairage difficile.
  • Inconvénients : une énorme quantité de données (dans notre  cas images) d’entraînement est nécessaire pour avoir une bonne performance. Pour ce qui de vitesse de du modèle entraîné, il faut une machine avec un bon processeur (GPU) et une mémoire Ram avec une capacité assez élevée et  le processus d’ annotation d’images est laborieux et coûteux. Toutefois, il faut noter qu’il existe déjà des ensemble de données( datasets existants) permettant de faciliter la tâche si l’objet ou les objets à détecter est déjà présent dans une des classes des datasets existants.

1 2 3 4 5