v3.6.3#
v3.6.3 włącza TensorFlow na OpenMV 3 / F7, dodaje obsługę modeli uint8/int8/float32, przełącza sensory termiczne MLX90640/AMG8833 na sprzętowe I2C, dodaje histogramy różnicy obrazów i przesunięcie korekcji obiektywu oraz przebudowuje kontrolę odczytu. Stałe podpowiedzi image zostały przemianowane, a skalowanie draw_image() zmienione — przeczytaj poniższe zmiany łamiące zgodność.
Najważniejsze zmiany#
TensorFlow na OpenMV 3 / F7 —
tfwłączony na kamerach opartych na F7, z obsługą modeli uint8/int8/float32.Sensory termiczne — MLX90640 i AMG8833 przełączone na sprzętowe I2C z nowym sterownikiem MLX90640.
Obrazowanie — obsługa różnicy obrazów w
get_histogram()oraz korekcja przesunięcia dlalens_corr().draw_image — palety alfa w trybie skali szarości i przebudowana kontrola odczytu.
Zmiana łamiąca zgodność: stałe podpowiedzi
imagezostały przemianowane, a ujemne skalowaniedraw_image()usunięte — zobacz zmiany łamiące zgodność.
Nowe funkcje#
TensorFlow — włączono
tfna OpenMV 3 / F7 i zaktualizowano TensorFlow o obsługę modeli uint8 / int8 / float32.get_histogram()— dodano możliwość różnicy obrazów.lens_corr()— dodano korekcję przesunięcia.draw_image()— palety alfa działają teraz w trybie skali szarości (bez interpolacji dwuliniowej), z paletami alfa interpolowanymi dwuliniowo i centrowaniem obrazu; nowy kod kontroli odczytu.
Pozostałe zmiany i ulepszenia#
Przełączono MLX90640 i AMG8833 na sprzętowe I2C (nowy sterownik MLX90640, sprzętowe I2C w konfiguracji płytki dla sensorów zewnętrznych, wyższa liczba ponownych prób odczytu MLX), włączono I2C fast-mode-plus na kamerach, które go obsługują, dodano odczyt/zapis bajtów cambus z czasami I2C oraz pominięto stosowanie alfy, gdy wynosi ona 0, dla wydajności.
Poprawki błędów#
Kamera i obrazowanie:
Naprawiono i przyspieszono korekcję obrotu, błąd konwersji Bayer-na-YCbCr przy lewej krawędzi oraz dodano poprawkę krawędzi do
bayer_to_y()/bayer_to_binary().
Narzędzia:
Naprawiono błędy Python 2/3 oraz kolejność wywołań
get_statistics().
Zmiany API łamiące zgodność#
Widoczne dla użytkownika zmiany API łamiące zgodność między v3.6.2 a v3.6.3. Zakres: moduły C w Pythonie w modules/ oraz biblioteki Pythona w scripts/libraries/.
Każda zmiana jest oznaczona jej wpływem:
minor — wąskie API; dotyczy tylko skryptów, które go używały.
behavior — to samo API, inne wyniki; sprawdź ponownie dostrojone skrypty.
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.
Stałe podpowiedzi image przemianowane (minor)#
Stałe podpowiedzi rysowania image zostały przemianowane: image.INTERPOLATE_BILINEAR → image.IMAGE_HINT_BILINEAR oraz image.IMAGE_CENTER → image.IMAGE_HINT_CENTER. Skrypty przekazujące stare nazwy stałych do draw_image() muszą używać nowych nazw. (Zostają one ponownie przemianowane na image.BILINEAR / image.CENTER w v3.7.0.)
Commity: 8f8872537
Ujemne skalowanie draw_image() usunięte (behavior)#
image.draw_image() nie obsługuje już ujemnego skalowania, a punkt próbkowania tekstury został przeniesiony na środek piksela. Skrypty, które polegały na ujemnym skalowaniu do odwracania obrazu podczas rysowania, muszą odwrócić go w inny sposób, a wynik może być przesunięty o maksymalnie pół piksela względem poprzedniej wersji.
Commity: 7e83dbb92
Lista kontrolna migracji#
Zmień nazwy image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER na image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (przemianowanie stałych podpowiedzi) oraz zastąp każde ujemne skalowanie draw_image() jawnym odwróceniem (zmiana skalowania draw_image). Wszystkie pozostałe skrypty działają bez zmian.