Szybkie projektowanie i wdrażanie inteligentnych systemów widzenia maszynowego
Przekazane przez: Północnoamerykańscy redaktorzy DigiKey
2022-08-31
Zapotrzebowanie na widzenie maszynowe rośnie w wielu zastosowaniach, w tym w systemach zabezpieczeń, kamerach drogowych i miejskich, analizie sprzedaży, automatycznej kontroli, sterowaniu procesami i robotyce z widzeniem maszynowym. Wdrażanie widzenia maszynowego jest skomplikowane i wymaga integracji różnych technologii oraz podsystemów, w tym sprzętu o wysokich parametrach działania i zaawansowanego oprogramowania sztucznej inteligencji/uczenia maszynowego (AI/ML). Rozpoczyna się ono od optymalizacji technologii przechwytywania wideo i wejść-wyjść wizyjnych pod kątem spełnienia wymagań konkretnego zastosowania i rozciąga się na wiele procesów przetwarzania obrazów zapewniających wydajną łączność. Ostatecznie zależy od możliwości wykonywania analiz opartych na widzeniu przez wbudowany system wizyjny w czasie rzeczywistym przy użyciu sprzętu o wysokich parametrach działania, takiego jak bezpośrednio programowalne macierze bramek (FPGA), moduły SOM (system-on-module), układy SoC, a nawet wieloprocesorowe układy SoC (MPSoC) w celu uruchomienia potrzebnego oprogramowania przetwarzania i rozpoznawania obrazów z wykorzystaniem sztucznej inteligencji i uczenia maszynowego (AI/ML). Może to być skomplikowany, kosztowny i czasochłonny proces, wielokrotnie narażający na przekroczenia kosztów i opóźnienia w harmonogramie.
Zamiast zaczynać od zera, projektant może sięgnąć po dobrze zaprojektowaną, wydajną platformę rozwojową, która skróci czas wprowadzania produktu na rynek, pomoże kontrolować koszty i zmniejszy zagrożenia związane z procesem rozwoju, jednocześnie umożliwiając osiągnięcie wysokiego stopnia elastyczności i wysokich parametrów działania rozwiązania. Platforma rozwojowa oparta na module SOM (system-on-module) zapewnia zintegrowane środowisko sprzętowe i programowe, umożliwiając deweloperowi skoncentrowanie się na dostosowywaniu rozwiązania oraz skracając czas prac rozwojowych nawet o dziewięć miesięcy. Oprócz środowiska rozwojowego sama architektura modułu SOM (system-on-module) jest dostępna w konfiguracjach zoptymalizowanych pod kątem produkcji dla środowisk komercyjnych i przemysłowych, zwiększając niezawodność i jakość rozwiązania, zmniejszając ryzyko oraz skracając czas wprowadzania produktu na rynek.
Niniejszy artykuł rozpoczyna się od omówienia wyzwań związanych z rozwojem systemów widzenia maszynowego o wysokich parametrach działania. W dalszej części przedstawiono kompleksowe środowisko rozwojowe oferowane przez zestaw startowy Kria KV260 vision AI firmy AMD Xilinx. Na zakończenie przytoczono przykłady gotowych do produkcji modułów SOM (system-on-module) opartych na platformie Kira 26, przeznaczonych do podłączania do karty nośnej wraz z urządzeniami peryferyjnymi dobranymi specjalnie do danego rozwiązania.
Proces zaczyna się od optymalizacji typu danych
Potrzeby algorytmów głębokiego uczenia wciąż ewoluują. Nie każde zastosowanie wymaga obliczeń o wysokiej precyzji. Stosowane są typy danych o mniejszej dokładności, takie jak INT8 lub niestandardowe formaty danych. Próba modyfikowania architektur zoptymalizowanych dla danych o wysokiej precyzji, tak by efektywnie obsługiwały formaty danych o niższej precyzji, może stanowić wyzwanie dla systemów opartych o procesory graficzne (GPU). Moduł SOM (system-on-module) Kria K26 można ponownie konfigurować, co pozwala na obsługę szerokiego zakresu typów danych od FP32 do INT8 i nie tylko. Ponowna konfiguracja pozwala również obniżyć całkowite zużycie energii. Na przykład operacje zoptymalizowane dla danych INT8 skutkują zużyciem energii niższym o rząd wielkości w porównaniu z operacjami FP32 (ilustracja 1).
Ilustracja 1: w przypadku operacji INT8 (8b Add) wymagana jest energia niższa o rząd wielkości w porównaniu z operacjami FP32 (32b Add). (Źródło ilustracji: AMD Xilinx)
Optymalna architektura zapewniająca minimalny pobór mocy
Projekty realizowane w oparciu o wielordzeniową architekturę procesorów graficznych (GPU) lub procesorów centralnych (CPU) mogą wymagać dużej mocy w oparciu o typowe wzorce poboru mocy:
- 30% dla rdzeni
- 30% dla pamięci wewnętrznej (L1, L2, L3)
- 40% dla pamięci zewnętrznej (np. DDR)
Aby zapewniać możliwość programowania, procesory graficzne (GPU) wymagają częstego dostępu do niewydajnej pamięci DDR, co może stanowić wąskie gardło w przypadku potrzeb obliczeniowych wymagających dużej przepustowości. Architektura Zynq MPSoC używana w module SOM (system-on-module) Kria K26 umożliwia prace rozwojowe z niewielkim lub zerowym dostępem do pamięci zewnętrznej. Na przykład w typowym zastosowaniu motoryzacyjnym komunikacja pomiędzy procesorem graficznym (GPU) i różnymi modułami wymaga wielokrotnego dostępu do zewnętrznej pamięci DDR, podczas gdy rozwiązanie oparte na technologii Zynq MPSoC zawiera proces zaprojektowany tak, aby uniknąć wielokrotnego dostępu do pamięci DDR (ilustracja 2).
Ilustracja 2: w przedstawionym typowym zastosowaniu motoryzacyjnym procesor graficzny (GPU) wymaga wielokrotnego dostępu do pamięci DDR w celu zapewnienia komunikacji między różnymi modułami (po lewej), podczas gdy architektura Zynq MPSoC (po prawej) pozwala w większości uniknąć potrzeby dostępu do pamięci DDR. (Źródło ilustracji: AMD Xilinx)
Przycinanie pozwala w większym stopniu wykorzystać zalety
Parametry działania sieci neuronowej w module SOM (system-on-module) K26 można poprawić za pomocą narzędzia do optymalizacji SI, które umożliwia przycinanie i optymalizację danych. Nadmierna parametryzacja w sieciach neuronowych jest bardzo powszechna i prowadzi do wysokich poziomów redundancji, które można zoptymalizować poprzez przycinanie danych i kompresję modeli. Korzystając z narzędzia do optymalizacji sztucznej inteligencji AI Optimizer firmy Xilinx, można uzyskać 50x redukcję złożoności modelu, przy nominalnym wpływie na jego precyzję. Na przykład przy użyciu narzędzia AI Optimizer udoskonalono architekturę z pojedynczym detektorem (SSD) oraz konwolucyjną siecią neuronową (CNN) VGG o złożoności 117Gops w toku 11 iteracji przycinania. Przed rozpoczęciem optymalizacji model pracował z częstotliwością 18FPS na układzie MPSoC Zynq UltraScale+. Po 11 iteracjach - czyli w 12. uruchomieniu modelu - jego złożoność została obniżona z 117Gops do 11,6Gops (10X), częstotliwość wzrosła z 18 do 103FPS (5X), a dokładność dla wykrywania obiektów spadła z 61,55mAP do 60,4mAP (zaledwie o 1%) (ilustracja 3).
Ilustracja 3: po kilku iteracjach przycinania można 10X zmniejszyć złożoność modelu (Gops) i 5-krotnie poprawić jego częstotliwość (FPS) kosztem jedynie 1% mniejszej dokładności (mAP). (Źródło ilustracji: AMD Xilinx)
Przykład zastosowania w praktyce
Rozwiązanie wykorzystujące uczenie maszynowe do automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) zostało opracowane na bazie oprogramowania do analizy obrazów firmy Uncanny Vision. Automatyczne rozpoznawanie tablic rejestracyjnych pojazdów (ANPR) jest wykorzystywane w zautomatyzowanych systemach poboru opłat, monitorowaniu dróg, bezpiecznym dostępie do bram i parkingów oraz innych zastosowaniach. Omawiana funkcja automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) obejmuje proces oparty na sztucznej inteligencji, w ramach którego następuje dekodowanie sygnału video, wstępna obróbka obrazu, wykrywanie z wykorzystaniem funkcji uczenia maszynowego i optyczne rozpoznawanie znaków (OCR) (ilustracja 4).
Ilustracja 4: typowy przepływ przetwarzania obrazu dla funkcji automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) opartej na sztucznej inteligencji (AI). (Źródło ilustracji: AMD Xilinx)
Implementacja funkcji automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) wymaga co najmniej jednego zdekodowanego lub zdekompresowanego kanału protokołu transmisji strumieniowejczasu rzeczywistego (RTSP) w standardzie H.264 lub H.265. Dekodowane klatki wideo są skalowane, przycinane, konwertowane i normalizowane (wstępnie przetwarzane), a następnie wysyłane do algorytmu wykrywania z wykorzystaniem funkcji uczenia maszynowego (ML). Implementacje funkcji automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) o wysokich parametrach działania wymagają wieloetapowego potoku sztucznej inteligencji (AI). W pierwszym etapie na obrazie wykrywany i lokalizowany jest pojazd, co skutkuje utworzeniem obszaru zainteresowania (ROI). Jednocześnie inne algorytmy pozwalają zoptymalizować jakość obrazu pod kątem późniejszego wykorzystania przez algorytm rozpoznawania znaków OCR i śledzić ruch pojazdu w wielu klatkach. Obszar zainteresowania wyznaczony na pojeździe jest dodatkowo przycinany w celu wygenerowania obszaru zainteresowania wyznaczonego na tablicy rejestracyjnej, który jest przetwarzany przez algorytm OCR w celu określenia znaków na tablicy rejestracyjnej. W porównaniu z innymi komercyjnymi modułami SOM (system-on-module) opartymi na procesorach graficznych (GPU) lub procesorach centralnych (CPU) aplikacja do automatycznego rozpoznawania tablic rejestracyjnych pojazdów (ANPR) firmy Uncanny Vision działała 2-3X szybciej na module Kira KV260, a kosztowała mniej niż 100$ za kanał RTSP.
Środowisko rozwojowe z inteligentnym widzeniem
Projektanci inteligentnych rozwiązań wykorzystujących widzenie maszynowe, takich jak kamery drogowe i miejskie, systemy analizy sprzedaży, systemy bezpieczeństwa, automatyka przemysłowa i robotyka, mogą sięgnąć po środowisko rozwojowe Kria K26 SOM AI Starter. Środowisko to jest zbudowane przy użyciu architektury z układem MPSoC Zynq® UltraScale+™ i posiada rosnącą bibliotekę pakietów oprogramowania do obsługi aplikacji (ilustracja 5). Moduł SOM (system-on-module) AI Starter zawiera czterordzeniowy procesor Arm Cortex-A53, ponad 250 tysięcy komórek logicznych i kodek wideo H.264/265. W module SOM (system-on-module) znajduje się również 4GB pamięci DDR4, 245 wejścia-wyjścia, a moc obliczeniowa AI 1,4Tops umożliwia tworzenie wysokowydajnych aplikacji sztucznej inteligencji z funkcją widzenia maszynowego, które zapewniają ponad 3X wyższe parametry działania przy mniejszej latencji i niższym poborze mocy w porównaniu z innymi konfiguracjami sprzętowymi. Gotowe aplikacje umożliwiają wykonanie wstępnych projektów w czasie krótszym niż godzina.
Ilustracja 5: zestaw startowy Kria KV260 vision AI jest kompleksowym środowiskiem do zastosowań wykorzystujących widzenie maszynowe. (Źródło ilustracji: AMD Xilinx)
Aby ułatwić rozpoczęcie prac rozwojowych z użyciem modułu SOM (system-on-module) Kria K26, firma AMD Xilinx oferuje zestaw startowy KV260 vision AI, w skład którego wchodzą: zasilacz, kabel Ethernet, karta microSD, kabel USB, kabel HDMI oraz moduł kamery (ilustracja 6). Jeśli deweloper nie potrzebuje kompletnego zestawu startowego, aby rozpocząć korzystanie z modułu SOM (system-on-module) Kira K26, może po prostu zakupić opcjonalny zasilacz.
Ilustracja 6: zestaw startowy KV260 vision AI zawiera: (górny rząd, od lewej do prawej) zasilacz, kabel Ethernet, kartę microSD i (dolny rząd, od lewej do prawej) kabel USB, kabel HDMI, moduł kamery. (Ilustracja: AMD Xilinx)
Innym czynnikiem, który przyspiesza prace rozwojowe, jest wszechstronny zestaw funkcji, w tym liczne, jednostronne i różnicowe wejścia-wyjścia o napięciu 1,8V i 3,3V z czterema nadajniko-odbiornikami 6Gb/s oraz czterema nadajniko-odbiornikami 12,5Gb/s. Funkcje te umożliwiają rozwój rozwiązań z większą liczbą czujników obrazu na jeden moduł SOM (system-on-module) oraz wieloma różnymi interfejsami czujników, takimi jak MIPI, LVDS, SLVS i SLVS-EC, które nie zawsze są obsługiwane przez standardowe produkty dobierane do danego zastosowania (ASSP) lub procesory graficzne (GPU). Dzięki wbudowanym programowalnym układom logicznym, deweloperzy mogą również wdrażać standardy Display Port, HDMI, PCIe, USB2.0/3.0 oraz standardy zdefiniowane przez użytkownika.
Wreszcie opracowanie aplikacji sztucznej inteligencji (AI) zostało uproszczone i stało się bardziej dostępne dzięki połączeniu rozbudowanych możliwości sprzętowych oraz środowiska oprogramowania w module SOM (system-on-module) K26 z gotowymi do produkcji rozwiązaniami widzenia maszynowego. Omawiane rozwiązania widzenia maszynowego mogą być wdrażane bez konieczności projektowania bezpośrednio programowalnych macierzy bramek (FPGA) i umożliwiają deweloperom oprogramowania szybką integrację niestandardowych modeli sztucznej inteligencji (AI) i kodu aplikacji, a nawet modyfikowanie potoku wizyjnego. Ujednolicona platforma rozwojowa oprogramowania Vitis oraz biblioteki firmy Xilinx pozwalają na obsługę popularnych środowisk projektowania, takich jak TensorFlow, Pylatch i Café, a także wiele języków programowania, w tym C, C++, OpenCL™ i Python. Dla zastosowań brzegowych wykorzystujących moduły SOM (system-on-module) Kria firmy Xilinx i urządzenia z tego ekosystemu dostępny jest również wbudowany sklep z aplikacjami. Firma Xilinx oferuje aplikacje bezpłatne i otwartoźródłowe do inteligentnych kamer śledzących ruch, wykrywania twarzy, przetwarzania języka naturalnego z wykorzystaniem inteligentnych rozwiązań wizyjnych i nie tylko.
Zoptymalizowane pod kątem produkcji moduły SOM (system-on-module) Kira 26
Po zakończeniu procesu rozwoju dostępne są gotowe do produkcji moduły SOM (system-on-module) K26 przeznaczone do podłączania do płytki nośnej wraz z urządzeniami peryferyjnymi dobranymi specjalnie do danego rozwiązania, które mogą przyspieszyć przejście do produkcji (ilustracja 7). Podstawowy moduł SOM (system-on-module) jest urządzeniem klasy komercyjnej o znamionowej temperaturze złącza od 0°C do +85°C mierzonej przez wewnętrzny czujnik temperatury. Dostępna jest również wersja klasy przemysłowej modułu SOM (system-on-module) K26 przeznaczona do pracy w temperaturach od -40°C do +100°C.
Rynek przemysłowy wymaga długiego okresu eksploatacji w trudnych warunkach środowiskowych. Projektowany okres eksploatacji modułu SOM (system-on-module) Kria klasy przemysłowej przy temperaturze złącza 100°C i wilgotności względnej 80% wynosi dziesięć lat. Moduł ten ma wytrzymać wstrząsy do 40g i drgania o średniej kwadratowej wartości (RMS) rzędu 5g. Jego minimalna dostępność produkcyjna wynosi dziesięć lat także dlatego, aby zapewnić obsługę w czasie długiego cyklu eksploatacji produktu.
Ilustracja 7: zoptymalizowane pod kątem produkcji moduły SOM (system-on-module) Kira 26 do zastosowań przemysłowych i komercyjnych są przeznaczone do podłączania do płytki nośnej wraz z urządzeniami peryferyjnymi dobranymi specjalnie do danego rozwiązania. (Ilustracja: DigiKey)
Podsumowanie
Projektanci systemów widzenia maszynowego, np. do systemów zabezpieczeń, kamer drogowych i miejskich, analizy sprzedażowej, zautomatyzowanej kontroli, sterowania procesami i robotów z funkcją widzenia maszynowego mogą sięgnąć po zestaw startowy Kria K26 SOM AI Starter, aby skrócić czas wprowadzania produktu na rynek, łatwiej kontrolować koszty i zmniejszyć ryzyko związane z pracami rozwojowymi. Omawiana platforma rozwojowa oparta na module SOM (system-on-module) stanowi zintegrowane środowisko sprzętowe i programowe, umożliwiające deweloperowi skoncentrowanie się na dostosowywaniu aplikacji i skrócenie czasu prac rozwojowych nawet o dziewięć miesięcy. Ta sama architektura modułu SOM (system-on-module) jest dostępna w konfiguracjach zoptymalizowanych pod kątem produkcji dla środowisk komercyjnych i przemysłowych, co jeszcze bardziej skraca czas wprowadzenia produktu na rynek. Wersja przemysłowa ma minimalną dostępność produkcyjną 10 lat, aby zapewnić obsługę długich cykli eksploatacji produktów.
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.

