En parallèle de notre projet dans le NTN Innovation Microtech Booster, nous avions lancé un projet de recherche d’intelligence artificielle en vision par ordinateur. L’application principale, « Maintenance VR », que nous avions développée permettait de créer un manuel interactif et facile à comprendre pour effectuer des maintenances et des réparations sur des machines d’usine de production. Le module de reconnaissance s’intègre dans cette application pour rapidement détecter la machine en panne sans devoir aller la retrouver manuellement. 

Détection de machines

La détection d’objets s’entraîne généralement sur base de photos réelles de l’objet. Ceci peut rendre l’opération de production du système très coûteuse : il faut compter le déplacement sur place, le temps de l’ingénieur sur place pour prendre les photos et la validation que les images sont suffisantes pour entraîner le modèle. C’est pourquoi nous avons développé un système qui permet d’entraîner l’intelligence artificielle via la CAO 3D de l’objet. Notre réseau de neurones prend en entrée des données sous forme d’images générées à partir de l’objet en 3D. En effet, les fabricants disposent généralement d’une représentation en trois-dimension de l’appareil. Nous reprenons ces documents et utilisons Blender pour générer des images de tous les angles de la machine et avec ces informations le système peut afficher à l’écran du smartphone ou de la tablette la position de et quelle machine a été détectée. Ce mode d’opération est très pratique, car notre système peut reprendre le document 3D de manière automatique et créer une nouvelle configuration de reconnaissance sans devoir faire intervenir un humain, gagnant en temps de travail. 

Notre application ne nécessite pas de connexion internet pour fonctionner. Toutes les données et informations sont préchargées sur les appareils et la détection se fait directement sur le dispositif. Nous répondons ainsi à des problèmes souvent rencontrés où les systèmes de sécurité de l’entreprise empêchent des connexions vers l’extérieur. Nous évitons également les coûts d’un déploiement de réseau informatique au sein de l’usine, si ce n’est pas encore le cas. Comme les appareils font la détection sur l’appareil directement, l’application devient également plus interactive et il ne faut pas attendre que l’image prise par la caméra ne soit transmise à un serveur, traitée, puis que l’information soit renvoyée à l’utilisateur.  

Résultats obtenus

Nous avons utilisé 2 objets différents pour nos tests d’application. Premièrement une machine d’usine de production, mais celle-ci s’est avérée compliquée à tester pour des raisons de déplacement et d’accès. Nous avons ensuite trouvé un autre objet qui existe en 3D que nous pouvions acquérir et utiliser en démonstration : une agrafeuse Bostitch, le modèle B8 pour être précis.  

Détection Bostitch B8
Nous avons obtenu une précision de reconnaissance de plus de 91% sur la machine ESCO. Qu’est-ce que cela veut dire ? Sur 100 photos de la machine aléatoirement sélectionnées, le logiciel détecte correctement si la machine est présente (ou inversement qu’elle n’est pas dans l’image) sur 91 d’entre elles. Rappelons-nous ici que nous nous sommes basés sur un modèle 3D de la machine, donc le programme n’a jamais réellement vu la machine en photo et pourtant il arrive à la reconnaître avec une bonne précision. En plus de cela, comme nous utilisons la caméra de l’appareil Android, nous pouvons utiliser les détections sur plusieurs images récupérées du flux vidéo et plus précisément converger sur un résultat. 
Pour l’agrafeuse Bostitch, nos résultats se limitent à un seuil de détection de 76%. Nous estimons que cela est dû en partie au fait que le modèle 3D utilisé pour l’entraînement est une reconstruction, ce n’est pas le modèle de CAO original. En plus de cela, nous avons encore des améliorations à effectuer sur des problèmes de perspective. En effet, comme l’objet est plus petit, il faut considérer les effets de perspective qui s’appliquent lorsqu’on approche la caméra de l’objet pour le rendre plus grand à l’écran, les points de fuites se rapprochent et créent une distorsion sur l’image : les points plus proches deviennent plus gros et les points plus éloignés de plus en plus petit. Nos images d’entraînement ont toutes été produites avec une distance focale fixe. Ainsi il arrive que si l’on approche trop l’appareil, l’objet n’est plus reconnu. 

Fonctions avancées

La reconnaissance permet actuellement de détecter un objet via un appareil mobile avec un entraînement basé sur un objet 3D, mais nous voulons améliorer le système au futur. Il serait intéressant d’avoir un système qui détecte automatiquement toutes les pièces dans la machine, basé sur la CAO et la liste de pièces (BOM). Ainsi on pourrait prendre sa tablette Android, scanner une pièce détachée et détecter à quelle machine elle appartient. Plus loin, nous pourrions scanner des parties de la machine et la lier à un système GMAO pour faire un contrôle via un jumeau numérique de quelles pièces auraient besoin de maintenance. 

Cette application de détection dynamique d’objets pourrait être intégrés dans plusieurs de nos applications ou produits. Nous pourrions imaginer plusieurs outils dans le domaine de l’immobilier ainsi que dans l’industrie de fabrication. Le but étant d’accélérer le processus de sélection de l’objet à nos utilisateurs.