Nel numero 289 della rivista Elettronica In viene presentato un progetto di visione artificiale basato su Raspberry Pi che consente di contare automaticamente le persone presenti in un’area ripresa da una telecamera. L’articolo mostra come utilizzare il modello YOLO11 per analizzare immagini o flussi video e generare un conteggio aggiornato in tempo reale, integrando il risultato con servizi cloud e piattaforme di visualizzazione dati.
Il sistema nasce dall’evoluzione delle tecnologie di computer vision open source, che negli ultimi anni hanno reso accessibili strumenti di analisi delle immagini molto potenti. In questo progetto YOLO11 viene utilizzato per identificare automaticamente le persone presenti nell’inquadratura e trasformare l’informazione visiva in un dato numerico utilizzabile da altre applicazioni.
Architettura del progetto
Il cuore del sistema è una Raspberry Pi 5, che esegue diversi programmi Python incaricati di elaborare il video e distribuire i dati. La comunicazione tra i vari moduli avviene tramite MQTT, un protocollo leggero molto diffuso nel mondo IoT.
Il flusso operativo è semplice ma efficace. Il primo programma analizza lo streaming video utilizzando YOLO11 e rileva la presenza delle persone all’interno dell’immagine. Il modello individua gli oggetti attraverso le bounding box e restituisce il numero di soggetti rilevati nel fotogramma. Il valore ottenuto viene quindi pubblicato su un topic MQTT, rendendolo immediatamente disponibile agli altri componenti del sistema.
L’utilizzo di MQTT permette di separare le varie funzioni del progetto, evitando un software monolitico e rendendo l’architettura più modulare. In questo modo ogni processo può svolgere un compito specifico, mantenendo il sistema semplice da sviluppare ed espandere.
Rilevamento delle persone con YOLO11
YOLO11 è un modello di visione artificiale in grado di riconoscere fino a 80 categorie di oggetti in immagini e video. Nel progetto viene utilizzato per individuare esclusivamente la classe “person”, cioè le persone presenti nella scena.
Durante l’elaborazione il modello analizza il fotogramma, genera le bounding box sugli oggetti riconosciuti e assegna a ciascun rilevamento un livello di confidenza. Il numero di bounding box associate alla classe persona corrisponde al conteggio delle persone presenti nell’inquadratura.
Nei test descritti nell’articolo il sistema è in grado di identificare correttamente diversi elementi della scena, come persone e oggetti presenti nell’ambiente, dimostrando l’efficacia del modello anche su piattaforme compatte. Il tempo di inferenza osservato è di circa 600 millisecondi per immagine, un valore che rende possibile l’utilizzo su Raspberry Pi senza acceleratori hardware dedicati.
Integrazione con servizi cloud
Una volta generato il conteggio, il dato viene utilizzato da altri programmi Python per creare servizi aggiuntivi. Un modulo aggiorna automaticamente la descrizione di un account WhatsApp Business utilizzando le API di Meta, in modo che il numero di persone presenti venga mostrato direttamente nel profilo.
Un secondo modulo invia invece il dato a InfluxDB Cloud, dove viene salvato come serie temporale. Questo database consente di archiviare e interrogare le misurazioni nel tempo, rendendo possibile l’analisi dei dati raccolti.
Visualizzazione con Grafana
Per visualizzare le informazioni in modo chiaro viene utilizzata una dashboard Grafana Cloud collegata al database InfluxDB. La dashboard mostra in tempo reale il numero di persone rilevate e può essere pubblicata tramite un link accessibile da qualsiasi browser.
Questo approccio consente di utilizzare il sistema anche su schermi informativi o totem pubblici, ad esempio per monitorare l’affluenza in negozi, sale d’attesa o spazi aperti al pubblico.
Il progetto dimostra quindi come strumenti di visione artificiale, protocolli IoT e servizi cloud possano essere integrati in una soluzione compatta basata su Raspberry Pi. L’architettura modulare e l’uso di software open source rendono il sistema facilmente estendibile verso applicazioni più complesse di analisi e monitoraggio.
