Texas Instruments AM6x opracowuje wiele kamer
Specyfikacje
- Nazwa produktu: Rodzina urządzeń AM6x
- Obsługiwany typ kamery: AM62A (z wbudowanym ISP lub bez), AM62P (z wbudowanym ISP)
- Dane wyjściowe kamery: AM62A (surowe/YUV/RGB), AM62P (YUV/RGB)
- Dostawca usług internetowych HWA: AM62A (tak), AM62P (nie)
- Głębokie uczenie HWA: AM62A (tak), AM62P (nie)
- Karta graficzna 3D HWA: AM62A (nie), AM62P (tak)
Wprowadzenie do aplikacji wielokamerowych na platformie AM6x:
- Wbudowane kamery odgrywają kluczową rolę w nowoczesnych systemach wizyjnych.
- Wykorzystanie wielu kamer w systemie zwiększa możliwości i umożliwia wykonywanie zadań, których nie dałoby się wykonać przy użyciu jednej kamery.
Aplikacje wykorzystujące wiele kamer:
- Nadzór bezpieczeństwa: Zwiększa zasięg nadzoru, śledzenie obiektów i dokładność rozpoznawania.
- Otaczać View: Umożliwia widzenie stereoskopowe w przypadku takich zadań, jak wykrywanie przeszkód i manipulowanie obiektami.
- Rejestrator kabinowy i system lusterek kamerowych: Zapewnia większy zasięg i eliminuje martwe pola.
- Obrazowanie medyczne: Zapewnia większą precyzję w nawigacji chirurgicznej i endoskopii.
- Drony i zdjęcia lotnicze: Rejestruj obrazy o wysokiej rozdzielczości z różnych kątów do różnych zastosowań.
Podłączanie wielu kamer CSI-2 do SoC:
Aby podłączyć wiele kamer CSI-2 do układu SoC, należy postępować zgodnie ze wskazówkami zawartymi w instrukcji obsługi. Należy upewnić się, że każda kamera jest prawidłowo ustawiona i podłączona do wyznaczonych portów w układzie SoC.
Notatka aplikacyjna
Tworzenie aplikacji wielokamerowych na platformie AM6x
Jianzhong Xu, Qutaiba Salih
ABSTRAKCYJNY
W niniejszym raporcie opisano rozwój aplikacji z wykorzystaniem wielu kamer CSI-2 w urządzeniach z rodziny AM6x. Przedstawiono projekt referencyjny detekcji obiektów z wykorzystaniem głębokiego uczenia (Deep Learning) dla 4 kamer w układzie SoC AM62A wraz z analizą wydajności. Ogólne zasady projektowania mają zastosowanie do innych układów SoC z interfejsem CSI-2, takich jak AM62x i AM62P.
Wstęp
Kamery wbudowane odgrywają ważną rolę w nowoczesnych systemach wizyjnych. Zastosowanie wielu kamer w systemie rozszerza możliwości tych systemów i umożliwia osiągnięcie funkcji nieosiągalnych w przypadku pojedynczej kamery. Poniżej przedstawiono kilka przykładów.ampliczba aplikacji wykorzystujących wiele wbudowanych kamer:
- Monitoring bezpieczeństwa: Liczne kamery rozmieszczone strategicznie zapewniają kompleksowy monitoring. Umożliwiają one panoramiczny views, redukują martwe pola i zwiększają dokładność śledzenia i rozpoznawania obiektów, co poprawia ogólne środki bezpieczeństwa.
- Otaczać View:Wiele kamer służy do stworzenia stereoskopowego systemu wizyjnego, umożliwiającego uzyskanie trójwymiarowych informacji i oszacowanie głębi. Jest to kluczowe dla takich zadań, jak wykrywanie przeszkód w pojazdach autonomicznych, precyzyjna manipulacja obiektami w robotyce oraz zwiększony realizm wrażeń w rzeczywistości rozszerzonej.
- Rejestrator kabinowy i system lusterek kamer: Rejestrator kabinowy z wieloma kamerami może zapewnić większy zasięg przy użyciu jednego procesora. Podobnie, system lusterek kamer z dwiema lub więcej kamerami może rozszerzyć pole widzenia kierowcy. view i eliminuje martwe pola po obu stronach samochodu.
- Obrazowanie medyczne: W obrazowaniu medycznym można stosować wiele kamer do zadań takich jak nawigacja chirurgiczna, zapewniając chirurgom wiele perspektyw i zwiększając precyzję. W endoskopii wiele kamer umożliwia dokładne badanie narządów wewnętrznych.
- Drony i zdjęcia lotnicze: Drony często są wyposażone w wiele kamer, które umożliwiają rejestrowanie obrazów lub filmów o wysokiej rozdzielczości z różnych kątów. Jest to przydatne w takich zastosowaniach jak fotografia lotnicza, monitoring rolnictwa i geodezja.
- Dzięki rozwojowi mikroprocesorów możliwe jest zintegrowanie wielu kamer w jednym układzie System-on-Chip.
(SoC) zapewnia kompaktowe i wydajne rozwiązania. Układ SoC AM62Ax, z wysokowydajnym przetwarzaniem obrazu i obrazu oraz akceleracją głębokiego uczenia, jest idealnym urządzeniem do wyżej wymienionych zastosowań. Kolejne urządzenie AM6x, AM62P, zostało zaprojektowane do wysokowydajnych, wbudowanych aplikacji wyświetlania 3D. Wyposażone w akcelerację grafiki 3D, AM62P może z łatwością łączyć obrazy z wielu kamer i tworzyć panoramy o wysokiej rozdzielczości. viewInnowacyjne funkcje układu SoC AM62A/AM62P przedstawiono w różnych publikacjach, takich jak [4], [5], [6] itd. Niniejsza nota aplikacyjna nie będzie powtarzać opisów tych funkcji, lecz skupi się na integracji wielu kamer CSI-2 z wbudowanymi aplikacjami wizyjnymi w układach AM62A/AM62P. - Tabela 1-1 przedstawia główne różnice pomiędzy AM62A i AM62P w zakresie przetwarzania obrazu.
Tabela 1-1. Różnice między AM62A i AM62P w przetwarzaniu obrazu
Układ SoC | AM62A | AM62P |
Obsługiwany typ aparatu | Z wbudowanym dostawcą usług internetowych lub bez | Z wbudowanym dostawcą usług internetowych |
Dane wyjściowe kamery | Surowe/YUV/RGB | YUV/RGB |
Dostawca usług internetowych HWA | Tak | NIE |
Głębokie uczenie HWA | Tak | NIE |
Grafika 3D HWA | NIE | Tak |
Podłączanie wielu kamer CSI-2 do SoC
Podsystem kamery w układzie SoC AM6x zawiera następujące komponenty, jak pokazano na rysunku 2-1:
- Odbiornik MIPI D-PHY: odbiera strumienie wideo z zewnętrznych kamer, obsługuje do 1.5 Gb/s na pasmo danych dla 4 pasm.
- Odbiornik CSI-2 (RX): odbiera strumienie wideo z odbiornika D-PHY i albo wysyła je bezpośrednio do dostawcy usług internetowych (ISP), albo zapisuje dane w pamięci DDR. Ten moduł obsługuje do 16 kanałów wirtualnych.
- SHIM: wrapper DMA, który umożliwia przesyłanie przechwyconych strumieni do pamięci za pośrednictwem DMA. Za pomocą tego wrappera można utworzyć wiele kontekstów DMA, z których każdy odpowiada wirtualnemu kanałowi odbiornika CSI-2.
Moduł AM6x umożliwia obsługę wielu kamer dzięki wykorzystaniu kanałów wirtualnych CSI-2 RX, mimo że w układzie SoC znajduje się tylko jeden interfejs CSI-2 RX. Do łączenia strumieni z wielu kamer i przesyłania ich do jednego układu SoC wymagany jest zewnętrzny komponent agregujący CSI-2. Możliwe jest zastosowanie dwóch typów rozwiązań agregujących CSI-2, opisanych w poniższych sekcjach.
Agregator CSI-2 wykorzystujący SerDes
Jednym ze sposobów łączenia wielu strumieni kamer jest zastosowanie rozwiązania serializująco-deserializującego (SerDes). Dane CSI-2 z każdej kamery są konwertowane przez serializator i przesyłane kablem. Deserializator odbiera wszystkie zserializowane dane przesyłane kablami (jeden kabel na kamerę), konwertuje strumienie z powrotem na dane CSI-2, a następnie wysyła przeplatany strumień CSI-2 do pojedynczego interfejsu CSI-2 RX w układzie SoC. Każdy strumień kamery jest identyfikowany przez unikalny kanał wirtualny. To rozwiązanie agregujące oferuje dodatkową korzyść w postaci możliwości połączenia na duże odległości do 15 m między kamerami a układem SoC.
Serializatory i deserializatory FPD-Link lub V3-Link (SerDes), obsługiwane w pakiecie AM6x Linux SDK, to najpopularniejsze technologie dla tego typu rozwiązań agregujących CSI-2. Zarówno deserializatory FPD-Link, jak i V3-Link posiadają kanały zwrotne, które można wykorzystać do wysyłania sygnałów synchronizacji klatek w celu synchronizacji wszystkich kamer, jak wyjaśniono w [7].
Rysunek 2-2 pokazuje exampmożliwość wykorzystania SerDes do podłączenia wielu kamer do jednego układu SoC AM6x.
ByłyampRozwiązanie agregujące można znaleźć w zestawie Arducam V3Link Camera Solution Kit. Zestaw ten zawiera koncentrator deserializatora, który agreguje 4 strumienie kamer CSI-2, a także 4 pary serializatorów V3link i kamery IMX219, w tym kable koncentryczne FAKRA i 22-pinowe kable FPC. Projekt referencyjny, omówiony później, został zbudowany na bazie tego zestawu.
Agregator CSI-2 bez użycia SerDes
Ten typ agregatora może bezpośrednio współpracować z wieloma kamerami MIPI CSI-2 i agregować dane ze wszystkich kamer w pojedynczy strumień wyjściowy CSI-2.
Rysunek 2-3 pokazuje example takiego systemu. Ten typ rozwiązania agregującego nie wykorzystuje żadnego serializatora/deserializatora, ale jest ograniczony maksymalną odległością transferu danych CSI-2, która wynosi do 30 cm. Pakiet SDK AM6x Linux nie obsługuje tego typu agregatora CSI-2.
Włączanie wielu kamer w oprogramowaniu
Architektura oprogramowania podsystemu kamery
Rysunek 3-1 przedstawia blokowy schemat wysokiego poziomu oprogramowania systemu przechwytywania obrazu z kamery w pakiecie AM62A/AM62P Linux SDK, odpowiadający systemowi sprzętowemu przedstawionemu na rysunku 2-2.
- Ta architektura oprogramowania umożliwia układowi SoC odbieranie strumieni z wielu kamer za pomocą SerDes, jak pokazano na rysunku 2-2. SerDes FPD-Link/V3-Link przypisuje każdej kamerze unikalny adres I2C i kanał wirtualny. Należy utworzyć unikalną nakładkę drzewa urządzeń z unikalnym adresem I2C dla każdej kamery. Sterownik CSI-2 RX rozpoznaje każdą kamerę za pomocą unikalnego numeru kanału wirtualnego i tworzy kontekst DMA dla każdego strumienia kamery. Dla każdego kontekstu DMA tworzony jest węzeł wideo. Dane z każdej kamery są następnie odbierane i zapisywane w pamięci za pomocą DMA. Aplikacje przestrzeni użytkownika wykorzystują węzły wideo odpowiadające każdej kamerze do dostępu do danych kamery. PrzykładampInstrukcje dotyczące wykorzystania tej architektury oprogramowania podano w rozdziale 4 – Projekt referencyjny.
- Każdy konkretny sterownik czujnika zgodny ze środowiskiem V4L2 może działać w tej architekturze w trybie plug and play. Informacje na temat integracji nowego sterownika czujnika z zestawem SDK systemu Linux można znaleźć w dokumencie [8].
Architektura oprogramowania Image Pipeline
- Pakiet SDK AM6x Linux udostępnia framework GStreamer (GST), który może być używany w przestrzeni serwerów do integracji komponentów przetwarzania obrazu w różnych aplikacjach. Akceleratory sprzętowe (HWA) w układzie SoC, takie jak Vision Pre-processing Accelerator (VPAC) lub ISP, koder/dekoder wideo oraz silnik obliczeniowy głębokiego uczenia, są dostępne poprzez GST. pluginsSam VPAC (ISP) składa się z wielu bloków, w tym Vision Imaging Sub-System (VISS), Lens Distortion Correction (LDC) i Multiscalar (MSC), z których każdy odpowiada wtyczce GST.
- Rysunek 3-2 przedstawia schemat blokowy typowego procesu przetwarzania obrazu od kamery do kodowania lub głębokiego przetwarzania.
Aplikacje edukacyjne na platformie AM62A. Więcej informacji na temat kompleksowego przepływu danych można znaleźć w dokumentacji EdgeAI SDK.
W przypadku AM62P przetwarzanie obrazu jest prostsze, ponieważ nie ma na nim dostawcy usług internetowych.
Dzięki utworzeniu węzła wideo dla każdej kamery, potok przetwarzania obrazu oparty na GStreamerze umożliwia jednoczesne przetwarzanie danych wejściowych z wielu kamer (połączonych tym samym interfejsem CSI-2 RX). Projekt referencyjny wykorzystujący GStreamer do aplikacji wielokamerowych przedstawiono w następnym rozdziale.
Projekt referencyjny
W tym rozdziale przedstawiono projekt referencyjny uruchamiania aplikacji obsługujących wiele kamer na maszynie AM62A EVM, wykorzystujący zestaw rozwiązań kamerowych Arducam V3Link do podłączenia 4 kamer CSI-2 do AM62A i uruchomienia wykrywania obiektów dla wszystkich 4 kamer.
Obsługiwane kamery
Zestaw Arducam V3Link współpracuje zarówno z kamerami opartymi na FPD-Link/V3-Link, jak i kamerami CSI-2 kompatybilnymi z Raspberry Pi. Przetestowano następujące kamery:
- Inżynieria D3 D3RCM-IMX390-953
- System obrazowania Leoparda LI-OV2312-FPDLINKIII-110H
- Kamery IMX219 w zestawie rozwiązań kamerowych Arducam V3Link
Konfiguracja czterech kamer IMX219
Postępuj zgodnie z instrukcjami zawartymi w skróconej instrukcji obsługi zestawu startowego AM62A EVM, aby skonfigurować SK-AM62A-LP EVM (AM62A SK) oraz skróconą instrukcję obsługi rozwiązania ArduCam V3Link Camera Solution, aby podłączyć kamery do AM62A SK za pomocą zestawu V3Link. Upewnij się, że styki na kablach elastycznych, kamerach, płytce V3Link i AM62A SK są prawidłowo ustawione.
Rysunek 4-1 przedstawia konfigurację użytą w projekcie referencyjnym w niniejszym raporcie. Główne elementy konfiguracji obejmują:
- 1X płytka EVM SK-AM62A-LP
- 1X płytka adaptera Arducam V3Link d-ch
- Kabel FPC łączący Arducam V3Link z SK-AM62A
- 4X adaptery kamery V3Link (serializatory)
- 4 kable koncentryczne RF do podłączania serializatorów V3Link do zestawu V3Link D-CH
- 4 kamery IMX219
- 4 kable CSI-2 22-pinowe do podłączania kamer do serializatorów
- Kable: kabel HDMI, USB-C do zasilania SK-AM62A-LP i zasilanie 12 V dla zestawu V3Link d-ch)
- Inne komponenty nieprzedstawione na rysunku 4-1: karta micro-SD, kabel micro-USB do dostępu do SK-AM62A-LP i sieć Ethernet do przesyłania strumieniowego
Konfigurowanie kamer i interfejsu odbiorczego CSI-2
Skonfiguruj oprogramowanie zgodnie z instrukcjami zawartymi w przewodniku szybkiego startu Arducam V3Link. Po uruchomieniu skryptu konfiguracji kamery setup-imx219.sh, format kamery, format interfejsu CSI-2 RX oraz trasy z każdej kamery do odpowiedniego węzła wideo zostaną poprawnie skonfigurowane. Dla czterech kamer IMX219 tworzone są cztery węzły wideo. Polecenie „v4l2-ctl –list-devices” wyświetla wszystkie urządzenia wideo V4L2, jak pokazano poniżej:
W systemie tiscsi2rx znajduje się 6 węzłów wideo i 1 węzeł mediów. Każdy węzeł wideo odpowiada kontekstowi DMA przydzielonemu przez sterownik CSI2 RX. Spośród 6 węzłów wideo, 4 są używane przez 4 kamery IMX219, jak pokazano w poniższej topologii potoku mediów:
Jak pokazano powyżej, encja medialna 30102000.ticsi2rx ma 6 padów źródłowych, ale używane są tylko pierwsze 4, każdy dla jednego IMX219. Topologię potoku medialnego można również zilustrować graficznie. Uruchom poniższe polecenie, aby wygenerować kropkę. file:
Następnie uruchom poniższe polecenie na komputerze hosta Linux, aby wygenerować plik PNG file:
Rysunek 4-2 przedstawia obraz wygenerowany za pomocą poleceń podanych powyżej. Komponenty architektury oprogramowania z rysunku 3-1 można znaleźć na tym grafie.
Transmisja strumieniowa z czterech kamer
Przy prawidłowej konfiguracji sprzętu i oprogramowania, aplikacje obsługujące wiele kamer mogą działać z poziomu przestrzeni użytkownika. W przypadku AM62A konieczne jest dostrojenie ISP, aby uzyskać dobrą jakość obrazu. Szczegółowe informacje na temat dostrajania ISP można znaleźć w instrukcji dostrajania ISP dla AM6xA. Poniższe sekcje przedstawiają przykładoweampprzesyłanie strumieniowe danych z kamery do wyświetlacza, przesyłanie strumieniowe danych z kamery do sieci i przechowywanie danych z kamery w files.
Przesyłanie strumieniowe danych z kamery do wyświetlacza
Podstawowym zastosowaniem tego systemu wielokamerowego jest strumieniowanie obrazu ze wszystkich kamer do wyświetlacza podłączonego do tego samego układu SoC. Poniżej przedstawiono przykładowy potok GStreamer.ampprzesyłania strumieniowego czterech IMX219 do wyświetlacza (numery węzłów wideo i numery v4l-subdev w procesie prawdopodobnie będą się zmieniać od ponownego uruchomienia do ponownego uruchomienia).
Przesyłanie strumieniowe danych z kamery przez Ethernet
Zamiast strumieniowania do wyświetlacza podłączonego do tego samego układu SoC, dane z kamery można również przesyłać strumieniowo przez Ethernet. Stroną odbiorczą może być inny procesor AM62A/AM62P lub komputer host. Poniżej znajduje się przykładampprzesyłanie strumieniowe danych z kamery przez sieć Ethernet (dla uproszczenia wykorzystując dwie kamery) (należy zwrócić uwagę na wtyczkę enkodera używaną w potoku):
Poniżej znajduje się byłyampmożliwość odbioru danych z kamery i przesyłania strumieniowego do wyświetlacza na innym procesorze AM62A/AM62P:
Przechowywanie danych z kamery Files
Zamiast przesyłania strumieniowego do wyświetlacza lub przez sieć, dane z kamery można przechowywać lokalnie files. Poniższy kanał przechowuje dane każdej kamery w file (używając dwóch kamer jako byłyamp(dla uproszczenia)
Wnioskowanie głębokiego uczenia wielokamerowego
AM62A jest wyposażony w akcelerator głębokiego uczenia (C7x-MMA) z maksymalnie dwoma modułami TOPS, które umożliwiają uruchamianie różnych typów modeli głębokiego uczenia do celów klasyfikacji, wykrywania obiektów, segmentacji semantycznej i innych. W tej sekcji pokazano, jak AM62A może jednocześnie uruchamiać cztery modele głębokiego uczenia na czterech różnych kanałach kamer.
Wybór modelu
Rozwiązanie EdgeAI-ModelZoo firmy TI udostępnia setki najnowocześniejszych modeli, które są konwertowane/eksportowane z ich oryginalnych frameworków szkoleniowych do formatu przyjaznego dla systemów wbudowanych, dzięki czemu można je przenieść do akceleratora głębokiego uczenia C7x-MMA. Oparty na chmurze Edge AI Studio Model Analyzer oferuje łatwe w użyciu narzędzie „Wybór modelu”. Jest ono dynamicznie aktualizowane, aby uwzględnić wszystkie modele obsługiwane przez TI EdgeAI-ModelZoo. Narzędzie nie wymaga wcześniejszego doświadczenia i oferuje łatwy w obsłudze interfejs do wprowadzania funkcji wymaganych w wybranym modelu.
Do tego wielokamerowego eksperymentu głębokiego uczenia wybrano TFL-OD-2000-ssd-mobV1-coco-mlperf. Ten model detekcji wielu obiektów został opracowany w środowisku TensorFlow z rozdzielczością wejściową 300×300. Tabela 4-1 przedstawia istotne cechy tego modelu po trenowaniu na zbiorze danych cCOCO obejmującym około 80 różnych klas.
Tabela 4-1. Najważniejsze cechy modelu TFL-OD-2000-ssd-mobV1-coco-mlperf.
Model | Zadanie | Rezolucja | Strzelanie do bramki | mAP 50%
Dokładność w COCO |
Opóźnienie/ramka (ms) | DDR BW
Wykorzystanie (MB/ramka) |
TFL-OD-2000-ssd-
mobV1-coco-mlperf |
Wykrywanie wielu obiektów | 300×300 | ~152 | 15.9 | 6.5 | 18.839 |
Konfiguracja potoku
Rysunek 4-3 przedstawia 4-kamerowy potok głębokiego uczenia GStreamer. TI udostępnia pakiet GStreamer plugins które pozwalają na odciążenie części przetwarzania multimediów i wnioskowania głębokiego uczenia się akceleratorom sprzętowym. Niektóre z nichampniektóre z nich plugins Zawierają tiovxisp, tiovxmultiscaler, tiovxmosaic i tidlinferer. Potok przedstawiony na rysunku 4-3 zawiera wszystkie wymagane plugins dla wielościeżkowego potoku GStreamer dla 4-kamerowych wejść, z których każde obejmuje wstępne przetwarzanie multimediów, wnioskowanie głębokiego uczenia i postproces. Zduplikowany plugins Dla ułatwienia demonstracji ścieżki każdej z kamer są ułożone w stos na wykresie.
Dostępne zasoby sprzętowe są równomiernie rozłożone pomiędzy cztery ścieżki kamery. Na przykład AM62A zawiera dwa multiskalery obrazu: MSC0 i MSC1. Potok jawnie dedykuje MSC0 do przetwarzania ścieżek kamery 1 i kamery 2, podczas gdy MSC1 jest dedykowany do kamery 3 i kamery 4.
Dane wyjściowe czterech potoków kamer są skalowane w dół i łączone za pomocą wtyczki tiovxmosaic. Dane wyjściowe są wyświetlane na jednym ekranie. Rysunek 4-4 przedstawia dane wyjściowe czterech kamer z modelem głębokiego uczenia z uruchomioną detekcją obiektów. Każdy potok (kamera) działa z szybkością 30 klatek na sekundę, a łącznie 120 klatek na sekundę.
Następnie przedstawiono pełny skrypt potoku dla przypadku użycia głębokiego uczenia wielokamerowego pokazanego na rysunku 4-3.
Analiza wydajności
Konfigurację z czterema kamerami wykorzystującą płytę V3Link i AM62A SK przetestowano w różnych scenariuszach zastosowań, w tym przy bezpośrednim wyświetlaniu na ekranie, przesyłaniu strumieniowym przez sieć Ethernet (cztery kanały UDP), nagrywaniu na 4 osobnych kanałach files oraz z wnioskowaniem opartym na uczeniu głębokim. W każdym eksperymencie monitorowaliśmy liczbę klatek na sekundę i wykorzystanie rdzeni procesora, aby zbadać możliwości całego systemu.
Jak pokazano wcześniej na rysunku 4-4, potok głębokiego uczenia wykorzystuje wtyczkę tiperfoverlay GStreamer do wyświetlania obciążenia rdzeni procesora w postaci wykresu słupkowego u dołu ekranu. Domyślnie wykres jest aktualizowany co dwie sekundy, aby pokazać obciążenie jako procent wykorzystania.tage. Oprócz wtyczki tiperfoverlay GStreamer, narzędzie perf_stats jest drugą opcją umożliwiającą wyświetlanie wydajności rdzenia bezpośrednio na terminalu z opcją zapisywania do pliku fileTo narzędzie jest dokładniejsze w porównaniu z tTiperfoverlay, ponieważ ten ostatni dodatkowo obciąża rdzenie ARM i pamięć DDR, aby narysować wykres i nałożyć go na ekran. Narzędzie perf_stats służy głównie do zbierania wyników wykorzystania sprzętu we wszystkich przypadkach testowych przedstawionych w tym dokumencie. Niektóre z ważnych rdzeni przetwarzających i akceleratorów badanych w tych testach to procesory główne (cztery rdzenie ARM A53 o taktowaniu 1.25 GHz), akcelerator głębokiego uczenia (C7x-MMA o taktowaniu 850 MHz), VPAC (ISP) z VISS i multiskalerami (MSC0 i MSC1) oraz operacje DDR.
Tabela 5-1 przedstawia wydajność i wykorzystanie zasobów podczas korzystania z AM62A z czterema kamerami w trzech przypadkach użycia, obejmujących przesyłanie strumieniowe czterech kamer do wyświetlacza, przesyłanie strumieniowe przez sieć Ethernet i nagrywanie na czterech oddzielnych kamerach. files. W każdym przypadku użycia zaimplementowano dwa testy: tylko z kamerą i z wnioskowaniem głębokiego uczenia. Ponadto pierwszy wiersz w Tabeli 5-1 przedstawia wykorzystanie sprzętu, gdy na AM62A działał tylko system operacyjny bez żadnych aplikacji użytkownika. Jest to wykorzystywane jako punkt odniesienia do porównania podczas oceny wykorzystania sprzętu w innych przypadkach testowych. Jak pokazano w tabeli, cztery kamery z głębokim uczeniem i wyświetlaczem ekranowym działały z szybkością 30 kl./s każda, co daje łącznie 120 kl./s dla czterech kamer. Tak wysoką liczbę klatek na sekundę osiągnięto przy zaledwie 86% pełnej wydajności akceleratora głębokiego uczenia (C7x-MMA). Ponadto ważne jest, aby zauważyć, że akcelerator głębokiego uczenia był taktowany częstotliwością 850 MHz zamiast 1000 MHz w tych eksperymentach, co stanowi zaledwie około 85% jego maksymalnej wydajności.
Tabela 5-1. Wydajność (FPS) i wykorzystanie zasobów AM62A w przypadku użycia z 4 kamerami IMX219 do wyświetlania na ekranie, strumieniowania Ethernet, nagrywania do Filei przeprowadzanie głębokiego wnioskowania uczenia się
Aplikacja n | Rurociąg (operacja
) |
Wyjście | Strzelanie do bramki średnia rurociąg s | Strzelanie do bramki
całkowity |
MPU A53s @ 1.25
GHz [%] |
MCU R5 [%] | DLA (C7x-MMA) @ 850
MHz [%] |
VISS [%] | MSC0 [%] | MSC1 [%] | NRD
Rd [MB/s] |
NRD
Wr [MB/s] |
NRD
Razem [MB/s] |
Brak aplikacji | Linia bazowa Brak operacji | NA | NA | NA | 1.87 | 1 | 0 | 0 | 0 | 0 | 560 | 19 | 579 |
Kamera tylko | Strumień do ekranu | Ekran | 30 | 120 | 12 | 12 | 0 | 70 | 61 | 60 | 1015 | 757 | 1782 |
Przesyłaj strumieniowo przez Ethernet | UDP: 4 XNUMX XNUMX XNUMX XNUMX
porty 1920×1080 |
30 | 120 | 23 | 6 | 0 | 70 | 0 | 0 | 2071 | 1390 | 3461 | |
Nagrywać Do files | 4 filew rozdzielczości 1920×1080 | 30 | 120 | 25 | 3 | 0 | 70 | 0 | 0 | 2100 | 1403 | 3503 | |
Krzywka z głębokim uczeniem się | Głębokie uczenie: wykrywanie obiektów MobV1- coco | Ekran | 30 | 120 | 38 | 25 | 86 | 71 | 85 | 82 | 2926 | 1676 | 4602 |
Głębokie uczenie: wykrywanie obiektów MobV1-coco i strumieniowanie przez Ethernet | UDP: 4 XNUMX XNUMX XNUMX XNUMX
porty 1920×1080 |
28 | 112 | 84 | 20 | 99 | 66 | 65 | 72 | 4157 | 2563 | 6720 | |
Głębokie uczenie: wykrywanie obiektów MobV1- coco i nagrywanie do files | 4 filew rozdzielczości 1920×1080 | 28 | 112 | 87 | 22 | 98 | 75 | 82 | 61 | 2024 | 2458 | 6482 |
Streszczenie
Niniejszy raport opisuje sposób wdrażania aplikacji wielokamerowych w urządzeniach z rodziny AM6x. W raporcie przedstawiono projekt referencyjny oparty na zestawie rozwiązań kamerowych V3Link firmy Arducam i maszynie EVM AM62A SK, z kilkoma aplikacjami wykorzystującymi cztery kamery IMX219, takimi jak strumieniowanie i detekcja obiektów. Zachęcamy użytkowników do nabycia zestawu rozwiązań kamerowych V3Link firmy Arducam i powielenia tych rozwiązań.amples. Raport zawiera również szczegółową analizę wydajności AM62A podczas korzystania z czterech kamer w różnych konfiguracjach, w tym wyświetlania na ekranie, przesyłania strumieniowego przez Ethernet i nagrywania do files. Pokazuje również, że AM62A umożliwia przeprowadzanie wnioskowania głębokiego uczenia na czterech oddzielnych strumieniach kamer równolegle. W razie pytań dotyczących uruchamiania tychamples, złóż zapytanie na forum TI E2E.
Odniesienia
- Zestaw startowy AM62A EVM – skrócona instrukcja obsługi
- Szybki przewodnik po rozwiązaniu kamery ArduCam V3Link
- Dokumentacja Edge AI SDK dla AM62A
- Inteligentne kamery Edge AI wykorzystujące energooszczędny procesor AM62A
- Systemy luster kamerowych na AM62A
- Systemy monitorowania kierowcy i zajętości na AM62A
- Zastosowanie kamery czterokanałowej do dźwięku przestrzennego View i systemy kamer CMS
- AM62Ax Linux Academy o włączaniu czujnika CIS-2
- Edge AI ModelZoo
- Edge AI Studio
- Narzędzie Perf_stats
Części TI wymienione w niniejszej notatce aplikacyjnej:
- https://www.ti.com/product/AM62A7
- https://www.ti.com/product/AM62A7-Q1
- https://www.ti.com/product/AM62A3
- https://www.ti.com/product/AM62A3-Q1
- https://www.ti.com/product/AM62P
- https://www.ti.com/product/AM62P-Q1
- https://www.ti.com/product/DS90UB960-Q1
- https://www.ti.com/product/DS90UB953-Q1
- https://www.ti.com/product/TDES960
- https://www.ti.com/product/TSER953
WAŻNA INFORMACJA I ZASTRZEŻENIE
TI DOSTARCZA DANE TECHNICZNE I NIEZAWODNOŚCI (W TYM KARTY DANYCH), ZASOBY PROJEKTOWE (W TYM PROJEKTY REFERENCYJNE), APLIKACJE LUB INNE PORADY PROJEKTOWE, WEB NARZĘDZIA, INFORMACJE DOTYCZĄCE BEZPIECZEŃSTWA I INNE ZASOBY „TAKIE, JAKIE SĄ” I ZE WSZYSTKIMI WADAMI ORAZ WYŁĄCZA WSZELKIE GWARANCJE, WYRAŹNE I DOROZUMIANE, W TYM MIĘDZY INNYMI WSZELKIE DOROZUMIANE GWARANCJE PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU LUB NIENARUSZENIA PRAW .
Zasoby te są przeznaczone dla doświadczonych programistów projektujących przy użyciu produktów TI. Jesteś wyłącznie odpowiedzialny za
- wybór odpowiednich produktów TI do Twojej aplikacji,
- projektowanie, walidacja i testowanie aplikacji oraz
- zapewnienie, że Twoja aplikacja spełnia obowiązujące normy i wszelkie inne wymagania dotyczące bezpieczeństwa, ochrony, regulacje prawne itp.
Zasoby te mogą ulec zmianie bez powiadomienia. TI zezwala na korzystanie z tych zasobów wyłącznie w celu tworzenia aplikacji wykorzystujących produkty TI opisane w zasobie. Inne kopiowanie i wyświetlanie tych zasobów jest zabronione. Nie udziela się licencji na żadne inne prawa własności intelektualnej TI ani na prawa własności intelektualnej osób trzecich. TI zrzeka się odpowiedzialności za wszelkie roszczenia, szkody, koszty, straty i zobowiązania wynikające z korzystania z tych zasobów, a Ty zobowiązujesz się w pełni zabezpieczyć TI i jego przedstawicieli przed wszelkimi roszczeniami, szkodami, kosztami, stratami i zobowiązaniami.
Produkty TI są dostarczane zgodnie z Warunkami sprzedaży TI lub innymi obowiązującymi warunkami dostępnymi na stronie ti.com lub dostarczane w połączeniu z takimi produktami TI. Udostępnienie tych zasobów przez TI nie rozszerza ani w żaden inny sposób nie zmienia obowiązujących gwarancji TI ani zastrzeżeń gwarancyjnych dla produktów TI.
TI wyraża sprzeciw i odrzuca wszelkie zaproponowane przez Państwa dodatkowe lub odmienne warunki.
WAŻNA INFORMACJA
- Adres pocztowy: Texas Instruments, skrytka pocztowa 655303, Dallas, Teksas 75265
- Prawa autorskie © 2024, Texas Instruments Incorporated
Często zadawane pytania
P: Czy mogę używać dowolnego typu aparatu z urządzeniami z rodziny AM6x?
Rodzina AM6x obsługuje różne typy kamer, w tym te z wbudowanym interfejsem ISP i bez niego. Więcej informacji na temat obsługiwanych typów kamer można znaleźć w specyfikacji.
:Jakie są główne różnice między AM62A i AM62P w przetwarzaniu obrazu?
Kluczowe różnice obejmują obsługiwane typy kamer, dane wyjściowe kamery, obecność ISP HWA, Deep Learning HWA i 3-D Graphics HWA. Szczegółowe porównanie można znaleźć w sekcji specyfikacji.
Dokumenty / Zasoby
![]() |
Texas Instruments AM6x opracowuje system wielokamerowy [plik PDF] Instrukcja użytkownika AM62A, AM62P, AM6x Rozwój wielu kamer, AM6x, Rozwój wielu kamer, Wiele kamer, Aparat |