v4.5.3#
v4.5.3 je rozsáhlé vydání: autofokus OV5640, kreslení čar s vyhlazováním, do hlavní větve začleněný hardwarový JPEG dekodér, výrazné rozšíření možností i.MX RT (RT1060) a široká sada oprav kamery/ISP. Několik zřídka používaných metod obrazu bylo odstraněno a některá ISP/display API se změnila — přečtěte si níže uvedené zásadní změny.
Hlavní novinky#
Autofokus OV5640 — povolen na OpenMV 4 / 4 Plus / RT1060 (
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), s příkladem.Vyhlazené (anti-aliased)
draw_line()a do hlavní větve začleněný hardwarový JPEG dekodér STM32 (rychlejší dekomprese JPEG).OpenMV RT1060 získalo ulab, ISP operace,
set_framerate()/set_frame_callback(), mnohem větší snímkový buffer (frame buffer) a CAN ovladač.Zásadní změna:
Image.div()/cartoon()/mul()byly odstraněny a některá ISP/display API se změnila — viz zásadní změny.
Nové funkce#
Autofokus OV5640 — firmware autofokusu je povolen na OPENMV4, OPENMV4P a OPENMV RT1060; spustíte jej pomocí
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). Byl přidán nový příklad07-Sensor-Control/autofocus.py.Kreslení čar s vyhlazováním —
draw_line()získalo vyhlazování (anti-aliasing).Vlastní SPI display kontroléry —
SPIDisplaynyní přijímá klíčové slovocontroller=a vystavuje hookbus_writepro vlastní inicializační/příkazové sekvence.Vylepšení
Image.ccm()— nyní přijímá vnořené matice 3x3 / 4x3 / 3x4 / 4x4 a ulab pole (s volitelným řádkem offsetu pro každý kanál); přidán příklad korekce barev.Záznam JPEG na i.MX RT — záznam
sensor.JPEGna Arduino Portenta/Nicla Vision/Giga, plusset_framerate()aset_frame_callback()na portu mimxrt.Validace TFLite modelu — modely nyní nesou hash pořadí operátorů a velikost množiny operátorů.
WiFi — přidány konstanty režimů zabezpečení CYW43; nové příklady skriptů pro řízení desky i.MX RT (Pin/ADC/CAN/I2C/PWM/SPI/UART/…).
Další změny a vylepšení#
MicroPython aktualizován na 1.22; CMSIS aktualizováno na 5.9.0.
Do hlavní větve začleněný hardwarový JPEG dekodér STM32 — rychlejší dekomprese JPEG na čipovém kodeku.
Optimalizovány
Image.invert()/negate()a binární/matematické operace s obrazem (CMSIS intrinsics).Knihovny
rpcavl53l1xbyly upraveny pro přenositelnost (místopybpoužívajímachine/time), takže běží i na portech mimo STM32.DMA akcelerovaný memcpy snímkového bufferu na OpenMV H7 / H7 Plus / Pro / Pure Thermal a Arduino Giga / Nicla Vision / Portenta H7; STM32 nyní skenuje I2C zařízení jednou za skenování pro rychlejší start.
Opravy chyb#
Kamera a senzory:
Opraveno XCLK kamery STM32 na skutečný 50% pracovní cyklus a chyba, když je frekvence hodin kamery nastavena na nulu; opraveny Bayer crop+transpozice, posun barev YUV422 a
set_windowing()na portu mimxrt.Opraveno čtení chip-ID GC2145 a hmirror/vflip na otočených úchytech; opraveno PAJ6100 na RT1062 a přetečení SPI bufferu PixArt PAJ7620/PAW3902.
Zpracování obrazu:
Opraveno ořezávání roi v
find_rects(), zkracování zlomkového offsetu vmorph(), výchozí hodnoty kontrastu/jasu vimage.gamma(), A/B offsety vget_threshold()na RGB565 a dekódování JPEG rozměrů, které nejsou násobkem 8.
Systém a knihovny:
machine.LED.value()bez argumentu nyní vrací stav LED místo jeho vymazání; opraven deinit SPI SSEL na sdílené sběrnici,machine.deepsleep()na RT1062, pád TF při chybějících operátorech a automatická aktivace NIC WINC1500/ninaw10 přiconnect().
Hardware a podpora desek#
OpenMV RT1060 — povoleny ulab a ISP operace, větší snímkový buffer (10M→20M) / fb_alloc (2M→11M), obnoven CAN ovladač, více haldy.
Arduino GIGA — podpora kamery GC2145, s automatickou detekcí GC2145/OV5640 (sdílejí I2C adresu).
i.MX RT — podpora záznamu
sensor.JPEG.
Zásadní změny API#
Uživatelsky viditelné změny API mezi v4.5.2 a v4.5.3. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
minor — úzké API; ovlivňuje pouze skripty, které jej používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
Odstraněné metody obrazu (minor)#
Image.div(), Image.cartoon() (a její příklad) a Image.mul() byly odstraněny.
API modulu display (minor)#
Starší záložní název modulu udisplay byl odstraněn — modul je registrován pouze jako display. Metody dsi_write() / dsi_read() určené pouze pro DSI byly nahrazeny metodami bus_write() / bus_read(), které jsou nyní dostupné na všech display kontrolérech.
Změny API MQTT a tf.regression (minor)#
MQTTClient knihovny mqtt byl přepracován: port je nyní povinný, byla přidána nová konstruktorová klíčová slova ssl_params / callback a argument timeout u connect(), staré výchozí hodnoty ssl= / port=0 byly odstraněny a check_msg() je nyní neblokující. tf.regression() byla přepsána — její signatura je nyní regression(model, array) a zpracovává 1D/2D/3D a kvantované (int8) modely.
Změny chování ISP / senzoru (behavior)#
Image.awb() byla přepracována — gray-world (výchozí) vs white-patch (max=True) je nyní explicitní a argument max plus argumenty gamma / contrast / brightness metody Image.gamma() jsou nyní pouze klíčové (poziční volání musí být upravena). Transpozice obrazu je nyní zakázána pro YUV422 (dříve produkovala nesprávný výstup) a posun barev YUV422 byl opraven tak, aby odpovídal Bayeru. Cesta JPEG na STM32 nyní vyvolá chybu při nesouladu geometrie JPEG místo produkce poškozeného obrazu a režim WiFi AP nyní aplikuje výchozí režim zabezpečení na portech STM32 a i.MX RT.
Commits: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af
Kontrolní seznam migrace#
Pro čistý přechod na v4.5.3 je typická práce následující:
Přestaňte používat
Image.div()/cartoon()/mul()(odstraněné metody).Importujte modul display jako
displaya přepnětedsi_write/dsi_readnabus_write/bus_read(změna API display).Aktualizujte konstrukci
MQTTClient(portje povinný;ssl_params/callback) a všechna volánítf.regression()(změny API knihoven).Předávejte
awb()maxagamma()gamma/contrast/brightnessjako klíčové argumenty a znovu zkontrolujte předpoklady YUV422/transpozice a zabezpečení režimu AP (změny ISP/senzoru).