KursyPoradnikiInspirujące DIYForum

Myślisz o drukarce 3D? Trwa promocja na popularne urządzenia. Sprawdź drukarki 3D w promocji »

Kamera dla elektronika z wbudowanym AI? reCamera od Seeed Studio – pierwsze wrażenia

Kamera dla elektronika z wbudowanym AI? reCamera od Seeed Studio – pierwsze wrażenia

reCamera od Seeed Studio to ciekawa opcja dla osób, które chcą wzbogacić swoje projekty IoT o kamerę z lokalnie zaimplementowanym AI.

Artykuł ten jest krótkim testem tego rozwiązania. Od wyciągnięcia z pudełka, przez uruchomienie, aż po pierwsze, praktyczne testy.

Inteligentne czujniki, komputery o dużej mocy i algorytmy uczenia maszynowego otwierają nowe możliwości tworzenia rozwiązań IoT. Kluczowym komponentem tej transformacji stają się rozwiązania z zakresu wizji maszynowej.

Seria urządzeń reCamera od Seeed Studio, według zapewnień producenta, ma ułatwić wszystkim implementację rozwiązań AI we własnych projektach. To niewielkie urządzenie może pochwalić się wydajnością na poziomie 1 TOPS (ang. Tera Operations Per Second).

Seeed Studio reCamera 2002W 64 GB

Seeed Studio reCamera 2002W 64 GB

Co istotne, reCamera posiada wbudowane mechanizmy sztucznej inteligencji działające lokalnie, bez potrzeby łączenia się z chmurą. Dzięki integracji z Node-RED nawet osoby bez żadnego doświadczenia mogą szybko tworzyć inteligentne programy i rozwiązania, które w pełni wykorzystują możliwości tego modułu. Głównym bohaterem tego wpisu jest reCamera 2002W 64 GB, którą do testów wypożyczył sklep Botland (dystrybutor Seeed Studio w Polsce).

Czym jest reCamera?

Kamera może posłużyć do detekcji obiektów, ludzi, a także do identyfikacji zdarzeń. Dzięki dostępnym narzędziom można przy jej pomocy przesyłać dane do innych urządzeń, np. Arduino lub Raspberry Pi. Jest to rozwiązanie typu Edge AI, czyli takie, w które wbudowano narzędzia i sprzęt pozwalający na przetwarzanie algorytmów sztucznej inteligencji lokalnie (bez konieczności połączenia z chmurą).

Dostępne modele umożliwiają nie tylko wykrycie ludzi, ale także np. analizę gestów

Dostępne modele umożliwiają nie tylko wykrycie ludzi, ale także np. analizę gestów

Jednym z najciekawszych narzędzi do konfigurowania i programowania tego urządzenia jest tzw. Node-RED, czyli środowisko open source, stworzone przez IBM, które pozwala budować logikę działania układu w sposób graficzny – za pomocą połączeń węzłów na interaktywnym diagramie.

reCamera Demo Flow - przykładowy program demo dla reCamera

reCamera Demo Flow - przykładowy program demo dla reCamera

Node-RED sprawia, że tworzenie inteligentnych systemów jest łatwe, szybkie i naprawdę przyjemne, nawet jeśli dopiero zaczyna się swoją przygodę z elektroniką lub IoT. W ciągu kilkunastu minut można stworzyć działający projekt, który w normalnych warunkach wymagałby wielu linijek kodu.

Specyfikacja techniczna urządzenia

reCamera występuje w kilku wersjach, które różnią się wbudowaną pamięcią oraz dostępnością komunikacji bezprzewodowej. Głównym bohaterem tego wpisu jest reCamera w wersji 2002w, która posiada aż 64 GB pamięci eMMC oraz WiFi i Bluetooth.

Konstrukcja reCamery. Urządzenie jest modularne i konfigurowalne

Konstrukcja reCamery. Urządzenie jest modularne i konfigurowalne

Jego główne cechy to:

  • Procesor RISC-V z dwoma rdzeniami: 1 GHz i 700 MHz
  • Pamięć RAM: 256 MB
  • Pamięć eMMC 64 GB
  • Kamera: OV5647, 5MP, 30 FPS
  • Slot na kartę pamięci
  • Ethernet 100 Mbps
  • USB Typ C (2.0)
  • Komunikacja poprzez WIFI 2.4G/5G oraz BT 4.2/5.0
  • 2 przyciski: reboot i przycisk użytkownika
  • Wbudowany mikrofon
  • Rozmiar: 40x40x36.5 mm
Budowa reCamery

Budowa reCamery

reCamera – zawartość zestawu

W pudełku, oprócz tytułowej kamery znajdziemy krótką instrukcję, przewód USB (do zasilania oraz do komunikacji z urządzeniem) oraz przejściówkę z gniazdem Ethernet do połączenia sieciowego.

reCamera wraz z pudełkiem zawierającym dodatkowo instrukcję i przewody

reCamera wraz z pudełkiem zawierającym dodatkowo instrukcję i przewody

reCamera – instalacja i konfiguracja

Szczegółowe kroki pierwszego uruchomienia urządzenia zostały opisane na stronie producenta. Tutaj skupimy się na najważniejszych etapach. Zaczynamy od podłączenia urządzenia do komputera. Kamera sygnalizuje poprawne włączenie za pomocą wbudowanych diod.

Działająca reCamera będzie sygnalizowała swój stan pracy poprzez wbudowane LED-y

Działająca reCamera będzie sygnalizowała swój stan pracy poprzez wbudowane LED-y

Kamera podłączona jest do komputera za pomocą USB, ale urządzenie wykorzystuje UsbNcm, więc po automatycznej procedurze uruchomienia urządzenia przechodzimy do przeglądarki internetowej. Tam, w pasku adresu należy wpisać domyślny adres IP reCamery, czyli 192.168.42.1. Jeśli używana reCamera posiada moduł do komunikacji bezprzewodowej to zaleca się połączenie jej do WiFi.

Połączenie reCamery do WiFi

Połączenie reCamery do WiFi

Kamera wyposażona jest w przyjazny interfejs graficzny, więc obsługa urządzenia nie powinna nikomu sprawić problemów. Po nawiązaniu połączenia z siecią należy sprawdzić, czy oprogramowanie urządzenia jest aktualne – robimy to wchodząc w zakładkę System lub Device info.

Informacje o urządzeniu

Informacje o urządzeniu

Przy okazji możemy podejrzeć inne dane, takie jak: informacje o systemie, zużycie pamięci oraz całkowitą dostępną pamięć urządzenia. Wszystkie te dane zaprezentowane są w przyjazny sposób.

Informacje systemowe reCamery

Informacje systemowe reCamery

Kamera posiada wiele miejsc konfiguracyjnych, do których można dostać się za pomocą dedykowanych adresów, które dokładnie opisano w dokumentacji urządzenia. Znajdziemy tam m.in. podstrony, które poświęcone się konfiguracji łączności, całego systemu, bezpieczeństwa itd.

Podstrony z opcjami konfiguracyjnymi reCamery

Podstrony z opcjami konfiguracyjnymi reCamery

Pierwszy projekt i test urządzenia

Jeżeli po wywołaniu adresu IP urządzenia włącza się demo aplikacji, to aby przejść do przestrzeni roboczej Node-RED, należy wcisnąć logo terminala w prawym dolnym rogu. Zgodnie z wcześniejszymi informacjami, przestrzeń roboczą można również wywołać odwiedzając odpowiedni adres URL.

Wykrycie filiżanki oraz przycisk do przejścia do przestrzeni roboczej

Wykrycie filiżanki oraz przycisk do przejścia do przestrzeni roboczej

Przy pierwszym uruchomieniu, aplikacja przedstawi nam w krótkim samouczku, co ma do zaoferowania. Następnie otrzymamy pełny dostęp do Node-RED. Warto tutaj zalogować się do systemu SenseCraft od Seeed Studio, co umożliwi zapisywanie programów w chmurze. Dzięki temu po wyczyszczeniu urządzenia, nasz program będzie nadal dostępny do pobrania z serwerów producenta.

Ekran powitalny Node-RED

Ekran powitalny Node-RED

Demo przygotowane przez producenta pozwala na zapoznanie się z urządzeniem i jego możliwościami. Dzięki niemu możemy włączyć panel, na którym będzie przedstawiony zaprojektowany interfejs. Proste demo pozwala na włączenie i wyłączanie diod, które wbudowane są w reCamerę.

Demo reCamery wraz z całym interfejsem gotowego dema

Demo reCamery wraz z całym interfejsem gotowego dema

Node-RED to uniwersalne narzędzie, a ten artykuł miał głównie dotyczyć tylko reCamery, więc nie ma tu miejsca, na dokładne opisywanie samego środowiska. Na początek wystarczy wiedzieć z czego składa się interfejs tego narzędzia. Zaczynając od lewej:

  • Informacje o urządzeniu i aplikacji. Podgląd zalogowanego użytkownika.
  • Lista dostępnych bloków (nodes). W tym dostępne węzły reCamery, wybór modelu rozpoznawania obiektów oraz takie elementy jak połączenie sieciowe oraz CAN.
  • Główne okno programu z połączonymi blokami (tzw. Flow).
  • Po prawej szczegóły naszego Flow, panel debugowania, opcje itp.

W prawym górnym rogu można przejść do panelu z programem. Po wykonaniu zmian najnowszy Flow można wgrać do reCamery poprzez przycisk Deploy. Tam też czekają na nas różne opcje:

Opcje wgrywania programu.

Opcje wgrywania programu.

Można wgrać pełny Flow, lub tylko zmodyfikowane węzły. Dodatkowe opcje pozwalają na zatrzymanie programu oraz restart.

Dashboard reCamery

Dashboard reCamery

Co potrafi wykryć reCamera?

Wróćmy do naszej przestrzeni roboczej i dwa razy kliknijmy niebieski węzeł o nazwie model. Jest to blok, który odpowiada za wykrywanie zdefiniowanych klas przedmiotów, takich jak: człowiek, pies, kot, suszarka lub szczoteczka do zębów.

Opisywane urządzenie w obecnej wersji umożliwia jednoczesną detekcję nawet do 80 klas obiektów. Jeśli jednak potrzebujemy wykrywać inne obiekty niż te domyślnie dostępne, możliwe jest skorzystanie z zewnętrznych modeli detekcji – wystarczy skorzystać z przycisku Upload, pamiętając, że plik modelu musi być w odpowiednim formacie.

Właściwości bloku model z widocznymi na dole siedmioma klasami

Właściwości bloku model z widocznymi na dole siedmioma klasami

reCamera obsługuje lekkie modele detekcji obiektów, w tym YOLO11 Detection, który jest widoczny na powyższym zrzucie ekranu. Algorytmy typu YOLO (ang. You Only Look Once) świetnie sprawdzają się w pracy na urządzeniach o ograniczonych zasobach, w tym w naszej reCamerze.

Dzięki integracji z Node-RED łatwo zarządza się modelami. W ustawieniach modelu można:

  • Wybrać model z urządzenia, z chmury SenseCraft lub załadować własny.
  • Ustawić próg ufności (Confidence), określający minimalną pewność detekcji.
  • Ustawić IOU (Intersection over Union), służący do filtrowania nakładających się detekcji.
  • Włączyć eksport obrazu w Base64, co ułatwia integrację z innymi systemami.

Dodatkowo można uruchomić tryb zliczania obiektów. Po włączeniu informacje o zliczaniu będą wysyłane do konsoli. Jest możliwość rysowania linii zliczania, które służy do zliczania obiektów przekraczających tę linię. Analiza Trace może być przydatna w zadaniach śledzenia ruchu.

Połączenie reCamery z Raspberry Pi

reCamera w swoim założeniu ma wykrywać i identyfikować obiekty, a także komunikować się z innymi urządzeniami. Tak więc podłączmy reCamerę do Raspberry Pi i stwórzmy testowy algorytm.

Stwórzmy coś bardzo prostego: 

  1. reCamera będzie ciągle wysyłać informację o tym, czy wykryła osobę.
    • Jeżeli nie wykryje, to wysyła 0.
    • Jeżeli wykryje, to wysyła 1.
  2. Jeżeli malinka otrzyma informację, że wykryto osobę, to wysyła informację "on", która włącza lampy w reCamerze.
  3. W innym przypadku wysyła wiadomość "off", która wyłącza lampy.

Do realizacji tego zadania wykorzystamy m.in. blok tcp request, dzięki któremu połączymy się z RPi. Musimy tu jedynie podać adres malinki oraz port, na którym ma przebiegać komunikacja.

Ustawienia bloku tcp request

Ustawienia bloku tcp request

Do implementacji tego algorytmu wykorzystamy istniejące demo. Wystarczy usunąć zbędne rzeczy i dodać wspomniany blok tcp request. Konieczna jest też edycja funkcji Model into Handle, aby zwracała informację o wykryciu osoby.

const labels = msg.payload?.data?.labels ?? []

if (!Array.isArray(labels)) {     

return { payload: 0 }

}

const foundPerson = labels.some(label => String(label).toLowerCase() === 'person')

return { payload: foundPerson ? 1 : 0 }

Oczywiście Raspberry Pi jest w tym przykładzie właściwie zbędne – celem tego przykładu było jednak pokazanie, że reCamera może bez problemu komunikować się z Raspberry Pi, co będzie przydatne podczas realizacji bardziej zawansowanych projektów.

Struktura programu w Node-RED

Struktura programu w Node-RED

I to właściwie koniec – program dla reCamery jest już gotowy. Teraz kod dla Raspberry Pi. Tutaj na potrzeby tego eksperymentu wystarczy poniższy kod w Pytonie:

#!/usr/bin/env python3

import socket
import RPi.GPIO as gpio

# siec
LISTEN_IP = "0.0.0.0"
LISTEN_PORT = 5000
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((LISTEN_IP, LISTEN_PORT))
server_socket.listen(1)
print(f"Serwer TCP nasluchuje na porcie {LISTEN_PORT}...")
conn, addr = server_socket.accept()
print(f"Polaczenie od {addr}")

# gpio
gpio.setmode(gpio.BCM)
gpio.setup(21, gpio.OUT)

try:
    while True:
        data = conn.recv(1024)
        data = data.decode()
        if not data:
            break
        print("Odebrano:", data)

        if data == "1":
            gpio.output(21, gpio.HIGH)
            conn.sendall(b"on")  # odpowiedz
        else:
            gpio.output(21, gpio.LOW)
            conn.sendall(b"off")
except keyboardInterrupt:
    conn.close()
    gpio.cleanup()
conn.close()

W związku z tym, że program ten ma być jedynie przykładem to nie przejmujemy się na tym etapie np. weryfikacją poprawności danych itd. Warto jednak zwrócić uwagę, że całość powstała stosunkowo szybko, a konfiguracja reCamery była zaskakująco prosta. Trzeba podkreślić, że nie ma tutaj żadnego bezpośredniego, fizycznego połączenia między reCamerą, a Raspberry Pi – komunikacja odbywa się za pomocą WiFi. Działanie gotowego układu widoczne jest na poniższej animacji.

Detekcja człowieka przy pomocy reCamery

Detekcja człowieka przy pomocy reCamery

Pierwsze wrażenia z kilku dni testów

reCamera na ogół działała całkiem dobrze, klasyfikacja przebiega poprawnie. Podczas testów zdarzały się jednak sytuacje, gdy występowały duże opóźnienia i błędy w rozpoznawaniu obiektów. Takie lagi nie zdarzały się zbyt często, ale jednak się pojawiały.

Po dłuższym i intensywnym działaniu reCamera mocno się nagrzewała – na szczęście większa część tego urządzenia to radiator, więc nie stanowiło to dużego problemu. Ogólnie, kamera sprawia jednak dobre wrażenia. To ciekawe urządzenie, które może znaleźć zastosowanie w wielu projektach.

Podsumowanie

Seeed Studio reCamera to ciekawe urządzenie, które wyróżnia się na tle innych rozwiązań Edge AI. Dużym plusem jest tutaj na pewno Node-RED oraz dokumentacja dostarczana przez producenta. Jeśli weźmiemy pod uwagę, że urządzenie (zależnie od wersji) kosztuje około 200-300 zł to jest duża szansa, że znajdzie ono swoje miejsce zarówno w projektach hobbystycznych, jak i profesjonalnych.

Sprawdź reCamera w Botland »

Możliwość integracji z innymi urządzeniami, jak np. Raspberry Pi, daje ogromny potencjał w budowie inteligentnych systemów, takich jak automatyczne sterowanie światłem, monitoring obecności, czy analiza zdarzeń. Więcej informacji o kamerach znaleźć można na stronie producenta.

Informacja: przetestowanie produktu Seeed Studio reCamera było możliwe, dzięki współpracy Forbota ze sklepem Botland, który jest oficjalnym dystrybutorem Seeed Studio w Polsce. Dostawca, ani producent nie mieli wpływu na przebieg opisywanych testów. Forbot NIE otrzymuje prowizji za sprzedaż tego produktu.

Jak działa płytka stykowa? Zdjęcia, budowa, przykłady
Jak działa płytka stykowa? Zdjęcia, budowa, przykłady

Płytki stykowe pozwalają na łatwe łączenie wielu elementów elektronicznych bez lutowania. Dzięki temu, te same elementy może wykorzystać przy... Czytaj dalej »

Odnośniki do niektórych produktów umieszczone w tym wpisie prowadzą do głównego partnera serwisu – sklepu Botland. Nie są to linki afiliacyjne. Na tej podstronie opisaliśmy na czym dokładnie polega nasza współpraca.

ai, kamera, SeeedStudio

Trwa ładowanie komentarzy...