Au fil de mes projets en vision par ordinateur, j’ai rapidement compris qu’il n’existe pas d’outil universel. Pour passer de la manipulation brute de pixels à la détection d’objets complexes, je me retrouve presque toujours à coupler un framework de deep learning lourd avec une bibliothèque utilitaire spécialisée. C’est une approche pragmatique qui permet de couvrir tout le spectre des besoins, de la recherche à la mise en production en passant par le traitement d’images en temps réel.
En analysant les différentes options disponibles, j’ai classé ces technologies selon leurs forces majeures pour m’aider à faire le bon choix dès le départ d’un projet.
Les frameworks de Deep Learning incontournables
Lorsqu’il s’agit de concevoir et d’entraîner des réseaux de neurones complexes, je me tourne systématiquement vers ces deux géants :
- PyTorch / TorchVision : C’est mon choix par excellence pour la recherche et le prototypage rapide. Sa flexibilité repose sur des graphes de calcul dynamiques, ce qui rend le débogage beaucoup plus simple (ce qui m’évite souvent de longues sessions de frustration nocturnes). C’est ce framework qui propulse nativement les modèles de pointe comme la série YOLO d’Ultralytics.
- TensorFlow / Keras : Développé par Google, cet écosystème brille particulièrement lorsque je dois préparer un déploiement industriel à grande échelle ou cibler des appareils embarqués grâce à TensorFlow Lite. Keras, qui s’interface par-dessus, permet d’assembler des prototypes de réseaux de neurones très rapidement.
Le traitement d’image traditionnel
- OpenCV : Impossible de faire l’impasse sur ce monument open source. C’est le standard de l’industrie pour la gestion vidéo en temps réel, l’étalonnage de caméras, les transformations géométriques et tout le prétraitement de données. Il contient plus de 2 500 algorithmes hautement optimisés. En revanche, je ne l’utilise pas pour entraîner des réseaux de neurones complexes ; il doit être couplé à d’autres frameworks pour cela.
Outils spécialisés et niches de développement
Parfois, un projet exige une spécialisation que les frameworks généralistes ne peuvent pas offrir efficacement à eux seuls :
- Detectron2 : Conçu par Meta AI sur une base PyTorch, c’est l’outil vers lequel je me dirige tête baissée pour les tâches avancées de détection d’objets, de segmentation d’instance et de détection de points clés.
- OpenMMLab (MMDetection) : Un framework très modulaire basé sur PyTorch. Son fonctionnement piloté par des fichiers de configuration simples permet d’entraîner des architectures de pointe sans avoir à réécrire tout le code d’infrastructure.
- MediaPipe : Également développé par Google, ce framework multiplateforme est parfait pour créer des pipelines légers d’analyse corporelle en temps réel, comme le suivi des mains, l’estimation de pose ou la modélisation de masques faciaux (Face Mesh).
- Savant : Un framework de pipeline extrêmement performant, spécialement conçu pour l’analyse vidéo en temps réel sur les cartes NVIDIA, utilisant la technologie DeepStream sur l’edge ou en centre de données.
| Framework | Usage Principal | Idéal pour | Courbe d’apprentissage |
|---|---|---|---|
| PyTorch | Modèles de Deep Learning | Recherche & Prototypage rapide | Modérée |
| OpenCV | Traitement d’image classique | Prétraitement & Flux d’E/S temps réel | Modérée à difficile |
| TensorFlow | Déploiement en production | Architectures à grande échelle & Mobile (TF Lite) | Modérée à difficile |
| Detectron2 | Détection d’objets / Segmentation | Modèles Mask R-CNN personnalisés & Tâches complexes | Modérée |
| MediaPipe | Suivi sur l’appareil (on-device) | Suivi de visage, mains et pose | Accessible aux débutants |
Le défi de la vision par ordinateur sur mobile
Développer pour le mobile impose des contraintes physiques évidentes : comment faire tourner un modèle lourd sans vider la batterie de l’utilisateur ou transformer son téléphone en radiateur ? Pour y parvenir, je dois privilégier des architectures légères (comme MobileNet) spécialement optimisées.
Les solutions multiplateformes
- MediaPipe : Toujours en tête pour le suivi temps réel sur mobile. Ses pipelines pré-optimisés pour iOS et Android (comme la détection de l’iris ou du visage) tournent de manière incroyablement fluide.
- TensorFlow Lite (TFLite) : C’est la référence pour déployer des modèles personnalisés. J’utilise la quantification pour réduire la taille des fichiers et exploiter directement les GPU/NPU mobiles via les délégués iOS ou l’API NNAPI d’Android.
- PyTorch Mobile / ExecuTorch : L’approche de Meta pour porter l’écosystème PyTorch sur mobile. ExecuTorch se distingue par sa faible empreinte mémoire, pensée pour les environnements embarqués hautement limités.
Les solutions natives et dédiées
- Apple CoreML : C’est de loin la solution la plus rapide si vous ciblez uniquement l’écosystème Apple (iOS, iPadOS, macOS). Profondément intégré à Apple Silicon, il sollicite l’Apple Neural Engine (ANE) pour maximiser les performances tout en ménageant la batterie.
- Google ML Kit : Un SDK très accessible pour Android et iOS. Si je n’ai pas besoin de concevoir un modèle sur mesure, j’utilise ses API prêtes à l’emploi pour lire des QR codes, faire de la reconnaissance de texte (OCR) ou détecter des visages sans effort.
- OpenCV Mobile : Une version allégée et optimisée d’OpenCV. Je l’exploite pour gérer les flux vidéo natifs, redimensionner les images ou effectuer des conversions de couleur avant de passer les données épurées au réseau de neurones principal.
Et pour les frameworks hybrides ?
Si je travaille sur du développement hybride avec React Native ou Flutter, j’utilise ces intégrations dédiées :
- React Native Fast Vision / Vision Camera : Permet d’intégrer des processeurs de trames directement en JavaScript ou TypeScript, exécutant des modèles natifs C++ (MediaPipe ou TFLite) sur le flux de la caméra à 60 FPS.
- Flutter Google ML Kit : Un paquet d’intégration qui apporte directement les capacités de ML Kit de Google au sein de l’environnement Flutter.
| Framework | Systèmes supportés | Cas d’usage idéal | Optimisation des performances |
|---|---|---|---|
| MediaPipe | Android, iOS, Web | Suivi de gestes & de poses | Élevée (Pipelines prêts à l’emploi) |
| TensorFlow Lite | Android, iOS, Embarqué | Architectures de modèles personnalisés | Élevée (Quantification & Délégués GPU) |
| CoreML | iOS / Apple uniquement | Applications de l’écosystème Apple | Maximale (Utilisation matérielle de l’ANE) |
| ML Kit | Android, iOS | OCR, Code-barres, Détection de visages | Moyenne (Basé sur API, configuration minimale) |
| ExecuTorch | Android, iOS, Embarqué | Modèles PyTorch de dernière génération | Élevée (Faible empreinte mémoire) |
Trouver le bon compromis : les modèles de classification d’images
Le choix de l’architecture du modèle est un éternel compromis entre précision, latence et ressources disponibles. Doit-on tout traiter en local ou s’appuyer sur un serveur distant ?
Modèles optimisés pour l’Edge et le Mobile
- MobileNet (V3 / V4) : C’est la référence de Google pour le mobile. En s’appuyant sur des convolutions séparables en profondeur, il réduit drastiquement le coût de calcul. La version V4 va encore plus loin en intégrant des composants spécifiquement conçus pour les NPU mobiles.
- EfficientNet-Lite : Une déclinaison d’EfficientNet qui retire les fonctions d’activation complexes souvent mal gérées par les GPU mobiles, ce qui facilite grandement sa quantification pour TensorFlow Lite.
- MobileViT (V1 / V2 / V3) : Une architecture hybride très intéressante. Elle combine la capacité d’extraction locale des réseaux convolutifs (CNN) avec le mécanisme d’attention globale des Transformers. On obtient ainsi une précision digne d’un Transformer, mais avec un nombre de paramètres restreint, idéal pour les smartphones récents.
Les valeurs sûres d’architectures standards
- EfficientNet (V1 / V2) : Ce modèle utilise une méthode de mise à l’échelle combinée très rigoureuse pour équilibrer la profondeur, la largeur et la résolution d’entrée. C’est l’option idéale si mon application mobile peut se permettre d’envoyer les images vers une API cloud comme Google Cloud Vision pour le traitement.
- ResNet (50 / 101) : Un classique historique utilisant des connexions résiduelles pour contourner le problème de disparition du gradient. Il est fiable et compatible avec CoreML ou TFLite, mais il reste lourd et lent sur mobile comparé à un MobileNet.
Les poids lourds pour les serveurs et le cloud
- Vision Transformers (ViT) : Ils abandonnent complètement les convolutions au profit de l’attention par patchs de pixels. Les résultats sont impressionnants sur les grands jeux de données, mais le coût de calcul exclut totalement une exécution locale sur mobile.
- ConvNeXt : Une architecture purement convolutive conçue pour rivaliser avec les Vision Transformers. Elle offre d’excellentes performances d’échelle mais requiert une puissance de calcul de classe GPU serveur ou bureau.
| Architecture de modèle | Précision Top-1 (ImageNet-1k) | Nombre de paramètres | Cible principale de déploiement |
|---|---|---|---|
| MobileNetV4-Small | ~74,6 % | ~3,9 M | NPU / CPU Mobile local |
| MobileViTV2-1.0 | ~78,1 % | ~4,9 M | GPU Mobile haut de gamme |
| EfficientNet-B0 | ~77,1 % | ~5,3 M | Smartphones de milieu de gamme |
| ResNet-50 | ~76,1 % | ~25,6 M | Mobile lourd / API Cloud |
| ViT-Base (16) | ~84,5 % | ~86,0 M | Infrastructure Cloud uniquement |
Algorithmes de détection d’objets : repérer et localiser
Contrairement à la simple classification, la détection d’objets doit à la fois identifier la nature d’un élément et estimer sa position spatiale à l’aide de coordonnées de boîte de délimitation (bounding box). (Un double défi technique qui demande beaucoup plus de rigueur de calcul.)
Détecteurs à une étape (One-Stage) : la priorité au temps réel
Ces algorithmes n’effectuent qu’une seule passe sur l’image pour prédire simultanément les boîtes et les classes. C’est l’approche reine pour les applications mobiles en direct.
- Ultralytics YOLO11 : C’est la référence actuelle pour le temps réel. Il offre une excellente précision (mAP) tout en réduisant le nombre de paramètres par rapport aux versions précédentes, facilitant ainsi son intégration sur les puces mobiles.
- YOLOv26 : Une version optimisée de manière très pointue pour les CPU ARM et les processeurs Snapdragon. Grâce à une architecture “NMS-Free”, il élimine l’étape de post-traitement de suppression des non-maximums, qui engorge souvent les CPU mobiles. Le gain de vitesse d’inférence CPU atteint ainsi jusqu’à 43 % par rapport à YOLO11.
- SSD (Single Shot Detector) MobileNet : En associant la tête de détection SSD au squelette MobileNet, on obtient un modèle extrêmement léger. Sa précision peut pécher sur les objets très petits, mais son empreinte ultra-faible est parfaitement prise en charge par Google ML Kit et TFLite sans effort de configuration.
Détecteurs à deux étapes (Two-Stage) : l’accent sur la précision spatiale
- Faster R-CNN : Cet algorithme fonctionne en deux temps : il commence par proposer des régions d’intérêt, puis classe ces zones de manière séquentielle. S’il s’avère excellent pour déceler des détails précis ou des objets superposés, sa latence trop élevée le rend inutilisable en direct sur une caméra mobile. Je l’utilise uniquement lorsque l’analyse peut être déportée sur un serveur distant.
Détecteurs basés sur les Transformers
- RT-DETR (Real-Time DEtection TRansformer) : Les architectures Transformers sont réputées gourmandes et lentes. RT-DETR contourne ce problème en intégrant un encodeur hybride, permettant de bénéficier de la puissance des mécanismes d’attention globale pour suivre des scènes complexes sans paralyser les GPU de bureau ou d’edge computing haut de gamme.
| Algorithme | Vitesse d’inférence | Précision (mAP) | Empreinte sur ressources mobiles | Meilleur cas d’usage |
|---|---|---|---|---|
| YOLOv26 (Nano) | 🚀 Extrêmement rapide (NMS-Free) | Élevée | Minimale (adapté aux CPU/NPU) | Flux vidéo en direct sur smartphones anciens ou d’entrée de gamme |
| YOLO11 (Nano) | Rapide | Très élevée | Légère | Applications iOS/Android modernes ayant des besoins très spécifiques |
| SSD-MobileNetV3 | Très rapide | Modérée | Extrêmement faible | Suivi en arrière-plan à basse consommation & utilitaires simples |
| RT-DETR | Modérée | Maximale | Lourde | Analyse vidéo mobile assistée par le cloud |
| Faster R-CNN | Lente | Maximale | Massive | Analyse d’images statiques (ex: imagerie médicale, sinistres d’assurance) |