Comprendere i passaggi chiave di un progetto di computer vision#
Realizzare un progetto di computer vision significa seguire una sequenza chiara di fasi: definire gli obiettivi, raccogliere e annotare i dati, addestrare e valutare un modello, quindi distribuirlo e mantenerlo in produzione. Questa guida illustra ogni passaggio nell'ordine corretto e spiega perché è importante, così puoi pianificare e gestire il tuo progetto con sicurezza.
La computer vision è un sottocampo dell'intelligenza artificiale (AI) che aiuta i computer a vedere e comprendere il mondo come gli esseri umani. Elabora e analizza immagini o video per estrarre informazioni, riconoscere schemi e prendere decisioni sulla base di tali dati.
Le tecniche di computer vision come il rilevamento degli oggetti, la classificazione delle immagini e la segmentazione delle istanze possono essere applicate in diversi settori, dalla [guida autonoma](https://ultralytics-translation-3.invalid all'imaging medico, per ottenere informazioni preziose.
Panoramica di un progetto di computer vision#
Prima di esaminare i dettagli di ogni passaggio coinvolto in un progetto di computer vision, vediamo il processo nel suo complesso. Se iniziassi oggi un progetto di computer vision, seguiresti questi passaggi:
- La tua prima priorità è comprendere i requisiti del tuo progetto.
- Poi raccogli e annoti con precisione le immagini che aiuteranno ad addestrare il tuo modello.
- Successivamente, pulisci e aumenti i tuoi dati per prepararli all'addestramento del modello.
- Dopo l'addestramento, valuti e testi accuratamente il tuo modello per assicurarti che funzioni in modo coerente in condizioni diverse.
- Infine, distribuisci il tuo modello nel mondo reale e lo monitori e mantieni sulla base di nuove informazioni e feedback.
Ora che sappiamo cosa aspettarci, passiamo direttamente ai vari passaggi e facciamo avanzare il tuo progetto.
Passaggio 1: definizione degli obiettivi del progetto#
Il primo passaggio di qualsiasi progetto di computer vision consiste nel definire chiaramente il problema che stai cercando di risolvere. Conoscere l'obiettivo finale ti aiuta a iniziare a costruire una soluzione. Questo è particolarmente vero per la computer vision, perché l'obiettivo del tuo progetto influirà direttamente sull'attività di computer vision su cui dovrai concentrarti.
Ecco alcuni esempi di obiettivi di progetto e delle attività di computer vision che possono essere utilizzate per raggiungerli:
-
Obiettivo: sviluppare un sistema in grado di monitorare e gestire il flusso di diversi tipi di veicoli sulle autostrade, migliorando la gestione del traffico e la sicurezza.
- Attività di computer vision: il rilevamento degli oggetti è ideale per il monitoraggio del traffico perché individua e identifica in modo efficiente più veicoli. Richiede meno risorse computazionali rispetto alla segmentazione delle immagini, che fornirebbe dettagli non necessari per questa attività, garantendo un'analisi più rapida in tempo reale.
-
Obiettivo: sviluppare uno strumento che assista i radiologi fornendo contorni precisi, a livello di pixel, dei tumori nelle scansioni di imaging medico.
- Attività di computer vision: la segmentazione delle immagini è adatta all'imaging medico perché fornisce confini accurati e dettagliati dei tumori, fondamentali per valutarne dimensioni e forma e per pianificare il trattamento.
-
Obiettivo: creare un sistema digitale che categorizzi vari documenti (ad esempio, fatture, ricevute e documenti legali) per migliorare l'efficienza organizzativa e il recupero dei documenti.
- Attività di computer vision: la classificazione delle immagini è ideale in questo caso perché gestisce un documento alla volta, senza dover considerare la posizione del documento nell'immagine. Questo approccio semplifica e accelera il processo di ordinamento.
Selezione del modello e dell'approccio di addestramento corretti#
Dopo aver compreso l'obiettivo del progetto e le attività di computer vision appropriate, una parte essenziale della definizione dell'obiettivo consiste nel selezionare il modello e l'approccio di addestramento corretti.
A seconda dell'obiettivo, puoi scegliere il modello prima oppure dopo aver verificato quali dati riesci a raccogliere nel Passaggio 2. Ad esempio, supponiamo che il tuo progetto dipenda fortemente dalla disponibilità di specifici tipi di dati. In tal caso, potrebbe essere più pratico raccogliere e analizzare prima i dati, quindi selezionare un modello. D'altra parte, se hai una chiara comprensione dei requisiti del modello, puoi scegliere prima il modello e poi raccogliere dati conformi a tali specifiche.
La scelta tra l'addestramento da zero e l'utilizzo del transfer learning influisce sul modo in cui prepari i dati. L'addestramento da zero richiede un dataset diversificato per costruire la comprensione del modello dalle fondamenta. Il transfer learning, invece, ti consente di utilizzare un modello preaddestrato e adattarlo con un dataset più piccolo e specifico. Inoltre, la scelta di un modello specifico da addestrare determinerà come dovrai preparare i dati, ad esempio ridimensionando le immagini o aggiungendo annotazioni in base ai requisiti specifici del modello.
Considera il target di distribuzione del modello per garantirne compatibilità e prestazioni. Ad esempio, i modelli leggeri sono ideali per l'edge computing grazie alla loro efficienza sui dispositivi con risorse limitate.
Per saperne di più, consulta la nostra guida su come definire gli obiettivi del tuo progetto e selezionare il modello corretto.
Prima di passare alla parte pratica di un progetto di computer vision, è importante comprendere chiaramente questi dettagli. Prima di procedere al Passaggio 2, verifica di aver considerato quanto segue:
- Definisci chiaramente il problema che stai cercando di risolvere.
- Determina l'obiettivo finale del tuo progetto.
- Individua l'attività specifica di computer vision necessaria (ad esempio, rilevamento degli oggetti, classificazione delle immagini o segmentazione delle immagini).
- Decidi se addestrare un modello da zero o utilizzare il transfer learning.
- Seleziona il modello appropriato per la tua attività e per le tue esigenze di distribuzione.
Passaggio 2: raccolta e annotazione dei dati#
La qualità dei tuoi modelli di computer vision dipende dalla qualità del tuo dataset. Puoi raccogliere immagini da Internet, scattare foto personalmente oppure utilizzare dataset già esistenti. Ecco alcune ottime risorse per scaricare dataset di alta qualità: Google Dataset Search Engine, UC Irvine Machine Learning Repository e Kaggle Datasets.
Alcune librerie, come Ultralytics, forniscono supporto integrato per vari dataset, semplificando l'accesso a dati di alta qualità. Queste librerie spesso includono utilità per utilizzare senza difficoltà i dataset più diffusi, consentendoti di risparmiare molto tempo e lavoro nelle fasi iniziali del progetto.
Tuttavia, se scegli di raccogliere immagini o scattare foto personalmente, dovrai annotare i dati. L'annotazione dei dati è il processo di etichettatura dei dati per fornire conoscenze al tuo modello. Il tipo di annotazione con cui lavorerai dipende dalla specifica tecnica di computer vision. Ecco alcuni esempi:
- Classificazione delle immagini: etichetterai l'intera immagine come un'unica classe.
- Rilevamento degli oggetti: disegnerai riquadri di delimitazione attorno a ogni oggetto nell'immagine ed etichetterai ogni riquadro.
- Segmentazione delle immagini: etichetterai ogni pixel dell'immagine in base all'oggetto a cui appartiene, creando contorni dettagliati degli oggetti.
La raccolta e annotazione dei dati può richiedere molto tempo se svolta manualmente. Uno strumento di annotazione dedicato rende il processo più rapido: Ultralytics Platform offre un editor di annotazioni integrato con annotazione intelligente basata su SAM per dati di rilevamento, segmentazione e OBB, salvando direttamente le etichette nel formato YOLO.
Passaggio 3: aumento dei dati e suddivisione del dataset#
Dopo aver raccolto e annotato i dati delle immagini, è importante suddividere prima il dataset in set di addestramento, convalida e test, quindi eseguire l'aumento dei dati. Suddividere il dataset prima dell'aumento è fondamentale per testare e convalidare il modello su dati originali e non modificati. Questo aiuta a valutare con precisione la capacità del modello di generalizzare a dati nuovi e mai visti.
Ecco come suddividere i dati:
- Set di addestramento: è la parte più consistente dei dati, in genere il 70-80% del totale, utilizzata per addestrare il modello.
- Set di convalida: solitamente rappresenta circa il 10-15% dei dati; viene utilizzato per ottimizzare gli iperparametri e convalidare il modello durante l'addestramento, contribuendo a prevenire l'overfitting.
- Set di test: il restante 10-15% dei dati viene messo da parte come set di test. Viene utilizzato per valutare le prestazioni del modello su dati mai visti al termine dell'addestramento.
Dopo aver suddiviso i dati, puoi eseguire l'aumento dei dati applicando trasformazioni come rotazione, ridimensionamento e ribaltamento delle immagini per aumentare artificialmente le dimensioni del dataset. L'aumento dei dati rende il modello più robusto alle variazioni e ne migliora le prestazioni su immagini mai viste.
Librerie come OpenCV, Albumentations e TensorFlow offrono funzioni flessibili per l'aumento dei dati che puoi utilizzare. Inoltre, alcune librerie, come Ultralytics, dispongono di impostazioni integrate per l'aumento dei dati direttamente nella funzione di addestramento del modello, semplificando il processo.
Per comprendere meglio i dati, puoi utilizzare strumenti come Matplotlib o Seaborn per visualizzare le immagini e analizzarne distribuzione e caratteristiche. La visualizzazione dei dati aiuta a identificare schemi, anomalie e l'efficacia delle tecniche di aumento. La scheda Charts di Ultralytics Platform può mostrare molte di queste informazioni senza scrivere codice, generando automaticamente la distribuzione delle suddivisioni, il conteggio delle classi, gli istogrammi delle dimensioni delle immagini e le mappe di calore delle posizioni delle annotazioni per ogni dataset caricato.
Comprendendo, suddividendo e aumentando correttamente i tuoi dati, puoi sviluppare un modello ben addestrato, convalidato e testato, in grado di funzionare bene nelle applicazioni del mondo reale.
Passaggio 4: addestramento del modello#
Quando il dataset è pronto per l'addestramento, puoi concentrarti sulla configurazione dell'ambiente necessario, sulla gestione dei dataset e sull'addestramento del modello.
Per prima cosa, devi assicurarti che l'ambiente sia configurato correttamente. In genere, questo include quanto segue:
- Installare librerie e framework essenziali come TensorFlow, PyTorch o Ultralytics.
- Se utilizzi una GPU, installare librerie come CUDA e cuDNN aiuterà ad abilitare l'accelerazione GPU e ad accelerare il processo di addestramento.
Poi puoi caricare i dataset di addestramento e convalida nell'ambiente. Normalizza e preprocessa i dati ridimensionando le immagini, convertendo il formato o applicando l'aumento dei dati. Dopo aver selezionato il modello, configura i livelli e specifica gli iperparametri. Compila il modello impostando la funzione di perdita, l'ottimizzatore e le metriche delle prestazioni.
Librerie come Ultralytics semplificano il processo di addestramento. Puoi iniziare l'addestramento fornendo dati al modello con una quantità minima di codice. Queste librerie gestiscono automaticamente l'aggiornamento dei pesi, la retropropagazione e la convalida. Offrono inoltre strumenti per monitorare facilmente i progressi e modificare gli iperparametri. Dopo l'addestramento, puoi salvare il modello e i relativi pesi con pochi comandi.
È importante ricordare che una corretta gestione del dataset è fondamentale per un addestramento efficiente. Utilizza il controllo versione per i dataset, in modo da tenere traccia delle modifiche e garantire la riproducibilità. Strumenti come DVC (DVC) possono aiutarti a gestire dataset di grandi dimensioni.
Passaggio 5: valutazione e ottimizzazione del modello#
È importante valutare le prestazioni del modello utilizzando diverse metriche e perfezionarlo per migliorare l'accuratezza. La valutazione aiuta a individuare gli aspetti in cui il modello eccelle e quelli che potrebbero richiedere miglioramenti. L'ottimizzazione garantisce che il modello sia ottimizzato per ottenere le migliori prestazioni possibili.
- Metriche delle prestazioni: utilizza metriche come accuratezza, precisione, richiamo e punteggio F1 per valutare le prestazioni del modello. Queste metriche forniscono informazioni sulla qualità delle previsioni del modello.
- Ottimizzazione degli iperparametri: modifica gli iperparametri per ottimizzare le prestazioni del modello. Tecniche come la ricerca a griglia o la ricerca casuale possono aiutarti a trovare i valori migliori degli iperparametri.
- Ottimizzazione: apporta piccole modifiche all'architettura del modello o al processo di addestramento per migliorarne le prestazioni. Potrebbe essere necessario modificare i tassi di apprendimento, le dimensioni dei batch o altri parametri del modello.
Per comprendere più a fondo le tecniche di valutazione e ottimizzazione dei modelli, consulta la nostra guida agli approfondimenti sulla valutazione dei modelli.
Passaggio 6: test del modello#
Il test del modello conferma che il modello funziona bene su dati completamente nuovi, verificandone la preparazione per la distribuzione. La differenza tra il test e la valutazione del modello è che il test si concentra sulla verifica delle prestazioni del modello finale, anziché sul suo miglioramento iterativo.
È importante testare accuratamente il modello ed eseguire il debug degli eventuali problemi comuni. Testa il modello su un dataset di test separato, non utilizzato durante l'addestramento o la convalida. Questo dataset dovrebbe rappresentare scenari del mondo reale, per garantire che le prestazioni del modello siano coerenti e affidabili.
Inoltre, affronta problemi comuni come overfitting, underfitting e data leakage. Utilizza tecniche come la convalida incrociata e il rilevamento delle anomalie per identificare e risolvere questi problemi. Per strategie di test complete, consulta la nostra guida al test dei modelli.
Passaggio 7: distribuzione del modello#
Dopo aver testato accuratamente il modello, è il momento di distribuirlo. La distribuzione del modello consiste nel rendere il modello disponibile per l'uso in un ambiente di produzione. Ecco i passaggi per distribuire un modello di computer vision:
- Configurazione dell'ambiente: configura l'infrastruttura necessaria per l'opzione di distribuzione scelta, sia essa basata sul cloud (AWS, Google Cloud, Azure) o sull'edge (dispositivi locali, IoT).
- Esportazione del modello: esporta il modello nel formato appropriato (ad esempio, ONNX, TensorRT o CoreML per YOLO26) per garantirne la compatibilità con la piattaforma di distribuzione.
- Distribuzione del modello: distribuisci il modello configurando API o endpoint e integrandolo nella tua applicazione.
- Garanzia della scalabilità: implementa bilanciatori del carico, gruppi di auto-scaling e strumenti di monitoraggio per gestire le risorse e far fronte all'aumento dei dati e delle richieste degli utenti.
Per indicazioni più dettagliate sulle strategie di distribuzione e sulle best practice, consulta la nostra guida alle pratiche di distribuzione dei modelli. Ultralytics Platform offre inoltre endpoint di distribuzione gestiti con auto-scaling in 42 regioni globali, occupandosi automaticamente della configurazione dell'infrastruttura.
Passaggio 8: monitoraggio, manutenzione e documentazione#
Dopo aver distribuito il modello, è importante monitorarne continuamente le prestazioni, mantenerlo per gestire eventuali problemi e documentare l'intero processo per riferimenti e miglioramenti futuri.
Gli strumenti di monitoraggio possono aiutarti a seguire gli indicatori chiave di prestazione (KPI) e a rilevare anomalie o cali di accuratezza. Monitorando il modello, puoi accorgerti del model drift, ovvero del calo delle prestazioni nel tempo dovuto a cambiamenti nei dati di input. Riaddestra periodicamente il modello con dati aggiornati per mantenerne accuratezza e rilevanza.
Oltre al monitoraggio e alla manutenzione, anche la documentazione è fondamentale. Documenta accuratamente l'intero processo, inclusi l'architettura del modello, le procedure di addestramento, gli iperparametri, i passaggi di preprocessamento dei dati e tutte le modifiche apportate durante la distribuzione e la manutenzione. Una buona documentazione garantisce la riproducibilità e semplifica gli aggiornamenti futuri o la risoluzione dei problemi. Monitorando, mantenendo e documentando efficacemente il tuo modello, puoi assicurarti che rimanga accurato, affidabile e facile da gestire per tutto il suo ciclo di vita.
Partecipare alla community#
Entrare in contatto con una community di appassionati di computer vision può aiutarti ad affrontare con sicurezza qualsiasi problema durante il lavoro sul tuo progetto di computer vision. Ecco alcuni modi per imparare, risolvere problemi e creare relazioni in modo efficace.
Risorse della community#
- Problemi su GitHub: consulta il repository GitHub di YOLO26 e utilizza la scheda Issues per porre domande, segnalare bug e suggerire nuove funzionalità. La community attiva e i maintainer sono a disposizione per aiutarti con problemi specifici.
- Server Discord di Ultralytics: entra nel server Discord di Ultralytics per interagire con altri utenti e sviluppatori, ricevere supporto e condividere informazioni.
Documentazione ufficiale#
- Documentazione di Ultralytics YOLO26: consulta la documentazione ufficiale di YOLO26 per guide dettagliate con suggerimenti utili su diverse attività e progetti di computer vision.
L'utilizzo di queste risorse ti aiuterà a superare le difficoltà e a rimanere aggiornato sulle tendenze più recenti e sulle best practice della community di computer vision.
Passaggi successivi#
Ora hai una roadmap per ogni fase di un progetto di computer vision, dalla definizione degli obiettivi al monitoraggio di un modello distribuito. Mettila in pratica addestrando il tuo primo modello YOLO, oppure approfondisci una singola fase attraverso le guide collegate sopra. Per eseguire l'intera pipeline senza scrivere codice, esplora Ultralytics Platform.
FAQ#
La scelta dell'attività di computer vision corretta dipende dall'obiettivo finale del tuo progetto. Ad esempio, se vuoi monitorare il traffico, il rilevamento degli oggetti è adatto perché può individuare e identificare più tipi di veicoli in tempo reale. Per l'imaging medico, la segmentazione delle immagini è ideale per fornire contorni dettagliati dei tumori, facilitando la diagnosi e la pianificazione del trattamento. Scopri di più su attività specifiche come il rilevamento degli oggetti, la segmentazione delle istanze, la segmentazione semantica e la classificazione delle immagini.
L'annotazione dei dati è fondamentale per insegnare al modello a riconoscere gli schemi. Il tipo di annotazione varia a seconda dell'attività:
- Classificazione delle immagini: l'intera immagine viene etichettata come un'unica classe.
- Rilevamento degli oggetti: vengono disegnati riquadri di delimitazione attorno agli oggetti.
- Segmentazione delle immagini: ogni pixel viene etichettato in base all'oggetto a cui appartiene.
L'editor di annotazioni integrato in Ultralytics Platform può aiutarti in questo processo. Per maggiori dettagli, consulta la nostra guida alla raccolta e all'annotazione dei dati.
Suddividere il dataset prima dell'augmentation aiuta a validare le prestazioni del modello sui dati originali e non modificati. Segui questi passaggi:
- Set di addestramento: 70-80% dei tuoi dati.
- Set di validazione: 10-15% per il tuning degli iperparametri.
- Set di test: il restante 10-15% per la valutazione finale.
Dopo la suddivisione, applica tecniche di augmentation dei dati come rotazione, ridimensionamento e capovolgimento per aumentare la diversità del dataset. Librerie come Albumentations e OpenCV possono essere d'aiuto. Ultralytics offre anche impostazioni di augmentation integrate per maggiore praticità.
Esporta il tuo modello addestrato con il metodo
export, scegliendo un formato compatibile con la destinazione di distribuzione. Ultralytics supporta diversi formati, tra cui ONNX, TensorRT e CoreML. Per esportare il tuo modello YOLO26, segui questi passaggi:- Usa il metodo
exportcon il parametro del formato desiderato. - Assicurati che il modello esportato soddisfi le specifiche del tuo ambiente di distribuzione (ad esempio, dispositivi edge o cloud).
Per ulteriori informazioni, consulta la guida all'esportazione dei modelli.
- Usa il metodo
Il monitoraggio e la manutenzione continui sono essenziali per il successo a lungo termine di un modello. Implementa strumenti per monitorare gli indicatori chiave di prestazione (KPIs) e rilevare le anomalie. Riaddestra regolarmente il modello con dati aggiornati per contrastare il model drift. Documenta l'intero processo, inclusi l'architettura del modello, gli iperparametri e le modifiche, per garantire la riproducibilità e semplificare gli aggiornamenti futuri. Scopri di più nella nostra guida al monitoraggio e alla manutenzione.