Comprendre l'architecture d'EfficientNet et sa magie de mise à l'échelle ! Explorer EfficientNet B0-B7 pour une classification d'images et une segmentation de haut niveau.

Comprendre l'architecture d'EfficientNet et sa magie de mise à l'échelle ! Explorer EfficientNet B0-B7 pour une classification d'images et une segmentation de haut niveau.
En 2019, les chercheurs de Google AI ont présenté EfficientNet, un modèle de vision par ordinateur de pointe conçu pour reconnaître des objets et des motifs dans les images. Il a d'abord été conçu pour la classification d'images, qui consiste à assigner une image à l'une de plusieurs catégories prédéfinies. Cependant, aujourd'hui, EfficientNet sert également d'épine dorsale pour des tâches plus complexes telles que la détection d'objets, la segmentation et l'apprentissage par transfert.
Avant EfficientNet, ces modèles d'apprentissage automatique et d'IA de la vision tentaient d'améliorer la précision en ajoutant des couches supplémentaires ou en augmentant la taille de ces couches. Les couches sont les étapes d'un modèle de réseau neuronal (un type de modèle d'apprentissage profond inspiré du cerveau humain) qui traitent les données pour apprendre des modèles et améliorer la précision.
Ces changements ont créé un compromis, rendant les modèles d'IA traditionnels plus grands et plus lents, alors que la précision supplémentaire était souvent minime par rapport à l'augmentation significative de la puissance de calcul nécessaire.
EfficientNet a adopté une approche différente. Il a augmenté la profondeur (nombre de couches), la largeur (nombre d'unités dans chaque couche) et la résolution de l'image (niveau de détail des images d'entrée) de manière équilibrée. Cette méthode, appelée "compound scaling", utilise de manière fiable toute la puissance de traitement disponible. Le résultat final est un modèle plus petit et plus rapide qui peut être plus performant que les anciens modèles tels que ResNet ou DenseNet.
Aujourd'hui, de nouveaux modèles de vision par ordinateur, comme Ultralytics YOLO11, offrent plus de précision, de rapidité et d'efficacité. Malgré cela, EfficientNet reste une étape importante qui a influencé la conception de nombreuses architectures avancées.
Dans cet article, nous allons décomposer EfficientNet en cinq minutes, en expliquant comment il fonctionne, ce qui le rend unique et pourquoi il est encore important dans le domaine de la vision par ordinateur. Commençons par le commencement !
Avant la conception d'EfficientNet, la plupart des modèles de reconnaissance d'images amélioraient leur précision en ajustant leurs couches ou en augmentant la taille de l'image d'entrée pour capturer plus de détails. Si ces stratégies ont permis d'améliorer les résultats, elles ont également rendu les modèles plus lourds et plus exigeants. Ils avaient donc besoin de plus de mémoire et d'un meilleur matériel.
Au lieu de modifier les couches individuelles, EfficientNet met à l'échelle la profondeur, la largeur et la résolution de l'image à l'aide d'une méthode appelée "compound scaling" (mise à l'échelle composée). Cette approche permet au modèle de se développer efficacement sans surcharger un seul aspect.
L'architecture EfficientNet traite les images à travers une série de blocs, chacun construit à partir de modules plus petits. Le nombre de modules dans chaque bloc dépend de la taille du modèle.
Les versions plus petites utilisent moins de modules, tandis que les versions plus grandes répètent les modules plus souvent. Cette conception flexible permet à EfficientNet de fournir une précision et une efficacité élevées dans une large gamme d'applications, des appareils mobiles aux systèmes à grande échelle.
La méthode de mise à l'échelle composée augmente la profondeur, la largeur et la résolution de l'image d'un modèle, mais les maintient en équilibre. Cela permet d'utiliser efficacement la puissance de calcul. La série commence par un modèle de base plus petit appelé EfficientNet-B0, qui sert de base à toutes les autres versions.
À partir de B0, les modèles se transforment en variantes plus importantes appelées EfficientNet-B1 à EfficientNet-B7. À chaque étape, le réseau gagne des couches supplémentaires, augmente le nombre de canaux (unités utilisées pour le traitement) et traite des images d'entrée à plus haute résolution. L'ampleur de la croissance à chaque étape est déterminée par un paramètre appelé coefficient composé, qui garantit que la profondeur, la largeur et la résolution augmentent dans des proportions fixes plutôt que de manière indépendante.
Voyons maintenant l'architecture d'EfficientNet.
Il s'appuie sur MobileNetV2, un modèle léger de vision par ordinateur optimisé pour les appareils mobiles et embarqués. Son cœur est le bloc Mobile Inverted Bottleneck Convolution (MBConv), une couche spéciale qui traite les données d'image comme une convolution standard, mais avec moins de calculs. Ce bloc rend le modèle à la fois rapide et plus efficace en termes de mémoire.
Dans chacun des blocs MBConv se trouve un module d'écrasement et d'excitation (SE). Ce module ajuste la force des différents canaux du réseau. Il renforce la force des canaux essentiels et réduit la force des autres. Le module aide le réseau à se concentrer sur les caractéristiques les plus importantes d'une image, tout en ignorant le reste. Le modèle EfficientNet utilise également une fonction d'activation Swish (une fonction mathématique qui aide le réseau à apprendre des modèles), qui lui permet de repérer des modèles dans les images mieux que les méthodes plus anciennes.
En outre, il utilise DropConnect, où certaines connexions à l'intérieur du réseau sont désactivées de manière aléatoire au cours de la formation. Cette méthode de régularisation stochastique (une technique de randomisation visant à empêcher le modèle de mémoriser les données d'apprentissage au lieu de les généraliser) réduit l'ajustement excessif en forçant le réseau à apprendre des représentations de caractéristiques plus robustes (des modèles plus forts et plus généraux dans les données) qui se transfèrent mieux à des données inédites.
Maintenant que nous comprenons mieux le fonctionnement des modèles EfficientNet, examinons les différentes variantes de ces modèles.
Les modèles EfficientNet s'échelonnent de B0 à B7, en commençant par B0, qui est le modèle de base permettant d'équilibrer la vitesse et la précision. Chaque version augmente la profondeur, la largeur et la résolution de l'image, améliorant ainsi la précision. Cependant, elles exigent également une plus grande puissance de calcul, des modèles B1 et B2 aux modèles B6 et B7 très performants.
Alors que les modèles EfficientNet-B3 et EfficientNet-B4 trouvent un équilibre pour les images de grande taille, le modèle B5 est souvent choisi pour les ensembles de données complexes qui nécessitent de la précision. Au-delà de ces modèles, le dernier modèle, EfficientNet V2, peut améliorer la vitesse d'apprentissage, mieux gérer les petits ensembles de données et est optimisé pour le matériel moderne.
EfficientNet peut produire des résultats précis tout en utilisant moins de mémoire et de puissance de traitement que de nombreux autres modèles. Il est donc utile dans de nombreux domaines, de la recherche scientifique aux produits d'usage quotidien.
Les images médicales, telles que les tomodensitogrammes des poumons, contiennent souvent des détails subtils qui sont essentiels pour un diagnostic précis. Les modèles d'IA peuvent contribuer à l'analyse de ces images afin de découvrir des schémas qui pourraient être difficiles à détecter par l'homme. Une adaptation d'EfficientNet à cette fin est MONAI (Medical Open Network for AI) EfficientNet, qui est spécifiquement conçu pour l'analyse d'images médicales.
En s'appuyant sur l'architecture d'EfficientNet, les chercheurs ont également mis au point Lung-EffNet, un modèle qui classifie les tomographies pulmonaires pour détecter les tumeurs. Ce modèle peut classer les tumeurs comme bénignes, malignes ou normales, avec une précision de plus de 99 % dans des conditions expérimentales.
La détection d'objets est le processus qui consiste à trouver des objets dans une image et à déterminer leur emplacement. Il s'agit d'un élément clé d'applications telles que les systèmes de sécurité, les voitures autonomes et les drones.
EfficientNet est devenu important dans ce domaine parce qu'il offrait un moyen très efficace d'extraire des caractéristiques d'images. Sa méthode de mise à l'échelle de la profondeur, de la largeur et de la résolution a montré comment les modèles pouvaient être précis sans être trop lourds ou trop lents. C'est pourquoi de nombreux systèmes de détection, tels qu'EfficientDet, utilisent EfficientNet comme colonne vertébrale.
Des modèles plus récents, tels que Ultralytics YOLO11, partagent le même objectif de combiner vitesse et précision. Cette tendance vers des modèles efficaces a été fortement influencée par les idées d'architectures comme EfficientNet.
Voici quelques avantages de l'utilisation d'EfficientNet dans les projets de vision par ordinateur :
Bien que l'utilisation d'EfficientNet présente de nombreux avantages, il convient de garder à l'esprit certaines de ses limites :
EfficientNet a modifié la manière dont les modèles de vision par ordinateur se développent en maintenant un équilibre entre la profondeur, la largeur et la résolution de l'image. Il s'agit toujours d'un modèle important, qui a également influencé les architectures plus récentes. En particulier, il occupe une place importante dans l'histoire de la vision par ordinateur.
Rejoignez notre communauté et notre dépôt GitHub pour en savoir plus sur l'IA. Consultez nos pages de solutions pour en savoir plus sur l'IA dans les soins de santé et la vision par ordinateur dans l'automobile. Découvrez nos options de licence et commencez à construire avec la vision par ordinateur dès aujourd'hui !