Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Impostazioni dei cookie
Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Scopri come addestrare i modelli YOLO per rilevare gli animali selvatici utilizzando l'African Wildlife Dataset e utilizzare il modello per eseguire inferenze su immagini inedite.
La fauna selvatica del nostro pianeta è incredibilmente diversificata, dalle api ronzanti agli elefanti imponenti, e preservare questa biodiversità è fondamentale per mantenere un ecosistema equilibrato. Tuttavia, gli sforzi di conservazione stanno diventando più impegnativi a causa della perdita di habitat, del bracconaggio e del cambiamento climatico. Tutti questi fattori influiscono negativamente sulle popolazioni di animali selvatici.
I metodi tradizionali di monitoraggio degli animali, come l'analisi manuale delle immagini di fototrappole e le indagini sul campo, possono essere lenti e richiedere molte risorse. Spesso questi sforzi non riescono a coprire efficacemente aree estese e grandi popolazioni.
Per superare queste limitazioni, l'intelligenza artificiale (IA) può essere utilizzata come strumento di grande impatto nella conservazione della fauna selvatica. In particolare, i modelli di computer vision come Ultralytics YOLO11 possono analizzare dati visivi come immagini e video per automatizzare l'identificazione e il tracciamento degli animali in tempo reale.
Task di computer vision come il rilevamento di oggetti e la segmentazione di istanze, supportati da YOLO11, sono molto utili in questo contesto. Analizzando i dati visivi, questi task ci aiutano a raccogliere dati cruciali, identificare pattern ecologici e rispondere in modo più efficace alle minacce ambientali.
In questo articolo, esamineremo il processo di addestramento di YOLO11 per rilevare gli animali. Iniziamo!
Inizia con Ultralytics YOLO11
Prima di immergerci nel tutorial, diamo un'occhiata alle diverse opzioni di configurazione e agli strumenti necessari per addestrare e utilizzare YOLO11.
Lo strumento principale di cui avrai bisogno è il pacchetto Python Ultralytics, che semplifica il lavoro con i modelli YOLO per attività come l'addestramento, il rilevamento di oggetti e l'esecuzione di inferenze. Per utilizzare il pacchetto Ultralytics, dovrai configurare un ambiente per eseguire il tuo codice e ci sono varie opzioni tra cui puoi scegliere.
Ecco alcune delle opzioni più comuni per configurare il tuo ambiente di sviluppo:
Interfaccia a riga di comando (CLI): La CLI, nota anche come terminale, è uno strumento basato su testo che consente di interagire con il computer digitando comandi. A differenza delle interfacce grafiche (GUI), in cui si fa clic sui pulsanti e si utilizza un mouse, la CLI richiede di digitare istruzioni di testo per eseguire programmi o attività.
Jupyter Notebooks: Questi notebook consentono di scrivere ed eseguire codice in piccoli blocchi chiamati celle. Sono interattivi, il che significa che è possibile vedere subito l'output del codice, semplificando il test e il debug.
Google Colab: Google Colab è una piattaforma basata su cloud che funziona come Jupyter Notebooks ma offre accesso gratuito a potenti GPU. È facile da configurare e non è necessario installare nulla sul computer.
Sebbene esistano altre opzioni per configurare il tuo ambiente, che puoi approfondire nella documentazione ufficiale di Ultralytics, le tre opzioni sopra menzionate richiedono una configurazione minima e sono facili da usare, il che le rende ideali per iniziare rapidamente.
In questo tutorial, mostreremo come configurare e addestrare YOLO11 utilizzando Google Colab, Jupyter Notebooks o un semplice file Python, poiché i passaggi sono molto simili in tutti questi ambienti.
Comprendere l'African Wildlife Dataset
Dopo aver selezionato un ambiente di sviluppo, per addestrare YOLO11 a rilevare specificamente gli animali selvatici, abbiamo bisogno di un set di dati di alta qualità di immagini etichettate. Ogni immagine deve mostrare chiaramente dove si trovano gli animali e di che tipo sono, in modo che il modello possa imparare a riconoscerli attraverso l'apprendimento supervisionato.
In questo tutorial, utilizzeremo il Dataset sulla fauna selvatica africana. È supportato dal pacchetto Python Ultralytics ed è specificamente progettato per rilevare gli animali che si trovano comunemente negli ecosistemi africani. Contiene immagini annotate di quattro specie chiave: bufali, elefanti, rinoceronti e zebre.
Fig. 1. Uno sguardo al dataset sulla fauna selvatica africana.
Ecco alcune caratteristiche chiave del dataset African Wildlife:
Scala: Il set di dati è composto da 1504 immagini suddivise in tre sottoinsiemi: 1052 per l'addestramento, 225 per la convalida e 227 per il test. Questa suddivisione garantisce che il modello apprenda efficacemente e venga valutato a fondo.
Integrazione perfetta: Ultralytics fornisce un file di configurazione YAML che definisce i percorsi dei dataset, le classi e altri dettagli, rendendone facile l'utilizzo durante l'addestramento dei modelli YOLO.
Licenza open source: Questo dataset è distribuito con licenza AGPL-3.0, incoraggiando la trasparenza e la collaborazione.
Addestramento di Ultralytics YOLO11 per il rilevamento di animali
Ora che abbiamo esplorato l'African Wildlife Dataset, possiamo iniziare ad addestrare un modello YOLO11 per rilevare gli animali nelle immagini. Il processo prevede la configurazione dell'ambiente di sviluppo, l'addestramento del modello YOLO11 e la valutazione delle prestazioni del modello.
Passaggio 1: Impostazione dell'ambiente
Per iniziare, prepareremo un ambiente per l'addestramento e il test del modello. A seconda delle preferenze, è possibile utilizzare Google Colab, Jupyter Notebooks o un semplice file Python. Crea un nuovo notebook Google Colab, Jupyter Notebook o file Python di conseguenza.
Se stai utilizzando Google Colab, l'ambiente per impostazione predefinita viene eseguito su una CPU (Central Processing Unit), il che può rallentare il training. Per accelerare il processo, soprattutto per i modelli più grandi, puoi cambiare il runtime per utilizzare una GPU. In Google Colab, puoi andare alla scheda "Runtime" nel menu, selezionare "Cambia tipo di runtime" e impostare l'acceleratore hardware su una GPU (preferibilmente una GPU T4). Questo è importante per ridurre i tempi di training.
Successivamente, indipendentemente dall'ambiente in uso, è necessario installare il pacchetto Python Ultralytics. Se si utilizza un ambiente basato su notebook (Google Colab o Jupyter), eseguire il comando seguente con un punto esclamativo (!) all'inizio
pip install ultralytics
Passaggio 2: Caricamento di YOLO11 e preparazione del dataset
Una volta installato il pacchetto Ultralytics, il passo successivo è caricare il modello YOLO11 e preparare il dataset per l'addestramento. Innanzitutto, carichiamo il modello YOLO11, che è già pre-addestrato su attività generali di object detection. Questo modello pre-addestrato ci offre un buon punto di partenza, poiché ha già imparato a rilevare vari oggetti.
Quindi, specifichiamo il set di dati utilizzando un file YAML, che contiene informazioni sulle immagini e sulle etichette. Questo file indica al modello dove trovare il set di dati e quali oggetti dovrebbe imparare a riconoscere.
Il dataset African Wildlife è supportato dal pacchetto Ultralytics, quindi verrà scaricato automaticamente quando si avvia il training, risparmiando la difficoltà di configurarlo manualmente.
Una volta che il dataset è pronto, il modello inizia l'addestramento. Il modello esaminerà il dataset più volte, un processo chiamato addestramento su più epoche, per migliorare la sua capacità di riconoscere gli animali nelle immagini. Durante questo processo, le immagini verranno ridimensionate a una dimensione uniforme per l'elaborazione e il modello lavorerà con un numero prestabilito di immagini alla volta, noto come batch. Questo aiuta il modello a imparare in modo più efficiente.
In breve, il modello viene caricato, il dataset viene scaricato automaticamente e l'addestramento inizia a essere eseguito per rilevare gli animali in base all'African Wildlife Dataset quando viene eseguito il frammento di codice seguente.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
Passaggio 3: Tutorial sull'addestramento di YOLO11
Una volta eseguito il frammento di codice di cui sopra, il modello inizia l'addestramento in base alle impostazioni che gli abbiamo fornito. Abbiamo detto al modello, tramite il codice, di esaminare le immagini di addestramento 30 volte. Quindi, significa che il modello esaminerà tutte le immagini nel dataset 30 volte, imparando ogni volta un po' di più.
Immagina di voler imparare a disegnare un animale. La prima volta che disegni, potrebbe non sembrare bello, ma dopo esserti esercitato più e più volte, inizi a migliorare. Ogni volta che ci riprovi, impari da ciò che è andato storto e lo correggi. Questo è ciò che ogni epoca fa per il modello: guarda le immagini, commette errori, impara da essi e migliora nel riconoscere gli animali ogni volta.
Se il codice di addestramento viene eseguito correttamente, verrà visualizzato il seguente output durante l'avanzamento dell'addestramento:
Configurazione dell'addestramento: La prima parte mostra la versione di Ultralytics, PyTorch e l'hardware utilizzato (CPU in questo caso), insieme alla configurazione dell'addestramento, incluso il modello (yolo11n.pt), la dimensione del batch, le epoch e la dimensione dell'immagine.
Riepilogo del modello: Fornisce informazioni sulla complessità del modello, come il numero di livelli e parametri, mostrando quanto è grande il modello.
Ottimizzatore e learning rate: Menziona l'ottimizzatore (ad esempio, AdamW) e il learning rate, che controllano il modo in cui il modello adatta i suoi parametri durante l'addestramento.
Scansione del dataset: Il modello esegue la scansione del dataset, mostrando quante immagini sono valide e pronte per l'addestramento. Conferma che non ci sono problemi con il dataset.
Avanzamento dell'addestramento: L'output si aggiorna dopo ogni epoca (ciclo di addestramento), mostrando l'avanzamento dell'addestramento insieme ai valori chiave di perdita (box_loss, cls_loss, dfl_loss), che indicano quanto bene il modello sta imparando.
Metriche di performance: Dopo ogni epoca, vedrai metriche di performance come precisione, richiamo (recall) e mAP (precisione media media). Questi valori mostrano quanto è accurato il modello nel rilevare e classificare gli oggetti.
Utilizzo della memoria GPU: Se stai utilizzando una GPU, l'output mostra l'utilizzo della memoria per tenere traccia dell'utilizzo dell'hardware.
Fig. 2. L'output che vedrai durante l'esecuzione del training del modello.
Passaggio 4: Valutazione delle prestazioni del modello addestrato personalizzato
Dopo che il processo di addestramento è completo, è possibile rivedere e convalidare le metriche di performance del modello. In Google Colab, è possibile navigare nella cartella "runs", quindi nella cartella "detect" e infine nella cartella "train", dove si troveranno i log che mostrano gli indicatori chiave di performance.
Per gli utenti in un ambiente Python, i risultati dell'addestramento vengono salvati per impostazione predefinita nella directory “runs/train/” all'interno della directory di lavoro corrente. Ogni esecuzione di addestramento crea una nuova sottodirectory (ad esempio, runs/train/exp, runs/train/exp2, ecc.), dove è possibile trovare i log e altri output relativi all'addestramento.
Se stai utilizzando la CLI, puoi accedere facilmente a questi risultati e impostazioni utilizzando il comando “yolo settings”, che ti consente di visualizzare o modificare i percorsi e altre configurazioni relative ai log di training e ai dettagli dell'esperimento.
Tra i log, troverai anche alcuni grafici che puoi consultare per vedere come è andato il processo di training del modello. Questi grafici, creati al termine del training, mostrano se il modello è migliorato nel tempo commettendo meno errori e diventando più preciso.
Tracciano i progressi del modello, mostrando come la loss (la differenza tra le previsioni del modello e i valori effettivi) è diminuita e come l'accuratezza è aumentata durante l'addestramento. Questo aiuta a capire quanto bene il modello ha imparato a riconoscere gli animali e quanto è migliorato alla fine dell'addestramento.
Fig. 3. Un esempio dei grafici che puoi analizzare per valutare il tuo modello.
Metriche chiave di valutazione delle prestazioni
Inoltre, ecco uno sguardo più da vicino ad alcune delle metriche che puoi utilizzare per valutare le prestazioni del modello:
Precisione media (mAP): Questa metrica misura l'accuratezza complessiva del modello nel rilevare gli animali in tutte le classi, calcolando la media dei punteggi di precisione a diversi livelli di richiamo.
Precisione: Rappresenta la percentuale di rilevamenti corretti, calcolata dividendo il numero di rilevamenti veri positivi per il numero totale di rilevamenti effettuati.
Recall: Indica la percentuale di animali effettivi nelle immagini che sono stati correttamente identificati dal modello, riflettendo la sua capacità di catturare tutte le istanze rilevanti.
Queste metriche di valutazione possono aiutare a mettere a punto il modello per migliorare l'accuratezza prima di utilizzarlo in applicazioni reali.
Esecuzione di inferenze utilizzando il tuo modello YOLO11 addestrato personalizzato
Ora che abbiamo addestrato e valutato YOLO11, è il momento di usarlo per analizzare le immagini ed eseguire inferenze. Puoi utilizzare le immagini di test dal set di dati o nuove immagini da diverse fonti.
Utilizzeremo il seguente frammento di codice per eseguire il modello su un'immagine nel set di dati di test. Importa i moduli necessari dalla libreria Ultralytics. Quindi definisce il percorso del file dei pesi del modello migliore ("best.pt") memorizzato nella directory dei risultati. Il modello YOLO11 personalizzato viene caricato utilizzando questi pesi.
Successivamente, viene impostato il percorso verso un'immagine dal set di dati di test African Wildlife. Il modello viene applicato a questa immagine per il rilevamento di oggetti, vengono generati i risultati e l'output (come oggetti rilevati o annotazioni) viene salvato.
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"img_results = model(image_path, save=True)
L'immagine di output mostrata di seguito verrà salvata nella cartella "predict" situata all'interno della directory runs/detect. Per i test successivi, verranno create nuove cartelle come "predict2", "predict3" e così via per archiviare le immagini.
Fig 4. Esecuzione di un'inferenza utilizzando il modello YOLO11 ottimizzato su un'immagine di test.
Per testare immagini provenienti da fonti diverse, puoi utilizzare il codice seguente. Abbiamo utilizzato un'immagine da Pexels. Puoi utilizzare la stessa immagine o qualsiasi altra immagine pertinente.
L'immagine di output mostrata di seguito verrà salvata nella cartella appropriata.
Fig 5. Rilevamento della fauna selvatica utilizzando il modello YOLO11 ottimizzato su un'immagine inedita.
IA per la conservazione della fauna selvatica: applicazioni nel mondo reale
Modelli come YOLO11 possono rilevare e tracciare automaticamente gli animali, il che consente una varietà di applicazioni pratiche. Ecco uno sguardo ad alcune delle aree chiave in cui la Vision AI può essere utilizzata per supportare gli sforzi di conservazione della fauna selvatica:
Monitoraggio delle specie: La Vision AI può essere utilizzata per elaborare dati visivi come immagini e video per identificare accuratamente le specie, contare le popolazioni e tracciare i loro movimenti nel tempo.
Avvisi intelligenti della telecamera: Nelle aree remote, la computer vision può essere utilizzata per classificare continuamente gli animali e inviare avvisi in tempo reale, consentendo alle autorità faunistiche di rispondere rapidamente a minacce come comportamenti anomali degli animali o conflitti tra uomo e fauna selvatica.
Analisi del comportamento: Monitorando la migrazione, le abitudini alimentari e le interazioni sociali, i sistemi di visione AI possono fornire informazioni complete sulle dinamiche interspecie.
Prevenzione del bracconaggio: La Vision AI può essere sfruttata per rilevare la presenza umana non autorizzata e i segni di bracconaggio, sfruttando al contempo il machine learning e i dati storici per individuare i punti caldi di rischio.
Punti chiave
Modelli di computer vision come YOLO11 possono svolgere un ruolo chiave nella conservazione della fauna selvatica automatizzando il rilevamento e il tracciamento degli animali. Con la Vision AI, possiamo elaborare grandi volumi di immagini e video da varie fonti, rendendo possibile l'esecuzione di valutazioni accurate della fauna selvatica.
Ultralytics YOLO11, in particolare, è un'ottima scelta per l'object detection in tempo reale, il che lo rende perfetto per task come la sorveglianza anti-bracconaggio, l'analisi comportamentale e il monitoraggio degli ecosistemi. Incorporando modelli basati sull'intelligenza artificiale negli sforzi di conservazione, possiamo proteggere meglio le specie, migliorare il tracciamento della biodiversità e prendere decisioni più informate per salvaguardare la fauna selvatica in via di estinzione.