Wykrywanie krawędzi stało się kluczowym elementem niemal wszystkich technik komputerowego rozpoznawania obrazu wykorzystywanych obecnie w różnych dziedzinach zastosowań1. Wykrywanie krawędzi jest etapem ekstrakcji cech i odpowiada za wydobywanie z obrazów informacyjnych i charakterystycznych szczegółów, które mogą być zastosowane w szerokim zakresie scenariuszy2. Krawędzie w obrazie oznaczają obszary, w których następuje gwałtowna zmiana intensywności; w związku z tym dostarczają one ważnych i charakterystycznych informacji o tym obrazie. Proces ten ułatwia eliminację niepotrzebnych i nieistotnych szczegółów, zachowując jedynie kluczowe i unikalne elementy, które mogą być dalej przetwarzane w konkretnej aplikacji.
Znaczenie detekcji krawędzi podkreśla jej zastosowanie w różnych zadaniach, w tym w segmentacji obrazu, detekcji i rozpoznawaniu obiektów, ekstrakcji cech, ulepszaniu obrazu, identyfikacji obiektów, obrazowaniu medycznym, nadzorze, automatyce przemysłowej, autonomicznym prowadzeniu pojazdów, rzeczywistości rozszerzonej oraz robotyce2,3,4,5,6, co przedstawiono na Rysunku 1.
Istnieje wiele metod detekcji krawędzi, w tym Sobela, Prewitta, Robertsa, Canny'ego i inne. Wśród tych technik detekcja krawędzi Sobela wyróżnia się ze względu na prostotę zastosowania, minimalną złożoność implementacji oraz wysoką precyzję wykrywania krawędzi3,4,5,6. Gradienty obrazu są wyznaczane przez algorytm Sobela zarówno w kierunku poziomym, jak i pionowym, z wykorzystaniem odpowiednio kerneli Gx i Gy, jak pokazano poniżej2,4.
Gx podkreśla krawędzie w × kierunku, a Gy podkreśla krawędzie w kierunku y12,13Po połączeniu w pełni definiują one wszystkie krawędzie w obrazie.6Do zastosowania detekcji krawędzi Sobela w obrazie wykorzystuje się proces splotu z jądrem oraz okno przesuwne. Z obrazu wycinane jest po kolei okno o wymiarach np. 3 na 3 piksele, które następnie poddawane jest splotowi z macierzą filtra w celu uzyskania nowej wartości piksela centralnego. W ten sposób przetwarzany jest cały obraz. W detekcji krawędzi Sobela stosuje się dwa takie jądra: jedno do wyodrębniania krawędzi w kierunku x, a drugie w kierunku y. Aby uzyskać wszystkie krawędzie, oba te wyniki są następnie łączone. Detekcja krawędzi Sobela daje dokładne i wiarygodne wyniki, które można dodatkowo ulepszyć za pomocą wstępnego przetwarzania.4,5,15Pełny proces detekcji krawędzi Sobela został omówiony w Rysunek 2.
Chociaż cała dostępna literatura wnosi istotny wkład w dziedzinę detekcji krawędzi, większość raportowanych badań skupiała się na niskich rozdzielczościach obrazu, podczas gdy praca przedstawiona w niniejszym artykule obejmuje różne rozdzielczości obrazów, od niskiej (256 × 256) do pełnej rozdzielczości wysokiej definicji (HD) (2560 × 1440). W związku z tym zbadanie implementacji sprzętowej algorytmu detekcji krawędzi Sobela dla różnych rozdzielczości obrazów jest kluczowe dla zrozumienia wydajności implementacji w scenariuszach czasu rzeczywistego z zróżnicowanymi rozdzielczościami obrazów. Programowalne macierze bramek (FPGA) uznano za odpowiednią platformę do implementacji sprzętowych ze względu na przydatność w szybkim opracowywaniu prototypów oraz takie zalety jak rekonfigurowalność, która umożliwia łatwe modyfikacje projektu bez konieczności zmiany całej konfiguracji sprzętowej6,7,8,9,10,11,12,13. Ponadto FPGA oferują potencjał przetwarzania równoległego i potokowego; po zoptymalizowaniu wskaźników wydajności i walidacji platformy projekt może przejść do rzeczywistej produkcji wyspecjalizowanych układów scalonych (ASIC)14,15. Inną ważną cechą FPGA jest ich rekonfigurowalność, która pozwala projektantom na wprowadzanie zmian w konstrukcji produktu w dowolnym momencie bez konieczności wymiany jakiegokolwiek sprzętu. Wystarczy przeprogramować układ, co wymaga niewielkiej ilości czasu i wysiłku, pod warunkiem, że projektant biegle posługuje się językami opisu sprzętu, takimi jak VHDL/Verilog4,6,13,16,17. W analizie implementacji FPGA głównymi rozważanymi parametrami są prędkość (maksymalna częstotliwość), wykorzystanie zasobów oraz efektywność energetyczna. Tabela 1 przedstawia rosnącą liczbę publikacji w dziedzinie FPGA i pokazuje, jak ewoluowały publikacje dotyczące FPGA w okresie od 2006 do 2024 roku. Wyraźnie wskazuje ona, że domena badań nad FPGA przeniosła się obecnie w stronę aplikacji czasu rzeczywistego, rozszerzonej rzeczywistości, obliczeń krawędziowych (edge computing) oraz innych zaawansowanych zastosowań13,14,15,16,17,18,19,20,21,22,23.
Tabela 2 przedstawia prace opisane w literaturze przedmiotu dotyczące implementacji detekcji krawędzi Sobela na układach FPGA w latach 2020–2025. Tabela 2 wymienia wykorzystane płytki FPGA, zaimplementowane algorytmy, metodologię projektowania, wyniki, metryki, obszary zastosowań oraz wyzwania opisane w każdym z przywołanych artykułów.
Autorzy4 zalecili zastosowanie 8-kierunkowej metody Sobela w celu zwiększenia dokładności detekcji krawędzi, jednak zgłosili większe zużycie zasobów w przypadku proponowanej metodologii. Navinkumar i wsp. wykorzystują technikę redukującą złożone operacje matematyczne mnożenia i pierwiastkowania, które występują w tradycyjnej detekcji krawędzi Sobela, co pozwala oszczędzać zasoby pokładowe i zwiększyć prędkość działania9. Autorzy17 opisali zastosowanie algorytmu detekcji krawędzi Sobela do identyfikacji pasów ruchu w zaawansowanych systemach wspomagania kierowcy. Ich celem było przyspieszenie detekcji przy jednoczesnym skróceniu czasu przetwarzania. Ogólnie zasugerowano, że wykorzystanie detekcji krawędzi będzie w przyszłości niezawodną metodą ekstrakcji obszaru zainteresowania, co może być bardzo pomocne w wielu zastosowaniach, w których wymagane jest wyodrębnienie potrzebnego obszaru obrazu przy jednoczesnym pominięciu wszelkich zbędnych informacji. Wspólnie zgłoszone wyzwania obejmowały wyższe wykorzystanie zasobów i pamięci, podatność na szum, wysoki koszt obliczeniowy oraz ograniczoną skalowalność dla obrazów o wyższej rozdzielczości4,5,6,11,12,13,21,22,23.
W niniejszej pracy zaimplementowano tradycyjny algorytm detekcji krawędzi Sobela na płycie FPGA Ultra96-V2 dla różnych rozdzielczości obrazu, od niskiej rozdzielczości 256 × 256 do pełnej rozdzielczości high-definition 2560 × 1440. Ultra96-V2 to płyta łącząca możliwości programowania FPGA z wydajnym przetwarzaniem Arm (Cortex-A53/R5) dla aplikacji wysokowydajnych. Płyta ta została wprowadzona do sprzedaży w 2018 roku i wykorzystuje węzeł technologiczny FinFET 16 nm18.
Aby zapewnić powtarzalność, cała implementacja została przeprowadzona przy użyciu standardowego zestawu narzędzi składającego się z Vivado HLS 2019.2 do syntezy wysokiego poziomu (HLS) oraz Vivado 2019.2 do rozmieszczenia i rutowania, a także obrazu PYNQ udostępnionego w zasobach Ultra96-V2. Kod HLS został wykorzystany do opracowania IP (własności intelektualnej) detekcji krawędzi Sobela, która została wyeksportowana i zintegrowana z zestawem projektowym Vivado. IP zostało zaimplementowane w części PL (logiki programowalnej), natomiast część PS (systemu przetwarzania) FPGA odpowiadała za mechanizmy kontrolne i transfer danych. Interfejs między PS a PL został zrealizowany za pomocą protokołu AXI. Wszystkie raportowane metryki — częstotliwość, wykorzystanie zasobów i moc — pochodzą z raportów po implementacji, a nie z szacunków HLS. Ustawienia implementacji pozostały spójne, a w trakcie eksperymentów zmieniano jedynie rozdzielczości obrazów.
Kluczowe osiągnięcia niniejszej pracy obejmują niski pobór mocy, niskie wykorzystanie zasobów oraz wysoką prędkość działania. Wyniki wskazują na wykorzystanie mniej niż 20% zasobów pokładowych (18% tablic Look Up Tables (LUTs), 11% przerzutników Flip Flops (FF), 3% pamięci oraz 10% DSP) dla obrazów o wysokiej rozdzielczości, co wskazuje na ogromne możliwości zintegrowania znacznie większej ilości operacji przetwarzania tych obrazów, czego oczekuje się w każdym systemie wizyjnym, gdyż detekcja krawędzi jest jedynie etapem pośrednim. Ponadto rozpraszanie mocy wynosi prawie 2 W, a maksymalna częstotliwość pracy została określona na 144 MHz. Wyniki pokazują, że zwiększenie rozmiaru obrazów prawie 56-krotnie zwiększa wykorzystanie zasobów jedynie o niemal 20%. Prędkość i rozpraszanie mocy uległy również pogorszeniu jedynie o niemal 20%. Analiza ta bada algorytm z innej perspektywy, która nie była opisana w poprzedniej literaturze, co wskazuje, że implementacja ta jest dobrze dostosowana do aplikacji czasu rzeczywistego i nie wymaga ograniczania obrazów do małych rozmiarów lub niskiej rozdzielczości, co z pewnością obniżałoby ilość informacji niezbędnych na kolejnych etapach po detekcji krawędzi.
Nowatorstwo niniejszej pracy nie polega na samym algorytmie, lecz skupia się na ocenie wydajności tradycyjnego algorytmu detekcji krawędzi Sobela przy różnych rozdzielczościach obrazu na nowoczesnych heterogenicznych architekturach FPGA, wykorzystując zalety technik implementacji opartych na HLS. Kluczowy wkład tej pracy polega przede wszystkim na zastosowaniu hybrydowej metodologii zaimplementowanej na FPGA, która efektywnie rozdziela obciążenie między sekcjami PS i PL architektury, co pozwala projektowi na bezproblemowe dostosowanie się do różnych rozdzielczości. Kolejnym wkładem są eksperymenty mające na celu ocenę, w jaki sposób skalowanie zasobów zmienia się wraz ze zmianami rozdzielczości obrazu, co pomaga w zrozumieniu wydajności w różnych konfiguracjach i dla różnorodnych zastosowań.