elektrotechnik AUTOMATYK
Reklama
Reklama

Różne podejścia do przetwarzania danych dla sztucznej inteligencji w ramach IIoT

Farnell
Reklama
Reklama

Sztuczna inteligencja (AI) może sprawić, że systemy wbudowane dla przemysłowego internetu rzeczy (IIoT) będą znacznie bardziej responsywne i niezawodne. Użytkownicy już teraz wykorzystują tę technologię do monitorowania stanu maszyn i określania, czy awaria jest nieuchronna, a także do planowania rutynowych prac konserwacyjnych w bardziej kosztowo efektywny sposób.

Istotne w kontekście wdrażania technologii sztucznej inteligencji w systemach wbudowanych jest określenie, gdzie odbywa się większość przetwarzania danych. Algorytmy sztucznej inteligencji różnią się znacznie pod względem wydajności obliczeniowej. Będzie miało to duży wpływ na to, co jest wymagane do przetwarzania danych i gdzie to przetwarzanie jest wykonywane. Istnieją trzy podejścia do projektowania systemów wbudowanych opartych na sztucznej inteligencji: korzystanie z AI opartej na chmurze, wdrażanie systemu z wbudowaną sztuczną inteligencją lub tworzenie własnych algorytmów, zazwyczaj opierając się na oprogramowaniu typu open source. 

Korzystanie z usługi opartej na chmurze

Architektura głębokich sieci neuronowych (DNN) jest przykładem algorytmu, który wymaga szczególnie intensywnych obliczeń, zwłaszcza w fazie uczenia. Za każdym razem, gdy model musi zostać zaktualizowany, potrzebne są miliardy obliczeń zmiennoprzecinkowych. Ze względu na duże zapotrzebowanie na DNN, typowym podejściem jest wysyłanie danych do chmury w celu zdalnego ich przetworzenia. Przetwarzanie w chmurze jest już szeroko stosowane w urządzeniach konsumenckich. Urządzenia obsługujące sztuczną inteligencję w sterowaniu przemysłowym mogą analogicznie wykorzystać to zdalne przetwarzanie, a także narzędzia i struktury stworzone do pracy z usługami w chmurze, z których wiele jest udostępnianych w formie open source. 

Popularnym przykładem sztucznej inteligencji opartej na chmurze jest TensorFlow od Google. Rozwiązanie to zapewnia wiele poziomów abstrakcji, aby umożliwić korzystanie z nich inżynierom doświadczonym w tworzeniu algorytmów sztucznej inteligencji, a także tym, którzy dopiero zaczynają swoją przygodę w tym obszarze. Interfejs API Keras, który stanowi część struktury TensorFlow, został zaprojektowany w celu ułatwienia eksploracji technik uczenia maszynowego oraz uruchamiania i działania aplikacji. 

Powiązane firmy

Wadą przetwarzania w chmurze jest jednak przepustowość komunikacji wymagana do jego obsługi. Niezawodne połączenie internetowe jest niezbędne do utrzymania usługi. Warto zauważyć, że wiele konsumenckich aplikacji chmury AI opiera się na połączeniach szerokopasmowych. Urządzenia w fabryce mogą nie mieć dostępu do szybiej transmisji danych wymaganej do aktualizacji zdalnego modelu AI w czasie rzeczywistym. 

Przetwarzając więcej lokalnie, możliwe jest zmniejszenie wymagań dotyczących przepustowości. W przypadku dużych zbiorów danych, które muszą zostać przesłane do zdalnej lokalizacji, można zmniejszyć ich wielkość, zwracając uwagę na zawartość. W aplikacji monitorującej zmienne środowiskowe wiele z nich nie zmienia się przez długi czas. W modelu istotne są zmiany powyżej lub poniżej określonych progów. Nawet jeśli czujnik analizuje dane wejściowe czujnika milisekunda po milisekundzie, częstotliwość aktualizacji dla serwera w chmurze może być rzędu kilku aktualizacji na sekundę lub rzadziej.

Budowanie oprogramowania sztucznej inteligencji AI

W przypadku bardziej złożonych form danych, takich jak audio lub wideo, wymagany będzie większy stopień wstępnego przetwarzania. Przetwarzanie obrazu przed przekazaniem danych wyjściowych do modelu AI może nie tylko pozwolić zaoszczędzić na przepustowości, ale także poprawić ogólną wydajność systemu. Na przykład odszumianie przed kompresją często poprawia wydajność algorytmów kompresji. Jest to szczególnie istotne w przypadku technik kompresji stratnej, które są wrażliwe na sygnały o wysokiej częstotliwości. Wykrywanie krawędzi może być używane z segmentacją obrazu, aby skupić model tylko na obiektach zainteresowania. Zmniejsza to ilość nieistotnych danych, które należy wprowadzić do modelu zarówno podczas uczenia, jak i wnioskowania.

Chociaż przetwarzanie obrazów to złożona dziedzina, w wielu przypadkach programiści mogą przetwarzać algorytmy lokalnie, korzystając z łatwo dostępnych bibliotek. Eliminuje to konieczność korzystania z połączeń internetowych o dużej przepustowości i może ograniczyć opóźnienia. Popularnym przykładem jest opensource'owa biblioteka OpenCV wizji komputerowej, z której wiele zespołów korzysta do wstępnego przetwarzania danych dla modeli sztucznej inteligencji. Programiści mogą wywoływać ją z kodu C++, Java, Python i Matlab, wspierając łatwe prototypowanie przed przeniesieniem algorytmów do osadzonego celu. 

Wykorzystując OpenCV i przetwarzając dane lokalnie, integratorzy eliminują również zagrożenia bezpieczeństwa związane z przesyłaniem i przechowywaniem danych w chmurze. Głównym problemem użytkowników końcowych jest prywatność i bezpieczeństwo danych przekazywanych do chmury. Monitorowanie stanu i inspekcja przemysłowa to krytyczne procesy, które wymagają jak najlepszej analizy danych, ale zawierają informacje, które mogłyby być korzystne dla pozbawionych skrupułów konkurentów. Systemy, np. te stosowane w medycynie, borykają się z innymi problemami dotyczącymi ochrony prywatności. Chociaż operatorzy chmury wdrożyli środki bezpieczeństwa, dane przechowywane w każdym urządzeniu (w miarę możliwości) posiadają zabezpieczenia, które ograniczają ryzyko ujawnienia w przypadku udanego włamania.

Oprócz obsługi przetwarzania obrazu, najnowsze wersje OpenCV zawierają bezpośrednie wsparcie dla modeli uczenia maszynowego zbudowane przy użyciu wielu popularnych platform, w tym Caffe, PyTorch czy Tensorflow. Jedną z metod, która okazała się sukcesem, jest użycie chmury do wstępnego rozwoju i prototypowania przed przeniesieniem modelu na wbudowaną platformę. 

Wydajność jest głównym problemem w przypadku każdego modelu uczenia maszynowego, który jest przenoszony na urządzenie wbudowane. Ponieważ dane szkoleniowe mają bardzo wysokie wymagania dotyczące wydajności, jedną z opcji jest wykonanie ich na serwerach lokalnych lub w chmurze (w zależności od kwestii prywatności). 

Tam, gdzie wymagana jest wydajność lokalna, możliwym rozwiązaniem jest Avnet Ultra96-V2 (na głównym zdjęciu), który zawiera Xilinx Zynq UltraScale+ ZU3EG MPSoC. Połączenie rdzeni procesorów Arm z wbudowanymi maszynami przetwarzania sygnałów oraz w pełni programowalnym układem logicznym zapewnia efektywną obsługę modeli DNN oraz procedur przetwarzania obrazu. Ultra96-V2 rozszerza zakres temperatur produktu do pełnego zakresu przemysłowego, umożliwiając stosowanie go w pobliżu maszyn pracujących w trudnych warunkach. Rekonfiguracja zapewnia możliwość obsługi szkolenia lokalnie, a także wnioskowanie, gdzie aplikacja ma wymagania dotyczące wysokiej przepustowości.

Wnioskowanie wiąże się z mniejszym obciążeniem niż uczenie, a w przypadku strumieni czujników, a nie obrazów, zadowalający może być mikrokontroler obsługujący jądro DNN w oprogramowaniu. Jednak strumienie o niższej szybkości transmisji danych mogą być nadal zbyt duże, aby urządzenie o niskim poborze mocy mogło sobie z nimi poradzić. Niektóre zespoły stosują techniki optymalizacji, aby zmniejszyć liczbę obliczeń potrzebnych do wnioskowania, mimo że zwiększa to złożoność rozbudowy. Modele AI często zawierają wysoki stopień nadmiarowości. Ucinając połączenia między neuronami i zmniejszając precyzję obliczeń do 8-bitowej liczby całkowitej lub nawet niższej rozdzielczości, można uzyskać znaczne oszczędności mocy obliczeniowej. 

Korzystanie z urządzenia Edge z wbudowaną sztuczną inteligencją

Alternatywną opcją jest przeniesienie wnioskowania na lokalne urządzenie bramki. Jedna bramka mogłaby obsłużyć obowiązki wnioskowania dla wielu węzłów czujników, jeśli przepustowość na węzeł jest stosunkowo niska. Na przykład w komputerowych aplikacjach wizyjnych nie ma potrzeby wysyłania danych do wnioskowania AI, gdy narzędzie nie działa lub nie ładuje nowej części do kontroli.

Konieczność dystrybucji obciążeń, przenoszenia i optymalizacji modeli z platform zorientowanych na chmurę zwiększa złożoność programowania. Inną opcją jest zastosowanie szkieletu, który jest już zoptymalizowany do użytku wbudowanego. Arduino Portenta Vision Shield, gotowe do produkcji rozszerzenie dla potężnego Arduino Portenta H7, które dodaje energooszczędną kamerę, dwa mikrofony i łączność – wszystko, co jest potrzebne do szybkiego tworzenia brzegowych aplikacji ML. Portenta Vision Shield jest wyposażone w kamerę Himax o bardzo niskim poborze mocy, która autonomicznie wykrywa ruch, gdy Portenta H7 jest w trybie gotowości, budząc mikro-sterownik tylko w razie potrzeby. OpenMV IDE zapewnia łatwy sposób na wizję komputerową przy użyciu MicroPython jako paradygmatu programowania i mnóstwo algorytmów AI/ML dostępnych od razu „po wyjęciu z pudełka”. Łącznie Arduino Portenta H7 i Vision Shield umożliwiają maszynowe uczenie na urządzeniu i znacznie zmniejszają wymagania dotyczące przepustowości komunikacji w aplikacji IoT.

Arduino
Arduino Portenta Vision Shield

Inni wiodący na rynku dostawcy, tacy jak Schneider Electric i Festo, włączyli lokalne wsparcie sztucznej inteligencji do produktów sterujących do określonych aplikacji. Pierwsza z nich oferuje aplikację Predictive Analytics do identyfikowania subtelnych zmian w zachowaniu systemu, które mają wpływ na wydajność. W 2018 r. Festo przejęło firmę Resolto, specjalistę w dziedzinie nauki o danych, a jej oprogramowanie SCRAITEC uczy się zdrowego stanu systemu, aby wykrywać każdą anomalię. 

To, jakie podejście podejmie producent oryginalnego sprzętu lub integrator przy wdrażaniu sztucznej inteligencji, będzie zależało od indywidualnych okoliczności. Oprócz dostępnej mocy obliczeniowej pojawią się inne czynniki, które zachęcają do korzystania z przetwarzania w chmurze, tworzenia nowego oprogramowania i/lub integracji urządzenia brzegowego w celu zarządzania sztuczną inteligencją. Przykładowo, gdy użytkownicy próbują wykorzystać analitykę dużych zbiorów danych, mogą chcieć przenieść informacje z wielu systemów do większej bazy danych, a tym samym faworyzować korzystanie z usług w chmurze. Inni będą chcieli zapewnić wysoki poziom prywatności swoich danych.

Tam, gdzie odciążanie przetwarzania jest kluczowym czynnikiem, istnieją sposoby, aby do niego podejść, począwszy od stosowania urządzeń opartych na lokalnych bramkach, a skończywszy na szerokim zastosowaniu przetwarzania w chmurze. Ważne, że istnieje wiele środowisk, które umożliwiają łatwe prototypowanie i wdrażanie w wybranej architekturze.

Cliff Ortmeyer, Globalny Dyrektor ds. Marketingu Technicznego, Farnell

Artykuł sponsorowany

Profil Firmy

Farnell