Facendo clic su "Accetta tutti i cookie", l'utente accetta la memorizzazione dei cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzarne l'utilizzo e contribuire alle nostre iniziative di marketing. Per saperne di più
Impostazioni dei cookie
Facendo clic su "Accetta tutti i cookie", l'utente accetta la memorizzazione dei cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzarne l'utilizzo e contribuire alle nostre iniziative di marketing. Per saperne di più
Imparate a eseguire le inferenze di YOLO11 all'interno di un'interfaccia Streamlit e a costruire 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.
Prendiamo ad esempio Ultralytics YOLO11. Si tratta di un modello che supporta diversi compiti ed è utile per una serie di applicazioni. Tuttavia, senza alcune conoscenze tecniche di front-end, la costruzione e l'implementazione di un'interfaccia user-friendly per un'interazione senza interruzioni può risultare un po' impegnativa per alcuni ingegneri dell'intelligenza artificiale.
Streamlit è un framework open-source che mira a semplificare questo processo. È uno strumento basato su 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 compie 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 Ultralytics con Streamlit, rendendo più veloce e accessibile l'implementazione dell'intelligenza artificiale in tempo reale.
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 l'intelligenza artificiale e i modelli 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 IA.
Figura 1. Caratteristiche principali di Streamlit. Immagine dell'autore.
Una delle sue caratteristiche principali è il rendering dinamico. Quando gli utenti apportano 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 la distribuzione di applicazioni di intelligenza artificiale, la condivisione di modelli con altri utenti e la fornitura di 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, analizziamo più da vicino cosa rende YOLO11 così affidabile.
Ultralytics YOLO11 è un modello progettato per attività di visione artificiale 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 sono necessarie 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, fra cui dispositivi edge, ambienti cloud e sistemi con GPU NVIDIA. Sia che venga implementato su un piccolo dispositivo embedded o su un server cloud su larga scala, YOLO11 si adatta senza problemi, rendendo l'IA di visione avanzata più accessibile che mai.
Vantaggi dell'utilizzo di Streamlit con Ultralytics YOLO11
Vi starete chiedendo: come faccio a sapere se Streamlit è l'opzione di distribuzione giusta per me? Se state cercando un modo semplice ed efficiente dal punto di vista del codice per eseguire YOLO11 senza occuparvi dello sviluppo front-end, Streamlit è una buona opzione, soprattutto per la prototipazione, i progetti proof-of-concept (PoC) o 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 alcuni altri vantaggi chiave:
Controlli AI personalizzabili: È possibile aggiungere all'interfaccia cursori, tendine e pulsanti, per consentire agli utenti di regolare con precisione le impostazioni di rilevamento e filtrare facilmente oggetti specifici.
Integrazione con altri strumenti di IA: 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 senza sforzo il rilevamento degli oggetti, i risultati della segmentazione o le informazioni sul tracciamento.
Facilità di 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
Dopo aver esplorato i vantaggi dell'uso di Streamlit con YOLO11, vediamo come eseguire attività di visione artificiale in tempo reale in un browser utilizzando Streamlit con YOLO11.
Installazione del pacchetto Ultralytics Python
Il primo passo consiste nell'installare il pacchetto Ultralytics Python. Questo può essere fatto usando il seguente comando:
Una volta installato, YOLO11 è pronto per l'uso senza alcuna configurazione complicata. Se si riscontrano problemi durante l'installazione dei pacchetti richiesti, è possibile consultare la nostra Guida ai problemi comuni per trovare suggerimenti e soluzioni.
Avvio dell'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 browser web predefinito:
Non è necessaria alcuna configurazione aggiuntiva. L'interfaccia dell'applicazione Streamlit comprende una sezione di upload per immagini e video, un menu a tendina per selezionare la variante del modello YOLO11 a cui si è interessati e i cursori per regolare la sicurezza del rilevamento. Tutto è organizzato in modo ordinato, consentendo agli utenti di eseguire inferenze senza sforzo e senza scrivere codice aggiuntivo.
Esecuzione di inferenze con YOLO11 sull'applicazione Streamlit
Ora che l'applicazione Streamlit è in esecuzione nel browser web, vediamo come utilizzarla per eseguire inferenze con YOLO11.
Ad esempio, supponiamo di voler analizzare un file video per il rilevamento di oggetti. Ecco i passaggi per caricare un file, selezionare un modello e visualizzare i risultati in tempo reale:
Caricare un file video: Selezionare "video" dal menu a tendina della configurazione utente, per indicare all'applicazione di elaborare un file preregistrato anziché il feed della webcam.
Scegliere un modello YOLO11: Selezionare "YOLO11l" dal menu a tendina del modello per il rilevamento degli oggetti utilizzando un modello YOLO11 di grandi dimensioni.
Avviare il processo di rilevamento: Fare clic su "Start" per consentire a YOLO11 di analizzare il video fotogramma per fotogramma e rilevare gli oggetti in tempo reale.
Visualizzare il video elaborato: Guardate come il video appare sullo schermo con aggiornamenti in tempo reale, visualizzando gli oggetti rilevati con i riquadri di delimitazione.
Interagire con i risultati in Streamlit: Utilizzate l'interfaccia per regolare le impostazioni o analizzare i rilevamenti, il tutto senza 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. Sebbene Streamlit semplifichi la distribuzione, è comunque necessario configurare i componenti necessari per garantire che YOLO11 funzioni senza problemi.
Esploriamo due esempi pratici di come Ultralytics YOLO11 possa 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 di approvvigionamento degli uffici 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 il feed di una telecamera dal vivo 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 impostare 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, il responsabile di un magazzino può monitorare l'accesso alle aree di stoccaggio ad alta sicurezza o un ufficio può monitorare i movimenti nelle aree riservate senza bisogno di una supervisione costante.
Questo può essere un progetto che apre gli occhi alle aziende che vogliono esplorare il monitoraggio della sicurezza guidato dall'intelligenza artificiale prima di impegnarsi in un sistema più ampio 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'uso di strumenti come Streamlit per distribuire modelli di computer vision aiuta a creare un'esperienza interattiva e di facile utilizzo. Tuttavia, dopo aver impostato 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 l'implementazione:
Monitoraggio regolare: Tracciare l'accuratezza del rilevamento, la velocità di inferenza e l'utilizzo delle risorse. Regolare i parametri del modello o aggiornare l'hardware se le prestazioni diminuiscono.
Gestione di più utenti e scalabilità: Con la crescita della domanda degli utenti, 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: L'aggiornamento del modello e delle 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 immediatamente il rilevamento degli oggetti in tempo reale.
L'interfaccia include anche una personalizzazione integrata che consente agli utenti di cambiare modello, regolare la precisione 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 YOLO11 e alla facilità di implementazione di Streamlit, le aziende e gli sviluppatori possono prototipare, testare e perfezionare rapidamente le applicazioni basate sull'intelligenza artificiale.