Environnement de travail, préparation des données, entraînement d'un modèle, inférence et enrichissement du modèle par des références client. Un tour d'horizon complet des bases de l'intelligence artificielle.
Présentation du contexte
L’objectif du stage de terminale
Nous sommes deux élèves de terminale du Lycée Le Dantec à Lannion. Après un premier stage à classer des images satellites, nous avons travaillé sur un projet de segmentation automatique de vidéos, en nous appuyant sur le travail réalisé par un stagiaire de l’IMT.
Qu’est-ce que le machine learning ?
Le machine learning (ML) est une branche de l'intelligence artificielle (IA) qui permet aux ordinateurs d'apprendre et de s'améliorer à partir de données sans être explicitement programmés. Les algorithmes de machine learning identifient des patterns dans les données pour faire des prédictions ou des décisions automatisées.
Le projet Aquascan
Le projet Aquascan concerne ISITIX et KAMAHU.
Nous avions déjà travaillé sur l’annotation d’images satellites pour ISITIX. Cette fois-ci, nous avons pu aller plus loin en travaillant sur des vidéos, poursuivant notre apprentissage après les images satellites.
KAMAHU mène des travaux de R&D et réalise des innovations technologiques en étroite collaboration avec ISITIX. Les développements actuels concernent l'IoT, l'imagerie satellitaire et le machine learning appliqués à l'élevage.
KAMAHU édite également un SaaS dédié aux fermes aquacoles du monde entier, des laboratoires, des écloseries et des centres de formation, pour leur suivi d'élevage.
Première semaine de stage : démarrage et prise de connaissance de l’environnement
Un environnement de travail Linux
Nous avons installé Linux sur des PC portables via une clé USB pour créer un environnement de travail adapté.
Création de comptes Thunderbird pour une communication cryptée
Afin d'assurer une communication sécurisée, nous avons créé des comptes Thunderbird pour échanger des e-mails cryptés. Thunderbird intègre des outils anti-spam pour filtrer les courriels indésirables et supporte plusieurs comptes de messagerie avec des protocoles IMAP, POP3 et SMTP.
Des outils cloud
Nous avons découvert et utilisé des outils cloud pour faciliter notre projet, tels que :
- Google Colab pour l'exécution de notebooks collaboratifs ;
- GitHub, une plateforme de gestion de version et de collaboration pour les développeurs, permettant de stocker, suivre et gérer des projets de code.
Au secours, où est mon ChatGPT ?
Nous avons également appris à utiliser ChatGPT pour nous aider à résoudre des problèmes techniques rencontrés pendant le stage. Les problèmes rencontrés étaient que nous ne connaissions pas le développement et aucun des outils utilisés. Nous avons donc dû utiliser ChatGPT pour nous faciliter la tâche. Nous avons appris à poser les bonnes questions à ChatGPT pour obtenir des réponses précises.
Description de la situation par le tuteur
Notre tuteur nous a expliqué le contexte et les objectifs du projet, ainsi que les défis que nous allions rencontrer.
Deuxième semaine de stage : préparation des données, annotation de vidéos
Prise en main du cloud
Nous avons commencé par nous familiariser avec les outils cloud disponibles pour notre projet.
Installation en local (Docker)
Nous avons également installé et configuré Docker en local pour préparer notre environnement de travail.
Prise en main de l'outil d'annotation d'images CVAT
Nous avons exploré et utilisé CVAT (Computer Vision Annotation Tool), un outil d'annotation d'images, pour marquer et catégoriser les objets dans les vidéos.
Reprise du travail d'un ancien stagiaire
Nous avons étudié et repris le code développé par un ancien stagiaire, qui avait travaillé sur l'entraînement et la prédiction des annotations sur les vidéos.
Choix par rapport à la suite du stage
Le responsable de stage nous a présenté deux choix possibles :
- Travailler en local (temps de paramétrage), mais avec plus de possibilités pour le ML.
- Utiliser l’outil cloud et éventuellement acheter un mois d’abonnement pour se concentrer sur le ML plutôt que sur le système.
Troisième semaine de stage : utilisation d’un programme en Python sous Colab pour réaliser l’entraînement du modèle et l’inférence
Visual Studio
Nous avons utilisé Visual Studio, un environnement de développement intégré (IDE) créé par Microsoft, pour éditer notre code en langage Python. Cet outil nous a permis d'écrire, de modifier, de déboguer et de déployer notre logiciel.
Colab
Google Colab a été notre principal environnement pour l’entraînement du modèle.
Ultralytics YOLO
Nous avons utilisé Ultralytics YOLO pour la détection et la segmentation d’objets dans les vidéos.
Quatrième semaine de stage : enrichissement du modèle à partir d’exemples clients
Démo à KAMAHU
Nous avons présenté notre travail à KAMAHU et obtenu des retours précieux.
Réaction de l’utilisateur
Les retours des utilisateurs nous ont permis de mieux comprendre les besoins et d’ajuster notre modèle. Les retours étaient des précisions sur ce qu'il fallait annoter, telles que de grosses vagues, la précipitation des poissons, les poissons flottants (morts), les poissons qui sautent, et les aérateurs retournés, afin de repérer des anomalies potentielles ou détecter un certain stress chez les poissons.
Enrichissement du modèle
Nous avons enrichi notre modèle avec de nouveaux exemples, comme la détection d’une hélice qui tourne à l’envers.
Synthèse et conclusion
En quatre semaines, nous avons appris les bases de l’IA. Ce n’est pas si compliqué que cela quand on est motivé comme nous… Cela nous a donné envie de poursuivre dans le ML, de développer.