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).