YOLO Vision 2026:
Vision AI

Containerizzazione tramite Docker per semplificare l'implementazione del modello

Scopri come l'uso di Docker per la containerizzazione rende l'implementazione di modelli di computer vision come Ultralytics YOLO11 più efficiente e semplice.

ABAbirami Vina5 min read
Utilizzo della containerizzazione Docker per implementare modelli YOLO11

Il processo di creazione di una soluzione di computer vision comporta più passaggi del semplice addestramento e test di un modello. Infatti, una delle parti più stimolanti della creazione di modelli all'avanguardia è vederli avere un impatto in ambienti del mondo reale. L'uso della Vision AI per risolvere problemi porta naturalmente a distribuire in produzione i modelli di computer vision che sviluppi.

Il deployment del modello comporta vari passaggi, tra cui l'ottimizzazione dei modelli per affidabilità, scalabilità e prestazioni in diverse condizioni. Un workflow di deployment ben strutturato colma il divario tra lo sviluppo del modello e il suo effettivo impatto positivo.

Spesso, quando distribuisci modelli di computer vision come Ultralytics YOLO11, ci sono molteplici tecniche e opzioni di distribuzione tra cui puoi scegliere, a seconda dell'applicazione specifica che stai creando. Ad esempio, tecniche come la containerizzazione possono semplificare il flusso di lavoro di distribuzione.

La containerizzazione aiuta a impacchettare un modello e le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità autonoma chiamata container. Uno dei modi più efficienti e popolari per farlo è con Docker, una piattaforma open-source che rende più facile costruire, spedire ed eseguire applicazioni containerizzate.

In questo articolo esploreremo come la containerizzazione e Docker ottimizzano la distribuzione dei modelli, garantendo scalabilità ed efficienza senza interruzioni nelle applicazioni di vision AI nel mondo reale.

Cos'è la distribuzione del modello?#

Il model deployment è 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. Un deployment di successo è una parte fondamentale per garantire che il modello funzioni in modo affidabile in condizioni pratiche.

Ad esempio, considera un modello di computer vision progettato per identificare le targhe per la riscossione automatica dei pedaggi. Sebbene possa raggiungere un'elevata precisione in un ambiente controllato con dataset ben etichettati, distribuirlo su telecamere stradali può introdurre problemi di latenza dovuti a fattori quali l'elaborazione di immagini ad alta risoluzione, ritardi di rete, limitazioni hardware e vincoli di inferenza in tempo reale.

Previsioni lente potrebbero portare a ritardi nell'elaborazione del pedaggio, congestione o persino mancate rilevazioni. Strategie di deployment del modello adeguate possono aiutare a ridurre la latenza, migliorare l'efficienza e supportare prestazioni affidabili in applicazioni reali.

Rilevamento delle targhe con Ultralytics YOLO11

Fig 1. Rilevamento delle targhe con Ultralytics YOLO11.

Inoltre, ci sono diverse considerazioni da tenere a mente quando si distribuiscono i modelli. Una è la scalabilità, dove i modelli hanno buone prestazioni durante l'addestramento ma potrebbero avere difficoltà a gestire dati su larga scala.

Un'altra riguarda le discrepanze ambientali, come le differenze hardware, quando un modello viene addestrato su GPU (Graphics Processing Units) ad alte prestazioni ma distribuito su dispositivi con potenza di elaborazione limitata. Queste incoerenze nel deployment possono portare a comportamenti imprevedibili del modello. Soluzioni avanzate come la containerizzazione possono essere utilizzate per affrontare queste sfide.

Containerizzazione#

La containerizzazione può essere paragonata al preparare il pranzo al sacco, che contiene tutto il necessario per un pasto, come cibo, posate e condimenti. Puoi mangiare ovunque senza preoccuparti di trovare una cucina o utensili specifici.

Analogamente, la containerizzazione impacchetta un modello con tutte le sue dipendenze, come librerie, framework e configurazioni, in un'unica unità chiamata container. Questi container assicurano che il modello funzioni in modo coerente fornendo le stesse dipendenze su qualsiasi sistema, indipendentemente dall'ambiente sottostante. A differenza delle macchine virtuali, che trasportano interi sistemi operativi, i container sono leggeri e portatili, rendendoli un'alternativa efficiente.

Panoramica della containerizzazione

Fig 2. Panoramica della containerizzazione.

Ecco alcuni dei principali vantaggi della containerizzazione:

  • Controllo versione: Con la containerizzazione, diverse versioni di un modello o di uno stack software possono coesistere, consentendo semplici rollback e 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.
  • Deployment rapido: Le immagini container pre-configurate consentono deployment rapidi e ripetibili, riducendo i tempi di configurazione e minimizzando gli errori di deployment.

Docker: semplificare la containerizzazione#

Sebbene la containerizzazione sia un ottimo modo per eseguire applicazioni in ambienti isolati, la sua configurazione può essere complicata. È 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. Nello specifico, Docker è noto per il suo forte ecosistema e la facilità d'uso. Rende più facile distribuire modelli AI semplificando il processo, lavorando senza problemi con le piattaforme cloud e consentendo ai modelli AI di funzionare in modo efficiente sui dispositivi edge per risultati più rapidi.

Molti settori lo utilizzano attivamente per distribuire e gestire in modo efficiente le applicazioni containerizzate. Il deployment del modello basato su Docker generalmente coinvolge tre componenti principali:

  • Dockerfile: Un file di configurazione basato su testo che funge da progetto per la creazione di un'immagine Docker. Contiene tutte le istruzioni necessarie, inclusa l'immagine 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 funzioni con la stessa configurazione su qualsiasi sistema.

  • Container Docker: Istanze in esecuzione di 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 perfezionato senza interferire con altre applicazioni o con il sistema host.

I componenti chiave di Docker

Fig 3. Comprensione dei componenti chiave di Docker.

Esplorazione di un'applicazione di computer vision utilizzando Docker#

Immagina che una città voglia implementare un sistema di monitoraggio del traffico che utilizzi la computer vision per rilevare e classificare i veicoli in tempo reale. Distribuire questo sistema in più posizioni, ciascuna con hardware e condizioni di rete differenti, può essere complesso. Problemi di compatibilità, conflitti di dipendenze e ambienti incoerenti possono portare a prestazioni inaffidabili.

Utilizzando Docker, gli sviluppatori possono racchiudere l'intero modello di computer vision, insieme alle sue dipendenze (come framework di IA come TensorFlow e script personalizzati), all'interno di un container. Ciò garantisce che il modello funzioni in modo coerente in diversi ambienti, dallo sviluppo locale ai server basati su cloud o persino ai dispositivi edge installati sulle telecamere del traffico.

Come funziona Docker

Fig 4. Come funziona Docker.

Ad esempio, distribuendo modelli di computer vision Dockerizzati in più intersezioni, la città può analizzare il flusso del traffico, rilevare violazioni e ottimizzare i semafori. Poiché Docker facilita un ambiente standardizzato in tutte le località, la manutenzione è più semplice, gli aggiornamenti sono senza interruzioni e le prestazioni rimangono costanti.

Distribuzione di Ultralytics YOLO11 tramite Docker#

Ultralytics YOLO11, grazie alla sua capacità di eseguire complesse attività di computer vision, può essere utilizzato in vari settori, come manifatturiero, sanitario, guida autonoma e agricoltura.

Ad esempio, Ultralytics YOLO11 può elaborare flussi video in applicazioni di fitness per tracciare esercizi come i flessioni 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 performance.

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

Fig 5. Monitoraggio di un allenamento con Ultralytics YOLO11.

Se vogliamo distribuire un tale modello in applicazioni del mondo reale, dobbiamo gestire le dipendenze, ottimizzare l'hardware e garantire prestazioni coerenti tra diversi ambienti. L'uso di Docker semplifica questo processo racchiudendo Ultralytics YOLO11 con tutte le librerie e configurazioni necessarie, rendendo il deployment più efficiente, scalabile e affidabile.

Ecco una rapida occhiata ai vantaggi di distribuire Ultralytics YOLO11 usando 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 contenitore senza influenzare il sistema host, garantendo una gestione del modello fluida ed efficiente.
  • Collaborazione semplificata: Sviluppatori e ricercatori possono condividere facilmente container Docker pre-configurati, assicurando che i team lavorino con lo stesso ambiente ed evitando problemi di compatibilità.
  • Efficienza delle risorse: A differenza delle macchine virtuali tradizionali, i container Docker condividono l'OS host, riducendo l'overhead e migliorando l'utilizzo delle risorse, il che è cruciale per le attività di inferenza in tempo reale.

Applicazioni di Ultralytics YOLO11 che possono essere distribuite tramite Docker#

Esaminiamo alcuni esempi di applicazioni di computer vision che possono essere create utilizzando Ultralytics YOLO11 e Docker.

Monitoraggio del traffico tramite Ultralytics YOLO11#

In precedenza, abbiamo discusso del monitoraggio del traffico tramite computer vision. È interessante notare che il supporto di Ultralytics YOLO11 per il tracciamento degli oggetti può aiutare a costruire un sistema di gestione del traffico completo. Come funziona?

Ultralytics YOLO11 può analizzare flussi video in diretta da telecamere stradali per rilevare e tracciare i veicoli in tempo reale. Identificando continuamente le posizioni dei veicoli, le velocità e i pattern di movimento, il sistema può monitorare i livelli di congestione, rilevare infrazioni stradali (come il passaggio con il rosso o le svolte illegali) e ottimizzare i semafori basandosi su dati in tempo reale.

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

Vehicle tracking and counting using Ultralytics YOLO11

Fig 6. Tracciamento e conteggio dei veicoli tramite YOLO11.

Fisioterapia avanzata con Ultralytics YOLO11#

Quando si parla di assistenza sanitaria, la fisioterapia è cruciale per la riabilitazione, e una postura e un movimento corretti sono vitali per una guarigione riuscita. Il feedback in tempo reale da un sistema di monitoraggio del paziente basato sulla visione può aiutare i terapisti a individuare problemi come angoli articolari errati o squilibri muscolari.

Ad esempio, se un paziente sta eseguendo un sollevamento delle spalle ma non sta sollevando il braccio all'altezza corretta o sta compensando con una postura impropria, il sistema può rilevare questi errori e fornire correzioni istantanee. Ciò consente ai terapisti di regolare i trattamenti in tempo reale.

Le capacità di stima della posa di Ultralytics YOLO11 possono essere utilizzate per rilevare punti chiave del corpo e analizzare i movimenti articolari. Può elaborare flussi video in diretta per fornire feedback istantaneo, aiutando i terapisti a correggere la postura, migliorare la precisione del movimento e prevenire infortuni. Questo rende più semplice creare piani di trattamento personalizzati basati sui progressi di ciascun paziente.

Monitoring physiotherapy with Ultralytics YOLO11 pose estimation

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ò garantire un funzionamento fluido in ambienti diversi, sia nelle cliniche che per il monitoraggio remoto dei pazienti. Docker semplifica il deployment, migliora la scalabilità e mantiene la coerenza del sistema, rendendo gli strumenti di fisioterapia basati sull'AI più affidabili e accessibili.

Punti chiave#

Distribuire un modello di computer vision è un passaggio critico per portarlo dallo sviluppo all'uso nel mondo reale. Un processo di deployment fluido assicura che il modello addestrato funzioni in modo affidabile nelle applicazioni pratiche. Strumenti come Docker e la containerizzazione hanno reso questo processo più semplice eliminando molte sfide tradizionali.

Con la loro natura leggera, portabile e scalabile, queste tecnologie stanno cambiando il modo in cui modelli come Ultralytics YOLO11 vengono creati e distribuiti. Utilizzando la containerizzazione, le aziende possono risparmiare tempo, ridurre i costi e migliorare l'efficienza garantendo al contempo che i modelli vengano eseguiti in modo coerente in diversi ambienti.

Unisciti alla nostra community e dai un'occhiata al nostro repository GitHub per saperne di più sull'IA. Leggi le varie applicazioni della computer vision in ambito sanitario e dell'IA nella produzione. Esplora le nostre opzioni di licenza YOLO per iniziare con la vision AI.

Explore solutions

Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo viaggio con il futuro del machine learning