Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Come addestrare i modelli Ultralytics YOLO per detect animali in natura

Abirami Vina

5 minuti di lettura

15 aprile 2025

Imparare ad addestrare i modelli YOLO per detect animali in natura utilizzando il dataset African Wildlife e utilizzare il modello per fare inferenze su immagini non viste.

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 (AI) può essere utilizzata come strumento d'impatto per la conservazione della fauna selvatica. In particolare, modelli di visione artificiale come Ultralytics YOLO11 possono analizzare dati visivi come immagini e video per automatizzare l'identificazione e la localizzazione degli animali in tempo reale. 

I compiti di visione artificiale come il rilevamento degli oggetti e la segmentazione delle istanze, supportati da YOLO11, sono molto utili in questo caso. Analizzando i dati visivi, questi compiti ci aiutano a raccogliere dati cruciali, a identificare modelli ecologici e a rispondere in modo più efficace alle minacce ambientali.

In questo articolo illustreremo il processo di addestramento di YOLO11 per il detect animali. Iniziamo!

Come iniziare con Ultralytics YOLO11

Prima di immergerci nell'esercitazione, diamo un'occhiata alle diverse opzioni di configurazione e agli strumenti necessari per addestrare e utilizzare YOLO11. 

Lo strumento principale di cui avrete bisogno è il pacchettoUltralytics Python , 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 , è necessario impostare un ambiente per l'esecuzione del codice.

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 sul testo che consente di interagire con il computer digitando i comandi. A differenza delle interfacce grafiche (GUI), in cui si fa clic su pulsanti e si usa il mouse, la CLI richiede di digitare istruzioni di testo per eseguire programmi o compiti.
  • 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 sul cloud che funziona come i Jupyter Notebook ma offre accesso gratuito a potenti GPU. È facile da configurare e non è necessario installare nulla sul computer.

Sebbene esistano altre opzioni per la configurazione dell'ambiente, che possono essere analizzate 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 questa guida illustreremo 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 scelto un ambiente di sviluppo, per addestrare YOLO11 a detect specificamente gli animali selvatici, abbiamo bisogno di un set di immagini etichettate di alta qualità. 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 questa esercitazione utilizzeremo l'African Wildlife Dataset. È supportato dal pacchetto Ultralytics Python 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 set di dati, le classi e altri dettagli, semplificando l'utilizzo per l'addestramento dei modelli YOLO .

  • Licenza aperta: Questo set di dati è distribuito con licenza AGPL-3.0 , che incoraggia la trasparenza e la collaborazione.

Addestramento di Ultralytics YOLO11 per il rilevamento degli animali

Dopo aver esplorato il dataset African Wildlife, possiamo iniziare ad addestrare un modello YOLO11 per detect animali nelle immagini. Il processo prevede l'impostazione dell'ambiente di sviluppo, l'addestramento del modello YOLO11 e la valutazione delle sue prestazioni.

Passaggio 1: Impostazione dell'ambiente

Per iniziare, prepareremo un ambiente per l'addestramento e il test del modello. È possibile utilizzare Google Colab, Jupyter Notebook o un semplice file Python , a seconda delle preferenze. Creare un nuovo taccuino Google Colab, un taccuino Jupyter o un file Python .

Se si utilizza Google Colab, l'ambiente viene eseguito per impostazione predefinita su una CPU (Central Processing Unit), che può rallentare la formazione. Per accelerare il processo, soprattutto per i modelli più grandi, è possibile cambiare il runtime per utilizzare una GPU. In Google Colab, è possibile navigare nella scheda "Runtime" del menu, selezionare "Change runtime type" e impostare l'acceleratore hardware su una GPU (preferibilmente una GPU T4). Questo è importante per ridurre i tempi di formazione.

Successivamente, indipendentemente dall'ambiente utilizzato, è necessario installare il pacchetto Ultralytics Python . Se si utilizza un ambiente basato su notebookGoogle Colab o Jupyter), eseguire il seguente comando con un punto esclamativo (!) all'inizio

pip install ultralytics

Passo 2: caricamento di YOLO11 e preparazione del set di dati

Una volta installato il pacchetto Ultralytics , il passo successivo è caricare il modello YOLO11 e preparare il set di dati per l'addestramento. Per prima cosa, carichiamo il modello YOLO11 , che è già pre-addestrato per compiti di rilevamento di oggetti generici. Questo modello pre-addestrato ci offre un buon punto di partenza, poiché ha già imparato a detect 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 all'avvio del training, risparmiandovi la fatica di impostarlo 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 set di dati viene scaricato automaticamente e l'addestramento inizia a funzionare per detect animali basati sul set di dati della fauna africana quando viene eseguito lo snippet di codice sottostante.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)

Fase 3: Esecuzione della formazione 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 utilizzatoCPU in questo caso), insieme alla configurazione dell'addestramento, compreso il modello (yolo11n.pt), la dimensione del batch, le epoche 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 tasso di apprendimento: Indica l'ottimizzatore (ad esempio, AdamW) e il tasso di apprendimento, che controllano il modo in cui il modello regola 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 delle prestazioni: Dopo ogni epoca, vengono visualizzate le metriche delle prestazioni, come precisione, richiamo e mAP (precisione media). Questi valori mostrano l'accuratezza del modello nel rilevare e classificare gli oggetti.
  • Utilizzo della memoriaGPU : Se si utilizza una GPU, l'output mostra l'utilizzo della memoria per track 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

Al termine del processo di addestramento, è possibile esaminare e convalidare le metriche di prestazione del modello. In Google Colab, è possibile navigare nella cartella "runs", poi nella cartelladetect" e infine nella cartella "train", dove si trovano i registri che mostrano gli indicatori di prestazione chiave.

Per gli utenti in ambiente Python , i risultati dell'addestramento vengono salvati per impostazione predefinita nella directory "runs/train/" all'interno della directory di lavoro corrente. Ogni sessione di addestramento crea una nuova sottodirectory (ad esempio, runs/train/exp, runs/train/exp2, ecc.), in cui si trovano i log e altri risultati relativi all'addestramento.

Se si utilizza la CLI, è possibile accedere facilmente a questi risultati e impostazioni utilizzando il comando "yolo settings", che consente di visualizzare o modificare i percorsi e altre configurazioni relative ai registri di allenamento 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. 

I dati track progressi del modello, mostrando come la perdita (la differenza tra le previsioni del modello e i valori reali) sia diminuita e come l'accuratezza sia aumentata durante l'addestramento. Questo aiuta a capire quanto il modello abbia imparato a riconoscere gli animali e quanto sia 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 modello YOLO11 addestrato in modo personalizzato

Ora che abbiamo addestrato e valutato YOLO11, è il momento di usarlo per analizzare le immagini ed eseguire inferenze. È possibile utilizzare le immagini di prova del set di dati o nuove immagini provenienti da fonti diverse.

Utilizzeremo il seguente frammento di codice per eseguire il modello su un'immagine del dataset di prova. 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 addestrato su misura 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 detect . Per i test successivi, verranno create nuove cartelle come "predict2", "predict3" e così via per memorizzare le immagini.

Figura 4. Esecuzione di un'inferenza utilizzando il modello YOLO11 ottimizzato su un'immagine di prova.

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.

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

L'immagine di output mostrata di seguito verrà salvata nella cartella appropriata.

Figura 5. Rilevamento di animali selvatici utilizzando il modello YOLO11 ottimizzato su un'immagine non vista.

IA per la conservazione della fauna selvatica: applicazioni nel mondo reale

Modelli come YOLO11 sono in grado di detect e track automaticamente track animali, consentendo una serie di applicazioni pratiche. Ecco una panoramica di alcune delle aree chiave in cui Vision AI può essere utilizzata per sostenere gli sforzi di conservazione della fauna selvatica:

  • Monitoraggio delle specie: L'intelligenza artificiale può essere utilizzata per elaborare dati visivi come immagini e video per identificare con precisione le specie, contare le popolazioni e track loro movimenti nel tempo.
  • Avvisi intelligenti delle telecamere: Nelle aree remote, la visione computerizzata può essere utilizzata per classify continuamente gli animali e inviare avvisi in tempo reale, consentendo alle autorità per la fauna selvatica di rispondere rapidamente a minacce quali 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: L'intelligenza artificiale può essere sfruttata per detect presenza umana non autorizzata e i segni di bracconaggio, sfruttando l'apprendimento automatico e i dati storici per individuare i punti a rischio.

Punti chiave

I modelli di visione artificiale come YOLO11 possono svolgere un ruolo fondamentale nella conservazione della fauna selvatica, automatizzando il rilevamento e la localizzazione degli animali. Grazie alla Vision AI, possiamo elaborare grandi volumi di immagini e video provenienti da varie fonti, rendendo possibile una valutazione accurata della fauna selvatica. 

Ultralytics YOLO11, in particolare, è un'ottima scelta per il rilevamento di oggetti in tempo reale, il che lo rende perfetto per attività come la sorveglianza anti-bracconaggio, l'analisi comportamentale e il monitoraggio dell'ecosistema. Incorporando modelli basati sull'intelligenza artificiale negli sforzi di conservazione, possiamo proteggere meglio le specie, migliorare il monitoraggio della biodiversità e prendere decisioni più informate per salvaguardare la fauna selvatica in pericolo.

Unitevi alla nostra comunità ed esplorate il repository GitHub per saperne di più sulla computer vision. Scoprite altre applicazioni relative all'IA nella sanità e alla computer vision nel settore manifatturiero nelle nostre pagine dedicate alle soluzioni. Scoprite le opzioni di licenza diUltralytics per iniziare a lavorare con Vision AI.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis