v4.1.2

v4.1.2 dodaje zaawansowane formaty pikseli z pełnym debayeringiem, przetwarzanie obrazów YUV, nowy moduł imu (LSM6DSOX), dźwięk z cyfrowego mikrofonu DFSDM oraz obsługę sensora zdarzeń FrogEye2020. Zmieniono zachowanie erode()/dilate() oraz desktopową bibliotekę RPC — zapoznaj się z przełomowymi zmianami poniżej.

Najważniejsze zmiany

  • Zaawansowane formaty pikseli z obsługą pełnego debayeringu.

  • Przetwarzanie obrazów YUV.

  • Nowy moduł imu — obsługa LSM6DSOX (konfigurowalna orientacja, MLC).

  • Audio DFSDM — wejście z cyfrowego mikrofonu.

  • Obsługa sensora zdarzeń FrogEye2020.

  • Przełomowe: erode()/dilate() działają teraz na niebiałych pikselach, a desktopowa klasa RPC została przemianowana — zobacz przełomowe zmiany.

Nowe funkcje

  • Zaawansowane formaty pikseli — nowa obsługa formatów pikseli z obsługą pełnego debayeringu (Bayer → RGB/skala szarości w różnych formatach).

  • Przetwarzanie obrazów YUV — dodano obsługę przetwarzania obrazów YUV.

  • Moduł imu — nowy moduł IMU ze sterownikiem LSM6DSOX, konfigurowalną orientacją IMU oraz obsługą machine-learning-core (MLC).

  • Audio — dodano obsługę cyfrowego mikrofonu DFSDM do modułu audio.

  • FrogEye2020 — nowy sterownik sensora zdarzeń FrogEye2020 wraz z przykładowymi skryptami dla kamery zdarzeń.

Pozostałe zmiany i ulepszenia

  • Programowe kodowanie JPEG jest ~10 % szybsze (ulepszona obsługa bitów).

  • machine.I2C używa teraz sprzętowego urządzenia peryferyjnego I2C na STM32 H7.

  • find_apriltags(), find_line_segments() oraz ścieżka wejściowa TensorFlow zostały przeniesione na ujednolicony backend draw_image.

Poprawki błędów

  • Naprawiono sytuacje przepełnienia programowego kodowania JPEG, image compress oraz wykrywanie formatu IS_JPEG.

Sprzęt i obsługa płytek

  • Sensor zdarzeń FrogEye2020.

  • Arduino Nicla Vision (BORMIO) — zaktualizowany układ pinów oraz USB VID/PID.

  • Arduino Portenta H7 — domyślny zegar sensora ustawiony na 12 MHz.

Przełomowe zmiany API

Widoczne dla użytkownika zmiany przełomowe API pomiędzy v4.1.1 a v4.1.2. Zakres: moduły C Pythona w modules/ oraz biblioteki Pythona w scripts/libraries/.

Każda zmiana jest oznaczona swoim wpływem:

  • minor — wąskie API; tylko narzędzia po stronie hosta.

  • behavior — to samo API, inne wyniki; ponownie sprawdź dostrojone skrypty.

Zmiany są pogrupowane według wpływu w tej kolejności. Każdy hash commita prowadzi do jego diffa na GitHubie.

Przemianowano klasę desktopowej biblioteki RPC (minor)

W desktopowej bibliotece RPC po stronie hosta (tools/rpc/rpc.py) klasa rpc_wifi_or_ethernet_master została przemianowana na rpc_network_master, a skrypty hosta RTSP/RPC przełączono na korzystanie ze standardowych bibliotek sieciowych. Dotyczy to wyłącznie programów na komputerze hosta; skrypty na kamerze pozostają bez zmian.

Commity: a2f016ba0, a4858015c

erode() / dilate() działają na niebiałych pikselach (behavior)

Image.erode() oraz Image.dilate() zostały poprawione tak, aby działały na niebiałych pikselach zamiast wyłącznie na białych. Wyniki różnią się od poprzednich wydań dla obrazów niebinarnych / nie tylko białych — ponownie sprawdź dostrojone potoki morfologii.

Commit: 899f80759

Lista kontrolna migracji

Aby czysto przenieść kod do v4.1.2: w programach RPC na komputerze hosta zmień nazwę rpc_wifi_or_ethernet_master na rpc_network_master (zmiana nazwy RPC) oraz ponownie sprawdź wszelkie wyniki erode() / dilate() na obrazach niebinarnych (zmiana morfologii). Poza tym skrypty na kamerze działają bez zmian.