La containerizzazione con Docker per semplificare l’implementazione dei modelli
Scopri come l’uso di Docker per la containerizzazione rende più efficiente e semplice l’implementazione di modelli di computer vision come Ultralytics YOLO11.

Il processo di creazione di una soluzione di computer vision prevede più passaggi del semplice addestramento e test di un modello. Infatti, una delle parti più entusiasmanti della creazione di modelli all'avanguardia è osservarne l'impatto in ambienti reali. L'utilizzo della Vision AI per risolvere problemi porta naturalmente alla distribuzione in produzione dei modelli di computer vision che sviluppi.
La distribuzione dei modelli comprende diversi passaggi, tra cui l'ottimizzazione dei modelli per garantire affidabilità, scalabilità e prestazioni in condizioni diverse. Un workflow di distribuzione ben strutturato colma il divario tra lo sviluppo del modello e il suo impatto concreto e significativo.
Spesso, quando distribuisci modelli di computer vision come Ultralytics YOLO11, puoi scegliere tra diverse tecniche e opzioni di distribuzione, a seconda dell'applicazione specifica che stai sviluppando. Ad esempio, tecniche come la containerizzazione possono semplificare il workflow di distribuzione.
La containerizzazione consente di includere un modello e le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità autonoma chiamata container. Uno dei modi più efficienti e diffusi per farlo è usare Docker, una piattaforma open source che semplifica la creazione, la distribuzione e l'esecuzione di applicazioni containerizzate.
In questo articolo esploreremo come la containerizzazione e Docker semplificano la distribuzione dei modelli, garantendo scalabilità ed efficienza senza problemi nelle applicazioni di Vision AI del mondo reale.
Che cos'è la distribuzione dei modelli?#
La distribuzione dei modelli è la fase finale del ciclo di vita del machine learning, in cui il modello addestrato viene introdotto in un ambiente di produzione per effettuare previsioni nel mondo reale. Una distribuzione corretta è fondamentale affinché il modello funzioni in modo affidabile in condizioni pratiche.
Ad esempio, considera un modello di computer vision progettato per identificare le targhe ai fini della riscossione automatizzata dei pedaggi. Sebbene possa raggiungere un'elevata accuratezza in un ambiente controllato con dataset ben annotati, la sua distribuzione su telecamere stradali può introdurre problemi di latenza dovuti a fattori come l'elaborazione di immagini ad alta risoluzione, i ritardi di rete, le limitazioni hardware e i vincoli dell'inferenza in tempo reale.
Previsioni lente potrebbero causare ritardi nella riscossione dei pedaggi, congestione o persino mancate rilevazioni. Strategie adeguate di distribuzione dei modelli possono contribuire a ridurre la latenza, migliorare l'efficienza e garantire prestazioni affidabili nelle applicazioni del mondo reale.

Fig. 1 Rilevamento delle targhe con Ultralytics YOLO11.
Inoltre, quando distribuisci i modelli devi tenere presenti diverse considerazioni. Una riguarda la scalabilità: i modelli possono funzionare bene durante l'addestramento, ma avere difficoltà a gestire dati su larga scala.
Un'altra riguarda le differenze ambientali, come quelle hardware, che si verificano quando un modello viene addestrato su GPU ad alte prestazioni (GPU), ma distribuito su dispositivi con una potenza di elaborazione limitata. Queste incoerenze nella distribuzione possono causare comportamenti imprevisti del modello. Soluzioni avanzate come la containerizzazione possono aiutare ad affrontare queste sfide.
Containerizzazione#
La containerizzazione può essere paragonata al preparare il contenitore del pranzo, che contiene tutto ciò che ti 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 include un modello e tutte le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità chiamata container. Questi container assicurano 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 portabili, il che li rende un'alternativa efficiente.

Fig. 2 Panoramica della containerizzazione.
Ecco alcuni dei principali vantaggi della containerizzazione:
- Controllo delle versioni: con la containerizzazione, versioni diverse di un modello o di uno stack software possono coesistere, consentendo rollback e aggiornamenti semplici 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 rapide e ripetibili, riducendo i tempi di configurazione e al minimo gli errori di distribuzione.
Docker: semplificare la containerizzazione#
Sebbene la containerizzazione sia un ottimo modo per eseguire applicazioni in ambienti isolati, la sua configurazione può essere complessa. È qui che entra in gioco Docker. Docker è una piattaforma open source che semplifica la creazione, la distribuzione e la gestione di applicazioni containerizzate.
Fornisce 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 facilità d'uso. Semplifica la distribuzione dei modelli di AI, agevolando il processo, integrandosi senza problemi con le piattaforme cloud e consentendo ai modelli di AI di funzionare in modo efficiente sui dispositivi edge per ottenere risultati più rapidi.
Molti settori lo utilizzano attivamente per distribuire e gestire in modo efficiente applicazioni containerizzate. La distribuzione dei modelli basata su Docker comprende generalmente tre componenti principali:
-
Dockerfile: un file di configurazione basato su testo che funge da modello per la creazione di 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 l'esecuzione del modello, come codice, librerie, ambienti di runtime e dipendenze. Queste immagini assicurano 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. All'interno di questo ambiente, il modello può essere addestrato, testato e sottoposto a fine-tuning senza interferire con altre applicazioni o con il sistema host.

Fig. 3 Comprendere i componenti principali di Docker.
Esplorare un'applicazione di computer vision con Docker#
Supponiamo che una città voglia distribuire un sistema di monitoraggio del traffico usando la computer vision per rilevare e classificare i veicoli in tempo reale. Distribuire questo sistema in più luoghi, ciascuno con hardware e condizioni di rete diversi, può essere complesso. Problemi di compatibilità, conflitti tra dipendenze e ambienti incoerenti possono causare prestazioni inaffidabili.
Usando Docker, gli sviluppatori possono includere l'intero modello di computer vision, insieme alle sue dipendenze, come framework di AI quali TensorFlow e script personalizzati, in un container. Questo assicura che il modello venga eseguito in modo coerente in ambienti diversi, dallo sviluppo locale ai server basati sul cloud o persino ai dispositivi edge installati sulle telecamere del traffico.

Fig. 4 Come funziona Docker.
Ad esempio, distribuendo modelli di computer vision basati su Docker in più incroci, la città può analizzare il flusso del traffico, rilevare le infrazioni e ottimizzare i semafori. Poiché Docker facilita un ambiente standardizzato in tutti i luoghi, la manutenzione è più semplice, gli aggiornamenti avvengono senza problemi e le prestazioni rimangono coerenti.
Distribuire Ultralytics YOLO11 con Docker#
Ultralytics YOLO11, grazie alla capacità di eseguire attività complesse di computer vision, può essere utilizzato in diversi settori, tra cui produzione, sanità, guida autonoma e agricoltura.
Ad esempio, Ultralytics YOLO11 può elaborare flussi video in applicazioni di fitness per monitorare esercizi come i piegamenti sulle braccia 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.

Fig. 5 Monitoraggio di un allenamento con Ultralytics YOLO11.
Se vogliamo distribuire un modello di questo tipo in applicazioni del mondo reale, dobbiamo gestire le dipendenze, ottimizzare l'hardware e garantire prestazioni coerenti in ambienti diversi. Docker semplifica questo processo includendo Ultralytics YOLO11 con tutte le librerie e configurazioni necessarie, rendendo la distribuzione più efficiente, scalabile e affidabile.
Ecco una panoramica dei vantaggi della distribuzione di Ultralytics YOLO11 con Docker:
- Manutenzione semplificata: Docker semplifica il processo di aggiornamento e manutenzione di Ultralytics YOLO11 e delle sue dipendenze. Gli aggiornamenti possono essere applicati all'immagine del container senza influire sul sistema host, garantendo una gestione fluida ed efficiente del modello.
- Collaborazione semplificata: sviluppatori e ricercatori possono condividere facilmente container Docker preconfigurati, assicurando che i team lavorino nello stesso ambiente ed evitando problemi di compatibilità.
- Efficienza delle risorse: a differenza delle macchine virtuali tradizionali, i container Docker condividono il sistema operativo host, riducendo l'overhead e migliorando l'utilizzo delle risorse, aspetto fondamentale per le attività di inferenza in tempo reale.
Applicazioni di Ultralytics YOLO11 distribuibili con Docker#
Esaminiamo alcuni esempi di applicazioni di computer vision che possono essere create usando Ultralytics YOLO11 e Docker.
Monitoraggio del traffico con Ultralytics YOLO11#
In precedenza abbiamo parlato del monitoraggio del traffico con la computer vision. È interessante notare che il supporto di Ultralytics YOLO11 per il tracking degli oggetti può contribuire a creare un sistema completo di gestione del traffico. Come funziona?
Ultralytics YOLO11 può analizzare i flussi video in diretta provenienti dalle telecamere del traffico per rilevare e monitorare i veicoli in tempo reale. Identificando continuamente le posizioni, le velocità e i modelli di movimento dei veicoli, il sistema può monitorare i livelli di congestione, rilevare le infrazioni al codice della strada, come il passaggio con il semaforo rosso o le svolte illegali, e ottimizzare i semafori in base ai dati in tempo reale.
Inoltre, distribuire Ultralytics YOLO11 su dispositivi edge o piattaforme basate sul cloud con l'aiuto di Docker garantisce elaborazione efficiente e scalabilità, rendendolo uno strumento prezioso per la gestione del traffico nelle città intelligenti.

Fig. 6 Tracking e conteggio dei veicoli con YOLO11.
Fisioterapia avanzata con Ultralytics YOLO11#
Nel settore 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 errati o squilibri muscolari.
Ad esempio, se un paziente esegue un sollevamento laterale delle braccia, ma non solleva il braccio all'altezza corretta o compensa assumendo una postura scorretta, il sistema può rilevare questi errori e fornire correzioni immediate. Questo consente ai terapisti di modificare i trattamenti in tempo reale.
Le funzionalità di stima della posa di Ultralytics YOLO11 possono essere utilizzate per rilevare i punti chiave del corpo e analizzare i movimenti articolari. Il modello 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.

Fig. 7 Un esempio di monitoraggio della fisioterapia con Ultralytics YOLO11.
Per quanto riguarda la distribuzione di questo tipo di soluzione, l'utilizzo di Docker può garantirne il 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'AI più affidabili e accessibili.
Punti chiave#
La distribuzione di un modello di computer vision è un passaggio fondamentale per portarlo dallo sviluppo all'utilizzo nel mondo reale. Un processo di distribuzione fluido assicura 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 natura leggera, portabile e scalabile, queste tecnologie stanno cambiando il modo in cui vengono creati e distribuiti modelli come Ultralytics YOLO11. Usando 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 consulta il nostro repository GitHub per saperne di più sull'AI. Scopri le diverse applicazioni della computer vision nella sanità e dell'AI nella produzione. Esplora le nostre opzioni di licenza YOLO per iniziare a usare la Vision AI.









