Come addestrare i modelli Ultralytics YOLO a rilevare gli animali in natura
Scopri come addestrare i modelli YOLO a rilevare gli animali in natura usando il dataset African Wildlife e come usare il modello per eseguire inferenze su immagini mai 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 interventi di conservazione stanno diventando più difficili a causa della perdita di habitat, del bracconaggio e dei cambiamenti climatici. Tutti questi fattori influenzano negativamente le popolazioni di animali selvatici.
I metodi tradizionali di monitoraggio degli animali, come l'analisi manuale delle immagini scattate dalle fototrappole e i rilevamenti sul campo, possono essere lenti e richiedere molte risorse. Spesso questi interventi non riescono a coprire efficacemente aree estese e popolazioni numerose.
Per superare queste limitazioni, l'intelligenza artificiale (AI) può essere utilizzata come strumento efficace nella conservazione della fauna selvatica. In particolare, i modelli di visione artificiale 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 visione artificiale, come il rilevamento degli oggetti e la segmentazione delle istanze, supportate da Ultralytics YOLO11, sono molto utili in questo contesto. Analizzando i dati visivi, queste attività ci aiutano a raccogliere dati cruciali, identificare schemi ecologici e rispondere in modo più efficace alle minacce ambientali.
In questo articolo illustreremo il processo di addestramento di Ultralytics YOLO11 per rilevare gli animali. Iniziamo!
Come iniziare a usare Ultralytics YOLO11#
Prima di passare al tutorial, diamo un'occhiata alle diverse opzioni di configurazione e agli strumenti necessari per addestrare e utilizzare Ultralytics YOLO11.
Lo strumento principale di cui avrai bisogno è il pacchetto Python di Ultralytics, che semplifica l'utilizzo dei modelli YOLO per attività come l'addestramento, il rilevamento degli oggetti e l'esecuzione di inferenze. Per utilizzare il pacchetto Ultralytics, dovrai configurare un ambiente in cui eseguire il codice e potrai scegliere tra diverse opzioni.
Ecco alcune delle opzioni più diffuse per configurare il tuo ambiente di sviluppo:
- Interfaccia della riga di comando (CLI): la CLI, nota anche come terminale, è uno strumento basato sul testo che ti permette di interagire con il computer digitando comandi. A differenza delle interfacce grafiche (GUIs), in cui fai clic sui pulsanti e usi il mouse, la CLI richiede di digitare istruzioni testuali per eseguire programmi o attività.
- Jupyter Notebooks: questi notebook ti permettono di scrivere ed eseguire codice in piccoli blocchi chiamati celle. Sono interattivi, cioè puoi visualizzare immediatamente l'output del codice, rendendo più semplici i test e il debug.
- Google Colab: Google Colab è una piattaforma basata sul cloud che funziona come Jupyter Notebooks, ma offre accesso gratuito a GPU potenti. È facile da configurare e non devi installare nulla sul computer.
Sebbene esistano altre opzioni per configurare il tuo ambiente, che puoi consultare nella documentazione ufficiale di Ultralytics, le tre opzioni menzionate sopra richiedono una configurazione minima e sono facili da usare, risultando ideali per iniziare rapidamente.
In questo tutorial mostreremo come configurare e addestrare Ultralytics YOLO11 usando Google Colab, Jupyter Notebooks o un semplice file Python, poiché i passaggi sono molto simili in tutti questi ambienti.
Conoscere l'African Wildlife Dataset#
Dopo aver selezionato un ambiente di sviluppo, per addestrare Ultralytics YOLO11 a rilevare specificamente gli animali selvatici, abbiamo bisogno di un dataset di immagini etichettate di alta qualità. Ogni immagine dovrebbe mostrare chiaramente dove si trovano gli animali e a quale specie appartengono, affinché il modello possa imparare a riconoscerli tramite l'apprendimento supervisionato.
In questo tutorial utilizzeremo l'African Wildlife Dataset. È supportato dal pacchetto Python di Ultralytics ed è progettato specificamente per rilevare gli animali comunemente presenti negli ecosistemi africani. Contiene immagini annotate di quattro specie principali: bufali, elefanti, rinoceronti e zebre.

Fig. 1 Un'anteprima dell'African Wildlife Dataset.
Ecco alcune caratteristiche principali dell'African Wildlife Dataset:
- Dimensioni: il dataset è composto da 1504 immagini suddivise 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 approfonditamente.
- Integrazione perfetta: Ultralytics fornisce un file di configurazione YAML che definisce i percorsi del dataset, le classi e altri dettagli, rendendone semplice l'utilizzo durante l'addestramento dei modelli YOLO.
- Licenza open: questo dataset è distribuito con licenza AGPL-3.0, incoraggiando la trasparenza e la collaborazione.
Addestramento di Ultralytics YOLO11 per il rilevamento degli animali#
Ora che abbiamo esplorato l'African Wildlife Dataset, possiamo iniziare ad addestrare un modello Ultralytics 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 sue prestazioni.
Passaggio 1: configurazione dell'ambiente#
Per iniziare, prepareremo un ambiente per addestrare e testare il modello. Puoi usare Google Colab, Jupyter Notebooks o un semplice file Python, a seconda delle tue preferenze. Crea di conseguenza un nuovo notebook Google Colab, Jupyter Notebook o file Python.
Se usi Google Colab, per impostazione predefinita l'ambiente viene eseguito su una CPU (unità di elaborazione centrale), il che può rallentare l'addestramento. Per velocizzare il processo, soprattutto con i modelli più grandi, puoi configurare l'ambiente di esecuzione affinché utilizzi una GPU. In Google Colab, apri la scheda "Runtime" nel menu, seleziona "Change runtime type" e imposta l'acceleratore hardware su una GPU (preferibilmente una GPU T4). Questo è importante per ridurre i tempi di addestramento.
Successivamente, indipendentemente dall'ambiente che stai utilizzando, devi installare il pacchetto Python di Ultralytics. Se usi un ambiente basato su notebook (Google Colab o Jupyter), esegui il comando seguente con un punto esclamativo (!) all'inizio.
pip install ultralyticsPassaggio 2: caricamento di Ultralytics YOLO11 e preparazione del dataset#
Dopo aver 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, già preaddestrato per attività generiche di rilevamento degli oggetti. Questo modello preaddestrato ci offre un buon punto di partenza, poiché ha già imparato a rilevare diversi oggetti.
Poi specifichiamo il dataset usando 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.
L'African Wildlife Dataset è supportato dal pacchetto Ultralytics, quindi verrà scaricato automaticamente all'avvio dell'addestramento, evitandoti di doverlo configurare manualmente.
Quando il dataset è pronto, il modello inizia l'addestramento. Il modello esaminerà il dataset più volte, in un processo chiamato addestramento su più epoche, per migliorare la 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, chiamato 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 sulla base dell'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: guida all'addestramento di Ultralytics YOLO11#
Dopo aver eseguito il frammento di codice precedente, il modello inizia l'addestramento in base alle impostazioni che gli abbiamo fornito. Attraverso il codice, abbiamo indicato al modello di esaminare le immagini di addestramento 30 volte. Ciò significa che il modello analizzerà tutte le immagini del dataset 30 volte, imparando qualcosa in più a ogni passaggio.
Immagina di cercare di imparare a disegnare un animale. La prima volta che disegni, il risultato potrebbe non essere un granché, ma dopo esserti esercitato più e più volte inizi a migliorare. Ogni volta che ci riprovi, impari dagli errori e li correggi. È questo che fa ogni epoca per il modello: esamina le immagini, commette errori, impara da essi e migliora ogni volta nel riconoscimento degli animali.
Se il codice di addestramento è in esecuzione correttamente, vedrai il seguente output durante l'avanzamento dell'addestramento:
- Configurazione dell'addestramento: la prima parte mostra la versione di Ultralytics, PyTorch e dell'hardware utilizzato (in questo caso la CPU), insieme alla configurazione dell'addestramento, che include il modello (yolo11n.pt), la dimensione del batch, il numero di epoche e la dimensione delle immagini.
- 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: indica l'ottimizzatore (ad esempio AdamW) e il learning rate, che controllano il modo in cui il modello adatta i propri parametri durante l'addestramento.
- Scansione del dataset: il modello analizza il dataset e mostra quante immagini sono valide e pronte per l'addestramento. Conferma che non ci siano problemi con il dataset.
- Avanzamento dell'addestramento: l'output si aggiorna dopo ogni epoca (ciclo di addestramento), mostrando l'avanzamento insieme ai principali valori di perdita (box_loss, cls_loss, dfl_loss), che indicano quanto bene il modello sta imparando.
- Metriche delle prestazioni: dopo ogni epoca visualizzerai metriche delle prestazioni come precisione, richiamo e mAP (precisione media media). Questi valori mostrano l'accuratezza del modello nel rilevare e classificare gli oggetti.
- Utilizzo della memoria GPU: se usi una GPU, l'output mostra l'utilizzo della memoria per monitorare l'impiego dell'hardware.

Fig. 2. L'output che vedrai durante l'addestramento del modello.
Passaggio 4: valutazione delle prestazioni del modello addestrato personalizzato#
Al termine del processo di addestramento, puoi esaminare e convalidare le metriche delle prestazioni del modello. In Google Colab, apri la cartella "runs", poi la cartella "detect" e infine la cartella "train", dove troverai i log che mostrano gli indicatori chiave delle prestazioni.
Per chi utilizza 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 dell'addestramento crea una nuova sottodirectory (ad esempio runs/train/exp, runs/train/exp2 e così via), dove puoi trovare i log e altri output relativi all'addestramento.
Se usi la CLI, puoi accedere facilmente a questi risultati e a queste impostazioni utilizzando il comando “yolo settings”, che ti permette di visualizzare o modificare i percorsi e altre configurazioni relative ai log dell'addestramento e ai dettagli dell'esperimento.
Tra i log troverai anche alcuni grafici che puoi esaminare per valutare l'esito del processo di addestramento del modello. Questi grafici, creati al termine dell'addestramento, mostrano se il modello è migliorato nel tempo commettendo meno errori e diventando più preciso.
Tracciano i progressi del modello, mostrando come la perdita (la differenza tra le previsioni del modello e i valori effettivi) sia diminuita e come l'accuratezza sia aumentata durante l'addestramento. Questo ti aiuta a capire quanto bene il modello abbia imparato a riconoscere gli animali e quanto sia migliorato al termine dell'addestramento.

Fig. 3. Un esempio dei grafici che puoi analizzare per valutare il modello.
Metriche chiave per la valutazione delle prestazioni#
Ecco anche un'analisi più dettagliata di alcune metriche che puoi usare per valutare le prestazioni del modello:
- Precisione media 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 veri positivi per il numero totale di rilevamenti effettuati.
- Richiamo: indica la percentuale di animali effettivamente presenti nelle immagini identificati correttamente dal modello e riflette la sua capacità di catturare tutte le istanze pertinenti.
Queste metriche di valutazione possono aiutarti a ottimizzare il modello per migliorarne l'accuratezza prima di utilizzarlo in applicazioni reali.
Esecuzione di inferenze con il tuo modello Ultralytics YOLO11 addestrato personalizzato#
Ora che abbiamo addestrato e valutato Ultralytics YOLO11, è il momento di usarlo per analizzare immagini ed eseguire inferenze. Puoi usare le immagini di test del dataset o nuove immagini provenienti da fonti diverse.
Utilizzeremo il seguente frammento di codice per eseguire il modello su un'immagine del dataset di test. Importa i moduli necessari dalla libreria Ultralytics. Definisce quindi il percorso del file con i pesi del modello migliore ("best.pt"), memorizzato nella directory dei risultati. Il modello YOLO11 addestrato personalizzato viene caricato usando questi pesi.
Successivamente, viene impostato il percorso di un'immagine del dataset di test African Wildlife. Il modello viene applicato a questa immagine per il rilevamento degli oggetti, vengono generati i risultati e viene salvato l'output (come gli oggetti rilevati o le annotazioni).
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 i test successivi verranno create nuove cartelle come "predict2", "predict3" e così via per memorizzare le immagini.

Fig. 4. Esecuzione di un'inferenza usando il modello Ultralytics YOLO11 ottimizzato su un'immagine di test.
Per testare immagini provenienti da fonti diverse, puoi usare il codice seguente. Abbiamo utilizzato un'immagine di Pexels. Puoi usare 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 usando il modello Ultralytics YOLO11 ottimizzato su un'immagine mai vista.
AI per la conservazione della fauna selvatica: applicazioni nel mondo reale#
Modelli come Ultralytics YOLO11 possono rilevare e monitorare automaticamente gli animali, consentendo numerose applicazioni pratiche. Ecco una panoramica di alcune aree chiave in cui l'AI per la visione può essere utilizzata per supportare gli interventi di conservazione della fauna selvatica:
- Monitoraggio delle specie: l'AI per la visione può essere utilizzata per elaborare dati visivi come immagini e video, identificare con precisione le specie, contarne le popolazioni e monitorarne gli spostamenti nel tempo.
- Avvisi da telecamere intelligenti: nelle aree remote, la visione artificiale può essere utilizzata per classificare continuamente gli animali e inviare avvisi in tempo reale, consentendo alle autorità preposte alla tutela della fauna selvatica di rispondere rapidamente a minacce come comportamenti anomali degli animali o conflitti tra esseri umani e fauna selvatica.
- Analisi del comportamento: monitorando le migrazioni, le abitudini alimentari e le interazioni sociali, i sistemi di AI per la visione possono fornire informazioni complete sulle dinamiche tra specie diverse.
- Prevenzione del bracconaggio: l'AI per la visione può essere utilizzata per rilevare la presenza umana non autorizzata e i segnali di bracconaggio, sfruttando al contempo il machine learning e i dati storici per individuare i punti critici di rischio.
Punti chiave#
I modelli di visione artificiale come Ultralytics YOLO11 possono svolgere un ruolo fondamentale nella conservazione della fauna selvatica automatizzando il rilevamento e il monitoraggio degli animali. Con l'AI per la visione, possiamo elaborare grandi volumi di immagini e video provenienti da fonti diverse, rendendo possibile effettuare valutazioni accurate della fauna selvatica.
Ultralytics YOLO11, in particolare, è un'ottima scelta per il rilevamento degli oggetti in tempo reale, il che lo rende ideale per attività come la sorveglianza anti-bracconaggio, l'analisi comportamentale e il monitoraggio degli ecosistemi. Integrando modelli basati sull'AI negli interventi di conservazione, possiamo proteggere meglio le specie, migliorare il monitoraggio 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 visione artificiale. Scopri altre applicazioni relative all'AI nel settore sanitario e alla visione artificiale nel settore manifatturiero nelle nostre pagine dedicate alle soluzioni. Consulta le opzioni di licenza di Ultralytics per iniziare a usare l'AI per la visione.









