Sztuczna inteligencja w Internecie Rzeczy w prosty sposób
| TechnikaInternet Rzeczy (IoT - Internet of Things) zmienia domy, czyniąc je pełnymi rozrywki, a także wysoce wydajnymi i bezpiecznymi – a to wszystko dla milionów mieszkańców. Bez względu na to, czy mowa o sterowaniu klimatyzacją lub ogrzewaniem, włączaniem urządzeń kuchennych lub alarmów, fakt, że urządzenia IoT są ze sobą połączone sprawia, że ludzie mogą sterować swoimi domami z dowolnego miejsca, niezależnie gdzie się akurat znajdują.
Dodanie sztucznej inteligencji (AI – Artificial Intelligence) do systemów IoT otwiera zupełnie nowy zestaw możliwości realizacji zaawansowanych funkcji. Rozpoznawanie twarzy pozwala alarmom domowym na wykrywanie kto stoi przy drzwiach, sprawiając, że te zostaną automatycznie otwarte tylko przed znanymi osobami. Podobnie – system rozpoznawania głosu, dostępny nawet w urządzeniach mobilnych, umożliwia właścicielowi domu wydawanie komend głosowych sterujących oświetleniem, telewizorami i czajnikami.
I kto to mówi?
Technologia rozpoznawania twarzy to największy krok milowy w systemach bezpieczeństwa, od czasów wprowadzenia kamer monitoringu. Zazwyczaj stosuje się ją by uwierzytelnić poszczególnych użytkowników. Systemy tego typu pozwalają na porównywanie twarzy ze zdjęć lub materiałów wideo ze zdjęciami zgromadzonymi w bazie twarzy – analizowane są różne cechy twarzy, dzięki czemu możliwe jest bardzo skuteczne rozpoznawanie osób we względnie małych grupach ludzi, przy zapewnieniu kontrolowanego środowiska pracy maszyny.
Jakość analizowanego obrazu to kluczowy czynnik wpływający na sprawność systemu rozpoznawania twarzy. Inne ważne czynniki obejmują przede wszystkim warunki środowiskowe. Ogólnie rzecz ujmując, systemy te lepiej sprawdzają się, jeśli pozyskane obrazy są zarejestrowane w podobnych warunkach, tj. podobne jest tło, zbliżona wielkość głowy i jej ustawienie, odległość od kamery oraz oświetlenie. Znaczenie ma także wiek zdjęcia – algorytmy lepiej się sprawdzają, jeśli upłynęło mniej czasu pomiędzy porównywanymi obrazami. Wydajność systemu można zmaksymalizować przy zastosowaniu kamer o podobnych parametrach optycznych. Inaczej mówiąc, kamera służąca do rozpoznawania człowieka powinna być podobna do tej, którą tego człowieka sfotografowano, gdy pobierano dane wzorcowe do bazy.
Na rozpoznawanie mowy składa się szereg technologii, które pozwalają komputerom na wychwytywanie wymawianych słów. Technologie te określa się w różny sposób – albo jest to automatyczne rozpoznawanie mowy (ASR – Automatic Speech Recognition), albo komputerowe rozpoznawanie mowy (CSR – Computer Speech Recognition), albo przetwarzanie mowy na tekst (STT – Speech To Text). Niektóre z systemów rozpoznawania mowy wymagają szkolenia, w trakcie którego osoba, której głos ma być analizowany, czyta wybrany tekst lub pojedyncze słowa, a system rejestruje takie nagranie. System analizuje głos danej osoby i na tej podstawie poprawia dokładność swojego działania dla takiego człowieka. Systemy tego typu nazywa się zależnymi od mówcy, podczas gdy systemy niewymagające doszkalania nazywa się niezależnymi od mówcy.
Systemy rozpoznawania mowy są stosowane w szeregu aplikacji, począwszy od interfejsów głosowych, takich jak np. wybieranie kontaktu do zadzwonienia, sterowanie połączeniami i kontrolowanie urządzeń domowych. Dobrze znanym przykładem systemu rozpoznawania mowy, wykorzystywanym na co dzień, jest Alexa firmy Amazon. Gdy użytkownik zapyta Alexę o pogodę czy wyniki meczu piłki nożnej, system nagrywa zapytanie i przesyła je na serwery Amazonu, które mają wystarczająco dużo mocy by sprawnie przeanalizować pozyskany głos.
Słowa są dzielone na pojedyncze dźwięki, które następnie są porównywane z bazami danych, celem określenia, jakie słowa najbardziej pasują do nagranej kombinacji dźwięków. Gdy słowa zostaną wykryte, system wybiera najważniejsze z nich, by nadać wypowiedzi sens. Przykładowo, jeśli usłyszy słowa takie jak „deszcz” czy „temperatura”, otworzy aplikację pogodową. Serwery zwracają informacje do Alexy, która następnie odpowiada głosem, przekazując pożądaną odpowiedź.
W chmurze czy lokalnie?
Tworząc system AI do rozpoznawania głosu lub twarzy, konieczne jest dokonanie wyboru – czy dane będą przetwarzane w chmurze, czy w samym urządzeniu.
W przypadku przetwarzania lokalnego, umieszczenie odpowiednio mocnego układu obliczeniowego wewnątrz urządzenia prowadzi do uzyskania bardzo ważnej zalety – skraca opóźnienia, które wynikają z czasu potrzebnego na przesłanie danych ze źródła do celu, przyspieszając działanie maszyny. Takie lokalne przetwarzanie sprawa też, że nie ma potrzeby zapewniania łączności z Internetem, ale w zależności od aplikacji, może się okazać, że konieczne jest zaimplementowanie bardzo dużej mocy obliczeniowej w urządzeniu. Takie systemy mogą być również trudne w modernizacji, gdyż ich skuteczność będzie ograniczona przez zainstalowany pierwotnie sprzęt. Coraz większe znaczenie ma też bezpieczeństwo. Przetwarzanie rozproszone sprawia, że mniej danych jest przesyłanych do centralnego serwera, ograniczając ryzyko ich wycieku. Łatwiej jest także odseparować wadliwe urządzenie.
W przypadku rozwiązań opartych o chmurę, zapewnienie łączności jest konieczne. Podejście to zmniejsza wymogi w odniesieniu do lokalnej mocy obliczeniowej. Łatwiej jest też takie urządzenie aktualizować lub wzbogacać o nowe algorytmy, szczególnie jeśli posiada się wiele sztuk danego sprzętu. Wady obejmują zarówno dodatkowe koszty usług transmisji danych oraz potencjalne ryzyko przesyłania wrażliwych informacji do Internetu.
Rozwiązaniem pośrednim jest implementacja lokalnego systemu przetwarzania, umieszczonego w okolicy sprzętu IoT. Podejście to nazywa się przetwarzaniem na krawędzi. W architekturze tej wiele czujników IoT przekazuje dane do centralnego systemu, ale umieszczonego w tej samej sieci. W efekcie uzyskujemy korzyści z przetwarzania danych lokalnie, ale bez konieczności wyposażenia każdego urządzenia w wydajny układ obliczeniowy.
Sztuczna inteligencja w stylu „zrób to sam”
Budowa systemu rozpoznawania twarzy lub głosu może opierać się o wykorzystanie komputera jednopłytkowego, jak np. Raspberry Pi. W przypadku rozpoznawania twarzy, Raspberry Pi pozwala na wykrywanie ludzi w obrazie i identyfikowanie ich kluczowych cech w czasie rzeczywistym. Dzięki temu, idealnie nadaje się do systemów montowanych wewnątrz budynków. Farnell dostarcza kompletny zestaw, dzięki czemu łatwiej jest budować aplikacje rozpoznawania twarzy. W zestawie znalazły się: komputer Raspberry Pi, moduł Raspberry Pi High-Quality Camera oraz płytka rozszerzeń Pimoroni Automation HAT.
- Rodzina Raspberry Pi 4 obejmuje kilka małych komputerów jednopłytkowych z czterordzeniowym, 64-bitowym procesorem ARM. Podstawowe cechy komputera to: rdzeń Cortex-A72, wbudowane interfejsy 802.11ac Wi-Fi, Bluetooth 5, gigabitowy Ethernet, dwa porty USB 2.0 i dwa porty USB 3.0 oraz wsparcie dla dwóch monitorów, podłączanych za pomocą pary portów micro Type D HDMI, obsługujące rozdzielczość do 4K. Komputer Raspberry Pi zasila się za pomocą gniazda USB-C.
- Kamera do Raspberry Pi ma rozdzielczość 12,3 megapiksela i bazuje na sensorze obrazu Sony IMX477, wyposażonym w podświetlenie. Pozwala na sterowanie ogniskowaniem i można z niej korzystać w połączeniu z obiektywami montowanymi w uchwycie typu C lub CS.
- Pimoroni Automation HAT: Kontroluj i monitoruj swój świat dzięki Automation HAT, przygotowanym dla Raspberry Pi! Przekaźniki, kanały analogowe, wyjścia mocy i buforowane wejścia (wszystkie zdolne do przyjmowania sygnałów 24 V) – pozwalają na jednoczesne podłączenie różnorodnych elementów do Raspberry Pi. To idealna płytka do inteligentnych domów i projektów automatyki, pozwalająca na wyposażenie szklarni w inteligentne zraszacze lub na automatyczne karmienie rybek w oparciu o harmonogram.
Rozpoznawane obrazy muszą być odpowiednio przetworzone, zanim zostaną poddane analizie – przykładowo, konwertuje się je do skali szarości. Popularnym narzędziem programowym do przetwarzania zdjęć jest OpenCV (Open Source Computer Vision Library), które zostało zaprojektowane by przyspieszyć wykorzystanie rozpoznawania maszynowego w komercyjnych aplikacjach i które stanowi wygodną, uniwersalną platformę do tworzenia systemów widzenia maszynowego.
OpenCV jest głównie wykorzystywane w przetwarzaniu obrazów i jako narzędzie pomocnicze, np. do wykrywania twarzy i ich cech. Umożliwia wykrywanie kształtów, takich jak np. koła i kwadraty, a także tekstów w obrazach, jak np. numerów tablic rejestracyjnych. OpenCV jest łatwe do nauczenia się i można z niego korzystać za pomocą niemal wszystkich popularnych języków programowania. Co ważne – jest też bezpłatne.
Innym zestawem oferowanym przez firmę Farnell jest kilka elementów, które przyspieszają proces budowania zautomatyzowanego domu, w oparciu o rozpoznawanie mowy, celem sterowania urządzeniami domowymi, a w tym światłami, wentylatorami i telewizorami. Rozwiązanie to opiera się albo o wykorzystanie urządzenia z Alexą albo Amazon Echo Dot i płytki Raspberry Pi 4. Urządzenie z Alexą przyjmuje komendy głosowe i używa ich do kontroli pracy urządzeń domowych za pomocą przekaźników podłączonych do płytki Raspberry Pi. Omawiany zestaw zawiera komputer Raspberry Pi 4 i płytkę z przekaźnikami, kompatybilną z RPI.
Płytka przekaźników Pi-Relay board to preferowany komponent do sterowania urządzeniami mocy, takimi jak silniki czy źródła światła. Zawiera cztery przekaźniki wysokiej jakości, pozwalające na obciążenie ich prądem do 7 A przy napięciu 240 VAC. Dzięki temu mogą pracować z typowymi urządzeniami domowymi, a w tym tradycyjnymi żarówkami, oświetleniem LED i wentylatorami. Diody LED umieszczone na płytce wskazują stan przekaźników, podczas gdy 40-pinowe gniazdo wyprowadzeń pozwala na dostęp do GPIO minikomputera. Wszelkie obciążenia, takie jak np. źródła światła, mogą być podłączone poprzez przekaźniki i sterowane za pomocą Raspberry Pi 4.
Wszystko razem
Duża moc obliczeniowa i zaawansowane algorytmy, stosowane w urządzeniach Internetu Rzeczy dzięki sztucznej inteligencji pozwalają na implementację zaawansowanego sterowania i systemów bezpieczeństwa oraz wdrożenie ich na potrzeby użytkowników domowych, czyniąc ich życie nie tylko łatwiejszym, ale i bardziej bezpiecznym. Łatwe w implementacji algorytmy AI, uruchomione na niedrogim komputerze jednopłytkowym, takim jak Raspberry Pi, to idealny sposób na ocenę tych technologii i optymalizację aplikacji.
Ankur Tomar
Technical Marketing Manager, Farnell