Artykuł metodologiczny

Rozdzielczo-adaptacyjna architektura sprzętowa do detekcji krawędzi Sobela w czasie rzeczywistym, zapewniająca podliniowe skalowanie zasobów

17 wyświetleń

DOI:

10.3791/71589

28 sierpnia 2026

W tym artykule

Podsumowanie

Niniejsza praca przedstawia implementację algorytmu detekcji krawędzi Sobela opartą na układzie FPGA na heterogenicznej platformie Ultra96-V2, oceniając wykorzystanie zasobów, pobór mocy oraz prędkość dla rozdzielczości obrazów od 256 × 256 do 2560 × 1440. Zaproponowana architektura wykazuje podliniowe skalowanie zasobów w zastosowaniach przetwarzania obrazu w czasie rzeczywistym.

Streszczenie

Detekcja krawędzi jest kluczowym obszarem w wizji komputerowej i stała się integralną częścią wielu dziedzin aplikacyjnych. Detekcja krawędzi umożliwia identyfikację krawędzi, które są krytycznymi cechami obrazów i reprezentują istotne atrybuty pomagające w wyodrębnianiu kluczowych i rozróżniających informacji z obrazów. Implementacja sprzętowa detekcji krawędzi musi być szybka, wykorzystywać minimalne zasoby, pobierać niewielką ilość energii i być dostosowalna do różnych rozdzielczości obrazu. Niniejsza praca implementuje detekcję krawędzi Sobela dla adaptacyjnej rozdzielczości obrazu, od obrazów o niskiej rozdzielczości do pełnego formatu high-definition, wykorzystując nowoczesną heterogeniczną platformę FPGA (Field Programmable Gate Array) Ultra96-V2. Wyniki wykazują, że dla obrazów o niskiej rozdzielczości wykorzystywane jest jedynie 5% zasobów pokładowych FPGA, w tym tablice LUT (Look up Tables), przerzutniki FF (Flip Flops), procesory DSP (Digital Signal Processor) oraz pamięć blokowa BRAM (Block Memory), natomiast dla obrazów o wysokiej rozdzielczości zużycie zasobów pokładowych wynosi około 23%. Świadczy to o tym, że wzrost wykorzystania zasobów przy przejściu z obrazów o niskiej rozdzielczości na obrazy o wysokiej rozdzielczości wynosi mniej niż 20%. Dodatkowo, rozproszenie mocy wynosi około 2 W dla najwyższej rozdzielczości, a maksymalna częstotliwość pracy została odnotowana na poziomie 136 MHz dla wysokiej rozdzielczości i 166 MHz dla niskiej rozdzielczości obrazów, co wykazuje spadek częstotliwości o zaledwie 18%. Zaproponowana architektura osiąga podliniowe skalowanie zasobów, z wzrostem wykorzystania zasobów o mniej niż 20% oraz spadkiem prędkości i mocy o mniej niż 20% przy 56-krotnym wzroście liczby pikseli, wykorzystując zalety nowoczesnej heterogenicznej architektury FPGA. W konsekwencji, zdolność adaptacji rozdzielczości w połączeniu z niskim skalowaniem zasobów sprawia, że zaproponowany projekt jest szczególnie odpowiedni dla aplikacji detekcji krawędzi w czasie rzeczywistym, wymagających wysokiej jakości przetwarzania obrazu.

Wprowadzenie

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ń.

Protokół

1. Implementacja detekcji krawędzi Sobela w narzędziu HLS

  1. Uruchom narzędzie Vivado HLS 2019.2 i utwórz projekt. Jako płytkę FPGA wybierz Ultra96-V2.
  2. Napisz kod w języku wysokiego poziomu C++ dla detekcji krawędzi Sobela, przyjmując parametry rozmiaru obrazu jako zmienne, a nie stałe.
    UWAGA: Szerokość i wysokość obrazu nie są stałe i są zapisane w kodzie jako ogólne parametry, aby można było je łatwo zmieniać przy różnej rozdzielczości obrazu bez konieczności wprowadzania poprawek w wielu miejscach.
  3. Napisz w języku C++ kod test-bencha dla algorytmu detekcji krawędzi Sobela.
    UWAGA: Test-bench jest napisany w celu dostarczenia obrazów wejściowych, na których testowany jest kod.
  4. Kliknij „run C simulation”, aby zasymulować kod i sprawdzić poprawność funkcjonalną. Przekaż obraz wejściowy do test-bencha, a następnie sprawdź wygenerowany wynik, którym powinien być obraz z zaznaczonymi krawędziami.
  5. Kliknij „run C synthesis”, aby przeprowadzić syntezę kodu HLS i wyeksportować IP dla detekcji krawędzi Sobela.
    UWAGA: Proces syntezy w zasadzie mapuje zakodowany projekt na komponenty sprzętowe, sprawiając, że projekt jest kompatybilny i gotowy do implementacji sprzętowej.
  6. Sprawdź raporty dotyczące czasu odpowiedzi (timing) i wykorzystania zasobów wygenerowane przez narzędzie i upewnij się, że czas szacowany nie przekracza czasu docelowego.
    UWAGA: Wszystkie te wyniki z platformy HLS są jedynie szacunkami, a rzeczywiste parametry są obliczane dopiero w momencie implementacji projektu na układzie FPGA.
  7. Kliknij „export IP”, aby wyeksportować IP procedury detekcji krawędzi Sobela.
    UWAGA: To IP zostanie wykorzystane w następnym kroku podczas projektowania schematu blokowego dla implementacji FPGA w narzędziu Vivado.

2. Implementacja detekcji krawędzi Sobela na platformie FPGA Ultra96-V2 z wykorzystaniem wyekstrahowanego IP HLS

  1. Otwórz narzędzie Vivado Design Tool i utwórz nowy projekt. Wybierz płytkę docelową Ultra96-V2 i kliknij „Create a new block design”.
  2. Zaimportuj blok IP Sobel edge wyeksportowany wcześniej z narzędzia HLS. Dodaj pozostałe niezbędne bloki w celu ukończenia interfejsu pomiędzy częścią PS a PL.
    UWAGA: Schemat blokowy wykorzystuje również inne ważne bloki IP, takie jak Zynq Ultrascale IP, Smart Connect oraz processor reset itd., aby ustanowić interfejs między PS a PL przy użyciu protokołu Advanced eXtensible Interface (AXI).
  3. Kliknij „validate design”, aby zweryfikować projekt blokowy. Upewnij się, że narzędzie nie zgłasza żadnych błędów projektowych. W przypadku wystąpienia błędów postępuj zgodnie z instrukcjami naprawczymi i ponownie zweryfikuj projekt.
    UWAGA: Ten krok zapewnia brak brakujących połączeń w schemacie blokowym, ale nie weryfikuje poprawności funkcjonalnej projektu.
  4. Kliknij „create the HDL wrapper”, aby uzyskać ogólny kod HDL dla projektu blokowego.
  5. Kliknij „run synthesis”, aby przeprowadzić syntezę projektu i sprawdzić ewentualne błędy. Jeśli nie zostaną znalezione żadne błędy, narzędzie zgłosi pomyślną syntezę. Po pomyślnej syntezie przejrzyj raporty czasowe (timing reports), aby sprawdzić występowanie naruszeń czasowych.
  6. Aby sprawdzić naruszenia czasowe, upewnij się, że żadne z parametrów czasowych nie jest wyświetlone na czerwono, ponieważ oznacza to, że czas wykorzystany przekracza czas docelowy, co sygnalizuje naruszenia.
  7. Kliknij „run implementation”, aby zaimplementować projekt i ocenić raporty dotyczące czasu, poboru mocy oraz wykorzystania zasobów.
  8. Wygeneruj plik „.bit”, aby zaprogramować płytkę FPGA.
    UWAGA: Schemat blokowy detekcji krawędzi Sobela na Ultra96-V2 przedstawiono na Rysunku 3. Jak wspomniano wcześniej, schemat blokowy jest zasadniczo wymagany do ustanowienia interfejsu pomiędzy częścią PS a PL płytki FPGA.

3. Programowanie płytki FPGA

  1. Aby przygotować kartę SD, pobierz plik obrazu PYNQ (.img) dla płytki Ultra96-V216 i zainstaluj pobrany plik na karcie SD.
  2. Włącz zasilanie płytki w trybie bootowania z karty SD, ustawiając przełączniki zgodnie z instrukcją obsługi Ultra96-V216.
  3. Przejdź pod adres URL http://192.168.3.1 i po wyświetleniu prośby wpisz nazwę użytkownika oraz hasło, w obu przypadkach „xilinx”.
    UWAGA: Zaleca się korzystanie z przeglądarki Google Chrome, aby uniknąć ewentualnych niezgodności technicznych.
  4. Uzyskaj dostęp do platformy Jupyter i napisz kod w języku Python dla części PS, aby odczytać obrazy wejściowe lub filmy i przesłać odczytany obraz do części PL w celu przetworzenia.
  5. Napisz kod dla zadania zapisywania przetworzonych obrazów z części PL do PS oraz wyświetlania wyniku.
    UWAGA: Do wyświetlania wyników na Ultra96-V2 wykorzystywana jest platforma PYNQ, która znacznie ułatwia wyświetlanie obrazów wyjściowych dzięki zastosowaniu kodu Python oraz bibliotek OpenCV.
    Rysunek 4 przedstawia kroki dla metody z wykorzystaniem Ultra96-V2, zaprezentowane w tej sekcji, oraz uzyskane wyniki.

Wyniki

W tej sekcji omówiono wyniki uzyskane podczas projektowania detekcji krawędzi Sobela na platformie Ultra96-V2. Rycina 5 Poniżej przedstawiono obrazy wejściowe i wyjściowe uzyskane w symulacji HLS. Wykorzystane obrazy są obrazami standardowymi o rozmiarze 512 × 512. Wyniki te wykazują, że kod HLS napisany dla detekcji krawędzi Sobela jest poprawny funkcjonalnie. Krawędzie muszą być wyraźnie widoczne na obrazach wynikowych.

Tabela 3 przedstawia raporty syntezy oraz wygenerowane parametry czasowe i wykorzystania zasobów na płycie Ultra96-V2 z częścią FPGA xczu3eg-sbva484-1-e. Raport zawiera informacje dotyczące czasów przejścia, które obrazują, czy projekt spełnia określone przez użytkownika ograniczenia czasowe. Zgodnie z podsumowaniem czasowym, szacowany czas 8,54 ns jest mniejszy od czasu docelowego 10 ns, co jednoznacznie wskazuje, że projekt spełnia wymagania użytkownika.

Narzędzia HLS generują również szacunkowe wykorzystanie zasobów, co dostarcza projektantowi informacji o możliwym zużyciu zasobów pokładowych. Rzeczywiste parametry wykorzystania mogą zostać wygenerowane dopiero po faktycznej realizacji sprzętowej. Mimo że na układzie FPGA istnieją liczne i zróżnicowane kategorie zasobów, najczęściej wykorzystywanymi elementami sprzętowymi są LUT (Look up Tables), FF (Flip Flopy), bloki DSP (Digital Signal Processing Slices) oraz pamięć.

Tabela 3 przedstawia również rzeczywisty czas wykonania i wykorzystanie zasobów podczas implementacji detekcji krawędzi Sobela na Ultra96-V2 dla obrazów o wysokiej rozdzielczości. Analiza czasowa wykazuje, że największy ujemny luz (worst negative slack) wynosi 3,102 ns, co oznacza, że czas przetwarzania jest wystarczający, a tym samym osiągnięto taktowanie zegara na poziomie 14 MHz. Uzyskana częstotliwość pracy 144 MHz przy rozdzielczości 1920 × 1080 odpowiada przepustowości wynoszącej około 29 MP/s, co przekracza 62 MP/s wymagane do przetwarzania wideo Full HD w czasie rzeczywistym przy 30 fps. Aby zrozumieć skalowanie zasobów i wpływ na parametry podczas przejścia z obrazów o niskiej rozdzielczości na obrazy o wysokiej rozdzielczości, w tabeli przedstawiono wyniki eksperymentalne obejmujące te same kroki powtórzone dla różnych rozdzielczości.

Tabela 4 przedstawia rozmiar obrazu, a co za tym idzie całkowitą liczbę pikseli, a następnie częstotliwość pracy, moc oraz wykorzystanie zasobów w postaci LUT, FF, BRAM i DSP. Wyraźnie widać, że podczas przejścia z najmniejszej rozważanej rozdzielczości 256 × 256 do najwyższej 2560 × 140, co wiąże się z niemal 56-krotnym wzrostem liczby pikseli, parametry te zmieniają się jedynie o 20%. Wskazuje to jednoznacznie na podliniowe skalowanie zasobów, w którym ilość danych do przetworzenia wzrasta wielokrotnie, ale pogorszenie wskaźników wydajności jest minimalne, co czyni rozwiązanie to odpowiednim do wdrożeń w czasie rzeczywistym.

Wyniki przedstawione w Tabeli 4 wyraźnie wykazują, że zastosowanie detekcji krawędzi Sobela na Ultra96-V2 oferuje znaczące zalety w zadaniach wymagających adaptacyjnych rozdzielczości, ponieważ metryki wydajności pozostają zoptymalizowane i nie wykazują istotnych zmian przy aktualizacji rozmiaru obrazu z niskiej na wysoką rozdzielczość. Sukces ten przypisuje się hybrydowemu podejściu do implementacji, które pozwala uniknąć przeciążenia logiki FPGA danymi obrazu, umożliwiając procesorowi płyty zarządzanie znacznym obciążeniem związanym z obrazem. Procesor jedynie przekazuje dane obrazu do komponentu logiki FPGA, a wszelki wzrost skalowania zasobów lub spadek maksymalnej częstotliwości jest wyłącznie wynikiem dużej objętości danych wymagających obsługi. Zatem można stwierdzić, że podejście zastosowane w niniejszej pracy pozwala na podliniowe skalowanie zasobów, mimo że liczba pikseli obrazu zwiększa się prawie 56-krotnie.

Wdrożone rozwiązanie zostało również porównane z istniejącymi projektami w celu zestawienia wskaźników wydajności, takich jak rozdzielczość obrazu, częstotliwość taktowania, pobór mocy oraz wykorzystanie zasobów. Tabela 5 przedstawia porównanie z najnowszymi publikacjami.

Jak wyraźnie wynika z Tabeli 5, rozwiązanie zaimplementowane w niniejszej pracy wykazuje odpowiednie wskaźniki wydajności, jednak istniejące rozwiązania z poprzednich raportowanych implementacji9,10 posiadają lepsze parametry. Jednak przy dokonaniu ogólnego porównania można zauważyć, że obie poprzednie prace9,10 opierały się na niskiej rozdzielczości obrazu i starszych platformach FPGA, natomiast wyniki przedstawione w niniejszej pracy odnoszą się do adaptacyjnych rozdzielczości obrazu, gdzie przyjęty rozmiar obrazu waha się od najniższej rozdzielczości 256 × 256 do rozdzielczości wysokiej definiycji do 2560 × 140. Wyniki wskazują, że zaimplementowane podejście do detekcji krawędzi Sobela, wykorzystujące możliwości zarówno procesora, jak i części logicznej heterogenicznej płytki FPGA Ultra96-V2, okazuje się użyteczne w osiągnięciu podliniowego skalowania zasobów wraz ze wzrostem liczby pikseli niemal 56-krotnie, podczas gdy wykorzystanie zasobów zwiększa się jedynie o 20%, a spadek mocy i prędkości wynosi również mniej niż 20%. Dla najniższej rozdzielczości wykorzystywanych jest tylko 5% zasobów, a maksymalne wykorzystanie wynosi zaledwie 23%, co pozostawia dużą dostępność dla dalszego przetwarzania. Zatem można jasno stwierdzić, że ze względu na różnice w rozdzielczościach obrazów porównanie jest trudne, ale analizując projekt zaimplementowany w tej pracy, częstotliwość taktowania wynosi 136 MHz, pobór mocy to 2 W, a wykorzystanie zasobów stanowi mniej niż 23% całkowitych zasobów płytki. Należy zaznaczyć, że implementacje opisane w poprzednich pracach9,10 wykazują lepsze indywidualne wskaźniki wydajności. Warto jednak zauważyć, że obie prace oceniają swoje projekty przy jednej stałej rozdzielczości obrazu, podczas gdy proponowana praca jest ewaluowana w szerokim zakresie rozdzielczości od 256 × 256 do 2560 × 140. Cele projektowe są zatem zasadniczo różne, ponieważ prace9,10 optymalizują szczytową wydajność dla jednej rozdzielczości, podczas gdy proponowana architektura priorytetyzuje adaptacyjność i podliniowe skalowanie zasobów w wielu rozdzielczościach. Dzięki temu zaimplementowany projekt jest odpowiedni dla aplikacji wymagających detekcji krawędzi.

Można zatem stwierdzić, że w niniejszej pracy podliniowe skalowanie zasobów zdefiniowano jako warunek, w którym procentowy wzrost wykorzystania zasobów jest znacznie niższy niż procentowy wzrost liczby pikseli. Gdy rozdzielczość wzrasta z 256 × 256 do 2560 × 140, liczba pikseli zwiększa się o około 560%, podczas gdy wykorzystanie zasobów pokładowych wzrasta o mniej niż 20%. Ten nieproporcjonalnie niski wskaźnik wzrostu zasobów, będący bezpośrednim wynikiem strategii heterogenicznego partycjonowania PS-PL, potwierdza podliniowe zachowanie skalowania proponowanej architektury. Chociaż proponowana implementacja wykazuje podliniowe skalowanie zasobów w całym badanym zakresie rozdzielczości, dla dokładnej interpretacji wyników należy odnotować pewne ograniczenia. Częstotliwość pracy spada o 18% przy przejściu z niskiej na wysoką rozdzielczość, a ekstrapolacja poza zakres 2560 × 140 może wymagać korekt architektonicznych w celu zachowania zamknięcia czasowego (timing closure). Dodatkowo, ponieważ transfer danych obrazu jest zarządzany przez procesor ARM, narzut transferu po stronie PS rośnie liniowo wraz z liczbą pikseli i może ograniczać przepustowość w aplikacjach ciągłego strumieniowania wideo o wysokiej rozdzielczości w stopniu większym, niż sugerują same parametry po stronie PL.

Schemat zastosowań detekcji krawędzi: robotyka, obrazowanie, rozszerzona rzeczywistość, automatyka, nadzór.
Rysunek 1Różne obszary zastosowań detekcji krawędzi. Ilustracja reprezentatywnych obszarów zastosowań, w których powszechnie wykorzystuje się detekcję krawędzi, w tym komputerowy system wizyjny, obrazowanie medyczne, nadzór, robotykę i automatykę przemysłową. Kliknij tutaj, aby wyświetlić powiększoną wersję tej figury.

Przetwarzanie obrazu: schemat detekcji krawędzi operatorem Sobela z jądrami splotu na obrazie wejściowym.
Rycina 2Opis kroków w algorytmie detekcji krawędzi Sobela. Schemat obrazujący proces detekcji krawędzi metodą Sobela, obejmujący wyodrębnienie okna obrazu o rozmiarze 3 × 3, splot z poziomym i pionowym jądrem Sobela oraz generowanie obrazu wyjściowego z wykrytymi krawędziami. Proszę kliknąć tutaj, aby wyświetlić powiększoną wersję tej figury.

Schemat blokowy Zynq UltraScale+, architektura systemu przedstawiająca przepływ danych i komponenty interkonektów AXI.
Rysunek 3Zaimplementowany schemat blokowy detekcji krawędzi Sobela na płytce FPGA Ultra96-V2 z wykorzystaniem interfejsu pomiędzy częścią PS (system przetwarzania) a PL (logika programowalna). Schemat blokowy przedstawiający architekturę sprzętową i połączenia systemu przetwarzania (PS), logiki programowalnej (PL) oraz wspierających rdzeni IP wykorzystanych w implementacji FPGA. Prosimy o kliknięcie tutaj, aby wyświetlić powiększoną wersję tej figury.

Proces wgrywania obrazu PYNQ i przepływ projektowania w Vivado; konfiguracja karty SD, walidacja, generowanie pliku bitowego.
Rysunek 4Kroki programowania płytki Ultra96-V2 do detekcji krawędzi Sobela przy użyciu platformy PYNQ oraz wynik detekcji krawędzi Sobela na obrazie wejściowym. Schemat prezentujący procedurę programowania płytki Ultra96-V2 przy użyciu platformy PYNQ oraz reprezentatywny obraz wyjściowy uzyskany po implementacji w układzie FPGA. Kliknij tutaj, aby wyświetlić większą wersję tej figury.

Detekcja kolorów i krawędzi w przetwarzaniu obrazu; siatka porównawcza obrazów oryginalnych i obrazów z uwydatnionymi krawędziami.
Rycina 5Wyniki symulacji detekcji krawędzi Sobela na różnych standardowych obrazach z wykorzystaniem Vivado HLS (2019.2). Reprezentatywne obrazy wejściowe oraz odpowiadające im wyniki detekcji krawędzi uzyskane podczas symulacji funkcjonalnej algorytmu detekcji krawędzi Sobela z wykorzystaniem Vivado HLS 2019.2. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.

Tabela 1: Ewolucja zastosowań FPGA w badaniach nad komputerowym rozpoznawaniem obrazów (2006–2024). Podsumowanie reprezentatywnych zastosowań komputerowego rozpoznawania obrazów opartych na FPGA, zgłoszonych w latach 206–2024. Kliknij tutaj, aby pobrać tę tabelę.

Tabela 2: Literatura powiązana z implementacją algorytmów wykrywania krawędzi na układach FPGA (2020-2025). Porównanie niedawnych implementacji wykrywania krawędzi opartych na FPGA, obejmujące platformę, metodologię oraz raportowane mierniki wydajności. Kliknij tutaj, aby pobrać tę tabelę.

Tabela 3: Implementacja detekcji krawędzi Sobela na układzie FPGA: parametry szacowane i rzeczywiste. Szacowane wyniki syntezy HLS oraz odpowiadające im parametry czasowe i wykorzystanie zasobów po implementacji, uzyskane dla implementacji FPGA. Kliknij tutaj, aby pobrać tę tabelę.

Tabela 4: Wykorzystanie zasobów i metryki wydajności zaimplementowanego algorytmu detekcji krawędzi Sobela dla różnych rozdzielczości obrazu. Metryki wydajności, częstotliwość pracy, pobór mocy i wykorzystanie zasobów FPGA proponowanej implementacji dla różnych rozdzielczości obrazu. Proszę kliknąć tutaj, aby pobrać tę tabelę.

Tabela 5: Porównanie zaimplementowanego i istniejących algorytmów detekcji krawędzi Sobela na FPGA.Porównanie proponowanej implementacji FPGA z wcześniej opisanymi implementacjami detekcji krawędzi Sobela z wykorzystaniem reprezentatywnych wskaźników wydajności. Kliknij tutaj, aby pobrać tę tabelę.

Dyskusja

Niniejsza praca koncentruje się na realizacji algorytmu detekcji krawędzi Sobela, który jest kluczowym elementem w wielu zastosowaniach w różnych dziedzinach komputerowego wspomagania wzroku i przetwarzania obrazów2,3,4,5,6. Implementacja detekcji krawędzi Sobela została przeprowadzona przy użyciu narzędzia Vivado HLS, co umożliwiło programowanie w językach wysokiego poziomu zamiast polegania na językach opisu sprzętu. Kod Vivado HLS został uruchomiony na płytce Ultra96-V2. Wyniki po implementacji wskazują, że opracowany projekt obsługuje obrazy o wysokiej rozdzielczości i pracuje z częstotliwością 136 MHz przy poborze mocy 2 W i wykorzystaniu mniej niż 20% całkowitych zasobów płytki. Ponadto wyniki wykazały, że podejście to jest odpowiednie dla adaptacyjnej rozdzielczości obrazów, ponieważ różne zastosowania mogą wymagać użycia zróżnicowanych rozmiarów obrazu, a detekcja krawędzi jest zazwyczaj krokiem pośrednim2,3,4,5,6, który jest bardzo często wykonywany w złożonych potokach przetwarzania. Zatem można stwierdzić, że zaprojektowany system może zostać wdrożony w aplikacjach czasu rzeczywistego wymagających detekcji krawędzi. Duża dostępność zasobów sugeruje, że w opracowanym systemie można zintegrować różne inne etapy przetwarzania6,7,8,9,10,11,12,13,14,15.

Skuteczna implementacja detektora krawędzi Sobela na płytce Ultra96-V2 wymaga uważnego podejścia do kilku praktycznych aspektów. Framework PYNQ znacznie upraszcza interakcję między PS a PL, umożliwiając sterowanie sprzętem za pomocą bibliotek języka Python, co redukuje nakład pracy związany z opracowaniem oprogramowania. Należy jednak pobrać odpowiedni obraz PYNQ z oficjalnego źródła oraz prawidłowo skonfigurować kartę SD przed wdrożeniem. Przed eksportem IP niezbędna jest weryfikacja funkcjonalna projektu HLS z wykorzystaniem kompleksowych środowisk testowych (test benches), ponieważ wczesna walidacja pomaga zidentyfikować błędy algorytmiczne i interfejsowe przed implementacją sprzętową. Podczas implementacji w FPGA projekt schematu blokowego również wymaga ogromnej uwagi projektanta; zaleca się dokładne zrozumienie architektury rozważanego sprzętu FPGA, co pozwoli na wybór odpowiednich bloków i wykonanie właściwych połączeń. Nie zaleca się całkowitej automatyzacji połączeń, ponieważ może to prowadzić do pominięcia istotnych powiązań lub stworzenia połączeń nieodpowiednich dla realizowanego projektu. Na etapie konfiguracji interfejsu PS–PL błędy takie jak nieprawidłowe mapowanie adresów AXI, niezgodności domen zegarowych lub niewłaściwie skonfigurowane transfery DMA mogą uniemożliwić skuteczną komunikację między procesorem a logiką programowalną. Problemy te można zidentyfikować za pomocą narzędzi walidacji projektu w programie Vivado i rozwiązać poprzez weryfikację przypisań adresów, konfiguracji zegarów, połączeń przerwań oraz ustawień DMA przed generowaniem strumienia bitowego (bitstream). Podczas implementacji w FPGA mogą wystąpić naruszenia czasowe spowodowane długimi ścieżkami kombinacyjnymi lub niewystarczającym potokowaniem. Zwiększenie liczby stopni potokowości, optymalizacja struktur pętli lub – w odpowiednich przypadkach – poluzowanie więzów czasowych może pomóc w osiągnięciu domknięcia czasowego (timing closure).

Choć niniejsza praca waliduje proponowaną architekturę partycjonowania PS-PL konkretnie dla detekcji krawędzi Sobela, podejście architektoniczne jest z natury uogólnialne. Każdy algorytm, który można wyrazić jako splot z przesuwanym oknem — w tym Prewitta, Robertsa, Laplasjan Gaussa lub etap gradientu w algorytmie Canny'ego — może zostać zaimplementowany przy użyciu podobnego podejścia, przy czym zmiany w projekcie HLS dotyczą głównie3,4,5,6. Proponowana praca posiada pewne ograniczenia. Jednym z nich jest opóźnienie wynikające z transferu danych między częścią PS a PL układu FPGA, co wpływa na całkowity czas wykonania algorytmu. Ponadto wynik dotyczący skalowania podliniowego jest specyficzny dla heterogenicznej architektury Ultra96-V216 i może nie mieć bezpośredniego zastosowania do homogenicznych platform FPGA pozbawionych dedykowanego rdzenia procesora.

Dalsze prace będą obejmować ulepszanie projektu poprzez optymalizacje, które mogą zwiększyć prędkość i dodatkowo zredukować pobór mocy. Kolejnym potencjalnym aspektem do rozważenia w przyszłości jest dostosowanie implementacji do scenariuszy czasu rzeczywistego.

Oświadczenia

Autorzy oświadczają, że nie występuje konflikt interesów. W przygotowaniu niniejszego manuskryptu nie wykorzystano narzędzi sztucznej inteligencji (AI).

Podziękowania

Autorzy nie mają żadnych podziękowań do przedstawienia. Badanie to nie otrzymało zewnętrznego finansowania.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
Płyta FPGA Ultra96-V2 Xilinx Wprowadzona w 2018Platforma implementacji sprzętowej wykorzystana do wdrożenia algorytmu wykrywania pieszych
Vivado HLS AMD2019.2Narzędzie syntezy wysokopoziomowej (High Level Synthesis) wykorzystane do wysokopoziomowego programowania kodu wykrywania pieszych opisanego w pracy w celu eksportu modułu Intellectual Property (IP)
Vivado AMD2019.2Narzędzie programowania FPGA wykorzystane do zaprogramowania płyty FPGA Ultra 96 v2 algorytmem wykrywania krawędzi Sobela 

Bibliografia

  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/

Przedruki i uprawnienia

Tagi

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection