Projektowanie

Szybkie projektowanie i wdrażanie inteligentnych systemów widzenia maszynowego

Wdrażanie widzenia maszynowego jest skomplikowane i wymaga integracji różnych technologii. Jednak zamiast zaczynać od zera, projektant może sięgnąć po dobrze zaprojektowaną, wydajną platformę rozwojową.

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. 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 przedstawiająca zużycie energii dla operacji INT8 z porównaniu z operacjami FP32

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

Diagram porównujący typowy układ SoC i układ MPSoC Zynq firmy AMD Xilinx

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)

Strona: 1/3
Następna