Esegui un’app AI interattiva con Streamlit e Ultralytics YOLO11
Scopri come eseguire inferenze con Ultralytics YOLO11 in un'app web Streamlit usando un breve script e creare demo interattive di visione artificiale senza scrivere codice front-end.
Abirami Vina10 min di lettura
I modelli di visione artificiale sono potenti strumenti di IA che consentono alle macchine di interpretare e analizzare i dati visivi, eseguendo attività come il rilevamento degli oggetti, la classificazione delle immagini e la segmentazione delle istanze con grande precisione. Tuttavia, per implementarli e renderli accessibili a un pubblico più ampio, a volte possono richiedere competenze tecniche aggiuntive, ad esempio nello sviluppo web o nelle applicazioni mobili.
Prendi Ultralytics YOLO11, per esempio. È un modello che supporta diverse attività ed è utile in numerose applicazioni. Tuttavia, senza alcune competenze tecniche di frontend, creare e distribuire un'interfaccia intuitiva può risultare un po' complicato per alcuni ingegneri di IA.
Streamlit è un framework open source che mira a semplificare questo processo. È uno strumento basato su Python per creare applicazioni interattive senza uno sviluppo front-end complesso. Usato insieme a Ultralytics YOLO11, consente agli utenti di caricare immagini, elaborare video e visualizzare risultati in tempo reale con il minimo sforzo.
Ultralytics fa un passo avanti con la sua soluzione Live Inference, che semplifica ulteriormente l’integrazione con Streamlit. Con un solo comando, gli utenti possono avviare un’app Streamlit per YOLO11 già pronta, senza bisogno di configurazione e codifica manuali.
In questo articolo vedremo come configurare ed eseguire YOLO11 con la soluzione Live Inference di Ultralytics e Streamlit, rendendo la distribuzione dell’IA in tempo reale più rapida e accessibile.
Che cos’è Streamlit?#
Streamlit è un framework Python che semplifica la creazione di applicazioni web interattive. Gli sviluppatori di IA possono creare app basate sull’IA senza dover affrontare le complessità dello sviluppo front-end.
È progettato per funzionare bene con i modelli di IA e machine learning. Con poche righe di Python, gli sviluppatori possono creare un'interfaccia che consente agli utenti di caricare immagini, elaborare video e interagire con i modelli di IA.

Fig. 1. Funzionalità principali di Streamlit. Immagine dell’autore.
Una delle sue funzionalità principali è il rendering dinamico. Quando gli utenti apportano modifiche, l’app si aggiorna automaticamente senza richiedere il ricaricamento manuale della pagina.
Inoltre, essendo leggero e facile da usare, Streamlit funziona in modo efficiente sia sui computer locali sia sulle piattaforme cloud. Questo lo rende un’ottima scelta per distribuire applicazioni di IA, condividere modelli con altre persone e offrire un’esperienza utente intuitiva e interattiva.
Ultralytics YOLO11: un modello versatile di Vision AI#
Prima di approfondire come eseguire inferenze in tempo reale con Ultralytics YOLO11 in un’applicazione Streamlit, vediamo più da vicino cosa rende YOLO11 così affidabile.
Ultralytics YOLO11 è un modello progettato per attività di computer vision in tempo reale, come il rilevamento degli oggetti, la segmentazione di istanze e la stima della posa. Offre prestazioni elevate e alta precisione.

Fig. 2 Un esempio di utilizzo di YOLO11 per il rilevamento degli oggetti.
Uno dei principali vantaggi di YOLO11 è la sua facilità d'uso. Non servono configurazioni complesse: gli sviluppatori possono installare il pacchetto Python Ultralytics e iniziare a eseguire predizioni con poche righe di codice.
Il pacchetto Python Ultralytics offre diverse funzionalità che consentono agli utenti di ottimizzare i modelli e regolare le impostazioni di rilevamento. Aiuta anche a ottimizzare le prestazioni su diversi dispositivi per agevolare la distribuzione.
Oltre alla flessibilità, il pacchetto Python di Ultralytics supporta integrazioni su più piattaforme, inclusi dispositivi edge, ambienti cloud e sistemi dotati di GPU NVIDIA. Sia che venga distribuito su un piccolo dispositivo embedded sia su un server cloud su larga scala, YOLO11 si adatta all'hardware di destinazione, rendendo più accessibile l'IA avanzata per la visione.
Vantaggi dell’uso di Streamlit con Ultralytics YOLO11#
Ti starai chiedendo: come faccio a sapere se Streamlit è l’opzione di distribuzione giusta per me? Se cerchi un modo semplice ed efficiente dal punto di vista del codice per eseguire Ultralytics YOLO11 senza occuparti dello sviluppo front-end, Streamlit è una buona opzione, soprattutto per la prototipazione, i progetti di prova di fattibilità (PoC) o le distribuzioni destinate a un numero ridotto di utenti.
Semplifica il lavoro con Ultralytics YOLO11, eliminando complessità superflue e offrendo un’interfaccia intuitiva per l’interazione in tempo reale. Ecco altri vantaggi chiave:
- Controlli IA personalizzabili: puoi aggiungere cursori, menu a discesa e pulsanti all’interfaccia, consentendo agli utenti di ottimizzare facilmente le impostazioni di rilevamento e filtrare oggetti specifici.
- Integrazione con altri strumenti di IA: Streamlit supporta l’integrazione con NumPy, OpenCV, Matplotlib e altre librerie di machine learning, ampliando le capacità del flusso di lavoro di IA.
- Visualizzazione interattiva dei dati: Il supporto integrato per diagrammi e grafici consente agli utenti di visualizzare i risultati del rilevamento degli oggetti e della segmentazione o i dati ricavati dal tracciamento.
- Ideale per la collaborazione: le app Streamlit possono essere condivise facilmente con i membri del team, gli stakeholder o i clienti tramite un semplice link, permettendo di ricevere feedback e apportare modifiche immediatamente.
Guida passo passo alla distribuzione di Ultralytics YOLO11 in un’app web Streamlit#
Ora che abbiamo esplorato i vantaggi di usare Streamlit con Ultralytics YOLO11, vediamo come eseguire attività di visione artificiale in tempo reale nel browser usando Streamlit con YOLO11.
Installazione del pacchetto Python Ultralytics#
Il primo passaggio consiste nell’installare il pacchetto Python Ultralytics. Puoi farlo con il seguente comando:
pip install ultralyticsUna volta installato, YOLO11 è pronto all’uso senza configurazioni complicate. Se riscontri problemi durante l’installazione dei pacchetti richiesti, consulta la nostra Guida ai problemi comuni per suggerimenti e soluzioni.
Avvio dell’applicazione Streamlit con Ultralytics YOLO11#
Di norma, dovresti sviluppare uno script Python usando i componenti Streamlit per eseguire YOLO11. Ultralytics offre però un modo semplice per eseguire YOLO11 con Streamlit.
Eseguendo il seguente script Python con streamlit run path/to/file.py avvierai l'applicazione Streamlit nel browser web predefinito:
from ultralytics import solutions
inf = solutions.Inference(
model="yolo11n.pt", # puoi usare qualsiasi modello supportato da Ultralytics o un modello addestrato su misura
)
inf.inference()Non è necessaria alcuna configurazione aggiuntiva. L'interfaccia dell'applicazione Streamlit include una sezione per caricare immagini e video, un menu a discesa per selezionare la variante del modello Ultralytics YOLO11 che ti interessa e cursori per regolare la confidenza del rilevamento. Tutto è organizzato in modo chiaro, così gli utenti possono eseguire inferenze senza scrivere altro codice.
Esecuzione di inferenze con Ultralytics YOLO11 nell’applicazione Streamlit#
Ora che l’applicazione Streamlit è in esecuzione nel browser web, vediamo come usarla per eseguire inferenze con Ultralytics YOLO11.
Ad esempio, supponiamo di voler analizzare un file video per rilevare oggetti. Ecco i passaggi per caricare un file, selezionare un modello e visualizzare i risultati in tempo reale:
- Carica un file video: seleziona "video" dal menu a discesa di configurazione dell’utente; in questo modo indichi all’applicazione di elaborare un file preregistrato anziché il flusso della webcam.
- Scegli un modello YOLO11: seleziona "YOLO11l" dal menu a discesa dei modelli per rilevare oggetti con un modello YOLO11 di grandi dimensioni.
- Avvia il processo di rilevamento: fai clic su «Start» per consentire a Ultralytics YOLO11 di analizzare il video fotogramma per fotogramma e rilevare gli oggetti in tempo reale.
- Visualizza il video elaborato: guarda il video sullo schermo e gli aggiornamenti in tempo reale che mostrano gli oggetti rilevati con riquadri di delimitazione.
- Interagisci con i risultati in Streamlit: usa l’interfaccia per regolare le impostazioni o analizzare i rilevamenti, senza configurazioni o codice aggiuntivi.

Fig. 3. Interfaccia dell’applicazione Ultralytics YOLO Streamlit.
Casi d’uso di Streamlit e Ultralytics YOLO11#
Abbiamo visto che Streamlit è perfetto per creare prototipi, strumenti di ricerca e applicazioni di piccole e medie dimensioni. Offre un modo semplice per distribuire modelli di IA senza uno sviluppo front-end complesso.
Tuttavia, eseguire YOLO11 con Streamlit non è sempre una soluzione pronta all’uso, a meno che tu non utilizzi l’applicazione Ultralytics YOLO Streamlit configurata nei passaggi precedenti. Nella maggior parte dei casi, è necessario svolgere alcune attività di sviluppo per personalizzare l’applicazione in base a esigenze specifiche. Streamlit semplifica la distribuzione, ma dovrai comunque configurare i componenti necessari per assicurarti che YOLO11 funzioni senza problemi.
Vediamo due esempi pratici di come distribuire Ultralytics YOLO11 con Streamlit in modo efficace in scenari reali.
Conteggio degli oggetti per il controllo delle scorte con Ultralytics YOLO11#
Tenere traccia delle scorte nei negozi, nei magazzini o nelle aree di approvvigionamento degli uffici può richiedere molto tempo ed essere soggetto a errori. Usando Ultralytics YOLO11 con Streamlit, le aziende possono automatizzare il conteggio degli oggetti in modo rapido ed efficiente: un’ottima opzione per una prova di fattibilità (PoC) prima di impegnarsi in una distribuzione su larga scala.
Con questa configurazione, gli utenti possono caricare un’immagine o usare il flusso di una videocamera in diretta; Ultralytics YOLO11 può così rilevare e contare gli oggetti all’istante. Il conteggio in tempo reale può essere visualizzato nell’interfaccia Streamlit, offrendo un modo semplice per monitorare le scorte senza lavoro manuale.
Ad esempio, un negoziante può scansionare uno scaffale e vedere subito quante bottiglie, scatole o confezioni sono presenti, senza doverle contare manualmente. Sfruttando Ultralytics YOLO11 e Streamlit, le aziende possono ridurre il lavoro manuale, migliorare la precisione e sperimentare l’automazione con un investimento minimo.

Fig. 4. Rilevamento di bottiglie in un frigorifero con Ultralytics YOLO11.
Migliorare la sicurezza con Ultralytics YOLO11 e Streamlit#
Proteggere le aree riservate di uffici, magazzini o luoghi di eventi può essere difficile, soprattutto con il monitoraggio manuale. Usando Ultralytics YOLO11 con Streamlit, le aziende possono configurare un semplice sistema di sicurezza basato sull’IA per rilevare in tempo reale gli accessi non autorizzati.
È possibile collegare il flusso di una videocamera all’interfaccia Streamlit, dove Ultralytics YOLO11 viene usato per identificare e tracciare le persone che entrano nelle zone riservate. Se viene rilevata una persona non autorizzata, il sistema può attivare un avviso o registrare l’evento per una revisione.
Ad esempio, il responsabile di un magazzino può monitorare gli accessi alle aree di stoccaggio ad alta sicurezza, oppure un ufficio può tracciare gli spostamenti nelle zone riservate senza bisogno di una supervisione costante.
Può essere un progetto pilota utile per le aziende che vogliono esplorare il monitoraggio di sicurezza basato sulla Vision AI prima di impegnarsi in un sistema più ampio e completamente automatizzato. Integrando Ultralytics YOLO11 con Streamlit, le aziende possono migliorare la sicurezza, ridurre al minimo il monitoraggio manuale e intervenire con maggiore efficacia in caso di accesso non autorizzato.
Suggerimenti per monitorare un’app di IA interattiva con Streamlit#
Usare strumenti come Streamlit per distribuire modelli di visione artificiale aiuta a creare un’esperienza interattiva e intuitiva. Tuttavia, dopo aver configurato l’interfaccia in tempo reale, è importante assicurarsi che il sistema funzioni in modo efficiente e fornisca risultati accurati nel tempo.
Ecco alcuni fattori chiave da considerare dopo la distribuzione:
- Monitoraggio regolare: tieni traccia della precisione del rilevamento, della velocità di inferenza e dell’uso delle risorse. Se le prestazioni peggiorano, regola i parametri del modello o aggiorna l’hardware.
- Gestione di più utenti e scalabilità: con la crescita della domanda degli utenti, ottimizzare l’infrastruttura è fondamentale per mantenere le prestazioni. Le piattaforme cloud e le soluzioni di distribuzione scalabili aiutano a garantire un funzionamento regolare.
- Aggiornamento del modello: mantenere aggiornati il modello e le librerie migliora la precisione e la sicurezza, oltre a consentire di accedere a nuove funzionalità.
Punti chiave#
Ultralytics semplifica la distribuzione di YOLO11 con un’interfaccia Streamlit in tempo reale, pronta all’uso e avviabile con un solo comando, senza bisogno di scrivere codice. Così gli utenti possono iniziare subito a usare il rilevamento di oggetti in tempo reale.
L'interfaccia include anche opzioni di personalizzazione integrate, che consentono agli utenti di cambiare modello, regolare le soglie di confidenza e filtrare gli oggetti con facilità. Tutto è gestito da un'interfaccia semplice e intuitiva, senza bisogno di sviluppare manualmente l'interfaccia utente.
Combinando le capacità di Ultralytics YOLO11 con la facilità di distribuzione di Streamlit, aziende e sviluppatori possono creare rapidamente prototipi di applicazioni basate sull'IA, testarle e perfezionarle.
Entra a far parte della nostra community ed esplora il nostro repository GitHub per approfondire l'AI. Dai un'occhiata alle pagine delle nostre soluzioni per scoprire innovazioni come l'AI nella produzione e la visione artificiale in ambito sanitario. Scopri le nostre opzioni di licenza e inizia oggi stesso!
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










