Maison >Périphériques technologiques >IA >Comment faire la classification des images avec le modèle MobileNetv2?
MobileNet est un modèle open source créé pour soutenir l'émergence des smartphones. Il utilise une architecture CNN pour effectuer des tâches de vision par ordinateur telles que la classification d'images et la détection d'objets. Les modèles utilisant cette architecture nécessitent généralement beaucoup de coûts de calcul et de ressources matérielles, mais MobileNet a été conçu pour fonctionner avec des appareils mobiles et une intégration.
Au fil des ans, ce modèle a été utilisé pour diverses applications du monde réel. Il a également certaines capacités, comme la réduction des paramètres en utilisant la convolution de séparation du sens de la profondeur. Ainsi, avec les ressources matérielles limitées des appareils mobiles, cette technique peut aider à rendre le modèle fonctionnel.
Nous allons discuter de la façon dont ce modèle classe efficacement les images en utilisant la classe prédite pré-formée pour le classificateur des images avec la profondeur.
Cet article a été publié dans le cadre du Data Science Blogathon.
Cependant, cela est livré avec un coût de calcul élevé et une augmentation du nombre de paramètres, d'où la nécessité d'une convolution en profondeur et ponctuelle.
La convolution de la profondeur applique un seul filtre au canal d'entrée, tandis que le ponctuel combine la sortie de la convolution de la profondeur pour créer de nouvelles fonctionnalités à partir de l'image.
Ainsi, la différence ici est qu'avec le sens de la profondeur en appliquant un seul filtre, la tâche de multiplication est réduite, ce qui signifie que la sortie a le même nombre de canaux que l'entrée. Cela conduit à la convolution ponctuelle.
La convolution ponctuelle utilise un filtre 1 × 1 qui combine ou étend les fonctionnalités. Cela aide le modèle à apprendre différents modèles de distribution sur les fonctionnalités de la chaîne pour créer une nouvelle carte de fonctionnalité. Cela permet à la convolution ponctuelle d'augmenter ou de diminuer le nombre de canaux dans la carte de la fonction de sortie.
Ce modèle de vision par ordinateur est construit sur l'architecture CNN pour effectuer des tâches de classification d'images et de détection d'objets. L'utilisation de la convolution séparable dans le sens de la profondeur est d'adapter ce modèle à des appareils mobiles et intégrés, car il permet la construction de réseaux de neurones profonds légers.
Ce mécanisme apporte la réduction du nombre de paramètres et de la latence pour respecter les contraintes de ressources. L'architecture permet l'efficacité et la précision dans la sortie du modèle.
La deuxième version de ce modèle (MobileNetv2) a été construite avec une amélioration. MobileNet V2 a introduit un type spécial de bloc de construction appelé résidus inversés avec des goulets d'étranglement. Ces blocs aident à réduire le nombre de canaux traités, ce qui rend le modèle plus efficace. Il comprend également les raccourcis entre les couches d'étranglement pour améliorer le flux d'informations. Au lieu d'utiliser une fonction d'activation standard (RELU) dans la dernière couche, il utilise une activation linéaire, qui fonctionne mieux car les données ont une taille spatiale plus faible à ce stade.
L'utilisation de ce modèle pour la classification d'images nécessite quelques étapes. Le modèle reçoit et classe une image d'entrée en utilisant sa classe de prédiction intégrée. Plongeons-nous dans les étapes de la façon d'exécuter Mobilenet:
Vous devez importer des modules essentiels pour exécuter ce modèle. Cela commence par l'importation du processeur d'image et du module de classification d'image à partir de la bibliothèque Transformer. Ils aident à prétraiter les images et à charger un modèle pré-formé, respectivement. De plus, PIL est utilisé pour manipuler des images, tandis que les «demandes» vous permet de récupérer des images à partir du Web.
from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import requests
image = Image.open('/content/imagef-ishfromunsplash-ezgif.com-webp-to-jpg-converter.jpg')
La fonction «image.open» est utilisée à partir de la bibliothèque PIL pour charger l'image à partir d'un chemin de fichier, qui, dans ce cas, a été téléchargé à partir de notre appareil local. Une autre alternative serait de récupérer l'image en utilisant son URL.
Le code ci-dessous initialise le processus «AutoimageProcessor» du modèle pré-formé MobileNetv2. Cette pièce gère le prétraitement de l'image avant de le nourrir au modèle. De plus, comme le montre la deuxième ligne, le code charge le modèle MobileNetv2 correspondant pour la classification d'images.
preprocessor = AutoImageProcessor.from_pretrained("google/mobilenet_v2_1.0_224") model = AutoModelForImageClassification.from_pretrained("google/mobilenet_v2_1.0_224")
Cette étape est l'endroit où l'image prétraitée est convertie en un format adapté à Pytorch. Ensuite, il est passé à travers le modèle pour générer des logits de sortie, qui seront convertis en probabilités à l'aide de softmax.
inputs = preprocessor(images=image, return_tensors="pt") outputs = model(**inputs) logits = outputs.logits
# model predicts one of the 1000 ImageNet classes predicted_class_idx = logits.argmax(-1).item() print("Predicted class:", model.config.id2label[predicted_class_idx])
Ce code trouve la classe avec le score de prédiction le plus élevé à partir de la sortie (Logits) du modèle et récupère son étiquette correspondante à partir de la configuration du modèle. L'étiquette de classe prévue est ensuite imprimée.
Voici la sortie:
Voici un lien vers le fichier Colab.
Mobilenet a trouvé des applications dans divers cas d'utilisation réelle. Et il a été utilisé dans divers domaines, y compris les soins de santé. Voici quelques-unes des applications de ce modèle:
Vous pouvez également consulter le modèle ici: lien
Mobilenet est le résultat d'une masterclass par des chercheurs de Google dans la mise en œuvre de modèles avec des coûts de calcul élevés aux appareils mobiles sans interférer avec leur efficacité. Ce modèle a été construit sur une architecture qui permet la création de la classification et de la détection d'images uniquement à partir d'applications mobiles. Les cas d'utilisation des soins de santé et de l'agriculture sont des preuves des capacités de ce modèle.
Il y a quelques points de discussion sur le fonctionnement de ce modèle, de l'architecture aux applications. Voici quelques-uns des faits saillants de cet article:
Le média présenté dans cet article ne appartient pas à l'analyse vidhya et est utilisé à la discrétion de l'auteur.
ANS. MobileNetv2 utilise une convolution séparable dans le sens de la profondeur et des résidus inversés, ce qui le rend plus efficace pour les systèmes mobiles et intégrés par rapport aux CNN traditionnels.
Q2. MobileNetv2 peut-il être utilisé pour des applications en temps réel?Ans. MobileNetv2 est optimisé pour les tâches de classification d'images à faible latence et en temps réel, ce qui le rend adapté aux appareils mobiles et bords.
Q3. Quelle est la précision de MobileNetv2 par rapport aux modèles plus grands?Ans. Bien que MobileNetV2 soit optimisé pour l'efficacité, il maintient une précision élevée près des modèles plus grands, ce qui en fait un choix fort pour les applications d'IA mobiles.
Q4. Quelle est la précision de MobileNetv2 par rapport aux modèles plus grands?ANS. Bien que MobileNetV2 soit optimisé pour l'efficacité, il maintient une précision élevée près des modèles plus grands, ce qui en fait un choix fort pour les applications d'IA mobiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!