Visione artificiale embedded

Benvenuti a un altro appuntamento con la rubrica Firmware Reload. Una novità per i sistemi di visione embedded: finalmente è possibile sviluppare applicazioni real-time di visione artificiale senza rinunciare a prestazioni elevate, ed a costi decisamente contenuti.

Il nuovo processore ADSP-BF609 di Analog Devices è un ottimo trampolino di lancio; in questo articolo si introduce la scheda FinBoard che integra il BlackFin BF609 e permette un rapido avvicinamento ai sistemi di visione embedded.

Il mondo embedded è da sempre promotore di nuove tecnologie, applicazioni, innovazioni. La sensoristica, in modo particolare, gioca un ruolo fondamentale in quanto permette alle applicazioni embedded di potersi inserire in ambiti sempre più vasti, andando ad invadere campi ove, per ragioni di costo, non era possibile proporre novità. È il caso dei sistemi di visione, sempre demandati ad apparati specifici, decisamente “lontani” dal settore embedded. Da non molto tempo Analog Devices propone ADSP-BF609 Blackfin BF609, un microprocessore ad alte prestazioni in grado di supportare applicazioni embedded per la visione artificiale. Il processore è un vero concentrato di tecnologia in quanto è strutturato come un dual core contenenti ciascuno due ALU a 40 bit, 552 kbyte di SRAM, periferiche come UART, supporto per Ethernet, USB OTG, PWM, linee parallele per il supporto di pannelli TFT, CAN, etc.

Figura 1: La scheda FinBoard proposta da AVNET

Figura 1. La scheda FinBoard proposta da AVNET

Figura 2: Diagramma a blocchi di FinBoard

Figura 2. Diagramma a blocchi di FinBoard

Figura 3. Il layout di FinBoard con le sue funzionalità

Figura 3. Il layout di FinBoard con le sue funzionalità

LA VISIONE ARTIFICIALE E LA SCHEDA FINBOARD

Diversi ambiti tecnologici utilizzano o richiedono sistemi di visione artificiale. I settori ove i sistemi di visione si applicano sono molteplici, tra questi ci sono: settore industriale (la visione viene impiegata per verifiche dimensionali e correttezza dei montaggi), settore militare (in ausilio alle forze armate di difesa, apparati di sicurezza e di monitoraggio), antifurti domestici ma anche telecontrollo di aree sensibili, robotica, controllo del traffico, settore medicale (sistemi di ausilio alle indagini, ad esempio endoscopiche, e negli interventi chirurgici), termografia e molto altro ancora. Come detto, il BF609 nasce per applicazioni video e ben si presta a soddisfare le esigenze elencate. Viene in aiuto del progettista una demoborad, FinBoard, rilasciata da AVNET, ad un prezzo decisamente interessante. La scheda consente di iniziare ad affrontare i primi progetti potendosi svincolare temporaneamente dallo sviluppo hardware. FinBoard è dotata di alcune periferiche e connettori che permettono di collegare la scheda al mondo esterno. Inoltre, è già dotata di telecamera CMOS con un semplice ma efficace sistema di illuminazione locale. Nel dettaglio, le principali caratteristiche di FinBoard sono le seguenti:

Processore

Dual core ADSP-BF609 Blackfin Fino a 500 MHz/1000 MMACs per core Pipeline Vision Processor (PVP) con supporto per video HD;

Interfaccia utente

Due pulsanti - Quattro LED - Sensore di temperatura - I2C;

Memoria

128 MB DDR2 - 32 MB Quad SPI Flash - Alloggiamento per scheda microSD;

Connettività

Ethernet 10/100 USB 2.0 OTG USB UART;

Debug/Programmazione

Interfaccia ICE-100B JTAG Boot mode DIP switches;

Video I/O

Telecamera CMOS a colori a 720 pixel - LED ad alta luminosità per l’illuminazione del campo operativo - porta HDMI;

Alimentazione

5V DC input.

La scheda, fornita in un comodo kit, offre tutti i tool di sviluppo per iniziare a sviluppare, tra i quali due licenze semestrali di CrossCore™ Embedded Studio.

Figura 4: lo schema a blocchi di BF609

Figura 4. lo schema a blocchi di BF609

VISIONE ARTIFICIALE IN REAL-TIME

Affrontare il problema della visione artificiale in real-time, come ad esempio nel riconoscimento di pezzi di scarto su linee di produzione con throughput molto elevato, rappresenta una vera sfida. Il processore BF609 incorpora al suo interno strutture hardware in grado di analizzare rapidamente i pixel dell’immagine e di fornire informazioni. Il modulo prende il nome di Pipeline Vision Processor (PVP) ed è sostanzialmente un acceleratore hardware per funzioni di elaborazione di immagini. PVP è in grado di fornire accelerazione hardware per rilevamento oggetti, classificazione e inseguimento di oggetti, verifica di oggetti. In cooperazione con il core DSP di BF609, il modulo PVP è in grado di ridurre la banda passante richiesta e di eseguire un prefiltraggio dei dati.

Esempi noti a chi effettua applicazioni per il trattamento delle immagini sono, ad esempio, l’eliminazione del rumore salt and pepper (sale e pepe) applicando filtri a passa-basso. Inoltre, il modulo hardware è in grado di eseguire un'analisi dei contorni (edge detection) applicando alle immagini dei filtri passa-alto. Così, ad esempio, è possibile realizzare sistemi di visione in grado di identificare la linea a bordo carreggiata, ma anche la presenza o l’assenza di lavorazioni meccaniche su pezzi. Il sistema PVP è in grado di acquisire i dati provenienti da dispositivi a colori fino a 30 fps, con risoluzione massima 1280 x 960 pixel. Nella confezione di FInBoard è presente un esempio che dimostra come il sistema sia in grado, in tempo reale, di eseguire la somma di un certo numero di dadi posti sotto la telecamera anche in presenza di oggetti esogeni.

Figura 5: l’immagine di una strada

Figura 5. l’immagine di una strada

Figura 6. La stessa strada con il rilevamento delle linee di carreggiata

Figura 6. La stessa strada con il rilevamento delle linee di carreggiata

Figura 7. La demo che rileva e conta i punti dei dadi

Figura 7. La demo che rileva e conta i punti dei dadi

 

 

MAGGIORI APPROFONDIMENTI SULL'ARGOMENTO