MobileNet, la version embarquée du CNN
- 22 févr. 2025
- 3 min de lecture
MobileNet est une famille de modèles de réseaux de neurones développée par Google pour fonctionner efficacement sur des appareils à ressources limitées, tels que les smartphones ou les microcontrôleurs embarqués. Son originalité repose sur l’utilisation de convolutions dites « séparables en profondeur » (depthwise separable convolutions), qui réduisent drastiquement le nombre de paramètres et la puissance de calcul nécessaire, tout en préservant de bonnes performances de classification ou de reconnaissance d’objets. Cette approche se différencie des architectures traditionnelles, car elle sépare l’opération de convolution en deux étapes : la première opère une convolution sur chaque canal de manière indépendante (depthwise), tandis que la seconde mixe les canaux via une simple convolution 1×1 (pointwise).
Concrètement, si l’on prend un filtre classique 3×3 appliqué sur un volume d’entrées de 32 canaux, on obtiendrait 32 filtres 3×3 pour la convolution. Dans une convolution séparée en profondeur, chaque canal est traité par un unique filtre 3×3, puis l’on applique une couche 1×1 pour combiner ces canaux. Cette scission du calcul réduit sensiblement la complexité : au lieu d’avoir 32×3×3×32 paramètres (soit 9216), on n’en utilise plus que 32×3×3 + 32×32 (soit 288 + 1024 = 1312). Même si l’ordre de grandeur varie selon les tailles d’entrées et les paramètres de l’architecture, l’idée clé demeure que ce mécanisme permet de gagner en vitesse et en mémoire sans dégrader l’accuracy de manière excessive.
MobileNet propose également deux hyperparamètres intéressants pour ajuster l’équilibre entre performance et coût de calcul. Le premier est le multiplicateur de largeur (width multiplier), noté souvent α\alphaα, qui permet de réduire le nombre de canaux à chaque couche de manière proportionnelle. Par exemple, une MobileNet « 0.75 » signifie qu’on utilise 75 % des canaux initiaux à chaque couche, ce qui limite d’autant la taille et la vitesse d’exécution du modèle, moyennant une baisse mesurée des performances. Le second est la résolution d’entrée (input resolution), permettant de prendre des images de plus faible résolution pour accélérer encore le modèle et réduire l’empreinte mémoire. Dans la pratique, ces deux paramètres se combinent pour offrir une grande flexibilité dans la conception de systèmes embarqués ou mobiles.
Ce qui rend MobileNet encore plus fascinant, c’est son intégration dans des tâches complexes comme la détection d’objets ou la segmentation sémantique. Bien qu’elle soit initialement conçue pour la classification d’images, l’architecture peut servir de colonne vertébrale (backbone) dans des modèles plus avancés, notamment dans des frameworks comme TensorFlow Object Detection API. Cette modularité a permis de créer des variantes comme MobileNetV2 et MobileNetV3, qui introduisent des améliorations telles que l’utilisation de blocs « inverted residual » et de couches d’auto-attention légères pour mieux capturer les caractéristiques contextuelles. Malgré une taille extrêmement compacte, ces variantes peuvent rivaliser avec des modèles bien plus lourds, tout en s’exécutant de manière fluide sur du matériel modeste.
Un fait étonnant : il est possible de faire tourner MobileNet en temps réel sur un smartphone, même lorsqu’il s’agit de traitements exigeants comme la reconnaissance d’objets multiples. Par exemple, des applications de réalité augmentée (AR) ou de traduction en temps réel (OCR + traduction) s’appuient sur des versions adaptées de MobileNet pour analyser la scène et reconnaître du texte instantanément. De plus, le déploiement d’un modèle MobileNet sur une plateforme IoT, comme un microcontrôleur ARM Cortex-M, ouvre la voie à des scénarios d’autonomie poussée, où le dispositif peut réaliser une inférence locale (détection de défauts, analyse de mouvements, etc.) sans dépendre du cloud.
En somme, MobileNet constitue un exemple emblématique de la manière dont l’ingéniosité des architectures neuronales peut concilier à la fois compacité et efficacité. Grâce aux convolutions séparables en profondeur et aux hyperparamètres de largeur et de résolution, il offre une grande adaptabilité pour divers cas d’usage, du simple smartphone jusqu’aux systèmes embarqués critiques. C’est cette flexibilité, associée à des performances convaincantes, qui fait de MobileNet un incontournable pour quiconque souhaite intégrer de l’apprentissage profond dans des applications mobiles ou Edge.

Commentaires