Vision par ordinateur
SantéVet Dogs
Explorer une classification de 25 races canines
Mission freelance réelle · reconstruction publique par transfert d’apprentissage
MobileNet + SVM · 25 races
Reconstruction évaluée sur 1 496 images de test · 25 races
- Accuracy
- 89 %
- Macro-F1
- 0.889
- Bonne race dans le top 3
- 96,7 %
- Races couvertes
- 25
Mesures de ce pipeline public MobileNet + SVM. Elles ne décrivent ni le système client ni le modèle ResNet historique.
Explorer la démonstration
Transfert MobileNet · 25 races · calcul local
Comparer 25 races avec un modèle de vision
Un extracteur MobileNet public et une tête SVM entraînée comparent 25 races. Le modèle choisit parmi ces 25 classes même si votre image montre une autre race, un chat ou aucun animal. Elle ne détecte pas la présence d’un chien.
1. Choisir une image
Première image du test par classe dans l’ordre des fichiers, sans sélection selon la réussite du modèle.
Votre photo reste dans ce navigateur. Le moteur et environ 3,6 Mo de paramètres sont téléchargés au premier clic sur Analyser. Le modèle utilise les pixels, jamais le nom du fichier.
Choisissez un exemple ou une photo.
Les cinq premières classes parmi 25
Le résultat apparaîtra après l’analyse. Aucun classement précédent n’est conservé lorsqu’une nouvelle image est choisie.
La mire permet de constater une limite : ce classifieur fermé fournit toujours un classement. Aucun seuil de rejet hors domaine n’a été validé ; cette démo ne constitue pas une identification fiable ni une décision d’assurance.
Méthode, droits des exemples et limites
Les pixels RGB sont échantillonnés en 224 × 224 selon une règle déterministe. MobileNetV1 préentraîné sur ImageNet, figé, produit 512 variables. Une tête SVM linéaire entraînée sur les 25 races classe ces variables normalisées. Il s’agit d’une nouvelle reconstruction, pas du réseau ResNet50V2 historique.
Les images peuvent être déformées par le passage en carré. L’arrière-plan, le cadrage et l’éclairage peuvent influencer la représentation visuelle. Les décodeurs JPEG et profils colorimétriques peuvent différer entre Python et navigateur ; les exemples PNG limitent cet écart. La parité numérique est vérifiée à partir des mêmes pixels décodés.
Exemples : Oxford-IIIT Pet, O. M. Parkhi, A. Vedaldi, A. Zisserman et C. V. Jawahar. Images converties en RGB PNG avec orientation EXIF, sans recadrage. Copyright des photographies : auteurs originaux. Diffusion des adaptations sous CC BY-SA 4.0. Sources, transformations et attributions détaillées.
Comprendre le projet
De la mission à une reconstruction utilisable
Cette mission freelance explorait la classification de races canines à partir de photographies. Le code et les données du portfolio ont été reconstruits pour préserver la confidentialité du travail client.
La chaîne historique utilisait ResNet50V2 et un SVM ; ses poids ne sont plus disponibles. La nouvelle version associe MobileNetV1 préentraîné sur ImageNet, conservé figé, et une tête SVM apprise sur les 25 races canines du corpus Oxford-IIIT Pet. Elle remplace la première démonstration limitée à trois races et à des gradients/couleurs.
Ce que cette réalisation démontre
- Réutiliser une représentation visuelle profonde et entraîner un classifieur sur un nouveau périmètre.
- Choisir les paramètres sur validation, puis mesurer un test réservé.
- Comparer les méthodes sur les mêmes images et contrôler la fidélité de l’export.
- Exécuter le modèle dans le navigateur avec chargement à la demande et limites visibles.
Le modèle ne détecte pas la présence d’un chien. Il classe aussi une image sans animal parmi ses 25 races. Les croisements, races absentes et conditions inhabituelles restent hors de son périmètre validé. Aucune décision médicale ou d’assurance n’en découle.
Méthode et ressources
Une comparaison sur le même test
| Représentation + SVM | Accuracy | Macro-F1 | Top 3 |
|---|---|---|---|
| Gradients et couleurs | 14,1 % | 0.139 | 29,5 % |
| MobileNet figé | 89 % | 0.889 | 96,7 % |
Le score de la première baseline à trois races n’est pas directement comparable à ce test à 25 races. Le tableau compare deux reconstructions sur exactement le même périmètre.
Protocole
4 980 images après dédoublonnage exact SHA256. 2 787 images pour apprendre, 697 pour choisir C parmi 0,01 / 0,1 / 1, puis 1 496 pour tester. Après sélection, la tête est réentraînée sur les 3 484 images train + validation. Les 180 images de test de la première version sont conservées dans le test.
Pour les autres races, séparation fixe 70/30 par classe, graine 42, puis validation stratifiée dans le train. Le miroir ne fournit pas le split officiel Oxford ; cette séparation est propre à la reconstruction. C retenu : 1 pour MobileNet, 0.01 pour les gradients/couleurs. Aucun réglage sur le test.
Pixels RGB échantillonnés en 224 × 224, normalisés entre −1 et 1 ; MobileNetV1 alpha 0,5 figé, moyenne globale et normalisation L2 des 512 variables ; marges SVM non calibrées. Le moteur et environ 3,6 Mo de paramètres sont chargés uniquement au clic sur Analyser. Les photos restent locales.
Limites et validation technique
Parité Python / TensorFlow.js CPU testée sur trois images synthétiques et huit images test décodées localement : mêmes classes arrivées en tête, écart maximal de marge inférieur à 10⁻⁴. Le contrôle part des mêmes pixels RGB ; les décodeurs JPEG et profils couleur peuvent varier selon le navigateur.
Le préentraînement ImageNet peut contenir des images proches ou communes à Oxford : ce chevauchement externe n’a pas été audité. Les doublons perceptuels ne sont pas exclus. Ce test de corpus ne remplace donc pas une validation externe ou terrain. Aucun taux de réussite sur les photos personnelles, aucune probabilité calibrée ni seuil de rejet hors domaine n’est garanti.
Les 25 races couvertes et leur rappel sur le test
Le rappel mesure la part correctement reconnue parmi les images test de chaque race ; les effectifs sont faibles.
- Bouledogue américain
- 53 / 60
- American pit bull terrier
- 40 / 60
- Basset hound
- 54 / 60
- Beagle
- 50 / 60
- Boxer
- 50 / 60
- Chihuahua
- 53 / 60
- Cocker anglais
- 55 / 59
- Setter anglais
- 49 / 60
- Braque allemand
- 54 / 60
- Chien de montagne des Pyrénées
- 56 / 60
- Bichon havanais
- 58 / 60
- Épagneul japonais
- 56 / 60
- Spitz loup
- 59 / 60
- Leonberg
- 55 / 60
- Pinscher nain
- 50 / 60
- Terre-neuve
- 55 / 59
- Spitz nain
- 50 / 60
- Carlin
- 56 / 60
- Saint-bernard
- 54 / 60
- Samoyède
- 56 / 60
- Terrier écossais
- 56 / 60
- Shiba inu
- 54 / 60
- Staffordshire bull terrier
- 49 / 58
- Terrier irlandais à poil doux
- 52 / 60
- Yorkshire terrier
- 57 / 60
Sources : Oxford-IIIT Pet, miroir utilisé, MobileNet Keras. Provenance, adaptations et licences. Les trois exemples conservent leurs attributions CC BY-SA 4.0.
Reconstruction : scripts/train-santevet-deep.py. Validation : scripts/test-santevet-deep.mjs. Version 2026-10-31. Poids et corpus sont rattachés à leurs empreintes SHA256.