Controllare il cancello con l’AI: addestrare YOLOv11 per gli stati operativi

L’articolo, pubblicato sul numero 287 di Elettronica In, illustra un percorso pratico per addestrare da zero un modello di intelligenza artificiale capace di riconoscere lo stato di un cancello in tre condizioni: aperto, chiuso e in movimento. Dopo precedenti esperienze con MediaPipe, questa volta si adotta la famiglia YOLO per l’object detection, preferendola a EfficientDet-Lite2 e puntando su un training personalizzato focalizzato su un’unica scena ripresa da una telecamera di sorveglianza. L’approccio riduce la quantità di dati necessaria grazie all’inquadratura fissa e a condizioni ambientali ripetibili.

La pipeline proposta prevede: acquisizione immagini, etichettatura con Roboflow, installazione locale di YOLO come libreria Python, addestramento, verifica delle prestazioni, manipolazione dei risultati via Python e impiego finale su Raspberry Pi 5. Per la raccolta dei dati si utilizza lo stream RTSP della telecamera IP, salvando fotogrammi a intervalli regolari con uno script Python e selezionando almeno 30 immagini per ciascuno dei tre stati del cancello.

L’etichettatura è organizzata su Roboflow, creando un progetto di Object Detection e tre classi (“aperto”, “chiuso”, “in movimento”). Dopo il caricamento delle immagini e l’annotazione manuale con bounding box, il dataset viene suddiviso tra Train, Valid e Test e scaricato in formato Ultralytics YOLOv11 (ZIP), quindi posizionato nella cartella di lavoro come “dataset”.

La verifica del modello addestrato in modalità predict sullo stream RTSP conferma la corretta classificazione dei tre stati del cancello, ignorando altri oggetti non presenti nel dataset. Una volta validato, il modello è “manipolato” via Python: lo script pubblica su MQTT i cambi di stato, salva snapshot annotati e registra un log CSV con timestamp, stato, confidenza e nome file. Per test locali è indicato l’uso di un broker come Mosquitto.

Infine, il trasferimento su Raspberry Pi 5 riutilizza la stessa impostazione: ambiente virtuale Python, installazione di Ultralytics, copia del “best.pt” e comando di inferenza sullo stream RTSP. L’esempio dimostra un flusso completo, dalla raccolta dati alla messa in opera, per creare un sistema di monitoraggio del cancello basato su AI e object detection.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu