v3.6.5

v3.6.5 aktualizuje TensorFlow i ulab, znacznie usprawnia kamerę HM01B0 (dowolne rozdzielczości, QQVGA, przycinanie, set_auto_exposure() oraz poprawka anti-flicker) i wprowadza obsługę zewnętrznego SDRAM oraz produkcyjnych płytek Portenta. Usunięto starsze narzędzia/przykłady treningowe CMSIS-NN, a bufor ramki OpenMV 4 Plus został zmniejszony — przeczytaj poniższe zmiany łamiące zgodność.

Najważniejsze zmiany

  • HM01B0 — dowolne rozdzielczości, QQVGA, przycinanie oraz obsługa set_auto_exposure(), a także poprawka migotania przy automatycznej ekspozycji.

  • TensorFlow / ulab zaktualizowane do najnowszych wersji.

  • Portenta — wykorzystanie zewnętrznego SDRAM oraz pliki produkcyjnych płytek.

  • Poprawki — korekcja obiektywu, jakość obrazu przy niskich rozdzielczościach oraz poprawka zegara FPS.

  • Zmiana łamiąca zgodność: usunięto starsze narzędzia treningowe/konwersji CMSIS-NN i przykłady, a bufor ramki OpenMV 4 Plus został zmniejszony — zobacz zmiany łamiące zgodność.

Nowe funkcje

  • HM01B0 — dodano obsługę dowolnych rozdzielczości, QQVGA i dodatkowych zaślepek, przycinanie po stronie sensora oraz obsługę sensor.set_auto_exposure().

  • Odczyt Apriltag — dodano przykład śledzenia apriltagów z kontrolą odczytu.

Pozostałe zmiany i ulepszenia

  • Zaktualizowano TensorFlow i ulab do najnowszych wersji; dodano wykorzystanie zewnętrznego SDRAM Portenta oraz pliki płytek produkcyjnych/CI; uporządkowano sterownik MT9V034 oraz funkcje dostępu do bufora ramki.

Poprawki błędów

Kamera i obrazowanie:

  • Naprawiono migotanie podczas automatycznej ekspozycji na HM01B0, korekcję obiektywu, jakość obrazu przy niższych rozdzielczościach, kopiowanie linii OV5640/JPEG (dest_fb), zegar FPS oraz zwracanie 0, gdy bpp jest ujemne; usunięto zbędne poziome odbicie HM01B0.

Sprzęt i obsługa płytek

  • HM01B0 — dowolne rozdzielczości, QQVGA i przycinanie.

  • Arduino Portenta H7 — zewnętrzny SDRAM i zaktualizowane pliki płytek produkcyjnych.

Zmiany API łamiące zgodność

Widoczne dla użytkownika zmiany API łamiące zgodność między v3.6.4 a v3.6.5. Zakres: moduły C w Pythonie w modules/, biblioteki Pythona w scripts/libraries/ oraz dołączone narzędzia/przykłady.

Każda zmiana jest oznaczona jej wpływem:

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

  • tooling — dotyczy narzędzi do kompilacji/konwersji lub dołączonych przykładów, a nie API Pythona oprogramowania układowego.

Zmiany są pogrupowane według wpływu w tej kolejności. Jeśli chcesz po prostu przenieść swój kod, przejdź do listy kontrolnej migracji na końcu. Każdy hash commita prowadzi do jego diffa na GitHubie.

Bufor ramki OpenMV 4 Plus zmniejszony (behavior)

Bufor ramki OpenMV 4 Plus został zmniejszony do 20 MB (a rozmiar bufora OpenMV 2/3 został poprawiony). Skrypty na OpenMV 4 Plus o napiętej pamięci, które przydzielały bardzo duże ramki/obiekty z bufora ramki, mogą teraz szybciej osiągać limity alokacji i powinny zostać ponownie sprawdzone.

Commity: 3a790a827

Starsze narzędzia i przykłady CMSIS-NN usunięte (tooling)

Starsze narzędzia do treningu/konwersji modeli CMSIS-NN (nn_convert.py, nn_quantizer.py, pliki modeli LeNet/CIFAR/smile) oraz przykładowe skrypty 25-Machine-Learning/nn_*.py zostały usunięte. Sam moduł nn nadal działa w tym wydaniu (zostaje usunięty później, w v3.9.0), ale narzędzia do generowania modeli CMSIS-NN zniknęły — zamiast tego użyj przepływu pracy TensorFlow Lite (tf).

Commity: 588f79a62

Lista kontrolna migracji

Sprawdź ponownie duże alokacje bufora ramki na OpenMV 4 Plus względem zmniejszonego bufora ramki 20 MB (zmiana bufora ramki) oraz przenieś generowanie modeli CMSIS-NN do przepływu pracy TensorFlow Lite (usunięcie narzędzi CMSIS-NN). Wszystkie pozostałe skrypty działają bez zmian.