La vision artificielle pour un robot androïde

Les principes et frameworks disponibles pour donner à un robot la capacité d'interagir avec son environnement.

Notre robot humanoïde ne sera fonctionnel que lorsqu'il disposera au moins d'un bras et une main préhensible et d'un système de vision que l'on peut baser primairement sur un appareil de prises de vues, couplé à un logiciel de traitement d'images.

Principes de la vision par ordinateur

Ce système de vision doit pouvoir accomplir une série de tâches...

Pour ce faire, il devra disposer des ressources suivantes...

Une partie de ces ressources peut être fournie par des frameworks déjà existants.

Les frameworks de vision artificielle

OpenCV

Framework Open source sous licence BSD.

Il propose une quantité d'algorithmes pour identifier les objets et les placer dans des classes prédéfinies telles que personnes, visages, voiture, maison etc...

Exemple d'utilisation:

Fonctionne avec des programmes en C++, Java et Python sur Windows, Linux, Android, iOS. Le fichier a télécharger fait 350 megas.

SimpleCV.

Framework pour construire des applications utilisant la vision artificielle. Il est basé sur OpenCV et constitue donc une interface pour simplifier l'utilisation de ce dernier.
Il dispose d'une version JavaScript et CoffeScript, SimpleCV-JS. Elle fonctionne avec Node.js. La démonstration n'a rien d'époustouflant, il faudra se faire une opinion plus précise à l'usage.

FastCV

Bibliothèque offerte par Qualcomm, le fabricant de processeurs. Ce module de vision par ordinateur fonctionnant avec le module de réalité augmentée du même auteur, est destinée aux mobiles et devrait convenir aussi aux robots à condition qu'ils utilisent des processeurs ARM.
Ses capacités:

Il se programme en Java et requiert le SDK Android pour fonctionner ainsi que les outils de développement de ce dernier.

LibCCV

Spécialisé dans la vision par ordinateur, au contraire d'OpenCV, il propose un ensemble d'algorithmes pour la reconnaissance d'objets.

Donc une autre alternative plus simple à OpenCV mais aussi moins complète.

VXL

Bibliothèques C++ pour la vision par ordinateur. Il est composé de plusieurs modules indépendants et légers.

Cambridge Video Dynamics/LibCVD

Bibliothèque de fonctions en C pour la vision par ordinateur et autres traitements d'images. Sous licence LGPL, fonctionne sur Windows et Linux.

Ces logiciels sont tous basés sur des algorithmes et il semble que la programmation impérative soit la plus utilisée pour ce type de traitement. Cela ne dispense pas de réfléchir à d'autres modes de fonctionnement, basés sur des paradigmes de programmation différents, favorisant l'apprentissage. La programmation déclarative convient notamment pour décrire l'environnement et la programmation réactive pour un système d'objets en interaction.