Introduction à la détection d'objets pour l'analyse vidéo

Alexandre Potvin-Demers

L’ère de l’intelligence artificielle

Ces temps-ci, on entend beaucoup parler de l’intelligence artificielle (IA), et l’on assiste à des démonstrations de ses capacités : création de texte, génération d’images, composition musicale, etc. La plupart de ces cas d’utilisation sont issus de la révolution de l’IA générative, un domaine relativement récent, et qui est en constant développement.

En revanche, il existe d’autres champs d’application de l’intelligence artificielle qui évoluent depuis plus longtemps et qui, en conséquence, sont beaucoup plus matures. La vision numérique en est un parfait exemple. En effet, selon Gartner1, la vision numérique est le champ d’application de l’IA dont la maturité est la plus élevée, et qui est le plus près d’atteindre le “plateau de productivité”. Ce plateau représente une période où les attentes face aux capacités de cette technologie sont plus réalistes et plus concrètes.

A curve showing artificial intelligence technologies, where the x-axis is time, and the y-axis is expectations. Computer vision is shown the furthest on the time axis, and getting higher on the expectations axis, in the "slope of enlightenment" region, next to the "plateau of productivity".

La vision numérique, qu’est-ce que c’est?

La vision numérique est la branche de l’intelligence artificielle qui se consacre aux données visuelles, telles que les images. Les techniques sous-jacentes de l’IA sont appliquées à des données qui représentent visuellement le monde qui nous entoure, de façon à en faire l’analyse et à en tirer des conclusions.

Concrètement, certaines des techniques de vision numérique que l’on rencontre le plus souvent sont la classification d’images, la segmentation, et la détection d’objets. La figure suivante montre la différence entre ces trois techniques :

An image of a highway shown raw, with image classification, with segmentation, and with object detection.

En général, la classification permet de catégoriser une image entière, la segmentation permet de tracer le contour des objets dans une image, et la détection d’objets permet d’encadrer et d’identifier le type des objets présents dans l’image. Dans cet article, nous verrons plus en détails la technologie derrière la plateforme BoxCV : la détection d’objets.

Détection d’objets : Mesurer, positionner et identifier

Tel qu’illustré précédemment, la détection d’objets permet d’obtenir des données sur les objets dans une image. Ces données sont illustrées par ce qu’on appelle un “cadre” (ou bounding box, en anglais). Comme ce cadre englobe la totalité de l’objet, il peut être utilisé pour déterminer à la fois la taille relative et la position de l’objet.

An image of a highway with detected vehicles. The vehicles are inside a bounding box, with the size of the bounding box displayed on top, and a marker in the middle of the bounding box shows its position.

Cependant, en plus du cadre, les modèles de détection d’objets génèrent aussi une étiquette (label, en anglais), qui décrit la classe à laquelle appartient un objet (son type). Généralement, ces classes peuvent représenter des personnes, des véhicules, des animaux, etc. Lors de l’utilisation de modèles de détection d’objets, on reçoit aussi un score de confiance qui correspond à la confiance du système par rapport à la détection effectuée.

An image of a highway with vehicles. The vehicles are inside a bounding box, with the detection class and the confidence score of the detection displayed on top.

Ces données obtenues pour une image représentent la forme la plus “brute” de la détection d’objets. Ce sont les données qui, une fois interprétées, permettent d’effectuer une analyse plus en profondeur de ce que renferme l’image. Voyons comment pousser cette technique à un niveau supérieur en l’appliquant sur un flux vidéo.

La détection d’objets pour l’analyse vidéo

Vous aurez peut-être remarqué que jusqu’à présent, on ne parle de détection d’objet que dans le cas d’images, et non dans un flux vidéo. En effet, l’application de cette technique à un flux vidéo entraîne quelques défis supplémentaires.

💡 Ce sont d’ailleurs ces défis qui ont mené à la création de BoxCV!

Comme une vidéo est essentiellement une séquence d’image, il est possible d’appliquer directement la détection d’objets sur chacune des images qui composent le flux vidéo. Cependant, pour aller chercher des données intéressantes, il est nécessaire d’appliquer une couche d’analyse supplémentaire à ces données brutes, notamment pour suivre les objets d’une image à l’autre et comprendre leur déplacement dans le temps et l’espace.

Le suivi d’objets

En utilisant la détection d’objets sur chaque image d’un flux vidéo, on obtient les données brutes mentionnées plus tôt. Dans le cas de la plateforme BoxCV, ces données brutes servent d’entrée à un algorithme de suivi (tracking), spécialement conçu pour suivre les objets détectés dans le temps et dans l’espace.

L’utilisation de cet algorithme pour raffiner les données brutes permet de pallier à certaines incohérences de détection. En effet, il peut arriver que des objets soient détectés en trop dans une image, ou qu’ils ne soient pas détectés du tout. Cela peut se produire, par exemple, lorsqu’un objet passe temporairement derrière un autre, et qu’il est hors de la vue de la caméra pendant un instant. Dans ce cas, comme on analyse le flux vidéo plutôt qu’une seule image, on peut déterminer que lorsque l’objet “réapparaît”, qu’il s’agit en fait du même objet, et non d’un nouveau. De la même façon, si un objet est “faussement” détecté dans une seule image, mais qu’il n’apparaît plus jamais dans le reste du flux, on peut le considérer comme une erreur de détection, et éviter de le comptabiliser.

Ainsi, un tel algorithme de suivi permet d’obtenir les données “raffinées”, qui correspondent à la position, la taille et la classe de chaque objet, suivis dans le temps!

Le monde visuel sous forme de données

Les concepts expliqués précédemment résument la façon de passer d’une série d’images à des données structurées dans le temps, via la technique de la détection d’objets. Évidemment, ces données ne sont que le début! Il existe une multitude de possibilités afin de prendre ces données et de les apporter encore plus loin, en les utilisant pour répondre à des cas d’utilisation précis.

Vous souhaitez découvrir comment la détection d’objet peut vous permettre d’analyser vos propres flux vidéos, et d’en tirer une panoplie d’informations? Apprenez-en plus sur le site Web de la plateforme BoxCV.


Références