computer vision : segmentation

Quelles sont les applications de la computer vision ?

La computer vision, ou vision par ordinateur, est le domaine de l’intelligence artificielle lié à l’étude des images et des vidéos. Même si les approches classiques reposaient sur des algorithmes qui n’avaient rien à voir avec le machine learning, comme les méthodes de gradients pour la détection des contours, la dernière décennie a été très productive en terme de découvertes liées au traitement des images. Le deep learning et notamment les modèles de CNN découverts par Le Cun et al., ont permis d’atteindre des niveaux de performances inégalés en computer vision.

Quelles sont les applications de la computer vision ?

Même si ceux sont les voitures autonomes et la reconnaissance faciale qui ont mis la computer vision en lumière, ses applications sont très nombreuses et ne cessent d’augmenter : imagerie médicale, sport, surveillance, etc. En imagerie médicale certains systèmes de computer vision ont dépassé l’être humain pour le diagnostic de cancer ou encore pour le calcul de l’âge osseux. En sport, la vision par ordinateur a ouvert de nouvelles perspectives pour l’analyse de performances. Pour la surveillance, les caméras sont de plus en plus intelligentes et embarquent de plus en plus de fonctionnalités comme la détection d’anomalies.

Dans cet article nous allons voir des exemples ce que la computer vision permet de faire.

Computer vision pour la détection d’objets

La première application qui vient à l’esprit est la détection d’objets. Il s’agit de trouver dans des images ou des vidéos, des objets, des personnes ou des animaux. Les modèles disponibles aujourd’hui (comme YOLO par exemple), sont impressionnants, ils sont très précis et permettent de faire de la détection quasiment en temps réel. De plus , leur légèreté rend l’intégration dans des caméras ou des petits hardwares très simples.

computer vision pour la détection d'objets avec YOLO
Détection d’objets avec YOLO

C’est une application très utilisées, notamment dans les voitures autonomes. On va pouvoir mener des actions en fonction des objets que l’on détecte. De même il est possible de compter des objets, on peut ainsi mesurer l’affluence d’un centre commercial ou le trafic d’une autoroute.

Dans un des tutoriels précédents, nous avons entraînés un modèle de détection des joueurs de foot et du ballon. Tout ça pour dire que la seule limite à ce que vous pouvez détecter c’est votre imagination (et l’accès aux données).

Tracker des objets

Une fois que l’on a détecté ces objets, on souhaite parfois les tracker. Le tracking consiste à suivre la trace d’un objet dans une vidéo. En pratique, dès qu’un des objets est détecté on lui assigne un Id et on le suit jusqu’à ce qu’il ne soit plus visible dans l’image.

Voici un exemple pour mieux comprendre de quoi il s’agit :

computer vision pour le tracking d'objets
Tracking des personnes et des voitures

Un des inconvénients de ces modèles est qu’ils ne sont pas capables de détecter si un objet détecté auparavant revient dans l’image, si on le redétecte il lui sera assigné un nouvel Id et pas celui qui lui a été assigné la première fois. Pour garder une trace avec une « mémoire », il faudra utiliser des méthodes dites de réidentification.

Reconnaissance faciale, reconnaissance de sentiments

Evidemment l’application la plus commune de la computer vision est la reconnaissance faciale. Le principe est d’entraîner un modèle avec un grand nombre d’images de visages humains de sortes à ce qu’il soit capable de les reconnaître automatiquement. On utilise cette technologie dans les systèmes de déverrouillage des téléphones ou dans les caméras de surveillance.

On peut aussi avec des modèles plus sophistiqués et avec plus de données reconnaitre les sentiment ou même parfois estimer l’âge d’une personne. Voici un exemple :

Quelles sont les applications de la computer vision ?
Reconnaissance automatique des sentiments

Cette technologie continue de soulever pas mal de questions d’un point de vue éthique, et cela n’est pas près de s’arrêter. Et c’est à juste titre, car comme c’est souvent le cas en machine learning, l’aspect éthique ne doit surtout pas être négligé.

Pour cet article je préfère me concentrer sur des applications moins sujettes à controverses hahaa!

Computer vision pour la détection et la reconnaissances d’actions

On utilise de plus en plus la computer vision pour reconnaitre et détecter des actions. Il est courant de diviser les actions détectables en deux catégories. On distingue les détecteurs d’actions simples, qui sont des modèles que l’on peut entrainer simplement avec des images. Et les détecteurs d’actions plus précises : expressions du visage, mouvements du corps, etc.

On détecte les premières actions avec des modèles similaires à ceux que l’on utilise pour la détection d’objets. C’est par exemple le genre d’outils que l’on utilise pour détecter automatiquement quel sport est joué dans une vidéo ou quel type d’actions est effectué.

reconnaissance d'actions par computer vision
Détection d’actions simples

On peut aller plus loin avec la computer vision. Certains modèles permettent de détecter la pose du corps et avoir l’évolution de la position des points clés. A partir de ces poses on essaye de prédire quelle action est effectuée. C’est vraiment le genre d’applications que me fascinent, d’ailleurs en ce moment j’essaye d’appliquer ça au monde du sport.

Voici un exemple de ce que l’on peut avoir :

Détection d’actions humaines en temps réel

Dans l’exemple ci dessus, on a un système de détection d’actions humaines qui agit en temps réel et qui fait aussi office de détection d’anomalies. C’est typiquement le genre de système qui peut être embarqué dans les caméras de surveillance modernes. On sépare les actions en deux : actions normales et actions anormales. Lorsqu’une action anormale est effectuée, comme courir dans un bureau (qui fait ça hahaa ?), un signal est envoyé à l’opérateur. A partir de là une vérification par un humain devra être faite.

Bon il est l’heure de conclure, et comme souvent dans mes conclusions je suis forcé de relativiser mon enthousiasme. Il s’avère qu’en pratique pour entraîner ce genre de modèles vous devez avoir de grandes quantités de données que vous devrez labelliser à la main. Je me suis attardé sur cette question dans mon article sur la computer vision appliquée au foot, et vous avez dû voir que le travail effectué en amont est long et fastidieux, cela n’a en réalité rien d’intelligent, comme certains veulent le faire croire. C’est certes impressionnant de voir ce genre de résultats, mais il faut garder en tête que ce n’est « que » des maths et non de la science fiction.