Vai al contenuto

Applicazioni pratiche di deep learning/Classificazione dei fiori

Wikibooks, manuali e libri di testo liberi.

Il modello swin-tiny-patch4-window7-224-finetuned-flower-classifier che si trova su Hagging Face qui : https://huggingface.co/gianlab/swin-tiny-patch4-window7-224-finetuned-flower-classifier è stato ottenuto addestrandolo su Google Colab dopo avere importato le foto dei fiori da qui : https://www.kaggle.com/datasets/l3llff/flowers . Il modello consente di individuare la specie di un fiore con un'accuratezza del 93,39% . Le possibili specie di fiori classificati sono in inglese: 'common_daisy', 'rose', 'california_poppy', 'iris', 'astilbe', 'carnation', 'tulip', 'sunflower', 'coreopsis', 'magnolia', 'water_lily', 'bellflower', 'daffodil', 'calendula', 'dandelion', 'black_eyed_susan' .

Ci sono 3 possibilità per utilizzarlo :

1) Collegarsi con la pagina del modello https://huggingface.co/gianlab/swin-tiny-patch4-window7-224-finetuned-flower-classifier, cliccare su "Drag image here or click to browse from your device" e caricare la fotografia del fiore . Si otterrà una previsione della specie del fiore con la relativa accuratezza che va dall'1% al 100% .

2) Creare su Colab un nuovo file e incollare il seguente codice :

!pip install -q transformers
from transformers import pipeline

pipe = pipeline("image-classification", "gianlab/swin-tiny-patch4-window7-224-finetuned-flower-classifier")

Caricare la fotografia del fiore sul server tramite il seguente codice:

from google.colab import files 
files.upload()

Utilizzando la foto di Wikimedia Commons Magnolia cylindrica 1zz.jpg si può utilizzare il seguente codice per la sua visualizzazione:

from pathlib import Path
from PIL import Image
path_im = Path('Magnolia cylindrica 1zz.jpg')
image = Image.open(path_im)
image

Per ottenere il nome del fiore digitare :

 pipe(image)

con il seguente risultato :

[{'score': 0.9097182750701904, 'label': 'magnolia'},
{'score': 0.04048147052526474, 'label': 'water_lily'},
{'score': 0.015440584160387516, 'label': 'california_poppy'},
{'score': 0.010492484085261822, 'label': 'daffodil'},
{'score': 0.0076720151118934155, 'label': 'rose'}]


Quindi nel caso specifico si tratta di una magnolia con un'accuratezza del 90,97% .

3) Invece di caricare la foto sul server di Colab si può importarla direttamente dal web con :

from PIL import Image
import requests

url = 'https://www.mio_sito.it/foto_della_rosa.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image
[modifica | modifica sorgente]