Controllo verde
Link copiato negli appunti

Esegui un'applicazione AI interattiva con Streamlit e Ultralytics YOLO11

Impara come eseguire le inferenze di YOLO11 all'interno di un'interfaccia Streamlit e costruisci un'interfaccia interattiva di intelligenza artificiale per compiti di computer vision senza avere competenze di codifica.

I modelli di computer vision sono strumenti di intelligenza artificiale di grande impatto che consentono alle macchine di interpretare e analizzare i dati visivi, eseguendo compiti come il rilevamento di oggetti, la classificazione di immagini e la segmentazione di istanze con elevata precisione. Tuttavia, a volte richiedono competenze tecniche aggiuntive, come lo sviluppo web o di applicazioni mobili, per essere implementati e resi accessibili a un pubblico più ampio.

Prendi Ultralytics YOLO11ad esempio. Si tratta di un modello che supporta diversi compiti ed è utile per una serie di applicazioni. Tuttavia, senza alcune conoscenze tecniche di front-end, costruire e distribuire un'interfaccia user-friendly per un'interazione senza interruzioni può risultare un po' difficile per alcuni ingegneri dell'intelligenza artificiale.

Streamlit è un framework open-source che mira a semplificare questo processo. Si tratta di uno strumento Python per la creazione di applicazioni interattive senza un complesso sviluppo front-end. Abbinato a YOLO11, consente agli utenti di caricare immagini, elaborare video e visualizzare i risultati in tempo reale con il minimo sforzo.

Ultralytics fa un ulteriore passo avanti con la sua soluzione Live Inference, rendendo l'integrazione di Streamlit ancora più semplice. Con un solo comando, gli utenti possono lanciare un'applicazione Streamlit precostituita per YOLO11, eliminando la necessità di configurazioni e codifiche manuali. 

In questo articolo spiegheremo come configurare ed eseguire YOLO11 utilizzando la soluzione Live Inference di Ultralyticscon Streamlit, rendendo l'implementazione dell'intelligenza artificiale in tempo reale più veloce e accessibile.

Che cos'è Streamlit?

Streamlit è un framework Python che semplifica la creazione di applicazioni web interattive. Gli sviluppatori di intelligenza artificiale possono creare applicazioni basate sull'intelligenza artificiale senza dover affrontare le complessità dello sviluppo front-end. 

È stato progettato per lavorare senza problemi con i modelli di AI e di apprendimento automatico. Con poche righe di Python, gli sviluppatori possono creare un'interfaccia in cui gli utenti possono caricare immagini, elaborare video e interagire con i modelli di AI.

Figura 1. Caratteristiche principali di Streamlit. Immagine dell'autore.

Una delle sue caratteristiche principali è il rendering dinamico. Quando gli utenti apportano delle modifiche, l'applicazione si aggiorna automaticamente senza richiedere il ricaricamento manuale della pagina.

Inoltre, essendo leggero e facile da usare, Streamlit funziona in modo efficiente sia su macchine locali che su piattaforme cloud. Questo lo rende un'ottima scelta per distribuire applicazioni di intelligenza artificiale, condividere modelli con altri utenti e fornire un'esperienza utente intuitiva e interattiva.

Ultralytics YOLO11: un modello versatile di Vision AI

Prima di scoprire come eseguire inferenze live con Ultralytics YOLO11 in un'applicazione Streamlit, diamo un'occhiata più da vicino a ciò che rende YOLO11 così affidabile.

Ultralytics YOLO11 è un modello progettato per attività di computer vision in tempo reale come il rilevamento di oggetti, la segmentazione di istanze e la stima della posa. Offre prestazioni ad alta velocità con una precisione impressionante.

Figura 2. Un esempio di utilizzo di YOLO11 per il rilevamento degli oggetti.

Uno dei maggiori vantaggi di YOLO11è la sua facilità d'uso. Non c'è bisogno di configurazioni complesse; gli sviluppatori possono installare il pacchetto Ultralytics Python e iniziare a fare previsioni con poche righe di codice.

Il pacchetto Ultralytics Python offre una serie di funzioni che consentono agli utenti di perfezionare i modelli e regolare le impostazioni di rilevamento. Inoltre, aiuta a ottimizzare le prestazioni su diversi dispositivi per una distribuzione più fluida.

Oltre alla flessibilità, il pacchetto Ultralytics Python supporta integrazioni su più piattaforme, tra cui dispositivi edge, ambienti cloud e sistemiGPU NVIDIA . Che si tratti di un piccolo dispositivo embedded o di un server cloud su larga scala, YOLO11 si adatta senza problemi, rendendo l'intelligenza artificiale avanzata più accessibile che mai.

Vantaggi dell'utilizzo di Streamlit con Ultralytics YOLO11

Ti starai chiedendo: come faccio a sapere se Streamlit è l'opzione di distribuzione giusta per me? Se stai cercando un modo semplice ed efficiente dal punto di vista del codice per eseguire YOLO11 senza occuparti dello sviluppo front-end, Streamlit è una buona opzione, soprattutto per i progetti di prototipazione, proof-of-concept (PoC) o per le distribuzioni destinate a un numero ridotto di utenti.

Semplifica il processo di lavoro con YOLO11 eliminando inutili complessità e fornendo un'interfaccia intuitiva per l'interazione in tempo reale. Ecco altri vantaggi chiave:

  • Controlli AI personalizzabili: Puoi aggiungere cursori, tendine e pulsanti alla tua interfaccia, consentendo agli utenti di regolare con precisione le impostazioni di rilevamento e di filtrare facilmente oggetti specifici.
  • Integrazione con altri strumenti di AI: Streamlit supporta l'integrazione con NumPy, OpenCV, Matplotlib e altre librerie di apprendimento automatico, migliorando le capacità del flusso di lavoro AI.
  • Visualizzazione interattiva dei dati: Il supporto integrato per grafici e diagrammi consente agli utenti di visualizzare il rilevamento degli oggetti, i risultati della segmentazione o le informazioni sul tracciamento senza alcuno sforzo.
  • Favorevole alla collaborazione: le app Streamlit possono essere facilmente condivise con i membri del team, gli stakeholder o i clienti attraverso un semplice link, consentendo un feedback immediato e l'iterazione.

Guida passo-passo alla distribuzione di YOLO11 in un'applicazione web Streamlit

Ora che abbiamo esplorato i vantaggi dell'utilizzo di Streamlit con YOLO11, vediamo come eseguire attività di computer vision in tempo reale in un browser utilizzando Streamlit con YOLO11.

Installare il pacchetto Ultralytics Python

Il primo passo consiste nell'installare il pacchettoUltralytics Python . Questo può essere fatto utilizzando il seguente comando:

1# Install the ultralytics package from PyPI
2pip install ultralytics

Una volta installato, YOLO11 è pronto all'uso senza bisogno di complicate configurazioni. Se dovessi riscontrare dei problemi durante l'installazione dei pacchetti necessari, puoi consultare la nostra Guida ai problemi comuni per trovare suggerimenti e soluzioni.

Avviare l'applicazione Streamlit con YOLO11 

Normalmente, per eseguire YOLO11 è necessario sviluppare uno script Python utilizzando i componenti Streamlit. Tuttavia, Ultralytics offre un modo semplice per eseguire YOLO11 con Streamlit. 

L'esecuzione del seguente script Python avvierà immediatamente l'applicazione Streamlit nel tuo browser web predefinito:

1from ultralytics import solutions
2
3inf = solutions.Inference(
4    model="yolo11n.pt",  # you can use any model that Ultralytics support, i.e. YOLO11, or custom trained model
5)
6
7inf.inference()
8
9### Make sure to run the file using command `streamlit run <file-name.py>`

Non è necessaria alcuna configurazione aggiuntiva. L'interfaccia dell'applicazione Streamlit include una sezione di upload per immagini e video, un menu a tendina per selezionare la variante del modello YOLO11 che ti interessa e dei cursori per regolare la sicurezza del rilevamento. Tutto è organizzato in modo ordinato e gli utenti possono eseguire le inferenze senza sforzo e senza dover scrivere altro codice.

Esecuzione di inferenze con YOLO11 sull'applicazione Streamlit

Ora che l'applicazione Streamlit è in esecuzione nel tuo browser web, vediamo come utilizzarla per eseguire inferenze con YOLO11.

Ad esempio, supponiamo di voler analizzare un file video per rilevare un oggetto. 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 tendina della configurazione utente, per indicare all'applicazione di elaborare un file preregistrato invece di un feed della webcam.
  • Scegli un modello YOLO11 : Seleziona "YOLO11l" dal menu a tendina del modello per rilevare gli oggetti utilizzando un modello YOLO11 di grandi dimensioni.
  • Avvia il processo di rilevamento: Clicca su "Avvia" per consentire a YOLO11 di analizzare il video fotogramma per fotogramma e rilevare gli oggetti in tempo reale.
  • Visualizza il video elaborato: Guarda come il video appare sullo schermo con aggiornamenti in tempo reale, visualizzando gli oggetti rilevati con i riquadri di delimitazione.
  • Interagisci con i risultati in Streamlit: Utilizza l'interfaccia per regolare le impostazioni o analizzare i rilevamenti, il tutto senza bisogno di ulteriori impostazioni o codifiche.
Figura 3. L'interfaccia dell'applicazione Ultralytics YOLO Streamlit.

Casi d'uso con Streamlit e YOLO11

Abbiamo visto come Streamlit sia ideale per creare prototipi, strumenti di ricerca e applicazioni di piccole e medie dimensioni. Offre un modo semplice per distribuire modelli di intelligenza artificiale senza un complesso sviluppo front-end.

Tuttavia, l'esecuzione di YOLO11 con Streamlit non è sempre una soluzione pronta all'uso, a meno che non si utilizzi l'applicazione Ultralytics YOLO Streamlit che abbiamo configurato nei passaggi precedenti. Nella maggior parte dei casi, è necessario un certo lavoro di sviluppo per personalizzare l'applicazione in base alle esigenze specifiche. Anche se Streamlit semplifica la distribuzione, dovrai comunque configurare i componenti necessari per garantire che YOLO11 funzioni senza problemi.

Vediamo due esempi pratici di come Ultralytics YOLO11 può essere efficacemente impiegato con Streamlit in scenari reali.

Conteggio degli oggetti per il controllo dell'inventario con YOLO11

Tenere traccia dell'inventario nei negozi al dettaglio, nei magazzini o nelle aree dedicate alle forniture per ufficio può richiedere molto tempo ed essere soggetto a errori. Utilizzando YOLO11 con Streamlit, le aziende possono automatizzare il conteggio degli oggetti in modo rapido ed efficiente, rendendolo un'ottima opzione per un proof of concept (PoC) prima di impegnarsi in un'implementazione su larga scala.

Con questa configurazione, gli utenti possono caricare un'immagine o utilizzare una telecamera in diretta e YOLO11 può aiutare a rilevare e contare istantaneamente gli oggetti. Il conteggio in tempo reale può essere visualizzato nell'interfaccia Streamlit, offrendo un modo semplice per monitorare i livelli delle scorte senza alcuno sforzo manuale.

Ad esempio, il proprietario di un negozio può scansionare uno scaffale e vedere immediatamente quante bottiglie, scatole o prodotti confezionati sono presenti senza doverli contare manualmente. Sfruttando YOLO11 e Streamlit, le aziende possono ridurre il lavoro manuale, migliorare la precisione ed esplorare l'automazione con un investimento minimo.

Figura 4. Rilevamento di bottiglie in un frigorifero con YOLO11.

Aumentare la sicurezza con YOLO11 e Streamlit

Mantenere la sicurezza delle aree riservate in uffici, magazzini o luoghi di eventi può essere difficile, soprattutto con il monitoraggio manuale. Utilizzando YOLO11 con Streamlit, le aziende possono creare un semplice sistema di sicurezza alimentato dall'intelligenza artificiale per rilevare gli accessi non autorizzati in tempo reale.

Il feed di una telecamera può essere collegato all'interfaccia Streamlit, dove YOLO11 viene utilizzato per identificare e tracciare le persone che entrano nelle zone riservate. Se viene rilevata una persona non autorizzata, il sistema può attivare un allarme o registrare l'evento per la revisione.

Ad esempio, un responsabile di magazzino può monitorare l'accesso alle aree di stoccaggio ad alta sicurezza, oppure un ufficio può monitorare gli spostamenti nelle aree riservate senza bisogno di una supervisione costante.

Questo può essere un progetto che apre gli occhi alle aziende che desiderano esplorare il monitoraggio della sicurezza guidato da Vision AI prima di impegnarsi in un sistema più grande e completamente automatizzato. Integrando YOLO11 con Streamlit, le aziende possono migliorare la sicurezza, ridurre al minimo il monitoraggio manuale e rispondere in modo più efficace agli accessi non autorizzati.

Suggerimenti per il monitoraggio di un'app AI interattiva con Streamlit

L'utilizzo di strumenti come Streamlit per distribuire modelli di computer vision aiuta a creare un'esperienza interattiva e facile da usare. Tuttavia, dopo aver configurato l'interfaccia live, è 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 dell'accuratezza del rilevamento, della velocità di inferenza e dell'utilizzo delle risorse. Regola i parametri del modello o aggiorna l'hardware se le prestazioni diminuiscono.
  • Gestione di più utenti e scalabilità: Quando la domanda degli utenti cresce, l'ottimizzazione dell'infrastruttura è fondamentale per mantenere le prestazioni. Le piattaforme cloud e le soluzioni di distribuzione scalabili aiutano a garantire un funzionamento regolare.
  • Mantenere il modello aggiornato: Mantenere aggiornati il modello e le librerie migliora l'accuratezza, la sicurezza e l'accesso a nuove funzionalità.

Punti di forza

Ultralytics semplifica l'implementazione di YOLO11 con un'interfaccia Streamlit live pronta all'uso che si esegue con un solo comando, senza bisogno di codifica. In questo modo gli utenti possono iniziare a utilizzare il rilevamento degli oggetti in tempo reale all'istante.

L'interfaccia include anche una personalizzazione integrata che consente agli utenti di cambiare modello, regolare l'accuratezza del rilevamento e filtrare gli oggetti con facilità. Tutto è gestito da un'interfaccia semplice e intuitiva, che elimina la necessità di sviluppare manualmente l'interfaccia utente. Combinando

Grazie alle funzionalità di YOLO11e alla facilità di implementazione di Streamlit, le aziende e gli sviluppatori possono prototipare, testare e perfezionare rapidamente le applicazioni basate sull'intelligenza artificiale. 

Entra a far parte della nostra comunità ed esplora il nostro repository GitHub per avere maggiori informazioni sull'IA. Dai un'occhiata alle nostre pagine dedicate alle soluzioni per saperne di più su innovazioni come l'IA nel settore manifatturiero e la computer vision nel settore sanitario. Scopri le nostre opzioni di licenza e inizia oggi stesso!

Logo di FacebookLogo di TwitterLogo di LinkedInSimbolo di copia-link

Leggi tutto in questa categoria

Costruiamo insieme il futuro
di AI!

Inizia il tuo viaggio nel futuro dell'apprendimento automatico