YOLO Vision 2026:

Comprendere le fasi chiave di un progetto di computer vision#

Costruire un progetto di computer vision significa procedere attraverso una chiara sequenza di fasi: definire i tuoi obiettivi, raccogliere e annotare i dati, addestrare e valutare un modello, e distribuirlo e mantenerlo in produzione. Questa guida illustra ogni passaggio in ordine e spiega perché è importante, così potrai pianificare ed eseguire il tuo progetto in tutta sicurezza.

Computer vision è un sottoinsieme dell'artificial intelligence (AI) che aiuta i computer a vedere e comprendere il mondo come fanno gli esseri umani. Elabora e analizza immagini o video per estrarre informazioni, riconoscere pattern e prendere decisioni basate su tali dati.



Watch: How to Do Computer Vision Projects | A Step-by-Step Guide

Le tecniche di computer vision come l'object detection, l'image classification e l'instance segmentation possono essere applicate in vari settori, dall'autonomous driving al medical imaging per ottenere informazioni preziose.

Una panoramica di un progetto di computer vision#

Prima di discutere i dettagli di ogni fase coinvolta in un progetto di computer vision, diamo un'occhiata al processo generale. Se iniziassi un progetto di computer vision oggi, seguiresti questi passaggi:

Computer Vision Project Steps Overview

Ora che sappiamo cosa aspettarci, immergiamoci direttamente nelle fasi e facciamo avanzare il tuo progetto.

Fase 1: Definire gli obiettivi del tuo progetto#

Il primo passo in qualsiasi progetto di computer vision è definire chiaramente il problema che stai cercando di risolvere. Conoscere l'obiettivo finale ti aiuta a iniziare a costruire una soluzione. Questo è particolarmente vero quando si parla di computer vision, poiché l'obiettivo del tuo progetto influenzerà direttamente su quale task di computer vision devi concentrarti.

Ecco alcuni esempi di obiettivi di progetto e i task di computer vision che possono essere utilizzati per raggiungere questi obiettivi:

  • 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.

    • Task di computer vision: L'object detection è ideale per il monitoraggio del traffico perché localizza e identifica in modo efficiente più veicoli. È meno esigente dal punto di vista computazionale rispetto all'image segmentation, che fornisce dettagli non necessari per questo compito, 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.

    • Task di computer vision: L'image segmentation è adatta all'imaging medico perché fornisce confini accurati e dettagliati dei tumori, fondamentali per valutare dimensioni, forma e pianificazione del trattamento.
  • Obiettivo: Creare un sistema digitale che categorizzi vari documenti (es. fatture, ricevute, documenti legali) per migliorare l'efficienza organizzativa e il recupero dei documenti.

    • Computer Vision Task: L'image classification è ideale qui in quanto gestisce un documento alla volta, senza dover considerare la posizione del documento nell'immagine. Questo approccio semplifica e accelera il processo di smistamento.

Selezione del modello giusto e approccio all'addestramento#

Dopo aver compreso l'obiettivo del progetto e i task di computer vision idonei, una parte essenziale della definizione dell'obiettivo del progetto consiste nel selecting the right model e nell'approccio di addestramento.

A seconda dell'obiettivo, potresti scegliere di selezionare prima il modello o dopo aver visto quali dati sei in grado di raccogliere nella Fase 2. Ad esempio, supponiamo che il tuo progetto dipenda fortemente dalla disponibilità di tipi specifici di dati. In tal caso, potrebbe essere più pratico raccogliere e analizzare i dati prima di selezionare un modello. D'altra parte, se hai una chiara comprensione dei requisiti del modello, puoi scegliere il modello per primo e poi raccogliere dati che soddisfino tali specifiche.

La scelta tra l'addestramento da zero o l'uso del transfer learning influisce su come prepari i tuoi dati. L'addestramento da zero richiede un dataset diversificato per costruire la comprensione del modello da zero. Il transfer learning, d'altra parte, ti consente di utilizzare un modello pre-addestrato e di adattarlo con un dataset più piccolo e specifico. Inoltre, la scelta di un modello specifico da addestrare determinerà come dovrai preparare i tuoi dati, ad esempio ridimensionando le immagini o aggiungendo annotazioni, in base ai requisiti specifici del modello.

Training From Scratch Vs. Using Transfer Learning

Considera la distribuzione quando scegli un modello

Considera il deployment target di un modello per garantire compatibilità e prestazioni. Ad esempio, i modelli leggeri sono ideali per l'edge computing grazie alla loro efficienza su dispositivi con risorse limitate.

Per saperne di più, leggi la nostra guida su defining your project's goals and selecting the right model.

Prima di passare al lavoro pratico di un progetto di computer vision, è importante avere una chiara comprensione di questi dettagli. Verifica di aver considerato quanto segue prima di passare alla Fase 2:

  • Definisci chiaramente il problema che stai cercando di risolvere.
  • Determina l'obiettivo finale del tuo progetto.
  • Identifica il task di computer vision specifico necessario (es. object detection, image classification, image segmentation).
  • Decidi se addestrare un modello da zero o utilizzare il transfer learning.
  • Seleziona il modello appropriato per il tuo compito e per le tue esigenze di deployment.

Fase 2: Raccolta dati e annotazione dei dati#

La qualità dei tuoi modelli di computer vision dipende dalla qualità del tuo dataset. Puoi raccogliere immagini da internet, scattare le tue foto o utilizzare dataset preesistenti. 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, offrono built-in support for various datasets, semplificando l'avvio con dati di alta qualità. Queste librerie includono spesso utility per utilizzare dataset popolari senza problemi, il che può farti risparmiare molto tempo e sforzi nelle fasi iniziali del tuo progetto.

Tuttavia, se scegli di raccogliere immagini o scattare le tue foto, dovrai annotare i tuoi dati. Il Data annotation è il processo di etichettatura dei dati per trasmettere conoscenza al tuo modello. Il tipo di annotazione dei dati con cui lavorerai dipende dalla tua specifica tecnica di computer vision. Ecco alcuni esempi:

  • Image Classification: Etichetterai l'intera immagine come una singola classe.
  • Object Detection: Disegnerai bounding box attorno a ciascun oggetto nell'immagine ed etichetterai ogni box.
  • Image Segmentation: Etichetterai ogni pixel nell'immagine in base all'oggetto a cui appartiene, creando confini dettagliati degli oggetti.

Bounding box, polygon, and keypoint annotations

Il Data collection and annotation può richiedere molto tempo se fatto manualmente. Uno strumento di annotazione dedicato lo rende più veloce: Ultralytics Platform fornisce un annotation editor integrato con SAM-powered smart annotation per dati di detection, segmentation e OBB, salvando le etichette direttamente in formato YOLO.

Fase 3: Data augmentation e suddivisione del dataset#

Dopo aver raccolto e annotato i dati delle immagini, è importante suddividere il dataset in set di training, validation e test prima di eseguire la data augmentation. La suddivisione del dataset prima dell'augmentation è fondamentale per testare e validare il modello su dati originali e inalterati. Aiuta a valutare accuratamente quanto bene il modello si generalizza a dati nuovi e mai visti prima.

Ecco come suddividere i tuoi dati:

  • Training Set: È la parte più grande dei tuoi dati, tipicamente il 70-80% del totale, utilizzata per addestrare il tuo modello.
  • Validation Set: Di solito circa il 10-15% dei tuoi dati; questo set viene utilizzato per ottimizzare gli iperparametri e validare il modello durante il training, aiutando a prevenire l'overfitting.
  • Test Set: Il restante 10-15% dei tuoi dati viene messo da parte come test set. Viene utilizzato per valutare le prestazioni del modello su dati inediti dopo che l'addestramento è completo.

Dopo aver suddiviso i dati, puoi eseguire la data augmentation applicando trasformazioni come rotazione, ridimensionamento e ribaltamento (flipping) delle immagini per aumentare artificialmente la dimensione del tuo dataset. La data augmentation rende il tuo modello più robusto alle variazioni e ne migliora le prestazioni su immagini inedite.

Data augmentation examples

Librerie come OpenCV, Albumentations e TensorFlow offrono funzioni di augmentation flessibili che puoi utilizzare. Inoltre, alcune librerie, come Ultralytics, dispongono di built-in augmentation settings direttamente all'interno della funzione di training del modello, semplificando il processo.

Per comprendere meglio i tuoi dati, puoi utilizzare strumenti come Matplotlib o Seaborn per visualizzare le immagini e analizzarne la distribuzione e le caratteristiche. La visualizzazione dei dati aiuta a identificare pattern, anomalie e l'efficacia delle tue tecniche di augmentation. La scheda Charts della Ultralytics Platform può far emergere molti di questi approfondimenti senza scrivere codice, generando automaticamente la distribuzione degli split, 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 applicando l'augmentation ai tuoi dati in modo corretto (understanding, splitting, and augmenting your data), puoi sviluppare un modello ben addestrato, validato e testato che funzioni bene nelle applicazioni del mondo reale.

Fase 4: Addestramento del modello#

Una volta che il tuo dataset è pronto per l'addestramento, puoi concentrarti sull'impostazione dell'ambiente necessario, sulla gestione dei dataset e sull'addestramento del tuo modello.

Innanzitutto, dovrai assicurarti che il tuo ambiente sia configurato correttamente. Tipicamente, questo include quanto segue:

  • Installazione di librerie e framework essenziali come TensorFlow, PyTorch o Ultralytics.
  • Se stai utilizzando una GPU, l'installazione di librerie come CUDA e cuDNN aiuterà ad abilitare l'accelerazione GPU e ad accelerare il processo di addestramento.

Quindi, puoi caricare i tuoi dataset di training e validation nel tuo ambiente. Normalizza e preelabora i dati tramite ridimensionamento, conversione di formato o augmentation. Con il tuo modello selezionato, configura i layer e specifica gli iperparametri. Compila il modello impostando la loss function, l'ottimizzatore e le metriche di performance.

Librerie come Ultralytics semplificano il processo di training. Puoi start training inserendo i dati nel modello con un codice minimo. Queste librerie gestiscono automaticamente gli aggiornamenti dei pesi, la backpropagation e la validazione. Offrono inoltre strumenti per monitorare i progressi e regolare facilmente gli iperparametri. Dopo il training, salva il modello e i suoi pesi con pochi comandi.

È importante tenere presente che una corretta gestione del dataset è vitale per un training efficiente. Usa il controllo di versione per i dataset per tracciare le modifiche e garantire la riproducibilità. Strumenti come DVC (Data Version Control) possono aiutare a gestire dataset di grandi dimensioni.

Passaggio 5: Valutazione del modello e fine-tuning#

È importante valutare le performance del modello utilizzando varie metriche e perfezionarlo per migliorare l'accuracy. L'evaluating aiuta a identificare le aree in cui il modello eccelle e quelle in cui potrebbe necessitare di miglioramenti. Il fine-tuning garantisce che il modello sia ottimizzato per le migliori performance possibili.

  • Performance Metrics: Utilizza metriche come accuratezza, precision, recall e punteggio F1 per valutare le performance del modello. Queste metriche forniscono informazioni su quanto bene il tuo modello sta facendo previsioni.
  • Hyperparameter Tuning: Regola gli iperparametri per ottimizzare le performance del modello. Tecniche come la ricerca a griglia (grid search) o la ricerca casuale (random search) possono aiutare a trovare i migliori valori degli iperparametri.
  • Fine-Tuning: Apporta piccole modifiche all'architettura del modello o al processo di training per migliorare le performance. Ciò potrebbe comportare la regolazione dei learning rates, dei batch sizes o di altri parametri del modello.

Per una comprensione più approfondita della valutazione del modello e delle tecniche di fine-tuning, dai un'occhiata alla nostra model evaluation insights guide.

Fase 6: Test del modello#

Il test del modello conferma che il tuo modello funziona bene su dati completamente sconosciuti, verificandone la prontezza per la distribuzione. La differenza tra il test del modello e la valutazione del modello è che il test si concentra sulla verifica delle prestazioni del modello finale piuttosto che sul suo miglioramento iterativo.

È importante testare e risolvere a fondo eventuali problemi comuni che potrebbero sorgere. Testa il tuo modello su un test dataset separato che non è stato utilizzato durante l'addestramento o la validazione. 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 cross-validation e l'anomaly detection per identificare e risolvere questi problemi. Per strategie di test complete, fai riferimento alla nostra model testing guide.

Fase 7: Deployment del modello#

Una volta che il tuo modello è stato accuratamente testato, è il momento di effettuare il deploy. Il Model deployment consiste nel rendere il tuo modello disponibile per l'uso in un ambiente di produzione. Ecco i passaggi per effettuare il deploy di un modello di computer vision:

  • Configurazione dell'ambiente: Configura l'infrastruttura necessaria per l'opzione di deployment scelta, che sia basata su cloud (AWS, Google Cloud, Azure) o su edge (dispositivi locali, IoT).
  • Exporting the Model: Esporta il tuo modello nel formato appropriato (ad es., ONNX, TensorRT, CoreML per YOLO26) per garantire la compatibilità con la tua piattaforma di deployment.
  • Distribuzione del modello: Distribuisci il modello configurando API o endpoint e integrandolo con la tua applicazione.
  • Garantire la scalabilità: Implementa bilanciatori di carico, gruppi di auto-scaling e strumenti di monitoraggio per gestire le risorse e gestire l'aumento dei dati e delle richieste degli utenti.

Per una guida più dettagliata sulle strategie di deployment e sulle best practice, dai un'occhiata alla nostra model deployment practices guide. Ultralytics Platform fornisce anche deployment endpoints gestiti con auto-scaling in 42 regioni globali, gestendo automaticamente la configurazione dell'infrastruttura.

Fase 8: Monitoraggio, manutenzione e documentazione#

Una volta che il tuo modello è distribuito, è importante monitorarne continuamente le prestazioni, mantenerlo per gestire eventuali problemi e documentare l'intero processo per riferimenti futuri e miglioramenti.

Gli strumenti di monitoraggio possono aiutarti a tenere traccia dei KPI (Key Performance Indicators) e rilevare anomalie o cali di accuratezza. Monitorando il modello, puoi essere consapevole del model drift, in cui le prestazioni del modello diminuiscono nel tempo a causa di cambiamenti nei dati di input. Riadestra periodicamente il modello con dati aggiornati per mantenere accuratezza e pertinenza.

Model monitoring and maintenance lifecycle

Oltre al monitoraggio e alla manutenzione, anche la documentazione è fondamentale. Documenta accuratamente l'intero processo, inclusi l'architettura del modello, le procedure di training, gli iperparametri, i passaggi di preelaborazione dei dati e qualsiasi modifica apportata durante il deployment e la manutenzione. Una buona documentazione garantisce la riproducibilità e semplifica futuri aggiornamenti o la risoluzione dei problemi. Monitorando, mantenendo e documentando efficacemente il tuo modello (monitoring, maintaining, and documenting your model), puoi assicurarti che rimanga accurato, affidabile e facile da gestire per tutto il suo ciclo di vita.

Coinvolgimento della community#

Entrare in contatto con una community di appassionati di computer vision può aiutarti ad affrontare con sicurezza qualsiasi problema tu possa incontrare mentre lavori al tuo progetto di computer vision. Ecco alcuni modi per imparare, risolvere i problemi e fare networking in modo efficace.

Risorse della community#

  • GitHub Issues: Dai un'occhiata al YOLO26 GitHub repository e usa la scheda Issues per fare domande, segnalare bug e suggerire nuove funzionalità. La community attiva e i manutentori sono lì per aiutare con problemi specifici.
  • Ultralytics Discord Server: Unisciti al Ultralytics Discord server per interagire con altri utenti e sviluppatori, ottenere supporto e condividere approfondimenti.

Documentazione ufficiale#

  • Ultralytics YOLO26 Documentation: Esplora la official YOLO26 documentation per guide dettagliate con utili consigli su diversi task e progetti di computer vision.

L'utilizzo di queste risorse ti aiuterà a superare le sfide e a rimanere aggiornato sulle ultime tendenze e best practice nella community della 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 in produzione. Mettila in pratica training your first YOLO model, o approfondisci qualsiasi singola fase attraverso le guide collegate sopra. Per eseguire l'intera pipeline senza scrivere codice, esplora Ultralytics Platform.

FAQ#

Come scelgo il task di computer vision giusto per il mio progetto?#

La scelta del task di computer vision giusto dipende dall'obiettivo finale del tuo progetto. Ad esempio, se vuoi monitorare il traffico, l'object detection è adatta in quanto può localizzare e identificare più tipi di veicoli in tempo reale. Per il medical imaging, l'image segmentation è ideale per fornire confini dettagliati dei tumori, aiutando nella diagnosi e nella pianificazione del trattamento. Scopri di più su task specifici come object detection, instance segmentation, semantic segmentation e image classification.

Perché l'annotazione dei dati è cruciale nei progetti di computer vision?#

L'annotazione dei dati è vitale per insegnare al tuo modello a riconoscere i pattern. Il tipo di annotazione varia in base al task:

  • Image Classification: L'intera immagine viene etichettata come una singola classe.
  • Object Detection: Bounding box disegnati attorno agli oggetti.
  • Image Segmentation: Ogni pixel etichettato in base all'oggetto a cui appartiene.

L'annotation editor integrato in Ultralytics Platform può aiutarti in questo processo. Per maggiori dettagli, fai riferimento alla nostra data collection and annotation guide.

Quali passaggi dovrei seguire per aumentare e suddividere il mio dataset in modo efficace?#

Suddividere il tuo dataset prima dell'augmentation aiuta a validare le prestazioni del modello su dati originali e non alterati. Segui questi passaggi:

  • Training Set: 70-80% dei tuoi dati.
  • Validation Set: 10-15% per l'hyperparameter tuning.
  • Test Set: Il restante 10-15% per la valutazione finale.

Dopo la suddivisione, applica tecniche di data augmentation come rotazione, ridimensionamento e mirroring per aumentare la diversità del dataset. Librerie come Albumentations e OpenCV possono aiutare. Ultralytics offre anche built-in augmentation settings per comodità.

Come posso esportare il mio modello di computer vision addestrato per il deployment?#

Esporta il tuo modello addestrato con il metodo export, scegliendo un formato che corrisponda al tuo deployment target. Ultralytics supporta più formati, tra cui ONNX, TensorRT e CoreML. Per esportare il tuo modello YOLO26, segui questi passaggi:

  • Usa il metodo export con il parametro di formato desiderato.
  • Assicurati che il modello esportato soddisfi le specifiche del tuo ambiente di deployment (ad esempio, dispositivi edge, cloud).

Per maggiori informazioni, dai un'occhiata alla model export guide.

Quali sono le migliori pratiche per monitorare e mantenere un modello di computer vision distribuito?#

Il monitoraggio e la manutenzione continui sono essenziali per il successo a lungo termine di un modello. Implementa strumenti per il tracciamento dei Key Performance Indicators (KPI) e il rilevamento delle anomalie. Riaccadestra 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 la facilità di futuri aggiornamenti. Scopri di più nella nostra monitoring and maintenance guide.

Commenti