Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
IA visiva

Semplificare la distribuzione dei modelli con la containerizzazione Docker

Scopri come la containerizzazione con Docker rende più efficiente e semplice distribuire modelli di visione artificiale come Ultralytics YOLO11.

Abirami VinaAbirami Vina10 min di lettura
Usare la containerizzazione Docker per distribuire i modelli YOLO11

Il processo di sviluppo di una soluzione di visione artificiale prevede più passaggi del semplice addestramento e test di un modello. In effetti, una delle parti più gratificanti dello sviluppo dei modelli è vederli avere un impatto negli ambienti reali. Usare la Vision AI per risolvere problemi porta naturalmente a distribuire in produzione i modelli di visione artificiale che sviluppi.

La distribuzione di un modello prevede diversi passaggi, tra cui l'ottimizzazione per garantire affidabilità, scalabilità e prestazioni in condizioni diverse. Un flusso di lavoro di distribuzione ben strutturato colma il divario tra lo sviluppo del modello e un impatto concreto e significativo.

Spesso, quando distribuisci modelli di visione artificiale come Ultralytics YOLO11, puoi scegliere tra diverse tecniche e opzioni di deployment, e la scelta giusta dipende dall'applicazione specifica che stai sviluppando. Per esempio, tecniche come la containerizzazione possono semplificare il flusso di lavoro di deployment.

La containerizzazione consente di impacchettare un modello e le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità autonoma chiamata container. Uno dei metodi più efficienti e diffusi per farlo è Docker, una piattaforma open source che semplifica la creazione, la distribuzione e l'esecuzione di applicazioni containerizzate.

In questo articolo vedremo come la containerizzazione e Docker semplificano il deployment dei modelli, migliorando la scalabilità e l'efficienza nelle applicazioni di Vision AI del mondo reale.

Che cos'è la distribuzione di un modello?#

La distribuzione di un modello è la fase finale del ciclo di vita del machine learning, in cui il modello addestrato viene introdotto in un ambiente di produzione per generare previsioni nel mondo reale. Una distribuzione efficace è fondamentale affinché il modello funzioni in modo affidabile in condizioni pratiche.

Ad esempio, considera un modello di visione artificiale progettato per identificare le targhe nei sistemi automatizzati di riscossione dei pedaggi. Anche se può raggiungere un'elevata accuratezza in un ambiente controllato con dataset ben etichettati, la distribuzione su telecamere stradali può causare problemi di latenza dovuti a fattori come l'elaborazione di immagini ad alta risoluzione, i ritardi di rete, i limiti hardware e i vincoli dell'inferenza in tempo reale.

Previsioni lente possono causare ritardi nella riscossione dei pedaggi, congestione o persino mancate rilevazioni. Strategie di distribuzione adeguate possono ridurre la latenza, migliorare l'efficienza e garantire prestazioni affidabili nelle applicazioni del mondo reale.

Rilevamento delle targhe con Ultralytics YOLO11

Fig. 1. Rilevamento delle targhe con Ultralytics YOLO11.

Inoltre, quando distribuisci i modelli, devi tenere conto di diversi aspetti. Uno di questi è la scalabilità: i modelli possono funzionare bene durante l'addestramento, ma avere difficoltà a gestire grandi volumi di dati.

Un altro problema riguarda le discrepanze ambientali, come le differenze hardware, che si verificano quando un modello viene addestrato su GPU ad alte prestazioni (unità di elaborazione grafica) e poi distribuito su dispositivi con potenza di elaborazione limitata. Queste incongruenze nel deployment possono causare comportamenti imprevisti del modello. Per affrontare queste sfide si possono usare soluzioni avanzate come la containerizzazione.

Containerizzazione#

La containerizzazione è paragonabile a preparare una schiscetta, che contiene tutto ciò che serve per un pasto, come cibo, posate e condimenti. Puoi mangiare ovunque senza preoccuparti di trovare una cucina o utensili specifici.

Allo stesso modo, la containerizzazione impacchetta un modello con tutte le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità chiamata container. I container garantiscono che il modello venga eseguito in modo coerente, fornendo le stesse dipendenze su qualsiasi sistema, indipendentemente dall'ambiente sottostante. A differenza delle macchine virtuali, che includono interi sistemi operativi, i container sono leggeri e portatili, il che li rende un'alternativa efficiente.

Diagramma di tre container applicativi che condividono il kernel del sistema operativo host e funzionano tutti sullo stesso hardware

Fig. 2. Panoramica della containerizzazione.

Ecco alcuni dei principali vantaggi della containerizzazione:

  • Controllo delle versioni: con la containerizzazione, diverse versioni di un modello o di uno stack software possono coesistere, consentendo di ripristinare facilmente versioni precedenti e applicare aggiornamenti senza interrompere i sistemi di produzione.
  • Sicurezza: i container isolano le applicazioni dal sistema sottostante, riducendo il rischio di conflitti, vulnerabilità e accessi non autorizzati.
  • Distribuzione rapida: le immagini dei container preconfigurate consentono distribuzioni veloci e ripetibili, riducendo i tempi di configurazione e minimizzando gli errori di distribuzione.

Docker: semplificare la containerizzazione#

La containerizzazione è un ottimo modo per eseguire applicazioni in ambienti isolati, ma configurarla può essere complicato. È qui che entra in gioco Docker. Docker è una piattaforma open source che semplifica la creazione, la distribuzione e la gestione di applicazioni containerizzate.

Offre un ambiente coerente e isolato, insieme agli strumenti e ai framework necessari per testare il modello. In particolare, Docker è noto per il suo solido ecosistema e la sua facilità d'uso. Semplifica la distribuzione dei modelli di IA, agevolando il processo, integrandosi senza problemi con le piattaforme cloud e consentendo ai modelli di IA di funzionare in modo efficiente sui dispositivi edge per ottenere risultati più rapidi.

Molti settori lo usano attivamente per distribuire e gestire in modo efficiente le applicazioni containerizzate. La distribuzione dei modelli basata su Docker prevede generalmente tre componenti principali:

  • Dockerfile: un file di configurazione testuale che funge da modello per creare un'immagine Docker. Contiene tutte le istruzioni necessarie, tra cui l'immagine di base, le dipendenze richieste, le impostazioni dell'ambiente e i comandi per eseguire il modello.
  • Immagini Docker: file di pacchetto preconfigurati che includono tutto il necessario per eseguire il modello, ad esempio codice, librerie, ambienti di runtime e dipendenze. Queste immagini garantiscono che il modello venga eseguito con la stessa configurazione su qualsiasi sistema.
  • Container Docker: istanze in esecuzione delle immagini Docker che forniscono un ambiente isolato e sicuro per l'esecuzione del modello. In questo ambiente, il modello può essere addestrato, testato e ottimizzato senza interferire con altre applicazioni o con il sistema host.

Componenti principali di Docker

Fig. 3. Panoramica dei componenti principali di Docker.

Un'applicazione di visione artificiale con Docker#

Immagina che una città voglia distribuire un sistema di monitoraggio del traffico basato sulla visione artificiale per rilevare e classificare i veicoli in tempo reale. Distribuire questo sistema in più luoghi, ciascuno con hardware e condizioni di rete diverse, può essere difficile. Problemi di compatibilità, conflitti tra dipendenze e ambienti incoerenti possono compromettere l'affidabilità delle prestazioni.

Con Docker, gli sviluppatori possono impacchettare l'intero modello di visione artificiale e le sue dipendenze, come gli framework di IA quali TensorFlow e gli script personalizzati, in un container. In questo modo, il modello viene eseguito in modo coerente in ambienti diversi, dallo sviluppo locale ai server cloud e persino ai dispositivi edge installati sulle telecamere del traffico.

Diagramma di sei app containerizzate in esecuzione su Docker, sovrapposte al sistema operativo host e all'infrastruttura

Fig. 4. Come funziona Docker.

Per esempio, distribuendo modelli di visione artificiale containerizzati con Docker in più incroci, la città può analizzare il flusso del traffico, rilevare le violazioni e ottimizzare i semafori. Poiché Docker offre un ambiente standardizzato in tutte le sedi, la manutenzione è più semplice, gli aggiornamenti sono più facili e le prestazioni rimangono uniformi.

Distribuire Ultralytics YOLO11 con Docker#

Ultralytics YOLO11, grazie alla capacità di eseguire attività complesse di visione artificiale, può essere utilizzato in vari settori, come la produzione, la sanità, la guida autonoma e l'agricoltura.

Per esempio, Ultralytics YOLO11 può elaborare flussi video nelle applicazioni per il fitness e monitorare gli esercizi, come i piegamenti, usando la stima della posa. Rilevando i movimenti del corpo e contando le ripetizioni in tempo reale, aiuta a migliorare il monitoraggio degli allenamenti e l'analisi delle prestazioni.

Monitoraggio di un allenamento con la stima della posa di Ultralytics YOLO11

Fig. 5. Monitoraggio di un allenamento con Ultralytics YOLO11.

Per distribuire un modello simile in applicazioni del mondo reale, è necessario gestire le dipendenze, ottimizzare l'hardware e garantire prestazioni coerenti in ambienti diversi. Docker semplifica il processo impacchettando Ultralytics YOLO11 con tutte le librerie e le configurazioni necessarie, rendendo la distribuzione più efficiente, scalabile e affidabile.

Ecco una rapida panoramica dei vantaggi della distribuzione di Ultralytics YOLO11 con Docker:

  • Manutenzione semplificata: Docker semplifica l'aggiornamento e la manutenzione di Ultralytics YOLO11 e delle relative dipendenze. Puoi applicare gli aggiornamenti all'immagine del container senza influire sul sistema host, garantendo una gestione del modello fluida ed efficiente.
  • Collaborazione semplificata: sviluppatori e ricercatori possono condividere facilmente container Docker preconfigurati, così che i team lavorino nello stesso ambiente evitando problemi di compatibilità.
  • Efficienza nell'uso delle risorse: a differenza delle macchine virtuali tradizionali, i container Docker condividono il sistema operativo host, riducendo il sovraccarico e migliorando l'utilizzo delle risorse, un aspetto fondamentale per le attività di inferenza in tempo reale.

Applicazioni di Ultralytics YOLO11 distribuibili con Docker#

Vediamo alcuni esempi di applicazioni di visione artificiale che puoi realizzare con Ultralytics YOLO11 e Docker.

Monitoraggio del traffico con Ultralytics YOLO11#

In precedenza abbiamo parlato del monitoraggio del traffico con la visione artificiale. È interessante notare che il supporto di Ultralytics YOLO11 per il tracciamento degli oggetti può aiutare a realizzare un sistema completo di gestione del traffico. Come funziona?

Ultralytics YOLO11 può analizzare i flussi video in diretta delle telecamere del traffico per rilevare e tracciare i veicoli in tempo reale. Identificando costantemente la posizione, la velocità e gli schemi di movimento dei veicoli, il sistema può monitorare i livelli di congestione, rilevare le infrazioni (come il passaggio con il semaforo rosso o le svolte vietate) e ottimizzare i semafori sulla base dei dati in tempo reale.

Inoltre, distribuire Ultralytics YOLO11 su dispositivi edge o piattaforme cloud con Docker garantisce elaborazione efficiente e scalabilità, rendendolo uno strumento prezioso per la gestione del traffico nelle smart city.

Tracciamento e conteggio dei veicoli con Ultralytics YOLO11

Fig. 6. Tracciamento e conteggio dei veicoli con YOLO11.

Fisioterapia avanzata con Ultralytics YOLO11#

In ambito sanitario, la fisioterapia è fondamentale per la riabilitazione e una postura e movimenti corretti sono essenziali per una buona ripresa. Il feedback in tempo reale di un sistema di monitoraggio dei pazienti basato sulla visione può aiutare i terapisti a individuare problemi come angoli articolari scorretti o squilibri muscolari.

Ad esempio, se un paziente esegue un sollevamento della spalla ma non alza il braccio all'altezza corretta o compensa con una postura scorretta, il sistema può rilevare questi errori e fornire correzioni immediate. In questo modo, i terapisti possono modificare i trattamenti in tempo reale.

Le capacità di stima della posa di Ultralytics YOLO11 possono essere utilizzate per rilevare i punti chiave del corpo e analizzare i movimenti articolari. Può elaborare flussi video in diretta per fornire feedback immediato, aiutando i terapisti a correggere la postura, migliorare la precisione dei movimenti e prevenire gli infortuni. Questo facilita la creazione di piani di trattamento personalizzati in base ai progressi di ogni paziente.

Monitoraggio della fisioterapia con la stima della posa di Ultralytics YOLO11

Fig. 7. Esempio di monitoraggio della fisioterapia con Ultralytics YOLO11.

Per distribuire questo tipo di soluzione, Docker può garantire un funzionamento fluido in ambienti diversi, sia nelle cliniche sia per il monitoraggio remoto dei pazienti. Docker semplifica la distribuzione, migliora la scalabilità e mantiene la coerenza del sistema, rendendo gli strumenti di fisioterapia basati sull'IA più affidabili e accessibili.

Punti chiave#

La distribuzione di un modello di visione artificiale è un passaggio fondamentale per portarlo dallo sviluppo all'uso nel mondo reale. Un processo di distribuzione fluido garantisce che il modello addestrato funzioni in modo affidabile nelle applicazioni pratiche. Strumenti come Docker e la containerizzazione hanno semplificato questo processo, eliminando molte delle difficoltà tradizionali.

Grazie alla loro leggerezza, portabilità e scalabilità, queste tecnologie stanno cambiando il modo in cui modelli come Ultralytics YOLO11 vengono sviluppati e distribuiti. Con la containerizzazione, le aziende possono risparmiare tempo, ridurre i costi e migliorare l'efficienza, garantendo al contempo che i modelli funzionino in modo coerente in ambienti diversi.

Unisciti alla nostra community e dai un'occhiata al nostro repository GitHub per saperne di più sull'IA. Leggi le diverse applicazioni della visione artificiale in ambito sanitario e dell'IA nella produzione. Esplora le nostre opzioni di licenza YOLO per iniziare a usare l'IA visiva.

Scritto da

Abirami Vina
Abirami Vina

Creatore di contenuti · Ultralytics

Dopo aver iniziato la sua carriera come ingegnera di visione artificiale, Abirami Vina ha costruito solide basi nell'IA visiva e nel machine learning. È creatrice di contenuti per Ultralytics e fondatrice e autrice principale di Scribe of AI, dove realizza contenuti tecnici di alta qualità per aziende specializzate in IA. Spinta dalla passione di rendere l'IA comprensibile e coinvolgente, con il suo lavoro colma il divario tra tecnologie all'avanguardia e impatto concreto.

Commenti

Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning