Sposoby szybkiego budowania i wdrażania adaptowalnych, brzegowych aplikacji wizyjnych przy użyciu gotowej do produkcji platformy

Przez: Stephen Evanczuk

Przekazane przez: Północnoamerykańscy redaktorzy DigiKey

Zastosowanie sztucznej inteligencji (AI) w inteligentnych kamerach brzegowych szybko przyjęło się w coraz szerszej gamie wbudowanych rozwiązań wizyjnych, takich jak widzenie maszynowe, bezpieczeństwo, handel detaliczny i robotyka. Szybkie pojawienie się łatwo dostępnych algorytmów uczenia maszynowego (ML) pomogło zapoczątkować to zainteresowanie sztuczną inteligencją, jednak deweloperzy wciąż mają trudności z dotrzymaniem napiętych harmonogramów projektów, zapewniając jednocześnie wysoką wydajność przy niskim poborze mocy dla rozwiązań brzegowych.

Nawet nowo wdrożone rozwiązania mogą szybko stać się nieoptymalne ze względu na szybko zmieniający się charakter wymagań tych rozwiązań i ciągłe ulepszenia w rozwijających się algorytmach, co jeszcze bardziej komplikuje sprawy.

W niniejszym artykule przedstawiono elastyczne rozwiązanie modułu SOM (system-on-module) firmy Xilinx, który deweloperzy mogą wykorzystać do szybkiego wdrożenia inteligentnych kamer na potrzeby urządzeń brzegowych. Pokazuje on, w jaki sposób można łatwiej dostosować te rozwiązania do zmieniających się potrzeb bez uszczerbku dla kluczowych wymagań dotyczących opóźnień i mocy.

Przyspieszenie realizacji rozwiązań wizyjnych

Moduł SOM Kria K26firmy Xilinx opierający się na specjalnie zbudowanym wieloprocesorowym układzie SoC (MPSoC) Zynq UltraScale+ stanowi solidny wbudowany system przetwarzania zawierający 64-bitowy czterordzeniowy procesor aplikacyjny (APU) ARM Cortex-A53 (APU), 32-bitowy dwurdzeniowy procesor czasu rzeczywistego (RPU) ARM® Cortex®-R5F oraz procesor graficzny 3D ARM Mali-400MP2 (GPU). Moduł SOM łączy MPSoC z czterema gigabajtami 64-bitowej pamięci o podwójnej szybkości przesyłania danych 4 (DDR4) i powiązanym kontrolerem pamięci, a także wieloma urządzeniami pamięci nieulotnej (NVM), w tym 512Mb pamięci z poczwórnym szeregowym interfejsem urządzeń peryferyjnych (QSPI), 16GB wbudowanej pamięci na karcie multimedialnej (eMMC) i 64kb elektrycznie kasowanej i programowanej pamięci tylko do odczytu (EEPROM) (ilustracja 1).

Schemat modułu SOM Kria K26 firmy Xilinx (kliknij, aby powiększyć)Ilustracja 1: moduł SOM Kria K26 firmy Xilinx łączy w sobie bogate możliwości niestandardowego układu MPSoC Zynq UltraScale z zaufanym modułem platformy 2.0 (TPM2) oraz dynamiczną pamięcią nieulotną. (Źródło ilustracji: Xilinx)

Zasoby przetwarzania i przechowywania danych firmy Xilinx wzbogaca rozbudowany programowalny układ logiczny składający się z 256 tys. komórek układu logicznego, 234 tys. konfigurowalnych przerzutników flip-flop bloków logicznych (CLB), 117 tys. tablic LUT i 26,6 megabitów pamięci w różnych konfiguracjach rozproszonej pamięci o dostępie swobodnym (RAM), blokowej pamięci RAM i blokach ultraRAM. Ponadto programowalny układ logiczny obejmuje 1248 segmentów cyfrowego przetwarzania sygnału (DSP), cztery nadajniko-odbiorniki i kodek wideo dla formatu H.264 i H.265, który może obsługiwać do 32 strumieni jednoczesnego kodowania/dekodowania, łącznie 3840 x 2160 pikseli przy klatkażu 60kl./s. Dwa 240-wtykowe złącza modułu SOM zapewniają łatwy dostęp do bloków funkcjonalnych i urządzeń peryferyjnych poprzez konfigurowane przez użytkownika wejścia/wyjścia (I/O).

Takie połączenie rdzeni procesora, pamięci i programowalnej logiki zapewnia wyjątkowy poziom elastyczności i wydajności, który przezwycięża kluczowe wady procesorów graficznych (GPU) używanych do szybkiego wykonywania algorytmów uczenia maszynowego (ML). Deweloperzy mogą ponownie skonfigurować ścieżkę danych modułu SOM K26, aby zoptymalizować przepustowość i zmniejszyć opóźnienia, co nie byłoby możliwe przy stałym przepływie danych w procesorach graficznych. Co więcej, architektura modułu SOM K26 jest szczególnie dobrze dopasowana do rzadkich typów sieci będących kołem zamachowym rosnącej liczby aplikacji ML.

Programowalność modułu SOM K26 rozwiązuje również problem wąskich gardeł pamięci, które zarówno zwiększają zużycie energii, jak i ograniczają wydajność w aplikacjach intensywnie korzystających z pamięci, takich jak uczenie maszynowe (ML) zbudowane z konwencjonalnych architektur wykorzystujących procesory graficzne, procesory wielordzeniowe, a nawet zaawansowane układy SoC. W każdym rozwiązaniu zaprojektowanym z użyciem wspomnianych konwencjonalnych urządzeń pamięć zewnętrzna zwykle odpowiada za około 40% zużycia energii przez układ, podczas gdy rdzenie procesora i pamięć wewnętrzna zwykle odpowiadają za około 30% zużycia. Aby wdrożyć projekty, które wymagają niewielkiego dostępu do pamięci zewnętrznej lub nie wymagają go wcale, deweloperzy mogą alternatywnie wykorzystać wewnętrzne bloki pamięci modułu SOM K26 i i jego rekonfigurowalność. Rezultatem jest zwiększona wydajność i mniejsze zużycie energii niż jest to możliwe w przypadku urządzeń konwencjonalnych (ilustracja 2).

Schemat modułu Kria firmy Xilinx wykorzystującego wydajny potok wizyjny (kliknij, aby powiększyć)Ilustracja 2: podczas gdy układy oparte na wbudowanych procesorach i typowych układach SoC wymagają wielokrotnego, energochłonnego dostępu do pamięci w celu uruchamiania aplikacji, układy oparte na module Kria firmy Xilinx używają wydajnego potoku wizyjnego, który można zaprojektować tak, aby uniknąć konieczności uzyskiwania dostępu do pamięci DDR. (Źródło ilustracji: Xilinx)

Dzięki wysokim parametrom działania, niskiemu zużyciu energii i rozległym możliwościom rekonfiguracji moduł SOM K26 pomaga zapewnić bezpieczeństwo w projektach inteligentnych kamer do zastosowań wrażliwych. Wyposażony we wbudowane urządzenie zabezpieczające TPM układ MPSoC posiada dedykowaną jednostkę zabezpieczeń konfiguracji (CSU), która zapewnia bezpieczne uruchamianie, monitorowanie pod kątem manipulacji, bezpieczne przechowywanie kluczy i kryptograficzną akcelerację sprzętową. Jednostka CSU, wewnętrzna pamięć wbudowana w układ mikroelektroniczny (OCM) i funkcja bezpiecznego przechowywania kluczy stanowią łącznie bezpieczny fundament dla sprzętowego systemu Root of Trust do bezpiecznego rozruchu i realizacji zaufanej platformy do wykonywania aplikacji.

Szerokie możliwości dostępne w module SOM K26 stanowią potężną podstawę do wdrażania wymagających rozwiązań brzegowych. Jednak każda sytuacja wiąże się z innymi wymaganiami w zakresie funkcji urządzeń peryferyjnych i pozostałych komponentów różniących się w zależności od zastosowania. Aby uprościć wdrażanie rozwiązań specyficznych dla danego zastosowania, moduł SOM K26 zaprojektowano z myślą o możliwości podłączenia do płytki nośnej, na której znajdują się dodatkowe urządzenia peryferyjne. Firma Xilinx demonstruje takie podejście poprzez oparty na module Kria K26 zestaw startowy do zastosowań wizyjnych ze sztuczną inteligencją KV260.

Zestaw startowy upraszcza opracowywanie zastosowań wizyjnych

Zestaw startowy do zastosowań wizyjnych ze sztuczną inteligencją KV260 firmy Xilinx, składający się z modułu SOM K26 podłączonego do wizyjnej płytki nośnej, stanowi gotową platformę zaprojektowaną specjalnie do natychmiastowej ewaluacji i szybkiego rozwoju inteligentnych aplikacji wizyjnych. Podczas gdy moduł SOM K26 zapewnia wymagane możliwości przetwarzania, płytka nośna zestawu startowego zapewnia zarządzanie energią, w tym sekwencjonowanie włączania i resetowania, a także różne typy interfejsów i złączy do kamery, wyświetlacza oraz karty microSD (ilustracja 3).

Schemat zestawu startowego do zastosowań wizyjnych ze sztuczną inteligencją KV260 firmy XilinxIlustracja 3: zestaw startowy do zastosowań wizyjnych ze sztuczną inteligencją KV260 firmy Xilinx stanowi kompletne inteligentne rozwiązanie wizyjne wykorzystujące moduł SOM K26 podłączony do wizyjnej płytki nośnej. (Źródło ilustracji: Xilinx)

Oprócz wielu interfejsów płytka nośna zapewnia obsługę wielu kamer za pośrednictwem złącza Raspberry Pi i pary złącz systemu dostępu do obrazu (IAS), z których jedno łączy się z dedykowanym procesorem obrazu (ISP) onsemi o rozdzielczości 13Mpx AP1302, który jest w stanie obsłużyć wszystkie funkcje przetwarzania obrazu.

Aby jeszcze bardziej przyspieszyć wdrażanie aplikacji wizyjnych, firma Xilinx zapewnia dodatkowe zasoby dla tej wstępnie zdefiniowanej wizyjnej platformy sprzętowej w postaci szeregu gotowych akcelerowanych aplikacji wizyjnych oraz kompleksowego zestawu narzędzi programowych i bibliotek do niestandardowych prac rozwojowych.

Akcelerowane aplikacje zapewniają natychmiastowe rozwiązania

Na potrzeby natychmiastowej ewaluacji i szybkiego rozwoju akcelerowanych aplikacji wizyjnych firma Xilinx oferuje kilka gotowych aplikacji, które demonstrują rozwiązanie kilku popularnych problemów, w tym wykrywanie twarzy z inteligentnej kamery przy użyciu programowalnej logiki, identyfikację i śledzenie pieszych, wykrywanie wad i wykrywanie par słów kluczowych za pomocą procesora układu MPSoC. Każda z aplikacji jest dostępna w sklepie Xilinx Kria App Store, a każda z nich stanowi kompletne rozwiązanie dla konkretnego przypadku użycia wraz z towarzyszącymi narzędziami i zasobami. Na przykład aplikacja do wykrywania twarzy za pomocą inteligentnej kamery wykorzystuje wbudowany przetwornik obrazu AR1335 płytki nośnej KV260 i ISP AP1302 do pozyskiwania obrazów oraz wyjście HDMI lub DisplayPort (DP) do renderowania wyniku. Na potrzeby przetwarzania wykrywania twarzy aplikacja konfiguruje moduł SOM K26, aby zapewnić akcelerator potoków wizyjnych i wstępnie zbudowany aparat wnioskowania uczenia maszynowego do wykrywania twarzy, liczenia osób i innych zastosowań z użyciem inteligentnych kamer (ilustracja 4).

Wygląd gotowych akcelerowanych aplikacji w sklepie Xilinx Kria App Store (kliknij, aby powiększyć)Ilustracja 4: gotowe akcelerowane aplikacje dostępne do pobrania ze sklepu Xilinx Kria App Store można od razu uruchamiać na zestawie startowym KV260, tworząc kompletne rozwiązania dla modeli wizyjnych, takich jak wykrywanie twarzy. (Źródło ilustracji: Xilinx)

Zapewniając pełną implementację i wsparcie, wstępnie zbudowane akcelerowane aplikacje ze sklepu Xilinx App Store pozwalają deweloperom na uruchamianie projektów w mniej niż godzinę, nawet jeśli nie mają oni doświadczenia z bezpośrednio programowalnymi macierzami bramek (FPGA). Do ewaluacji aplikacji można użyć dostarczonego stosu oprogramowania do modyfikacji funkcjonalności w celu zbadania alternatywnych rozwiązań. Do bardziej zaawansowanych niestandardowych prac rozwojowych firma Xilinx oferuje kompleksowy zestaw narzędzi programistycznych i bibliotek.

Narzędzia i środowisko programistyczne sztucznej inteligencji (AI) przyspieszają niestandardowe prace rozwojowe

Środowisko programistyczne Vitis AI firmy Xilinx zawiera zoptymalizowane narzędzia, biblioteki i wstępnie wytrenowane modele, które mogą służyć jako podstawa dla pracy nad bardziej wyspecjalizowanymi modelami niestandardowymi opartymi na sztucznej inteligencji. Dla środowiska uruchomieniowego zestaw rozwojowy oprogramowania PetaLinux z wbudowanym systemem Linux oparty na projekcie Yocto firmy Xilinx oferuje pełny zestaw funkcji potrzebnych do budowania, rozwijania, testowania i wdrażania wbudowanych systemów Linux.

Zaprojektowane zarówno dla ekspertów, jak i deweloperów bez doświadczenia z bezpośrednio programowalnymi macierzami bramek (FPGA) środowisko Vitis AI pozwala na projektowanie w oderwaniu od szczegółów podstawowego sprzętu krzemowego, umożliwiając deweloperom skupienie się na budowaniu bardziej efektywnych modeli uczenia maszynowego (ML). W rzeczywistości środowisko Vitis AI jest zintegrowane z otwartoźródłowym stosem kompilatorów głębokiego uczenia Apache Tensor Virtual Machine (TVM), co umożliwia kompilowanie modeli z różnych platform na procesor, procesor graficzny lub akcelerator. Korzystając z Vitis AI z TVM, programiści mogą ulepszyć swoje istniejące projekty dzięki akcelerowanym funkcjom wizyjnym, przenosząc intensywne obciążenia obliczeniowe dotyczące wizji, takie jak modele głębokiego uczenia się, do Kria SOM. W dalszej optymalizacji modeli głębokiego uczenia deweloperom może pomóc narzędzie AI Optimization firmy Xilinx, które potrafi oczyszczać sieci neuronowe w celu zmniejszenia złożoności pod względem liczby operacji giga na sekundę (Gops), zwiększenia liczby klatek na sekundę (fps) i zmniejszenia przeparametryzowanych modeli, kompresując je nawet 50-krotnie z niewielkim wpływem na dokładność pod względem średniej precyzji (mAP) (ilustracja 5).

Wykres studium przypadku firmy Xilinx Research (kliknij, aby powiększyć)Ilustracja 5: studium przypadku firmy Xilinx Research pokazało, jak kilka iteracji oczyszczania za pomocą narzędzia Xilinx AI Optimization może szybko zmniejszyć złożoność sieci neuronowej pod względem liczby Gops, jednocześnie zwiększając liczbę klatek na sekundę, a wszystko to z niewielkim wpływem na dokładność. (Źródło ilustracji: Xilinx)

We wdrażaniu niestandardowych aplikacji wizyjnych pomogą otwartoźródłowe biblioteki Vitis Vision firmy Xilinx zoptymalizowane pod kątem wysokiej wydajności i niskiego wykorzystania zasobów na platformach Xilinx, oferując znajomy interfejs oparty na OpenCV. W zakresie analityki, w budowaniu bardziej efektywnych potoków analizy wizji i wideo deweloperom pomoże zestaw rozwojowy oprogramowania Video Analytics SDK, nie wymagający posiadania głębokiej wiedzy na temat bezpośrednio programowalnych macierzy bramek (FPGA). Oparty na szeroko rozpowszechnionej, otwartoźródłowej platformie GStreamer zestaw SDK Video Analytics umożliwia deweloperom szybkie tworzenie niestandardowych jąder akceleracji jako wtyczek GStreamer do integracji z platformą SDK.

Korzystając z tych narzędzi, typowy deweloper układów wbudowanych może łatwo asemblować niestandardowe potoki akceleracji z niestandardowymi jądrami akceleracji lub bez nich.

Podsumowanie

Przeznaczone do intensywnych obliczeń algorytmy uczenia maszynowego (ML) umożliwiły wykorzystanie inteligentnych technologii wizyjnych w wielu aplikacjach działających na urządzeniach brzegowych, jednak deweloperzy stają przed wieloma wyzwaniami w zakresie wymagań dotyczących wysokiej wydajności, niskiego poboru mocy i możliwości adaptacji układów wizyjnych opartych na urządzeniach brzegowych. Moduł SOM Kria K26 firmy Xilinx zapewnia bazę sprzętową do szybszego opracowywania zaawansowanych algorytmów bez przekraczania ściśle ograniczonych zasobów mocy. Korzystając z zestawu startowego opartego na Kria K26 z gotowymi aplikacjami, deweloperzy mogą natychmiast rozpocząć ewaluację inteligentnych aplikacji wizyjnych i korzystać z kompleksowego środowiska programistycznego do tworzenia niestandardowych rozwiązań z wykorzystaniem urządzeń brzegowych.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Informacje o autorze

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

Informacje o wydawcy

Północnoamerykańscy redaktorzy DigiKey