Is mobilenetv4 a good image classification model?

MobileNet: Effektiv billedklassifikation til mobilenheder

18/01/2024

Rating: 4.43 (16881 votes)

MobileNet: Effektiv billedklassifikation til mobilenheder

I en verden hvor smartphones konstant udvikler sig og bliver mere integreret i vores dagligdag, er behovet for effektive og ressourcebesparende kunstig intelligens-modeller vokset eksponentielt. MobileNet-arkitekturen, udviklet af Google, repræsenterer et banebrydende spring fremad inden for computer vision, specifikt designet til at håndtere komplekse opgaver som billedklassifikation på mobile og indlejrede enheder. Denne artikel dykker ned i, hvordan MobileNet fungerer, dens forskellige versioner, dens anvendelser og hvordan du kan komme i gang med at bruge den.

How is MobileNet architecture used to classify animal images?
The extracted features from MobileNet Architecture are then used to classify the different categories of animal images with the utilization of an SVM classifier. Extensive experimentation on an Animal Image Dataset of 800 images with various classes are used to evaluate the performance.
Indholdsfortegnelse

Hvad er MobileNet?

MobileNet er en familie af Convolutional Neural Network (CNN) modeller, der er optimeret til at køre effektivt på enheder med begrænsede computerressourcer, såsom smartphones og tablets. Kernen i MobileNets effektivitet ligger i dens innovative brug af depthwise separable convolutions. Traditionelle CNN-modeller kræver betydelig regnekraft og hukommelse, hvilket gør dem uegnede til mobile applikationer. MobileNet adresserer dette problem ved at nedbryde den standard konvolutionelle operation i to trin: depthwise convolution og pointwise convolution.

Depthwise Separable Convolutions: Nøglen til Effektivitet

For at forstå, hvorfor MobileNet er så effektiv, er det vigtigt at forstå, hvordan depthwise separable convolutions adskiller sig fra standard convolutions:

  • Standard Convolution: En standard konvolution anvender et filter, der dækker alle inputkanaler og producerer et enkelt output. Dette indebærer både spatial filtrering og kanal-kombination i ét trin, hvilket er beregningsmæssigt dyrt og kræver mange parametre.
  • Depthwise Convolution: Dette trin udfører spatial filtrering uafhængigt for hver inputkanal. Et enkelt filter anvendes på en enkelt kanal, hvilket reducerer antallet af beregninger markant, da det ikke kombinerer information på tværs af kanaler på dette stadie.
  • Pointwise Convolution: Dette trin anvender derefter en 1x1 konvolution for at kombinere outputtet fra depthwise convolution på tværs af kanaler. Det fungerer som en lineær kombination af de filtrerede kanaler, hvilket tillader modellen at lære nye features og justere antallet af kanaler.

Ved at adskille disse to operationer reducerer MobileNet drastisk antallet af parametre og beregninger, hvilket resulterer i en markant hurtigere og mere energieffektiv model, uden at gå væsentligt på kompromis med nøjagtigheden.

MobileNet Arkitekturer: Evolutionen

Gennem årene er MobileNet-familien blevet forbedret med nye versioner, der yderligere optimerer ydeevnen:

MobileNetV1

Den oprindelige MobileNet-model introducerede konceptet med depthwise separable convolutions. Den var et stort skridt fremad for deep learning på mobile enheder.

MobileNetV2

MobileNetV2 byggede videre på V1 ved at introducere inverted residuals og linear bottlenecks. I stedet for at reducere kanalerne i starten af en blok som i traditionelle residualblokke, udvider V2 først kanalerne med en 1x1 konvolution, udfører en dybdevis konvolution på den udvidede repræsentation og reducerer derefter kanalerne igen med en lineær 1x1 konvolution. Dette design forbedrer informationsflowet og effektiviteten. Ved at bruge lineære aktiveringsfunktioner i de sidste lag af blokkene undgår V2 uønsket informationstab.

MobileNetV3

MobileNetV3 yderligere optimerer arkitekturen ved at inkorporere nyere opdagelser inden for neural arkitektursøgning (NAS) og effektive blokke. Den introducerer Squeeze-and-Excitation (SE) moduler for at forbedre kanal-vise afhængigheder og bruger redesignede aktiveringsfunktioner som h-swish for bedre ydeevne. MobileNetV3 tilbyder en endnu bedre balance mellem nøjagtighed og latency.

How to run MobileNet?
Let’s dive into the steps on how to run MobileNet: You need to import some essential modules to run this model. This starts with importing the image processor and image classification module from the transformer library. They help to preprocess images and load a pre-trained model, respectively.

MobileNetV4

MobileNetV4, som er en nyere udvikling, sigter mod at være state-of-the-art for mobile og edge-enheder. Den opretholder en god balance mellem høj nøjagtighed og lav beregningsomkostning. Selvom Google endnu ikke har frigivet fortrænede vægte for MobileNetV4, har organisationer som Hugging Face trænet egne versioner, der viser stærk ydeevne på klassifikationsopgaver. MobileNetV4 kan opnå op til 75% reduktion i antallet af parametre sammenlignet med tidligere versioner og er 3-4 gange hurtigere end andre letvægtsmodeller.

Anvendelser af MobileNet

MobileNets effektivitet og nøjagtighed har åbnet dørene for en bred vifte af praktiske anvendelser:

Billedklassifikation af Dyr

En bemærkelsesværdig anvendelse af MobileNet er inden for klassifikation af dyrebilleder. Forskning har vist, at en MobileNet-arkitektur, kombineret med en Support Vector Machine (SVM) klassifikator, kan opnå en imponerende nøjagtighed på op til 99% til at klassificere billeder af forskellige dyr som hunde, katte, elefanter, pandaer og aber. Dette er særligt nyttigt for skovtjenester til at udvikle alarmsystemer og for forskning i dyreadfærd.

Sundhedssektoren

MobileNet har vist sig at være yderst værdifuld i sundhedssektoren, især i områder med begrænset internetforbindelse eller computerressourcer.

  • COVID-19 Detektion: Under COVID-19-pandemien blev MobileNet brugt til at kategorisere bryst-røntgenbilleder som normale, COVID-inficerede eller med viral lungebetændelse med høj nøjagtighed.
  • Hudkræft Detektion: MobileNetV2 har vist sig effektiv til at detektere to primære former for hudkræft. Dette har været en game-changer for sundhedspleje i områder, der ikke har råd til stabil internetforbindelse.

Landbrug

I landbruget bruges MobileNet til at identificere plantesygdomme. Ved at analysere billeder af afgrøder, kan MobileNet hjælpe med at detektere blad-sygdomme, som f.eks. 10 almindelige bladsygdomme i tomatplanter, via en mobilapplikation.

Sådan kører du MobileNet til Billedklassifikation

At implementere MobileNet til billedklassifikation involverer typisk følgende trin, ofte ved hjælp af biblioteker som Transformers og PyTorch:

Trin 1: Installer Nødvendige Biblioteker

Først skal du installere de påkrævede Python-biblioteker:

!pip install transformers timm torch pillow 

Trin 2: Importer Biblioteker

Importer de nødvendige moduler:

from urllib.request import urlopen from PIL import Image import timm import torch from transformers import AutoImageProcessor, AutoModelForImageClassification 

Trin 3: Indlæs Billede

Du kan indlæse et billede enten fra en lokal filsti eller via en URL:

# Fra URL test_img_url1 = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png' test_img1 = Image.open(urlopen(test_img_url1)) # Fra lokal fil # image = Image.open('/content/din_billedfil.jpg') 

Trin 4: Indlæs Foruddannet Model og Processor

Brug Transformers-biblioteket til at indlæse en foruddannet MobileNet-model og dens tilhørende processor. For eksempel, for MobileNetV2:

preprocessor = AutoImageProcessor.from_pretrained("google/mobilenet_v2_1.0_224") model = AutoModelForImageClassification.from_pretrained("google/mobilenet_v2_1.0_224") 

For MobileNetV4 kan du bruge timm-biblioteket og specificere modellen fra Hugging Face Hub:

model_name = "hf_hub:timm/mobilenetv4_hybrid_large.ix_e600_r384_in1k" model = timm.create_model(model_name, pretrained=True) model = model.eval() # Sæt modellen i evaluation mode # Hent model-specifikke transformationer data_config = timm.data.resolve_data_config({}, model=model) transform = timm.data.create_transform(**data_config) 

Trin 5: Forbehandling af Input

Billedet skal forbehandles, så det passer til modellens inputkrav:

# For MobileNetV2 (ved brug af Transformers) inputs = preprocessor(images=image, return_tensors="pt") # For MobileNetV4 (ved brug af timm) input_tensor = transform(test_img1).unsqueeze(0) 

Trin 6: Kør Inferens

Send det forbehandlede input gennem modellen for at få forudsigelser:

# For MobileNetV2 outputs = model(**inputs) logits = outputs.logits # For MobileNetV4 with torch.no_grad(): output = model(input_tensor) softmax_output = output.softmax(dim=1) 

Trin 7: Fortolkning af Output

Konverter output-logits til sandsynligheder og identificer den mest sandsynlige klasse. For modeller trænet på ImageNet, vil du have brug for en liste over labels.

How is MobileNet architecture used to classify animal images?
The extracted features from MobileNet Architecture are then used to classify the different categories of animal images with the utilization of an SVM classifier. Extensive experimentation on an Animal Image Dataset of 800 images with various classes are used to evaluate the performance.
# For MobileNetV2 predicted_class_idx = logits.argmax(-1).item() print("Forudsagt klasse:", model.config.id2label[predicted_class_idx]) # For MobileNetV4 (få top 5 forudsigelser) top5_probabilities, top5_class_indices = torch.topk(softmax_output, k=5) top5_probabilities = top5_probabilities * 100 top5_class = top5_class_indices[0] list_form_c = top5_class.tolist() top5_prob = top5_probabilities[0] list_form_p = top5_prob.tolist() # Antag at 'image_net_labels' er en liste/dictionary med ImageNet labels predictions=[] for i in range(5): predictions.append([image_net_labels[list_form_c[i]], round(list_form_p[i], 2)]) print("Top 5 forudsigelser:", predictions) 

Sammenligning af MobileNet Versioner

Her er en oversigt over de vigtigste forskelle og forbedringer mellem MobileNet-versionerne:

VersionNøglefunktionerFordeleUlemper
MobileNetV1Depthwise separable convolutionsGrundlæggende effektivitet på mobile enhederMindre nøjagtig end senere versioner
MobileNetV2Inverted residuals, linear bottlenecksForbedret nøjagtighed og effektivitetStadig plads til optimering
MobileNetV3NAS, Squeeze-and-Excitation, h-swishEndnu bedre balance mellem nøjagtighed og latencyKompleksitet i arkitekturen
MobileNetV4State-of-the-art optimering, reduceret parameterantalHøjeste effektivitet og hastighed for mobile enhederBegrænset tilgængelighed af officielle foruddannede modeller

Ofte Stillede Spørgsmål (FAQ)

Q1: Hvad gør MobileNetV2 anderledes end andre CNN-modeller?
MobileNetV2 bruger depthwise separable convolutions og de unikke inverted residuals med linear bottlenecks, hvilket gør den mere effektiv til mobile og indlejrede systemer sammenlignet med traditionelle CNN'er.

Q2: Kan MobileNetV2 bruges til realtidsapplikationer?
Ja, MobileNetV2 er optimeret til lav latency og realtidsbilledklassifikationsopgaver, hvilket gør den velegnet til mobile enheder og edge computing.

Q3: Hvor nøjagtig er MobileNetV2 sammenlignet med større modeller?
Selvom MobileNetV2 er optimeret til effektivitet, opretholder den en høj nøjagtighed, der ofte er tæt på større modeller. Dette gør den til et stærkt valg for mobile AI-applikationer, hvor ressourcerne er begrænsede.

Q4: Hvilken version af MobileNet er bedst til en specifik opgave?
Valget afhænger af dine specifikke behov. MobileNetV1 er god til grundlæggende opgaver. MobileNetV2 og V3 tilbyder en bedre balance mellem nøjagtighed og hastighed. MobileNetV4 repræsenterer den seneste state-of-the-art teknologi, hvis tilgængelighed er et problem.

Konklusion

MobileNet-arkitekturen er et vidnesbyrd om Googles innovation inden for effektiv deep learning. Ved at revolutionere konvolutionelle operationer og optimere for mobile enheder har MobileNet gjort det muligt at implementere avancerede computer vision-opgaver på tværs af et bredt spektrum af enheder. Fra at identificere dyr i naturen til at forbedre sundhedspleje og landbrug, demonstrerer MobileNets alsidighed og effektivitet dens utrolige potentiale. Uanset om du er udvikler, forsker eller blot teknologientusiast, tilbyder MobileNet en kraftfuld og tilgængelig vej ind i fremtiden for mobil AI.

Hvis du vil læse andre artikler, der ligner MobileNet: Effektiv billedklassifikation til mobilenheder, kan du besøge kategorien Teknologi.

Go up