Methodenartikel

Een resolutie-adaptieve hardwarearchitectuur voor real-time Sobel-randdetectie, met sublineaire schaling van resources

17 weergaven

DOI:

10.3791/71589

28 augustus 2026

In dit artikel

Samenvatting

Dit werk presenteert een FPGA-gebaseerde implementatie van het Sobel-algoritme voor randdetectie op het heterogene Ultra96-V2-platform, waarbij het gebruik van resources, het vermogen en de snelheid worden geëvalueerd over beeldresoluties variërend van 256 × 256 tot 2560 × 1440. De voorgestelde architectuur demonstreert een sublineaire schaling van resources voor real-time beeldverwerkingsapplicaties.

Samenvatting

Randsdetectie is een kerngebied binnen computer vision en is een integraal onderdeel geworden van diverse toepassingsgebieden. Randdetectie maakt de identificatie van randen mogelijk, welke kritieke kenmerken in afbeeldingen zijn en belangrijke attributen vertegenwoordigen die helpen bij het extraheren van essentiële en onderscheidende informatie uit de beelden. De hardware-implementatie van randdetectie moet snel zijn, minimale resources gebruiken, weinig stroom verbruiken en aanpasbaar zijn aan verschillende beeldresoluties. Dit artikel implementeert Sobel-randdetectie voor adaptieve beeldresolutie, variërend van een afbeelding met lage resolutie tot full high-definition, en maakt gebruik van een modern heterogeen Field Programmable Gate Array (FPGA) platform, de Ultra96-V2. De resultaten tonen aan dat slechts 5% van de on-board FPGA-resources, inclusief de Look up Tables (LUTs), Flip Flops (FF), Digital Signal Processor (DSP) en Block Memory (BRAM), wordt benut voor beelden met een lage resolutie, terwijl ongeveer 23% van de on-board resources wordt verbruikt voor beelden met een hoge resolutie. Dit bewijst dat de toename in resourcegebruik bij de overgang van lage naar hoge beeldresolutie minder dan 20% bedraagt. Daarnaast is het vermogensverlies ongeveer 2 W voor de hoogste resolutie, en de maximale operationele frequentie is vastgesteld op 136 MHz voor hoge resolutie en 166 MHz voor beelden met een lage resolutie, wat een afname van slechts 18% in de frequentie laat zien. De voorgestelde architectuur bereikt een sublineaire schaling van resources, met minder dan 20% toename in resourcegebruik en minder dan 20% afname in snelheid en vermogen bij een 56-voudige toename van het aantal pixels, door gebruik te maken van de voordelen van moderne heterogene FPGA-architectuur. Bijgevolg maakt de adaptieve resolutiecapaciteit in combinatie met de lage schaling van resources het voorgestelde ontwerp bijzonder geschikt voor real-time randdetectietoepassingen die hoogwaardige beeldverwerking vereisen.

Inleiding

Randdetectie is een cruciaal element geworden in bijna alle computer vision-technieken die tegenwoordig in diverse applicatiedomeinen worden gebruikt1. Randdetectie is een fase van kenmerkextractie en is verantwoordelijk voor het ophalen van informatieve en onderscheidende details uit beelden, wat kan worden toegepast in een breed scala aan scenario's2. Randen in een beeld duiden op regio's waar een plotselinge verandering in intensiteit optreedt; daarom bieden ze belangrijke en kenmerkende informatie over dat beeld. Dit proces vergemakkelijkt het elimineren van onnodige en irrelevante details, waarbij alleen de cruciale en unieke elementen worden behouden die verder kunnen worden verwerkt voor de specifieke toepassing.

Het belang van randdetectie wordt benadrukt door de toepassing ervan in diverse taken, waaronder beeldsegmentatie, objectdetectie en -herkenning, kenmerkextractie, beeldverbetering, objectidentificatie, medische beeldvorming, bewaking, industriële automatisering, autonoom rijden, augmented reality en robotica2,3,4,5,6, zoals weergegeven in Figuur 1.

Er bestaan meerdere methoden voor randdetectie, waaronder Sobel, Prewitt, Roberts, Canny en andere. Van deze technieken onderscheidt Sobel-randdetectie zich door de eenvoudige toepassing, minimale implementatiecomplexiteit en hoge precisie bij het detecteren van randen3,4,5,6. De gradiënten van de afbeelding worden door het Sobel-algoritme bepaald in zowel horizontale als verticale richtingen, waarbij respectievelijk de kernels Gx en Gy worden gebruikt, zoals hieronder wordt getoond2,4.

Gx markeert de randen in de × richting, en Gy accentueert randen in de y-richting12,13Wanneer deze gecombineerd worden, definiëren ze samen alle randen in een afbeelding volledig.6Het proces van convolutie met de kernel en het schuivende venster worden gebruikt om de Sobel-randdetectie op een afbeelding toe te passen. Er wordt stapsgewijs een venster van bijvoorbeeld 3 bij 3 pixels uit de afbeelding genomen, en dit venster wordt geconvolueerd met de filtermatrix om de nieuwe waarde van de centrale pixel te verkrijgen. De gehele afbeelding wordt op deze wijze verwerkt. Bij Sobel-randdetectie worden twee dergelijke kernels gebruikt: één voor het extraheren van randen in de x-richting en een andere voor de y-richting. Om alle randen te verkrijgen, worden deze twee resultaten vervolgens gecombineerd. Sobel-randdetectie produceert nauwkeurige en betrouwbare resultaten, die verder kunnen worden verbeterd met enige voorbewerking.4,5,15De volledige Sobel-randdetectie wordt toegelicht in Figuur 2.

Hoewel alle gerapporteerde literatuur aanzienlijke bijdragen heeft geleverd op het gebied van randdetectie, is het meeste belangrijke onderzoek uitgevoerd met lage beeldresoluties, terwijl het in dit artikel gepresenteerde werk gebruikmaakt van verschillende beeldresoluties, variërend van lage resolutiebeelden (256 × 256) tot full high-definition (HD) beeldresolutie (2560 × 1440). Bijgevolg is het onderzoeken van de hardware-implementatie van het Sobel-algoritme voor randdetectie voor verschillende beeldresoluties cruciaal om de efficiëntie van de implementatie te begrijpen wanneer deze wordt blootgesteld aan real-time scenario's met variërende beeldresoluties. De Field Programmable Gate Array (FPGA) is erkend als een geschikt platform voor hardware-implementaties vanwege de geschiktheid voor snelle prototypeontwikkeling en voordelen zoals herconfigureerbaarheid, wat eenvoudige ontwerpwijzigingen mogelijk maakt zonder dat de gehele hardwareconfiguratie hoeft te worden gewijzigd6,7,8,9,10,11,12,13. Bovendien bieden FPGA's potentieel voor parallelle verwerking en pipelining; zodra de prestatiegegevens zijn geoptimaliseerd en het platform is gevalideerd, kan het ontwerp overgaan naar de feitelijke productie van Application Specific Integrated Circuits (ASICs)14,15. Een ander belangrijk kenmerk van FPGA's is hun herconfigureerbaarheid, waardoor ontwerpers op elk moment wijzigingen in het productontwerp kunnen aanbrengen zonder hardware te hoeven vervangen. Het herprogrammeren van de chip is alles wat nodig is, en dit kost zeer weinig tijd of moeite, mits de ontwerper goed bekend is met hardwarebeschrijvingstalen zoals VHDL/Verilog4,6,13,16,17. Voor de analyse van de FPGA-implementatie zijn de belangrijkste overwogen parameters de snelheid (maximale frequentie), het resourcegebruik en de energie-efficiëntie. Tabel 1 toont de toenemende hoeveelheid gepubliceerde literatuur in het domein van FPGA en laat zien hoe FPGA-publicaties zijn geëvolueerd in de periode van 2006 tot 2024. Hieruit blijkt duidelijk dat het FPGA-onderzoeksdomein inmiddels is verschoven naar real-time toepassingen, augmented reality, edge computing en andere high-end toepassingen13,14,15,16,17,18,19,20,21,22,23.

Tabel 2 belicht het werk dat in de bestaande literatuur is verricht met betrekking tot de implementatie van Sobel-randdetectie op FPGA in de periode 2020–2025. In Tabel 2 worden het gebruikte FPGA-board, de geïmplementeerde algoritmen, de ontwerpmethodologie, de bevindingen, de metrieken, het toepassingsgebied en de uitdagingen van elk gerefereerd artikel vermeld.

De auteurs4 hebben aangeraden om de 8-richtingen Sobel Edge-methode te gebruiken om de nauwkeurigheid van de randdetectie te verhogen, hoewel zij een hoger resourceverbruik rapporteerden voor de voorgestelde methodologie. Navinkumar et al. maken gebruik van een techniek om de complexe wiskundige bewerkingen van vermenigvuldiging en vierkantswortel, die betrokken zijn bij de traditionele Sobel-randdetectie, te verminderen, waardoor onboard resources worden bespaard en de snelheid wordt verbeterd9. De auteurs17 hebben gedocumenteerd hoe het Sobel Edge Detection-algoritme kan worden gebruikt om rijstroken te identificeren in Advanced Driver Assistance Systems. Hun doel was om de detectie te versnellen en tegelijkertijd de verwerkingstijd te verkorten. Over het algemeen werd het gebruik van randdetectie gesuggereerd als een betrouwbare methode voor de extractie van het regio van interesse in de toekomst, wat zeer nuttig kan zijn in diverse toepassingen waarbij het benodigde gebied van een afbeelding moet worden geëxtraheerd terwijl alle overige onnodige informatie wordt genegeerd. De collectief gerapporteerde uitdagingen omvatten een hoger resource- en geheugengebruik, gevoeligheid voor ruis, hoge computationele kosten en beperkte schaalbaarheid voor afbeeldingen met een hogere resolutie4,5,6,11,12,13,21,22,23.

In dit werk wordt de traditionele implementatie van het Sobel-algoritme voor randdetectie uitgevoerd op de Ultra96-V2 FPGA-board, voor verschillende beeldresoluties variërend van een lage resolutie van 256 × 256 tot een volledige high-definition resolutie van 2560 × 1440. De Ultra96-V2 is een board dat de programmeerbaarheid van FPGA combineert met krachtige Arm-verwerking (Cortex-A53/R5) voor hoogwaardige toepassingen. Dit board werd voor het eerst uitgebracht in 2018 en maakt gebruik van de 16 nm FinFET-technologienode18.

Om reproduceerbaarheid te waarborgen, werd de volledige implementatie uitgevoerd met een standaard toolchain bestaande uit Vivado HLS 2019.2 voor High-Level Synthesis (HLS) en Vivado 2019.2 voor place-and-route, evenals het PYNQ-image uitgebracht door de Ultra96-V2-bronnen. De HLS-code werd gebruikt om de Sobel-randdetectie IP (Intellectual Property) af te leiden, die vervolgens werd geëxporteerd en geïntegreerd in de Vivado-designsuite. De IP werd geïmplementeerd op het PL-gedeelte (Programmable Logic), terwijl het PS-gedeelte (Processing System) van de FPGA verantwoordelijk was voor de datatransfer en de controlemechanismen. De koppeling van de PS met de PL werd gerealiseerd via het AXI-protocol. Alle gerapporteerde metrieken — frequentie, resourcebenutting en vermogen — zijn afkomstig uit rapporten na implementatie en niet uit HLS-schattingen. De implementatie-instellingen bleven consistent en alleen de beeldresoluties werden gedurende de experimenten gewijzigd.

De belangrijkste prestaties van dit werk liggen in het lage stroomverbruik, de geringe benutting van resources en de hoge snelheid. De resultaten tonen aan dat minder dan 20% van de onboard resources wordt benut (18% Look Up Tables (LUTs), 11% Flip Flops (FF), 3% geheugen en 10% DSP) voor de hoge-resolutiebeelden; dit wijst op een enorme beschikbaarheid voor het integreren van veel meer verwerking op deze beelden, wat verwacht wordt in elk computer vision-systeem, aangezien randdetectie slechts een tussenstap is. Daarnaast is het vermogensverlies bijna 2 W en wordt de maximale werkfrequentie gerapporteerd als 144 MHz. De resultaten laten zien dat het schalen van de beeldgrootte met bijna 56 keer de benutting van resources met slechts bijna 20% verhoogt. De snelheid en het vermogensverlies nemen eveneens met slechts bijna 20% af. Deze analyse onderzoekt het algoritme vanuit een ander perspectief, wat niet is gerapporteerd in eerdere literatuur, en geeft hiermee aan dat de implementatie zeer geschikt is voor real-time toepassingen zonder dat de beelden beperkt hoeven te worden tot kleine formaten/lagere resoluties, wat ongetwijfeld de hoeveelheid informatie vermindert die vereist is in de daaropvolgende fasen na de randdetectie.

De nieuwheid van dit werk ligt niet in het algoritme zelf, maar richt zich op het beoordelen van de prestaties van het traditionele Sobel-algoritme voor randdetectie over verschillende beeldresoluties op moderne heterogene FPGA-architecturen, waarbij gebruik wordt gemaakt van de voordelen van HLS-gebaseerde implementatietechnieken. De belangrijkste bijdragen van dit artikel liggen primair in de toepassing van een hybride methodologie geïmplementeerd op een FPGA, waarbij de werklast effectief wordt verdeeld tussen de PS- en PL-secties van de architectuur om het ontwerp moeiteloos aan te passen aan verschillende resoluties. Een andere bijdrage omvat experimenten om te beoordelen hoe de schaling van resources varieert bij wijzigingen in beeldresoluties, wat helpt bij het begrijpen van de prestaties over verschillende configuraties en voor diverse toepassingen.

Protocol

1. Implementatie van Sobel-randdetectie in de HLS-tool

  1. Open de Vivado HLS 2019.2-tool en maak een project aan. Selecteer de FPGA-board als Ultra96-V2.
  2. Schrijf de high-level language-code in de taal C++ voor Sobel-randdetectie, waarbij de parameter voor de afbeeldingsgrootte gegeneraliseerd en niet vastgelegd is.
    OPMERKING: De breedte en hoogte van de afbeelding zijn niet vastgelegd en zijn als algemene parameter in de code geschreven, zodat deze gemakkelijk gewijzigd kunnen worden bij het variëren van de beeldresolutie zonder dat dit op meerdere plaatsen aangepast hoeft te worden.
  3. Schrijf de testbench-code voor het Sobel-randdetectie-algoritme in C++.
    OPMERKING: De testbench is geschreven om de inputafbeeldingen te leveren waarop de code wordt getest.
  4. Klik op “run C simulation” om de code te simuleren en de functionele correctheid te controleren. Voer een inputafbeelding in de testbench in en controleer vervolgens de gegenereerde output, wat een afbeelding met randen moet zijn.
  5. Klik op “run C synthesis” om de HLS-code te synthetiseren en de IP voor Sobel-randdetectie te exporteren.
    OPMERKING: Het syntheseproces mapt het gecodeerde ontwerp in feite naar hardwarecomponenten en maakt het ontwerp compatibel en gereed voor hardware-implementatie.
  6. Controleer de door de tool gegenereerde rapporten over timing en resourcegebruik en zorg ervoor dat de geschatte tijd niet langer is dan de beoogde tijd.
    OPMERKING: Al deze resultaten van het HLS-platform zijn slechts een schatting; de werkelijke parameters worden pas berekend wanneer het ontwerp op een FPGA wordt geïmplementeerd.
  7. Klik op “export IP” om de IP van de Sobel-randdetectieprocedure te exporteren.
    OPMERKING: Deze IP wordt in de volgende stap gebruikt bij het ontwerpen van het blokdiagram voor FPGA-implementatie in de Vivado-tool.

2. Implementatie van Sobel-edgedetectie op het FPGA-platform Ultra96-V2 met behulp van geëxtraheerde HLS IP

  1. Open de Vivado Design Tool en maak een nieuw project aan. Selecteer de Ultra96-V2 als target board en klik op “Create a new block design”.
  2. Importeer de Sobel edge IP die zojuist vanuit de HLS-tool is geëxporteerd. Voeg de overige benodigde blokken toe om de interfacing tussen het PS- en het PL-gedeelte te voltooien.
    OPMERKING: Het blokschema maakt ook gebruik van andere belangrijke IP-blokken, zoals de Zynq Ultrascale IP, de Smart Connect en de processor reset, enz., om de interface tussen PS en PL te realiseren via het Advanced eXtensible Interface (AXI) protocol.
  3. Klik op “validate design” om het blokschema te valideren. Controleer of er geen ontwerpfouten door de tool worden gemeld. Als er fouten zijn, volg dan de instructies voor correctie en valideer opnieuw.
    OPMERKING: Deze stap garandeert dat er geen ontbrekende verbindingen in het blokschema zijn, maar het verifieert niet de functionele correctheid van het blokontwerp.
  4. Klik op “create the HDL wrapper” om een gegeneraliseerde HDL-code voor het blokontwerp te verkrijgen.
  5. Klik op “run synthesis” om het ontwerp te synthetiseren en te controleren op gemelde fouten. Als er geen fouten worden gevonden, rapporteert de tool een succesvolle synthese. Ga na een succesvolle synthese naar de syntheserapporten voor timing om te controleren op timing-schendingen.
  6. Om te controleren op timing-schendingen, moet worden vastgesteld dat geen van de timinggegevens in rode tekst worden weergegeven, aangezien dit betekent dat de gebruikte tijd hoger is dan de toegewezen doelwaarde en er dus sprake is van schendingen.
  7. Klik op “run implementation” om het ontwerp te implementeren en het rapport voor timing, vermogen en resourcegebruik te beoordelen.
  8. Genereer het “.bit”-bestand om de FPGA-board te programmeren.
    OPMERKING: Het blokschema voor Sobel edge detectie op de Ultra96-V2 wordt weergegeven in Figuur 3. Zoals reeds vermeld, is het blokschema in essentie vereist om een interface te realiseren tussen het PS- en het PL-gedeelte van de FPGA-board.

3. Het programmeren van de FPGA-board

  1. Om de SD-kaart voor te bereiden, downloadt u het PYNQ-imagebestand (.img) voor de Ultra96-V2-board16 en installeert u het gedownloade bestand op de SD-kaart.
  2. Zet de board aan in de SD-kaart boot-modus door de schakelaarposities te selecteren volgens de Ultra96-V2 referentiegids16.
  3. Bezoek de URL http://192.168.3.1 en voer, wanneer daarom wordt gevraagd, zowel voor de gebruikersnaam als het wachtwoord “xilinx” in.
    OPMERKING: Het gebruik van de Google Chrome-browser heeft de voorkeur om technische incompatibiliteiten te voorkomen.
  4. Open het Jupyter-platform en schrijf Python-code voor het PS-gedeelte om de invoerbeelden of video's te lezen en het gelezen beeld naar het PL-gedeelte te sturen voor verwerking.
  5. Schrijf code voor de taak om de verwerkte beelden van PL terug naar PS te schrijven en het resultaat weer te geven.
    OPMERKING: Voor het weergeven van de resultaten op Ultra96-V2 wordt het PYNQ-platform gebruikt, waardoor het veel eenvoudiger is om de uitvoerbeelden weer te geven door simpelweg gebruik te maken van de Python-codes en de OpenCV-bibliotheken.
    Afbeelding 4 toont de stappen voor de Ultra96-V2-benadering zoals gedemonstreerd in deze sectie en de verkregen resultaten.

Resultaten

In deze sectie worden de resultaten besproken die zijn behaald bij het ontwerp van de Sobel-randdetectie op de Ultra96-V2. Figuur 5 Hieronder worden de input- en output-afbeeldingen getoond die zijn verkregen via HLS-simulatie. De gebruikte afbeeldingen zijn standaardafbeeldingen met een afmeting van 512 × 512. Deze resultaten tonen aan dat de HLS-code die is geschreven voor Sobel-randdetectie functioneel correct is. De randen moeten duidelijk zichtbaar zijn in de resulterende afbeeldingen.

Tabel 3 toont de synthesierapporten en de gegenereerde parameters voor timing en resourcegebruik op de Ultra96-V2 met het FPGA-onderdeel xczu3eg-sbva484-1-e. Het rapport bevat informatie met betrekking tot de timing die illustreert of het ontwerp voldoet aan de door de gebruiker gespecificeerde timingbeperkingen. Volgens de timing-samenvatting is de geschatte tijd van 8,544 ns minder dan de doeltijd van 10 ns, wat duidelijk aangeeft dat het ontwerp voldoet aan de gebruikersbeperkingen.

HLS-tools genereren ook een geschat resourcegebruik, wat de ontwerper een inschatting geeft van het mogelijke gebruik van de onboard-resources. De werkelijke gebruiksparameters kunnen pas worden gegenereerd na de feitelijke hardware-realisatie. Hoewel er grote en uiteenlopende categorieën resources op een FPGA zijn, zijn de meest gebruikte hardwarecomponenten LUTs (Look up Tables), FFs (Flip Flops), DSP Slices (Digital Signal Processing Slices) en geheugen.

Tabel 3 toont ook de werkelijke timing en het verbruik van resources wanneer de Sobel-edgedetectie wordt ontwikkeld op de Ultra96-V2 voor beelden met een hoge resolutie. De timinganalyse laat zien dat de worst negative slack 3,102 ns is, wat betekent dat er voldoende tijd is voor verwerking en dat de kloksnelheid van 144 MHz hiermee wordt behaald. De behaalde werkingsfrequentie van 144 MHz bij een resolutie van 1920 × 1080 komt overeen met een doorvoersnelheid van ongeveer 299 MP/s, wat de vereiste 62 MP/s voor real-time full HD-videoverwerking bij 30 fps overstijgt. Om de schaling van resources en het effect op de parameters te begrijpen bij de overgang van beelden met een lage resolutie naar beelden met een hoge resolutie, is de tabel opgesteld op basis van experimentele resultaten waarbij dezelfde stappen zijn herhaald voor verschillende resoluties.

Tabel 4 vermeldt de beeldgrootte en daarmee het totale aantal pixels, gevolgd door de werkfrequentie, het vermogen en het resourcegebruik in termen van LUTs, FFs, BRAM en DSP. Er kan duidelijk worden vastgesteld dat bij de overgang van de kleinste overwogen resolutie van 256 × 256 naar de hoogste van 2560 × 1440, wat een toename in het aantal pixels van bijna 56-voudig inhoudt, de parameters slechts met 20% veranderen. Dit duidt duidelijk op een sublineaire resource-schaling waarbij de te verwerken gegevens met vele malen toenemen, maar de verslechtering van de prestatiegegevens zeer minimaal is, waardoor het geschikt is voor real-time implementatie.

De resultaten gepresenteerd in Tabel 4 tonen duidelijk aan dat de toepassing van Sobel-randdetectie op de Ultra96-V2 aanzienlijke voordelen biedt voor taken die aanpasbare resoluties vereisen, aangezien de prestatiemetrieken geoptimaliseerd blijven en geen aanzienlijke veranderingen vertonen wanneer de beeldgrootte wordt bijgewerkt van een lage naar een hoge resolutie. Dit succes wordt toegeschreven aan de hybride implementatiebenadering die voorkomt dat de FPGA-logica wordt overbelast met beeldgegevens, waardoor de processor van de board de aanzienlijke beeldwerkbelasting kan beheren. De processor geeft de beeldgegevens simpelweg door aan het FPGA-logische component, waarbij elke toename in resourceschaling of afname in de maximale frequentie uitsluitend het resultaat is van het grote datavolume dat meer verwerking vereist. Er kan dus worden gesteld dat de in dit artikel gevolgde benadering een sublineaire resourceschaling bereikt, ondanks dat het aantal beeldpixels met bijna 56-voudig toeneemt.

Het geïmplementeerde werk wordt ook vergeleken met bestaande ontwerpen om de vergelijking tussen de prestatiemetrieken, zoals beeldresolutie, klokfrequentie, energieverbruik en resourcebenutting, te begrijpen. Tabel 5 toont de vergelijking met de meest recente literatuur.

Zoals duidelijk wordt geïllustreerd in Tabel 5, heeft het in dit artikel geïmplementeerde werk passende prestatiemetrieken, maar de bestaande oplossingen uit eerder gerapporteerde implementaties9,10 vertonen betere parameters. Wanneer echter een algemene vergelijking wordt gemaakt, kan worden opgemerkt dat beide eerdere werken9,10 gebruikmaakten van een lage beeldresolutie en verouderde FPGA-platforms, terwijl de in dit artikel beschreven resultaten betrekking hebben op adaptieve beeldresoluties, waarbij de overwogen beeldgrootte varieert van de laagste resolutie van 256 × 256 tot een high-definition resolutie tot 2560 × 1440. De resultaten geven aan dat de geïmplementeerde Sobel edge-detectieaanpak, die gebruikmaakt van de mogelijkheden van zowel de processor als het logische deel van de heterogene FPGA-board, Ultra96-V2, nuttig blijkt te zijn bij het bereiken van sublineaire resourceschaling naarmate het aantal pixels bijna 56 keer toeneemt, terwijl het resourcegebruik slechts met 20% stijgt en de afname in vermogen en snelheid ook minder dan 20% bedraagt. Voor de laagste resolutie wordt slechts 5% van de resources gebruikt en is het maximale gebruik slechts 23%, waardoor er een grote beschikbaarheid overblijft voor verdere verwerking. Daarom kan duidelijk worden gesteld dat een vergelijking moeilijk is vanwege het verschil in beeldresoluties, maar als het in dit werk geïmplementeerde ontwerp wordt geanalyseerd, is de klokfrequentie 136 MHz, het stroomverbruik 2 W en het resourcegebruik minder dan 23% van de totale onboard resources. Het is belangrijk te vermelden dat de implementaties in eerdere werken9,10 superieure individuele prestatiemetrieken vertonen. Het is echter belangrijk op te merken dat beide werken hun ontwerpen evalueren bij een enkele vaste beeldresolutie, terwijl het voorgestelde werk wordt geëvalueerd over een breed scala aan resoluties van 256 × 256 tot 2560 × 1440. De ontwerpdoelstellingen zijn daarom fundamenteel verschillend, aangezien de werken9,10 optimaliseren voor piekprestaties bij één resolutie, terwijl de voorgestelde architectuur prioriteit geeft aan adaptiviteit en sublineaire resourceschaling over meerdere resoluties. Dit maakt het geïmplementeerde ontwerp geschikt voor toepassingen die edge-detectie vereisen.

Er kan dus worden gesteld dat, in dit werk, sublineaire resourceschaling wordt gedefinieerd als de conditie waarbij de procentuele toename in resourcegebruik aanzienlijk lager is dan de procentuele toename in het aantal pixels. Wanneer de resolutie toeneemt van 256 × 256 naar 2560 × 1440, stijgt het aantal pixels met ongeveer 5600%, terwijl het onboard resourcegebruik met minder dan 20% toeneemt. Deze disproportioneel lage groeisnelheid van de resources, die een direct gevolg is van de PS-PL heterogene partitioneringsstrategie, bevestigt het sublineaire schalingsgedrag van de voorgestelde architectuur. Hoewel de voorgestelde implementatie sublineaire resourceschaling vertoont over het geteste resolutiebereik, moeten bepaalde beperkingen worden opgemerkt voor een nauwkeurige interpretatie van de resultaten. De werkfrequentie neemt met 18% af van lage naar hoge resolutie, en extrapolatie voorbij 2560 × 1440 kan architecturale aanpassingen vereisen om timing closure te behouden. Daarnaast wordt de overdracht van beeldata beheerd door de ARM-processor, waardoor de transfer-overhead aan de PS-zijde lineair meegroeit met het aantal pixels; dit kan de doorvoersnelheid bij continue videostreamingtoepassingen met een hoge resolutie beperken, meer dan wat de PL-zijde metrieken alleen suggereren.

Diagram van toepassingen van randdetectie: robotica, beeldvorming, augmented reality, automatisering, surveillance.
Figuur 1: Diverse toepassingsgebieden van randdetectie. Illustratie van representatieve toepassingsgebieden waarin randdetectie veelvuldig wordt gebruikt, waaronder computer vision, medische beeldvorming, surveillance, robotica en industriële automatisering. Klik hier om een grotere versie van deze figuur te bekijken.

Beeldbewerking: diagram van Sobel-operator randdetectie met convolutiekernels op een invoerbeeld.
Figuur 2: Beschrijving van de stappen in het Sobel-randdetectiealgoritme. Workflow die het Sobel-randdetectieproces illustreert, inclusief de extractie van een 3 × 3 beeldvenster, convolutie met horizontale en verticale Sobel-kernels en het genereren van het resulterende beeld met randdetectie. Klik hier om een grotere versie van deze figuur te bekijken.

Zynq UltraScale+ blokschema, systeemarchitectuur met weergave van de datastroom en AXI-interconnectcomponenten.
Figuur 3: Geïmplementeerd blokschema voor Sobel-randdetectie op een Ultra96-V2 FPGA-board met gebruik van de interface tussen het PS- (processing system) en PL-gedeelte (programmable logic). Blokschema met de hardwarearchitectuur en de onderlinge verbindingen van het processing system (PS), de programmable logic (PL) en de ondersteunende IP-cores die zijn gebruikt voor de FPGA-implementatie. Klik hier om een grotere versie van deze figuur te bekijken.

PYNQ-imagebrandproces en Vivado-ontwerpstroom; SD-kaartconfiguratie, validatie, bitbestandgeneratie.
Figuur 4: Stappen voor het programmeren van de Ultra96-V2-board voor Sobel-randdetectie met behulp van het PYNQ-platform en het resultaat van de Sobel-randdetectie op een invoerbeeld. Workflow die de programmeringsprocedure voor de Ultra96-V2-board via het PYNQ-platform laat zien en een representatief uitvoerbeeld dat is verkregen na FPGA-implementatie. Klik hier om een grotere versie van deze figuur te bekijken.

Kleur- en randdetectie bij beeldverwerking; vergelijkingsraster van originele en randversterkte beelden.
Figuur 5: Simulatieresultaten voor Sobel-randdetectie op verschillende standaardbeelden met behulp van Vivado HLS (2019.2). Representatieve invoerbeelden en de bijbehorende randgedetecteerde uitvoeren verkregen tijdens de functionele simulatie van het Sobel-randdetectiealgoritme met Vivado HLS 2019.2. Klik hier om een grotere versie van deze figuur te bekijken.

Tabel 1: Evolutie van FPGA-toepassingen in computer vision-onderzoek (2006–2024). Samenvatting van representatieve FPGA-gebaseerde computer vision-toepassingen gerapporteerd tussen 2006 en 2024. Klik hier om deze tabel te downloaden.

Tabel 2: Gerelateerde literatuur voor de implementatie van randdetectie-algoritmen op FPGA (2020-2025). Vergelijking van recente FPGA-gebaseerde implementaties van randdetectie, inclusief platform, methodologie en gerapporteerde prestatiemetrieken. Klik hier om deze tabel te downloaden.

Tabel 3: Implementatie van Sobel-randdetectie op FPGA: geschatte parameters en werkelijke parameters. Geschatte HLS-synthesieresultaten en bijbehorende timing na implementatie en resourcebenutting verkregen voor de FPGA-implementatie. Klik hier om deze tabel te downloaden.

Tabel 4: Middelengebruik en prestatiemetrieken van het geïmplementeerde Sobel-randdetectiealgoritme bij verschillende beeldresoluties. Prestatiemetrieken, werkfrequentie, stroomverbruik en FPGA-middelengebruik van de voorgestelde implementatie bij verschillende beeldresoluties. Klik hier om deze tabel te downloaden.

Tabel 5: Vergelijking van de geïmplementeerde en bestaande Sobel-randdetectie op FPGA. Vergelijking van de voorgestelde FPGA-implementatie met eerder gerapporteerde implementaties van Sobel-randdetectie met behulp van representatieve prestatiemetrieken. Klik hier om deze tabel te downloaden.

Discussie

Dit artikel richt zich op de uitvoering van het Sobel-algoritme voor randdetectie, een essentieel onderdeel in diverse toepassingen binnen meerdere vakgebieden van computer vision en beeldverwerking2,3,4,5,6. De implementatie van de Sobel-randdetectie wordt uitgevoerd met de Vivado HLS-tool, waardoor programmeren in hogere programmeertalen mogelijk is in plaats van het vertrouwen op hardwarebeschrijvende talen. De Vivado HLS-code wordt uitgevoerd op het Ultra96-V2-board. De resultaten na implementatie geven aan dat het gerealiseerde ontwerp beelden met een hoge resolutie ondersteunt en draait op een frequentie van 136 MHz met een stroomverbruik van 2 W en minder dan 20% van de totale on-board resources. Daarnaast tonen de resultaten aan dat de aanpak geschikt is voor adaptieve resolutie van beelden, aangezien verschillende toepassingen kunnen vragen om het gebruik van variërende beeldgroottes en randdetectie gewoonlijk een tussenstap is2,3,4,5,6, die zeer frequent voorkomt in complexe design-pipelines. Bijgevolg kan worden gesteld dat het ontworpen systeem kan worden ingezet in real-time toepassingen die randdetectie vereisen. De grote beschikbaarheid van resources suggereert dat diverse andere bewerkingsstappen kunnen worden geïntegreerd in het ontwikkelde systeem6,7,8,9,10,11,12,13,14,15.

Voor een succesvolle implementatie van de Sobel-edgedetector op de Ultra96-V2 board is zorgvuldige aandacht voor verschillende praktische aspecten vereist. Het PYNQ-framework vereenvoudigt de PS-PL-interactie aanzienlijk door hardwarebesturing via Python-bibliotheken mogelijk te maken, waardoor de inspanning voor softwareontwikkeling wordt verminderd. De juiste PYNQ-image moet echter van de officiële bron worden gedownload en de SD-kaart moet vóór implementatie correct worden geconfigureerd. Functionele verificatie van het HLS-ontwerp met uitgebreide testbenches is essentieel vóór de IP-export, aangezien vroege validatie helpt bij het identificeren van algoritmische en interfacefouten vóór de hardware-implementatie. Tijdens FPGA-implementaties vereist het ontwerp van het blokdiagram tevens veel aandacht van de ontwerper, aangezien het wordt aangeraden de architectuur van de betreffende FPGA-hardware goed te begrijpen om zo de juiste blokken te selecteren en de verbindingen te maken. Het wordt afgeraden om de verbindingen volledig te automatiseren, omdat dit kan leiden tot ontbrekende verbindingen of verbindingen die niet geschikt zijn voor het te volgen ontwerp. In deze fase van de PS-PL-interface kunnen fouten, zoals incorrecte AXI-adresmapping, mismatches in het klokdomein of onjuist geconfigureerde DMA-transfers, een succesvolle communicatie tussen de processor en de programmeerbare logica in de weg staan. Deze problemen kunnen worden geïdentificeerd met de ontwerpvalidatietools van Vivado en kunnen worden opgelost door adrestoewijzingen, klokconfiguraties, interruptverbindingen en DMA-instellingen te verifiëren vóór de generatie van de bitstream. Tijdens de FPGA-implementatie kunnen timing-schendingen optreden door lange combinatorische paden of inadequate pipelining. Het verhogen van het aantal pipeline-fasen, het optimaliseren van lusstructuren of het waar mogelijk versoepelen van timingbeperkingen kan helpen bij het bereiken van timing closure.

Hoewel dit werk de voorgestelde PS-PL partitioneringsarchitectuur specifiek valideert voor Sobel-edgedetectie, is de architecturale benadering inherent generaliseerbaar. Elk algoritme dat kan worden uitgedrukt als een sliding window convolutie—waaronder Prewitt, Roberts, Laplacian of Gaussian, of de gradiëntfase van Canny—kan met een vergelijkbare aanpak worden geïmplementeerd, waarbij de wijzigingen in het HLS-ontwerp hoofdzakelijk beperkt blijven tot de kernels3,4,5,6. Er zijn bepaalde beperkingen aan het voorgestelde werk. Een van de beperkingen is de vertraging door datatransfer tussen het PS- en het PL-gedeelte van de FPGA, wat de totale executietijd van het algoritme beïnvloedt. Bovendien is de bevinding over de sublineaire schaling specifiek voor de heterogene Ultra96-V2 architectuur16 en is deze mogelijk niet direct van toepassing op homogene FPGA-platforms die geen dedicated processorcore hebben.

De toekomstige reikwijdte omvat verdere verbetering van het ontwerp met bepaalde optimalisaties die de snelheid kunnen verhogen en het vermogensverbruik verder kunnen verminderen. Daarnaast is het aanpassen van de implementatie naar real-time scenario's een ander potentieel aspect om in de toekomst in overweging te nemen.

Openbaarmakingen

De auteurs verklaren dat er geen belangenverstrengeling is. Er zijn geen tools voor kunstmatige intelligentie (AI) gebruikt bij de voorbereiding van dit manuscript.

Dankbetuigingen

De auteurs hebben geen erkenningen te vermelden. Dit onderzoek heeft geen externe financiering ontvangen.

Materialen

Lijst van materialen gebruikt in dit artikel
NaamBedrijfCatalogusnummerOpmerkingen
Ultra96-V2 FPGA Board Xilinx Geïntroduceerd in 2018Hardware-implementatieplatform gebruikt voor de implementatie van het voetgangersdetectie-algoritme
Vivado HLS AMD2019.2High Level Synthesis-tool gebruikt voor het high-level programmeren van de voetgangersdetectiecode in het artikel om de Intellectual Property (IP) te exporteren
Vivado AMD2019.2FPGA-programmeertool gebruikt voor het programmeren van het Ultra 96 v2 FPGA-board met het Sobel-randdetectie-algoritme 

Referenties

  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/

Herprints en machtigingen

Trefwoorden

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection