HarmonyOS et Ascend

Reconnaissance de chats et de chiens avec MindSpore

Une expérience complète d'apprentissage profond, de l'entraînement jusqu'au téléphone : apprentissage par transfert pour la classification binaire chats/chiens avec MindSpore et MobileNetV2, puis conversion au format MindSpore Lite et déploiement sur un appareil Android pour l'inférence embarquée.

Aperçu du projet

Le projet part du jeu de données chats-et-chiens de Kaggle, passe par le nettoyage et la division des données, l'entraînement par transfert de MobileNetV2 et la conversion du modèle, puis installe le modèle .ms dans une application Android qui classe directement les photos de la galerie sur le téléphone. Toute la chaîne s'exécute localement, sans service d'inférence dans le cloud.

À propos de ce projet

Objectif

Mener un modèle entraîné jusqu'au téléphone, en couvrant toute la chaîne, de la préparation des données à l'inférence embarquée.

Fonctionnement

Un classifieur MobileNetV2 est entraîné avec MindSpore sur un PC puis exporté au format intermédiaire MindIR, converti en modèle .ms avec le MindSpore Lite Converter, et enfin poussé via ADB pour que l'application Android le charge.

Outils utilisés

MindSpore 2.0 et MindSpore Lite Converter 2.0 ; MobileNetV2 comme modèle ; Kaggle Cats vs Dogs (PetImages) comme jeu de données ; opencv-python, matplotlib et Pillow parmi les dépendances.

Portée et limites

Il s'agit d'une expérience de cours destinée à comprendre l'apprentissage par transfert et le déploiement embarqué. La reconnaissance se limite à la classification binaire chats/chiens et ne s'étend pas à des distinctions de races plus fines.

Cinq étapes, des données au téléphone

Chaque étape a des entrées et des sorties claires, ce qui permet de reproduire le pipeline dans l'ordre.

Nettoyage et division

Les images corrompues ou anormales sont filtrées, puis l'ensemble est divisé en portions d'entraînement et de validation pour que des données sales ne pèsent pas sur l'entraînement.

Entraînement par transfert

Un MobileNetV2 pré-entraîné est chargé avec ses poids de réseau figés et seule la tête de classification est entraînée, ce qui converge rapidement sur un petit jeu de données.

Conversion du modèle

La sortie d'entraînement est exportée en MindIR puis convertie par le MindSpore Lite Converter au format .ms que l'appareil peut charger.

Déploiement sur le téléphone

Le modèle et ses ressources sont poussés via ADB dans l'application Android, et l'inférence s'exécute ensuite entièrement sur le téléphone.

Observation des résultats

Les photos de la galerie sont classées directement sur le téléphone, et les résultats sont comparés aux courbes de perte et de précision enregistrées pendant l'entraînement.

Ce qu'est cette expérience

Une expérience de cours d'apprentissage profond centrée sur le lien entre entraînement et déploiement, sans ambition de repousser la précision de classification à sa limite.

Retour aux projets