Come addestrare i modelli Ultralytics YOLO a rilevare animali allo stato brado
Scopri come addestrare i modelli YOLO per rilevare animali allo stato brado usando l'African Wildlife Dataset e usa il modello per eseguire inferenze su immagini mai viste.

La fauna selvatica del nostro pianeta è incredibilmente varia, dalle api ronzanti ai maestosi elefanti, e preservare questa biodiversità è fondamentale per mantenere un ecosistema equilibrato. Tuttavia, gli sforzi di conservazione stanno diventando più difficili a causa della perdita di habitat, del bracconaggio e del cambiamento climatico. Tutti questi fattori influenzano negativamente le popolazioni di animali selvatici.
I metodi tradizionali di monitoraggio degli animali, come l'analisi manuale delle immagini delle fototrappole e la conduzione di indagini sul campo, possono essere lenti e richiedere molte risorse. Questi sforzi spesso non riescono a coprire in modo efficace vaste aree e grandi popolazioni.
Per superare questi limiti, l'intelligenza artificiale (AI) può essere utilizzata come strumento di grande impatto nella conservazione della fauna selvatica. Nello specifico, 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.
Le attività di computer vision come l'object detection e la segmentazione delle istanze, supportate da YOLO11, sono molto utili in questo caso. Analizzando i dati visivi, queste attività ci aiutano a raccogliere dati cruciali, identificare modelli ecologici e rispondere in modo più efficace alle minacce ambientali.
In questo articolo, seguiremo il processo di addestramento di YOLO11 per rilevare animali. Iniziamo!
Link to this sectionIniziare con Ultralytics YOLO11#
Prima di immergerci nel tutorial, diamo un'occhiata alle diverse opzioni di configurazione e agli strumenti di cui avrai bisogno per addestrare e utilizzare YOLO11.
Lo strumento principale di cui avrai bisogno è il pacchetto Python di 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 diverse opzioni tra cui puoi scegliere.
Ecco alcune delle opzioni più diffuse per configurare il tuo ambiente di sviluppo:
- Command-line interface (CLI): La CLI, nota anche come terminale, è uno strumento basato su testo che ti permette di interagire con il tuo computer digitando comandi. A differenza delle interfacce grafiche (GUI), dove clicchi su pulsanti e usi il mouse, la CLI richiede di digitare istruzioni testuali per eseguire programmi o compiti.
- Jupyter Notebooks: Questi notebook ti consentono di scrivere ed eseguire codice in piccoli blocchi chiamati celle. È interattivo, il che significa che puoi vedere l'output del tuo codice immediatamente, rendendo più facile testare ed eseguire 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 devi installare nulla sul tuo computer.
Sebbene esistano altre opzioni per configurare il tuo ambiente che puoi esplorare nella documentazione ufficiale di Ultralytics, le tre opzioni menzionate sopra richiedono pochissima configurazione 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.
Link to this sectionComprendere il dataset African Wildlife#
Dopo aver selezionato un ambiente di sviluppo, per addestrare YOLO11 a rilevare specificamente animali selvatici, abbiamo bisogno di un dataset di alta qualità di immagini etichettate. Ogni immagine dovrebbe 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 African Wildlife. È supportato dal pacchetto Python di Ultralytics ed è appositamente progettato per rilevare animali comunemente presenti negli ecosistemi africani. Contiene immagini annotate di quattro specie chiave: bufali, elefanti, rinoceronti e zebre.

Fig 1. Un'anteprima del dataset African Wildlife.
Ecco alcune caratteristiche chiave del dataset African Wildlife:
- Scala: Il dataset consiste in 1504 immagini divise in tre sottoinsiemi: 1052 per l'addestramento, 225 per la validazione e 227 per il test. Questa suddivisione garantisce che il modello impari in modo efficace e venga valutato accuratamente.
- Integrazione senza interruzioni: Ultralytics fornisce un file di configurazione YAML che definisce i percorsi del dataset, le classi e altri dettagli, rendendolo facile da usare durante l'addestramento dei modelli YOLO.
- Licenza aperta: Questo dataset è distribuito con licenza AGPL-3.0, favorendo trasparenza e collaborazione.
Link to this sectionAddestrare Ultralytics YOLO11 per il rilevamento di animali#
Ora che abbiamo esplorato il dataset African Wildlife, possiamo iniziare ad addestrare un modello YOLO11 per rilevare animali nelle immagini. Il processo prevede la configurazione dell'ambiente di sviluppo, l'addestramento del modello YOLO11 e la valutazione delle prestazioni del modello.
Link to this sectionPassaggio 1: Configurazione dell'ambiente#
Per iniziare, prepareremo un ambiente per l'addestramento e il test del modello. Puoi utilizzare Google Colab, Jupyter Notebooks o un semplice file Python, a seconda delle tue preferenze. Crea un nuovo notebook Google Colab, Jupyter Notebook o un file Python di conseguenza.
Se stai utilizzando Google Colab, l'ambiente viene eseguito di default su una CPU (Central Processing Unit), il che può rallentare l'addestramento. Per accelerare il processo, specialmente per 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 addestramento.
Successivamente, a prescindere dall'ambiente che stai utilizzando, devi installare il pacchetto Python di Ultralytics. Se stai utilizzando un ambiente basato su notebook (Google Colab o Jupyter), esegui il seguente comando con un punto esclamativo (!) all'inizio.
pip install ultralyticsLink to this sectionPassaggio 2: Caricamento di YOLO11 e preparazione del dataset#
Una volta installato il pacchetto Ultralytics, il passaggio successivo consiste nel caricare il modello YOLO11 e preparare il dataset per l'addestramento. Per prima cosa, 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 dataset utilizzando un file YAML, che contiene informazioni sulle immagini e sulle etichette. Questo file indica al modello dove trovare il dataset e quali oggetti deve imparare a riconoscere.
Il dataset African Wildlife è supportato dal pacchetto Ultralytics, quindi verrà scaricato automaticamente all'avvio dell'addestramento, evitandoti il problema di doverlo configurare manualmente.
Una volta che il dataset è pronto, il modello inizia l'addestramento. Il modello esaminerà il dataset più volte, un processo chiamato addestramento su epoche multiple, per migliorare la sua capacità di riconoscere gli animali nelle immagini. Durante questo processo, le immagini verranno ridimensionate a una dimensione coerente per l'elaborazione e il modello lavorerà con un set definito 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 per rilevare gli animali basandosi sul dataset African Wildlife quando viene eseguito il frammento di codice sottostante.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)Link to this sectionPassaggio 3: Guida all'addestramento di YOLO11#
Una volta eseguito il frammento di codice sopra indicato, il modello inizia l'addestramento in base alle impostazioni fornite. Abbiamo indicato al modello, tramite il codice, di esaminare le immagini di addestramento 30 volte. Quindi, significa che il modello guarderà tutte le immagini nel dataset 30 volte, imparando ogni volta qualcosa in più.
Immagina di provare a imparare a disegnare un animale. La prima volta che disegni, potrebbe non sembrare bello, ma dopo aver fatto pratica più e più volte, inizi a migliorare. Ogni volta che 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, vedrai il seguente output man mano che l'addestramento procede:
- 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, inclusi 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 learning rate: Menziona l'ottimizzatore (ad esempio, AdamW) e il learning rate, che controllano come il modello regola i suoi parametri durante l'addestramento.
- Scansione del dataset: Il modello scansiona il dataset, mostrando quante immagini sono valide e pronte per l'addestramento. Conferma che non ci sono problemi con il dataset.
- Progresso dell'addestramento: L'output si aggiorna dopo ogni epoca (ciclo di addestramento), mostrando il progresso dell'addestramento insieme ai valori di perdita chiave (box_loss, cls_loss, dfl_loss), che indicano quanto bene sta imparando il modello.
- Metriche delle prestazioni: Dopo ogni epoca, vedrai metriche delle prestazioni come precision, recall e mAP (mean average precision). 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 monitorare l'utilizzo dell'hardware.

Fig 2. L'output che vedrai mentre l'addestramento del modello è in esecuzione.
Link to this sectionPassaggio 4: Valutazione delle prestazioni del modello addestrato su misura#
Dopo aver completato il processo di addestramento, puoi rivedere e validare le metriche delle prestazioni del modello. In Google Colab, puoi navigare nella cartella "runs", poi nella cartella "detect" e infine nella cartella "train", dove troverai i log che mostrano gli indicatori chiave delle prestazioni.
Per gli utenti in un ambiente Python, i risultati dell'addestramento vengono salvati di default nella directory “runs/train/” all'interno della tua directory di lavoro attuale. Ogni esecuzione di addestramento crea una nuova sottocartella (ad esempio, runs/train/exp, runs/train/exp2, ecc.), dove puoi trovare i log e altri output relativi all'addestramento.
Se stai utilizzando la CLI, puoi facilmente accedere a questi risultati e impostazioni utilizzando il comando “yolo settings”, che ti consente di visualizzare o modificare i percorsi e le altre configurazioni relative ai log di addestramento e ai dettagli dell'esperimento.
Tra i log, troverai anche alcuni grafici che puoi esaminare per vedere come è andato il processo di addestramento del modello. Questi grafici, creati dopo il completamento dell'addestramento, mostrano se il modello è migliorato nel tempo commettendo meno errori e diventando più accurato.
Tracciano il progresso del modello, mostrando come la perdita (la differenza tra le previsioni del modello e i valori effettivi) è diminuita e come l'accuratezza è aumentata durante l'addestramento. Questo ti aiuta a capire quanto bene il modello ha imparato a riconoscere gli animali e quanto è migliorato entro la fine dell'addestramento.

Fig 3. Un esempio dei grafici che puoi analizzare per valutare il tuo modello.
Link to this sectionMetriche chiave per la valutazione delle prestazioni#
Inoltre, ecco un'analisi più dettagliata di alcune delle metriche che puoi utilizzare per valutare le prestazioni del modello:
- Mean average precision (mAP): Questa metrica misura l'accuratezza complessiva del modello nel rilevare animali in tutte le classi, calcolando la media dei punteggi di precision a diversi livelli di recall.
- Precision: Rappresenta la percentuale di rilevamenti corretti, calcolata dividendo il numero di rilevamenti true positive per il numero totale di rilevamenti effettuati.
- Recall: Indica la percentuale di animali reali presenti 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 perfezionare il modello per migliorare l'accuratezza prima di utilizzarlo in applicazioni nel mondo reale.
Link to this sectionEseguire inferenze utilizzando il tuo modello YOLO11 addestrato su misura#
Ora che abbiamo addestrato e valutato YOLO11, è tempo di usarlo per analizzare immagini ed eseguire inferenze. Puoi utilizzare le immagini di test dal dataset o nuove immagini da fonti diverse.
Utilizzeremo il seguente frammento di codice per eseguire il modello su un'immagine nel dataset di test. Importa i moduli necessari dalla libreria Ultralytics. Definisce quindi 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 di un'immagine dal dataset di test African Wildlife. Il modello viene applicato a questa immagine per l'object detection, i risultati vengono generati e l'output (come oggetti rilevati o annotazioni) viene salvato.
from ultralytics import YOLO, settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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 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 perfezionato su un'immagine di test.
Per testare immagini da fonti diverse, puoi utilizzare il codice qui sotto. Abbiamo utilizzato un'immagine da Pexels. Puoi utilizzare la stessa immagine o qualsiasi altra immagine pertinente.
from ultralytics import YOLO
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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.

Fig 5. Rilevamento della fauna selvatica utilizzando il modello YOLO11 perfezionato su un'immagine non vista.
Link to this sectionAI 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 smart tramite fotocamera: In aree remote, la computer vision può essere utilizzata per classificare continuamente gli animali e inviare avvisi in tempo reale, consentendo alle autorità preposte alla fauna selvatica di rispondere rapidamente a minacce come comportamenti animali anomali o conflitti uomo-animale.
- Analisi del comportamento: Monitorando la migrazione, le abitudini alimentari e le interazioni sociali, i sistemi di vision AI possono fornire approfondimenti completi sulle dinamiche tra le specie.
- Prevenzione del bracconaggio: La vision AI può essere sfruttata per rilevare la presenza umana non autorizzata e segni di bracconaggio, facendo leva su machine learning e dati storici per individuare i punti caldi a rischio.
Link to this sectionPunti chiave#
I 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 eseguire valutazioni accurate della fauna selvatica.
Ultralytics YOLO11, in particolare, è un'ottima scelta per l'object detection in tempo reale, rendendolo perfetto per attività come la sorveglianza anti-bracconaggio, l'analisi comportamentale e il monitoraggio dell'ecosistema. Incorporando modelli basati su AI 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.
Unisciti alla nostra community ed esplora il repository GitHub per saperne di più sulla computer vision. Scopri altre applicazioni relative all'AI nell'assistenza sanitaria e alla computer vision nella produzione sulle nostre pagine delle soluzioni. Dai un'occhiata alle opzioni di licenza di Ultralytics per iniziare con la vision AI.






