Articolo metodologico

Un'architettura hardware a risoluzione adattiva per il rilevamento dei bordi di Sobel in tempo reale, che realizza una scalabilità delle risorse sub-lineare

17 visualizzazioni

DOI:

10.3791/71589

28 agosto 2026

In questo articolo

Sommario

Questo lavoro presenta un'implementazione basata su FPGA dell'algoritmo di rilevamento dei bordi di Sobel sulla piattaforma eterogenea Ultra96-V2, valutando l'utilizzo di risorse, potenza e velocità per risoluzioni delle immagini che vanno da 256 × 256 a 2560 × 1440. L'architettura proposta dimostra una scalabilità delle risorse sub-lineare per applicazioni di elaborazione delle immagini in tempo reale.

Abstract

Il rilevamento dei bordi è un ambito fondamentale nella visione artificiale ed è diventato parte integrante di diverse applicazioni. Questo tipo di rilevamento permette di identificare i bordi, che sono caratteristiche essenziali nelle immagini e rappresentano attributi importanti per estrarre informazioni chiave e distintive dalle immagini stesse. L'implementazione hardware del rilevamento dei bordi deve essere rapida, utilizzare risorse minime, consumare poca energia ed essere adattabile a diverse risoluzioni delle immagini. Questo articolo implementa il rilevamento dei bordi secondo l'operatore di Sobel con risoluzione adattiva, che varia da immagini a bassa risoluzione fino al full high-definition, sfruttando una moderna piattaforma FPGA (Field Programmable Gate Array) eterogenea, l'Ultra96-V2. I risultati mostrano che solo il 5% delle risorse a bordo dell'FPGA, inclusi i Look up Tables (LUTs), i Flip Flops (FF), i Digital Signal Processor (DSP) e la Block Memory (BRAM), viene utilizzato per immagini a bassa risoluzione, mentre per immagini ad alta risoluzione viene consumato circa il 23% delle risorse disponibili. Ciò dimostra che l'aumento nell'utilizzo delle risorse passando da immagini a bassa a quelle ad alta risoluzione è inferiore al 20%. Inoltre, il consumo di potenza è di circa 2 W per la risoluzione più elevata, mentre la frequenza operativa massima registrata è di 136 MHz per immagini ad alta risoluzione e di 166 MHz per quelle a bassa risoluzione, con una riduzione della frequenza inferiore all'18%. L'architettura proposta raggiunge una scalabilità sublineare delle risorse, con un aumento inferiore al 20% nell'utilizzo delle risorse e una riduzione inferiore al 20% in velocità e consumo energetico quando si gestisce un incremento di 56 volte nel numero di pixel, sfruttando i vantaggi delle moderne architetture FPGA eterogenee. Di conseguenza, la capacità di adattamento alla risoluzione unita alla bassa scalabilità delle risorse rende la progettazione proposta particolarmente adatta ad applicazioni in tempo reale di rilevamento dei bordi che richiedono un'elaborazione delle immagini di alta qualità.

Introduzione

La rilevazione dei bordi è diventata un elemento fondamentale in quasi tutte le tecniche di visione artificiale utilizzate oggi in vari ambiti applicativi1. La rilevazione dei bordi rappresenta una fase di estrazione delle caratteristiche ed è responsabile del recupero di dettagli informativi e distintivi dalle immagini, applicabili in una vasta gamma di scenari2. I bordi all'interno di un'immagine indicano le regioni in cui si verifica un brusco cambiamento di intensità; pertanto, forniscono informazioni importanti e distintive riguardo all'immagine stessa. Questo processo facilita l'eliminazione di dettagli superflui e irrilevanti, conservando soltanto gli elementi essenziali e unici che possono essere ulteriormente elaborati per l'applicazione specifica.

L'importanza del rilevamento dei contorni è evidenziata dalle sue applicazioni in diverse attività, tra cui segmentazione delle immagini, rilevamento e riconoscimento di oggetti, estrazione di caratteristiche, miglioramento delle immagini, identificazione di oggetti, imaging medico, sorveglianza, automazione industriale, guida autonoma, realtà aumentata e robotica2,3,4,5,6, come mostrato in Figure 1.

Esistono diversi metodi per il rilevamento dei bordi, tra cui Sobel, Prewitt, Roberts, Canny e altri. Tra queste tecniche, il rilevamento dei bordi di Sobel si distingue per la semplicità di applicazione, la ridotta complessità di implementazione e l'elevata precisione nel rilevamento dei bordi3,4,5,6. I gradienti dell'immagine vengono determinati dall'algoritmo di edge detection di Sobel sia nella direzione orizzontale che verticale, utilizzando rispettivamente i kernel Gx e Gy, come mostrato di seguito2,4.

Gx evidenzia i bordi nella direzione ×, mentre Gy evidenzia i bordi nella direzione y12,13. Combinati insieme, essi definiscono completamente tutti i bordi in un'immagine6. Per applicare il rilevamento dei bordi di Sobel a un'immagine si utilizza la convoluzione con la matrice del kernel e la finestra scorrevole. Una finestra, ad esempio di dimensioni 3 per 3 pixel, viene estratta dall'immagine un'unità alla volta e convoluta con la matrice del filtro per ottenere il nuovo valore del pixel centrale. L'intera immagine viene elaborata in questo modo. Nel rilevamento dei bordi di Sobel vengono utilizzati due kernel di questo tipo: uno per estrarre i bordi nella direzione x e un altro per la direzione y. Per ottenere tutti i bordi, i due risultati vengono successivamente combinati. Il rilevamento dei bordi di Sobel produce risultati precisi e affidabili, che possono essere ulteriormente migliorati con alcune operazioni di pre-elaborazione4,5,15. L'intero processo di rilevamento dei bordi di Sobel è illustrato in Figura 2.

Sebbene tutta la letteratura riportata abbia contribuito significativamente al campo del rilevamento dei bordi, tutte le principali ricerche pubblicate hanno lavorato su risoluzioni di immagine basse, mentre il lavoro presentato in questo articolo opera su diverse risoluzioni di immagine, che variano da immagini a bassa risoluzione (256 × 256) fino alla risoluzione completa di immagini ad alta definizione (HD) (2560 × 1440). Di conseguenza, studiare l'implementazione hardware dell'algoritmo di rilevamento dei bordi di Sobel per diverse risoluzioni di immagine è fondamentale per comprendere l'efficienza dell'implementazione in scenari in tempo reale con risoluzioni di immagine variabili. L'Field Programmable Gate Array (FPGA) è stato riconosciuto come una piattaforma adeguata per implementazioni hardware, grazie alla sua idoneità allo sviluppo rapido di prototipi e ai vantaggi offerti dalla riconfigurabilità, che consente modifiche facili del progetto senza dover cambiare l'intera configurazione hardware6,7,8,9,10,11,12,13. Inoltre, gli FPGA offrono la possibilità di elaborazione parallela e pipeline; una volta ottimizzate le metriche di prestazione e validata la piattaforma, il progetto può procedere verso la produzione effettiva di circuiti integrati specifici per applicazioni (ASIC)14,15. Un'altra caratteristica importante degli FPGA è la loro riconfigurabilità, che consente ai progettisti di apportare modifiche al design del prodotto in qualsiasi momento senza dover sostituire alcun componente hardware. È sufficiente riprogrammare il chip, un'operazione che richiede poco tempo o sforzo, a condizione che il progettista abbia una buona conoscenza dei linguaggi di descrizione hardware come VHDL/Verilog4,6,13,16,17. Per l'analisi dell'implementazione su FPGA, i parametri principali considerati sono la velocità (frequenza massima), l'utilizzo delle risorse e l'efficienza energetica. Tabella 1, che illustra l'aumento della quantità di letteratura pubblicata nel settore degli FPGA, mostra come le pubblicazioni su FPGA siano evolute nel periodo compreso tra il 2006 e il 2024. È chiaro che il campo della ricerca sugli FPGA si è ora spostato verso applicazioni in tempo reale, realtà aumentata, elaborazione ai bordi della rete (edge computing) e altre applicazioni avanzate13,14,15,16,17,18,19,20,21,22,23.

Tabella 2 evidenzia i lavori presenti nella letteratura esistente relativi all'implementazione del rilevamento dei bordi di Sobel su FPGA dal 2020 al 2025. Tabella 2 riporta la scheda FPGA utilizzata, gli algoritmi implementati, la metodologia di progettazione, i risultati, le metriche, l'ambito applicativo e le sfide di ciascun articolo citato.

Gli autori4 hanno raccomandato l'utilizzo del metodo di rilevamento dei bordi con Sobel a 8 direzioni per aumentare l'accuratezza del rilevamento, tuttavia hanno riportato un consumo maggiore di risorse per la metodologia proposta. Navinkumar et al. utilizzano una tecnica per ridurre le operazioni matematiche complesse di moltiplicazione e radice quadrata coinvolte nel tradizionale rilevamento dei bordi di Sobel, risparmiando così risorse a bordo e migliorando la velocità9. Gli autori17 hanno descritto l'uso dell'algoritmo di rilevamento dei bordi di Sobel per identificare le corsie nei sistemi avanzati di assistenza alla guida. Il loro obiettivo era accelerare il rilevamento riducendo al contempo il tempo di elaborazione. Nel complesso, è stato suggerito che l'uso del rilevamento dei bordi rappresenti un metodo affidabile per l'estrazione della regione di interesse in futuro, il che potrebbe risultare molto utile in diverse applicazioni in cui è necessario estrarre l'area desiderata di un'immagine ignorando qualsiasi informazione non necessaria. Le sfide riportate comprendono complessivamente un elevato utilizzo di risorse e memoria, sensibilità al rumore, elevato costo computazionale e scalabilità limitata per immagini ad alta risoluzione4,5,6,11,12,13,21,22,23.

In questo lavoro, l'implementazione tradizionale dell'algoritmo di rilevamento dei bordi di Sobel è stata eseguita sulla scheda FPGA Ultra96-V2, per diverse risoluzioni di immagine che vanno da una risoluzione bassa di 256 × 256 fino alla risoluzione full high-definition di 2560 × 1440. Ultra96-V2 è una scheda che combina le capacità di programmabilità FPGA con l'elaborazione Arm ad alte prestazioni (Cortex-A53/R5), ideale per applicazioni ad elevate prestazioni. Questa scheda è stata rilasciata per la prima volta nel 2018 e utilizza il nodo tecnologico FinFET a 16 nm18.

Per garantire la riproducibilità, l'intera implementazione è stata eseguita utilizzando una toolchain standard composta da Vivado HLS 2019.2 per la High-Level Synthesis (HLS) e Vivado 2019.2 per il place-and-route, oltre all'immagine PYNQ rilasciata dalle risorse Ultra96-V2. Il codice HLS è stato utilizzato per ricavare l'IP (Intellectual Property) per il rilevamento dei bordi con filtro di Sobel, che è stato esportato e integrato nell'ambiente di progettazione Vivado. L' IP è stato implementato nella parte PL (Programmable Logic), mentre la parte PS (Processing System) dell'FPGA si è occupata del trasferimento dati e dei meccanismi di controllo. L'interfacciamento tra PS e PL è stato realizzato tramite il protocollo AXI. Tutte le metriche riportate—frequenza, utilizzo delle risorse e consumo energetico—sono state estratte dai rapporti post-implementazione, non dalle stime di HLS. Le impostazioni di implementazione sono rimaste costanti, e soltanto le risoluzioni delle immagini sono state modificate durante gli esperimenti.

I risultati significativi di questo lavoro riguardano il basso consumo di potenza, l'uso ridotto di risorse e l'elevata velocità. I dati indicano un utilizzo delle risorse a bordo inferiore al 20% (18% di tabelle di conversione (LUT), 11% di flip-flop (FF), 3% di memoria e 10% di DSP) per immagini ad alta risoluzione, dimostrando un'ampia disponibilità per integrare ulteriori elaborazioni su tali immagini, come richiesto in ogni sistema di visione artificiale, poiché il rilevamento dei contorni rappresenta soltanto una fase intermedia. Inoltre, la dissipazione di potenza è di circa 2 W e la frequenza operativa massima risulta pari a 144 MHz. I risultati mostrano che un aumento delle dimensioni delle immagini di circa 56 volte comporta un incremento dell'utilizzo delle risorse di soli circa il 20%. Anche la velocità e la dissipazione di potenza peggiorano soltanto di circa il 20%. Questa analisi esamina approfonditamente l'algoritmo da una prospettiva differente, mai riportata nella letteratura precedente, indicando quindi che l'implementazione è particolarmente adatta per applicazioni in tempo reale, senza necessità di limitare le immagini a dimensioni ridotte o bassa risoluzione, il che certamente ridurrebbe la quantità di informazioni necessarie nelle fasi successive al rilevamento dei contorni.

La novità di questo lavoro non risiede nell'algoritmo in sé, ma si concentra sulla valutazione delle prestazioni dell'algoritmo tradizionale di rilevamento dei bordi di Sobel a diverse risoluzioni d'immagine su moderne architetture FPGA eterogenee, sfruttando i vantaggi delle tecniche di implementazione basate su HLS. I principali contributi di questo articolo riguardano principalmente l'applicazione di una metodologia ibrida implementata su un FPGA, distribuendo efficacemente il carico di lavoro tra le sezioni PS e PL dell'architettura, consentendo così al progetto di adattarsi facilmente a diverse risoluzioni. Un altro contributo consiste nell'eseguire esperimenti per valutare come la scalabilità delle risorse vari al cambiare della risoluzione delle immagini, il che aiuta a comprendere le prestazioni in diverse configurazioni e per applicazioni differenti.

Protocollo

1. Implementazione del rilevamento dei bordi di Sobel nello strumento HLS

  1. Aprire lo strumento Vivado HLS 2019.2 e creare un progetto. Selezionare la scheda FPGA come Ultra96-V2.
  2. Scrivere il codice in linguaggio ad alto livello utilizzando il linguaggio C++ per il rilevamento dei bordi con l'operatore di Sobel, con il parametro delle dimensioni dell'immagine generalizzato e non fissato.
    NOTA: Larghezza e altezza dell'immagine non sono fisse, ma sono scritte come parametri generali nel codice, in modo da poter essere facilmente modificate al variare della risoluzione dell'immagine, senza dover apportare modifiche in più posizioni.
  3. Scrivere il codice della test bench per l'algoritmo di rilevamento dei bordi con l'operatore di Sobel in C++.
    NOTA: La test bench viene scritta per fornire immagini di ingresso su cui testare il codice.
  4. Fare clic su “run C simulation” per simulare il codice e verificarne la correttezza funzionale. Fornire un'immagine di ingresso alla test bench e quindi controllare l'uscita generata, che dovrebbe essere un'immagine con i bordi evidenziati.
  5. Fare clic su “run C synthesis” per sintetizzare il codice HLS ed esportare l'IP per il rilevamento dei bordi con l'operatore di Sobel.
    NOTA: Il processo di sintesi mappa essenzialmente la progettazione codificata su componenti hardware, rendendo la progettazione compatibile e pronta per l'implementazione hardware.
  6. Verificare i rapporti sui tempi e sull'utilizzo delle risorse generati dallo strumento e assicurarsi che il tempo stimato non superi il tempo previsto.
    NOTA: Tutti questi risultati della piattaforma HLS sono soltanto stime; i parametri effettivi vengono calcolati solo quando la progettazione viene implementata su un FPGA.
  7. Fare clic su “export IP” per esportare l'IP della procedura di rilevamento dei bordi con l'operatore di Sobel.
    NOTA: Questo IP verrà utilizzato nel passaggio successivo durante la progettazione del diagramma a blocchi per l'implementazione FPGA nello strumento Vivado.

2. Implementazione del rilevamento dei bordi di Sobel su piattaforma FPGA, Ultra96-V2, mediante IP HLS estratto

  1. Aprire lo strumento di progettazione Vivado e creare un nuovo progetto. Selezionare la scheda di destinazione come Ultra96-V2 e fare clic su “Crea un nuovo progetto a blocchi”.
  2. Importare l'IP per il rilevamento dei bordi di Sobel appena esportato dallo strumento HLS. Aggiungere gli altri blocchi necessari per completare l'interfacciamento tra la parte PS e la parte PL.
    NOTA: Il diagramma a blocchi utilizza anche altri IP importanti, come l'IP Zynq Ultrascale, lo Smart Connect e il reset del processore, ecc., per stabilire l'interfaccia tra PS e PL utilizzando il protocollo Advanced eXtensible Interface (AXI).
  3. Fare clic su “convalida progetto” per validare il progetto a blocchi. Assicurarsi che lo strumento non segnali errori di progetto. In caso di errori, seguire le istruzioni per la correzione e convalidare nuovamente.
    NOTA: Questo passaggio verifica l'assenza di connessioni mancanti nel diagramma a blocchi, ma non verifica la correttezza funzionale del progetto.
  4. Fare clic su “crea wrapper HDL” per ottenere un codice HDL generalizzato per il progetto a blocchi.
  5. Fare clic su “esegui sintesi” per sintetizzare il progetto e verificare eventuali errori segnalati. Se non vengono trovati errori, lo strumento segnala una sintesi riuscita. Dopo aver completato con successo la sintesi, accedere ai rapporti di sintesi relativi al timing per verificare la presenza di violazioni temporali.
  6. Per verificare le violazioni temporali, assicurarsi che nessun valore di timing sia riportato in testo rosso, poiché ciò indica che il tempo utilizzato supera l'obiettivo assegnato e quindi indica violazioni.
  7. Fare clic su “esegui implementazione” per implementare il progetto e valutare i rapporti relativi a timing, potenza e utilizzo delle risorse.
  8. Generare il file “.bit” per programmare la scheda FPGA.
    NOTA: Il diagramma a blocchi per il rilevamento dei bordi di Sobel su Ultra96-V2 è mostrato in Figura 3. Come già indicato, il diagramma a blocchi è essenzialmente necessario per stabilire un'interfaccia tra la parte PS e la parte PL della scheda FPGA.

3. Programmazione della scheda FPGA

  1. Per preparare la scheda SD, scaricare il file immagine PYNQ (.img) per la scheda Ultra96-V216 e installare il file scaricato sulla scheda SD.
  2. Accendere la scheda in modalità di avvio da scheda SD selezionando le posizioni dell'interruttore secondo il manuale di riferimento di Ultra96-V2¹⁶.
  3. Visita l'URL http://192.168.3.1 e inserisci nome utente e password, entrambi "xilinx", quando richiesto.
    NOTA: si consiglia di utilizzare il browser Google Chrome per evitare eventuali incompatibilità tecniche.
  4. Accedere alla piattaforma Jupyter e scrivere codice Python per la parte PS per leggere le immagini o i video di input e inviare l'immagine letta alla parte PL per l'elaborazione.
  5. Scrivere il codice per l'attività di riscrittura delle immagini elaborate da PL a PS e visualizzazione del risultato.
    NOTA: Per visualizzare i risultati su Ultra96-V2, si utilizza la piattaforma PYNQ, che consente di mostrare le immagini in uscita in modo molto semplice mediante l'uso di codici Python e delle librerie OpenCV.
    Figura 4 mostra i passaggi per l'approccio Ultra96-V2 come illustrato in questa sezione e gli output ottenuti.

Risultati

Questa sezione illustra i risultati ottenuti nella progettazione del rilevamento dei bordi di Sobel su Ultra96-V2. Figura 5 di seguito mostra le immagini di input e di output ottenute tramite la simulazione HLS. Le immagini utilizzate sono immagini standard di dimensione 512 × 512. Questi risultati dimostrano che il codice HLS scritto per il rilevamento dei bordi di Sobel è funzionalmente corretto. I bordi devono essere chiaramente visibili nelle immagini risultanti.

Tabella 3 mostra i rapporti di sintesi e i parametri generati relativi ai tempi e all'utilizzo delle risorse su Ultra96-V2 con la parte FPGA xczu3eg-sbva484-1-e. Il rapporto contiene informazioni relative ai tempi che indicano se il progetto soddisfa i vincoli temporali specificati dall'utente. Secondo il riepilogo dei tempi, il tempo stimato di 8,544 ns è inferiore al tempo obiettivo di 10 ns, il che indica chiaramente che il progetto rispetta i vincoli imposti dall'utente.

Gli strumenti HLS generano anche una stima dell'utilizzo delle risorse, che fornisce al progettista una valutazione dell'eventuale impiego delle risorse a bordo. I parametri effettivi di utilizzo possono essere generati solo dopo la realizzazione effettiva dell'hardware. Sebbene esistano numerose e diverse categorie di risorse su un FPGA, le risorse hardware più utilizzate sono le LUT (Look up Tables), i FF (Flip Flop), le DSP Slices (Digital Signal Processing Slices) e la memoria.

Tabella 3 mostra inoltre i tempi effettivi e l'utilizzo delle risorse quando il rilevamento dei bordi di Sobel viene implementato su Ultra96-V2 per immagini ad alta risoluzione. L'analisi temporale indica che lo slittamento negativo peggiore è di 3,102 ns, il che significa che vi è tempo sufficiente per l'elaborazione e, di conseguenza, viene raggiunta una velocità di clock di 144 MHz. La frequenza operativa raggiunta di 144 MHz a una risoluzione di 1920 × 1080 corrisponde a una velocità di elaborazione di circa 299 MP/s, superiore ai 62 MP/s necessari per l'elaborazione video in tempo reale in full HD a 30 fps. Per comprendere la scalabilità delle risorse e l'effetto sui parametri passando da immagini a bassa a immagini ad alta risoluzione, la tabella riporta i risultati sperimentali ottenuti ripetendo gli stessi passaggi per diverse risoluzioni.

Tabella 4 riporta la dimensione dell'immagine e quindi il numero totale di pixel, seguita dalla frequenza operativa, dalla potenza e dall'utilizzo delle risorse in termini di LUT, FF, BRAM e DSP. È chiaramente evidente che passando dalla risoluzione minima considerata di 256 × 256 a quella massima di 2560 × 1440, che comporta un aumento di quasi 56 volte nel numero di pixel, i parametri cambiano soltanto del 20%. Ciò indica chiaramente una scalabilità sublineare delle risorse, in cui i dati da elaborare aumentano notevolmente, ma il degrado delle metriche di prestazione è molto ridotto, rendendo la soluzione adatta per un impiego in tempo reale.

I risultati presentati nella Tabella 4 dimostrano chiaramente che l'applicazione del rilevamento dei bordi di Sobel su Ultra96-V2 offre significativi vantaggi per compiti che richiedono risoluzioni adattabili, poiché le metriche di prestazione rimangono ottimizzate e non mostrano variazioni considerevoli quando si passa da immagini a bassa a alta risoluzione. Questo successo è attribuibile all'approccio ibrido di implementazione, che evita di sovraccaricare la logica FPGA con i dati dell'immagine, consentendo al processore della scheda di gestire il notevole carico computazionale associato alle immagini. Il processore si limita a trasmettere i dati dell'immagine al componente logico FPGA, con ogni aumento nella scalabilità delle risorse o riduzione della frequenza massima determinato esclusivamente dal grande volume di dati che richiede un maggiore trattamento. Pertanto, si può affermare che l'approccio seguito in questo articolo consente una scalabilità sublineare delle risorse, anche se il numero di pixel dell'immagine aumenta di quasi 56 volte.

Il lavoro implementato viene inoltre confrontato con le soluzioni esistenti per comprendere il paragone tra le metriche di prestazione, come risoluzione dell'immagine, frequenza di clock, consumo di potenza e utilizzo delle risorse. Tabella 5 illustra il confronto con la letteratura più recente.

Come chiaramente illustrato nella Tabella 5, il lavoro implementato in questo articolo presenta metriche di prestazione adeguate, ma le soluzioni esistenti delle implementazioni precedentemente riportate9,10 mostrano parametri migliori. Tuttavia, quando si effettua un confronto complessivo, si può osservare che entrambi i lavori precedenti9,10 si basano su risoluzioni di immagine basse e su piattaforme FPGA obsolete, mentre i risultati descritti in questo articolo si riferiscono a risoluzioni di immagine adattive, con dimensioni che vanno dalla risoluzione minima di 256 × 256 fino alla risoluzione ad alta definizione di 2560 × 1440. I risultati indicano che l'approccio implementato per il rilevamento dei bordi di Sobel, che sfrutta le capacità sia del processore sia della parte logica della scheda FPGA eterogenea Ultra96-V2, si rivela utile per ottenere una scalabilità sublineare delle risorse all'aumentare del numero di pixel di circa 56 volte, mentre l'utilizzo delle risorse cresce soltanto del 20% e il degrado in termini di potenza e velocità è inferiore al 20%. Per la risoluzione più bassa, viene utilizzato solo il 5% delle risorse, e l'utilizzo massimo raggiunge appena il 23%, lasciando ampio margine disponibile per ulteriori elaborazioni. Pertanto, si può affermare chiaramente che, a causa della differenza nelle risoluzioni delle immagini, risulta difficile effettuare un confronto diretto; tuttavia, analizzando il progetto implementato in questo lavoro, la frequenza di clock è di 136 MHz, il consumo di potenza è di 2 W e l'utilizzo delle risorse è inferiore al 23% delle risorse totali della scheda. È importante precisare che le implementazioni riportate nei lavori precedenti9,10 mostrano metriche di prestazione individuali superiori. Tuttavia, è fondamentale notare che entrambi i lavori valutano i propri progetti a una singola risoluzione fissa di immagine, mentre il lavoro proposto viene valutato su un'ampia gamma di risoluzioni, da 256 × 256 a 2560 × 1440. Gli obiettivi progettuali sono quindi sostanzialmente diversi: i lavori9,10 ottimizzano le prestazioni massime a una specifica risoluzione, mentre l'architettura proposta privilegia l'adattabilità e la scalabilità sublineare delle risorse su diverse risoluzioni. Ciò rende il progetto implementato adatto ad applicazioni che richiedono il rilevamento dei bordi.

Si può quindi affermare che, in questo lavoro, la scalabilità sub-lineare delle risorse è definita come la condizione in cui l'aumento percentuale nell'utilizzo delle risorse è significativamente inferiore all'aumento percentuale del numero di pixel. Quando la risoluzione aumenta da 256 × 256 a 2560 × 1440, il numero di pixel cresce di circa il 5600%, mentre l'utilizzo delle risorse a bordo aumenta di meno del 20%. Questo tasso di crescita delle risorse sproporzionatamente basso, risultato diretto della strategia di partizionamento eterogeneo PS-PL, conferma il comportamento di scalabilità sub-lineare dell'architettura proposta. Sebbene l'implementazione proposta dimostri una scalabilità sub-lineare delle risorse nell'intervallo di risoluzioni testato, alcune limitazioni devono essere considerate per un'interpretazione accurata dei risultati. La frequenza operativa diminuisce del 18% passando da basse ad alte risoluzioni, e un'estrapolazione oltre 2560 × 1440 potrebbe richiedere aggiustamenti architetturali per mantenere il rispetto dei vincoli temporali. Inoltre, poiché il trasferimento dei dati dell'immagine è gestito dal processore ARM, l'overhead di trasferimento sul lato PS cresce linearmente con il numero di pixel e potrebbe limitare la velocità effettiva in applicazioni di streaming video continuo ad alta risoluzione più di quanto suggerito dai soli parametri del lato PL.

Diagramma di applicazioni del rilevamento dei bordi: robotica, imaging, realtà aumentata, automazione, sorveglianza.
Figura 1: Diverse aree applicative del rilevamento dei bordi. Illustrazione di aree applicative rappresentative in cui il rilevamento dei bordi è comunemente utilizzato, inclusa la visione artificiale, l'imaging medico, la sorveglianza, la robotica e l'automazione industriale. Cliccare qui per visualizzare una versione ingrandita di questa figura.

Elaborazione delle immagini: diagramma del rilevamento dei bordi con operatore Sobel e kernel di convoluzione sull'immagine in ingresso.
Figura 2: Descrizione dei passaggi nell'algoritmo di rilevamento dei bordi di Sobel. Flusso di lavoro che illustra il processo di rilevamento dei bordi con operatore Sobel, inclusa l'estrazione di una finestra dell'immagine di dimensioni 3 × 3, la convoluzione con kernel di Sobel orizzontali e verticali e la generazione dell'immagine in uscita con bordi rilevati. Cliccare qui per visualizzare una versione ingrandita di questa figura.

Diagramma a blocchi di Zynq UltraScale+, architettura del sistema con flusso di dati e componenti interconnessi AXI.
Figura 3: Diagramma a blocchi implementato per il rilevamento dei bordi con filtro di Sobel sulla scheda FPGA Ultra96-V2, mediante interfacciamento tra la parte PS (sistema di elaborazione) e la parte PL (logica programmabile). Diagramma a blocchi che mostra l'architettura hardware e le interconnessioni tra il sistema di elaborazione (PS), la logica programmabile (PL) e i core IP ausiliari utilizzati per l'implementazione FPGA. Cliccare qui per visualizzare una versione ingrandita di questa figura.

Processo di scrittura dell'immagine PYNQ e flusso di progettazione Vivado; configurazione e verifica della scheda SD, generazione del file bit.
Figura 4: Passaggi per la programmazione della scheda Ultra96-V2 per il rilevamento dei bordi con l'algoritmo di Sobel utilizzando la piattaforma PYNQ e risultato del rilevamento dei bordi di Sobel su un'immagine in ingresso. Flusso di lavoro che illustra la procedura di programmazione della scheda Ultra96-V2 mediante la piattaforma PYNQ e un'immagine di output rappresentativa ottenuta dopo l'implementazione su FPGA. Cliccare qui per visualizzare una versione ingrandita di questa figura.

Rilevamento di colore e dei bordi nell'elaborazione delle immagini; griglia di confronto tra immagini originali e immagini con bordi potenziati.
Figura 5: Risultati della simulazione per il rilevamento dei bordi con il metodo di Sobel su diverse immagini standard utilizzando Vivado HLS (2019.2). Immagini di ingresso rappresentative e relative uscite con bordi rilevati ottenute durante la simulazione funzionale dell'algoritmo di rilevamento dei bordi di Sobel mediante Vivado HLS 2019.2. Cliccare qui per visualizzare una versione ingrandita di questa figura.

Tabella 1: Evoluzione delle applicazioni FPGA nella ricerca sulla visione artificiale (2006–2024). Riepilogo di applicazioni rappresentative basate su FPGA nel campo della visione artificiale, riportate tra il 2006 e il 2024. Cliccare qui per scaricare questa tabella.

Tabella 2: Letteratura correlata sull'implementazione di algoritmi di rilevamento dei bordi su FPGA (2020-2025). Confronto tra le recenti implementazioni del rilevamento dei bordi basate su FPGA, inclusi piattaforma, metodologia e metriche di prestazione riportate. Cliccare qui per scaricare questa tabella.

Tabella 3: Implementazione della rilevazione dei bordi di Sobel su FPGA: parametri stimati e parametri effettivi. Risultati stimati della sintesi HLS e corrispondenti tempistiche e utilizzo delle risorse dopo l'implementazione ottenuti per l'implementazione su FPGA. Cliccare qui per scaricare questa tabella.

Tabella 4: Utilizzo delle risorse e metriche di prestazione dell'algoritmo di rilevamento dei bordi di Sobel implementato su diverse risoluzioni dell'immagine. Metriche di prestazione, frequenza operativa, consumo di potenza e utilizzo delle risorse FPGA dell'implementazione proposta su diverse risoluzioni dell'immagine. Cliccare qui per scaricare questa tabella.

Tabella 5: Confronto tra il rilevamento dei bordi Sobel implementato ed esistente su FPGA. Confronto dell'implementazione proposta su FPGA con precedenti implementazioni del rilevamento dei bordi Sobel riportate in letteratura, utilizzando metriche di prestazione rappresentative. Cliccare qui per scaricare questa tabella.

Discussione

In questo articolo ci si concentra sull'esecuzione dell'algoritmo di rilevamento dei bordi di Sobel, un componente essenziale in numerose applicazioni nei diversi settori della visione artificiale ed elaborazione delle immagini2,3,4,5,6. L'implementazione del rilevamento dei bordi di Sobel viene eseguita utilizzando lo strumento Vivado HLS, consentendo la scrittura del codice in linguaggi di più alto livello anziché in linguaggi di descrizione hardware. Il codice Vivado HLS viene eseguito sulla scheda Ultra96-V2. I risultati ottenuti dopo l'implementazione indicano che la progettazione realizzata supporta immagini ad alta risoluzione e funziona a una frequenza di 136 MHz con un consumo di potenza di 2 W e un utilizzo inferiore al 20% delle risorse totali della scheda. Inoltre, i risultati dimostrano che l'approccio è adatto per l'adattamento dinamico della risoluzione delle immagini, poiché diverse applicazioni possono richiedere l'uso di dimensioni d'immagine differenti, e il rilevamento dei bordi è solitamente un passaggio intermedio2,3,4,5,6, operazione eseguita molto frequentemente all'interno di complesse pipeline di progettazione. Pertanto, si può affermare che il sistema progettato può essere impiegato in applicazioni in tempo reale che richiedono il rilevamento dei bordi. L'ampia disponibilità di risorse suggerisce che ulteriori passaggi di elaborazione possono essere integrati nel sistema sviluppato6,7,8,9,10,11,12,13,14,15.

L'implementazione corretta del rilevatore di bordi di Sobel sulla scheda Ultra96-V2 richiede un'attenta considerazione di diversi aspetti pratici. Il framework PYNQ semplifica notevolmente l'interazione tra PS e PL consentendo il controllo dell'hardware tramite librerie Python, riducendo così lo sforzo di sviluppo software. Tuttavia, è necessario scaricare l'immagine PYNQ corretta dalla fonte ufficiale e configurare adeguatamente la scheda SD prima del deployment. La verifica funzionale della progettazione HLS mediante banci di prova completi è essenziale prima dell'esportazione dell'IP, poiché una validazione anticipata aiuta a identificare errori algoritmici e di interfaccia prima dell'implementazione hardware. Durante le implementazioni FPGA, anche la progettazione del diagramma a blocchi richiede grande attenzione da parte del progettista, in quanto si raccomanda di comprendere appieno l'architettura dell'hardware FPGA preso in considerazione, selezionando così i blocchi appropriati e realizzando i collegamenti in modo accurato. Non è consigliabile automatizzare completamente i collegamenti, poiché ciò potrebbe portare a collegamenti mancanti o inadatti al design da seguire. In questa fase dell'interfaccia PS–PL, errori come mappatura errata degli indirizzi AXI, discrepanze tra domini di clock o trasferimenti DMA configurati in modo improprio potrebbero impedire una comunicazione efficace tra processore e logica programmabile. Tali problemi possono essere identificati mediante gli strumenti di validazione della progettazione di Vivado e risolti verificando assegnazioni degli indirizzi, configurazioni dei clock, connessioni di interruzione e impostazioni DMA prima della generazione del bitstream. Durante l'implementazione FPGA, possono verificarsi violazioni temporali a causa di percorsi combinatori troppo lunghi o di un insufficiente pipelining. L'aumento delle fasi di pipeline, l'ottimizzazione delle strutture cicliche o l'allentamento dei vincoli temporali, ove appropriato, possono contribuire al raggiungimento della chiusura temporale.

Sebbene questo lavoro convalidi l'architettura di partizionamento PS-PL specificamente per il rilevamento dei bordi di Sobel, l'approccio architetturale è intrinsecamente generalizzabile. Qualsiasi algoritmo esprimibile come convoluzione a finestra scorrevole—compresi Prewitt, Roberts, Laplaciano del Gaussiano o la fase del gradiente di Canny—può essere implementato con un approccio simile, con modifiche principali nel design HLS3,4,5,6. Esistono alcune limitazioni del lavoro proposto. Una di queste è il ritardo dovuto al trasferimento dei dati tra la parte PS e quella PL dell'FPGA, il quale influisce sul tempo totale di esecuzione dell'algoritmo. Inoltre, il risultato relativo alla scalabilità sublineare è specifico dell'architettura eterogenea Ultra96-V216 e potrebbe non applicarsi direttamente a piattaforme FPGA omogenee prive di un core processore dedicato.

L'ambito futuro prevede un ulteriore miglioramento del progetto con alcune ottimizzazioni che potrebbero aumentare la velocità e ridurre ulteriormente il consumo energetico. Inoltre, l'adattamento dell'implementazione a scenari in tempo reale rappresenta un altro aspetto potenziale da considerare in futuro.

Dichiarazioni

Gli autori dichiarano di non avere conflitti di interessi. Nessuno strumento di intelligenza artificiale (AI) è stato utilizzato nella preparazione di questo manoscritto.

Ringraziamenti

Gli autori non hanno ringraziamenti da dichiarare. Questa ricerca non ha ricevuto finanziamenti esterni.

Materiali

Elenco dei materiali utilizzati in questo articolo
NomeAziendaNumero di catalogoCommenti
Scheda FPGA Ultra96-V2 Xilinx Introdotto nel 2018Piattaforma hardware utilizzata per implementare l'algoritmo di rilevamento dei pedoni
Vivado HLS AMD2019.2Strumento di sintesi ad alto livello utilizzato per la programmazione ad alto livello del codice di rilevamento dei pedoni presentato nell'articolo, al fine di esportare l'Intellectual Property (IP)
Vivado AMD2019.2Strumento di programmazione FPGA utilizzato per programmare la scheda FPGA Ultra96 v2 con l'algoritmo di rilevamento dei bordi di Sobel 

Riferimenti

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Ristampe e permessi

Tag

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection