13.6. Edge Impulse¶
Edge Impulse to kompleksowa platforma do budowania modeli uczenia maszynowego działających na mikrokontrolerach: zbieranie i etykietowanie danych, projektowanie i trenowanie modelu w przeglądarce oraz optymalizacja, dzięki której zmieści się on na urządzeniu mierzonym w kilobajtach. Wdrożenie odbywa się bezpośrednio na OpenMV – kilka kliknięć zamienia wytrenowany model w pliki gotowe do uruchomienia na kamerze. Własna dokumentacja Edge Impulse szczegółowo opisuje każdy z tych kroków.
13.6.1. Wprowadzanie danych¶
Model działa najlepiej na obrazach tego rodzaju, na których został wytrenowany, więc zbiór danych warto zarejestrować kamerą, która będzie go uruchamiać. Edytor zbiorów danych w IDE jest stworzony właśnie do tego – pozwala utworzyć foldery klas, rejestrować etykietowane obrazy z bufora ramki na żywo, a następnie przesłać zbiór danych prosto do projektu Edge Impulse z podmenu Export (najpierw zaloguj się tam do swojego konta). Od tego momentu pracujesz w Edge Impulse Studio.
Zobacz także
Własny przewodnik konfiguracji OpenMV Cam Edge Impulse dotyczący instalacji narzędzi i podłączania kamery.
13.6.2. Trenowanie¶
Trenowanie odbywa się w całości w przeglądarce: zaprojektuj impuls (bloki wejścia, przetwarzania i uczenia), wytrenuj go i sprawdź dokładność na wydzielonych danych testowych.
Do kamery pasują dwa typy modeli. Klasyfikator obrazów zwraca listę wyników poszczególnych klas, które odczytujesz bezpośrednio z wyjścia modelu – nie jest potrzebny żaden post-procesor. FOMO, szybki detektor obiektów zaprojektowany dla mikrokontrolerów, wymaga jednego kroku dekodowania, a kamera dostarcza dla niego post-procesor (ml.postprocessing.edgeimpulse), więc te modele również działają bez dodatkowego kodu.
13.6.3. Wdrażanie na kamerze¶
Po zakończeniu trenowania otwórz stronę Deployment projektu, wybierz cel OpenMV Library i kliknij Build. Pobierany plik to archiwum zip zawierające wytrenowany model (trained.tflite), jego etykiety (labels.txt) oraz przykładowy skrypt. Model jest skwantyzowany do liczb całkowitych. Edge Impulse opisuje to oraz alternatywę z własnym oprogramowaniem układowym w swoim przewodniku uruchamiania na OpenMV.
Dodaj plik .tflite do kamery za pomocą edytora ROMFS w IDE, który konwertuje go dla układu NPU płytki, jeśli taki posiada, i wczytaj go w skrypcie przy użyciu ml.Model. Modele można też uruchamiać z dysku flash kamery – skopiuj pliki i wskaż ml.Model ścieżkę – ale ROMFS jest lepszym miejscem: modele tam zapisane wykonują się bezpośrednio z pamięci flash, bez kopiowania do RAM.
Zobacz także
Rozdział o uczeniu maszynowym dotyczący uruchamiania modeli za pomocą modułu ml – wczytywania, potoku wnioskowania i dekodowania wyjścia.