J’étais resté sur une note optimiste… sans envisager la galère qui m’attendait !
Sur la plateforme Ultralytics , l’apprentissage se passe très bien. Je suis même monté à 300 photos de ma souris dans toutes les conditions de position, distance et éclairage pour obtenir un modèle très performant dépassant souvent les 80% de fiabilité.
Le gros problème a été l’exportation vers la camera IA , ce qui ne fonctionne pas malgré l’option disponible dans Ultralytics !
Après de nombreuses tentatives j’ai laissé la main à chat GPT, qui pendant près de deux jours a pondu des centaines de lignes de code, a fait des tentatives dans tous les sens, pour finalement échouer aussi.
Mes recherches sur le web montre qu’effectivement il y a un gros bug. En résumé ma caméra IA est tout à fait adaptée si on utilise les modèles intégrés comme les personnes, chat, chien, oiseau, cheval, voiture, camion, bus, vélo, moto, bouteille, tasse, verre, fourchette, couteau, cuillère, chaise, canapé, lit, table, télévision, ordinateur portable, téléphone portable, clavier, souris d'ordinateur, livre, horloge, sac à dos, etc. Elle est en particulier très performante pour les gestes humains.
Mais pas pour un modèle spécifique !!!
Je me suis donc rabattu sur un autre moteur, Openvino, permettant d’exporter mon modèle entrainé directement sur le Pi5.
Et là c’est simple et ça marche nickel, mais c’est le Pi5 qui travaille, la caméra prend juste des images standard. Une caméra 3 fois moins chère aurait suffit et du coup le CPU de la Pi5 va être sollicité, à voir !
Je continue, mais en résumé il ne faut pas acheter cette caméra pour faire du spécifique. La caméra Huskylens qui a aussi une IA embarquée aurait été plus performante, puisque le mode apprentissage fonctionne en local, mais avec une définition beaucoup moins élevée.
En résumé j’ai donc :
- Pris les photos de l'objet à reconnaître : angles, distances, éclairages et arrière-plans différents.
- Importé les photos dans Ultralytics Platform et dessiné les rectangles autour de la souris à reconnaître
- Entraîné YOLO11n dans Ultralytics, 300 images en 960 × 960.
- Vérifié les performances du modèle obtenu dans Ultralytics et conservé le meilleur modèle.
- Exporté depuis Ultralytics via OpenVINO
- Téléchargé le modèle OpenVINO puis copié son dossier sur le Raspberry Pi 5.
- Installé sur le PI5 OpenVINO dans un environnement Python ayant accès à la caméra IA.
Et par conséquent la caméra capture simplement les images. Elle ne réalise ici aucun traitement IA. OpenVINO exécute YOLO11n sur le CPU du Raspberry Pi 5.
Le programme d'Orba, mon robot, récupère finalement quelque chose de très simple : souris détectée ou non + niveau de confiance + position dans l'image.
Mon premier objectif reste la détection de la souris fixe par Orba.
Mais je rajoute un objectif ultérieur, détecter la souris en mouvement, la suivre et la capturer ! Cela suppose aussi que je vais devoir installer un dispositif de capture sur Orba.