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.