v4.4.3

A v4.4.3 bevezeti az OpenMV RT1060 (NXP i.MX RT1060) kártyát, egy jelentősen kibővített MJPEG felvételi API-t, új ISP képmetódusokat (automatikus fehéregyensúly, színkorrekciós mátrix, gamma), valamint a MicroPython 1.20-at. Az Arduino kártyanevek megváltoztak és az MJPEG alapértelmezések eltolódtak — olvasd el az alábbi törést okozó változásokat.

Kiemelt változások

  • OpenMV RT1060 — új NXP i.MX RT1060 kártya (és egy REV2 verzió).

  • Kibővített MJPEG APIwrite(), count, is_closed, sync(), ROI/paletta/alfa kulcsszavak és egy finalizáló.

  • Új ISP metódusokimage.awb(), image.ccm(), image.gamma().

  • A MicroPython 1.20.0-ra frissült.

  • Törést okozó: az Arduino kártyacélokat átneveztük, és az MJPEG alapértelmezett minősége megváltozott — lásd a törést okozó változásokat.

Új funkciók

  • OpenMV RT1060 — teljes NXP i.MX RT1060 port (érzékelő, GPIO, I2C, SPI illesztőprogramok) és kártyakonfiguráció, valamint az RT1060 REV2 kártyaverzió támogatása és machine.RTC riasztás/ébresztés az i.MX RT porton.

  • MJPEG — egy új Mjpeg.write() metódus (roi, rgb_channel, alpha, color_palette, alpha_palette, hint kulcsszavakkal), valamint count, is_closed, sync() és egy __del__ finalizáló, továbbá MJPEG / Mjpeg / mjpeg konstruktor-aliasok.

  • ISP képmetódusokimage.awb([max]) (automatikus fehéregyensúly), image.ccm(matrix) (3x3 / 4x3 színkorrekciós mátrix) és image.gamma(gamma, contrast, brightness).

  • AprilTag — új lebegőpontos centroid-attribútumok: cxf / cyf (a cx / cy továbbra is kerekített egész számokat ad vissza).

  • ML — a tf.regression() mostantól elfogad egy ulab ndarray-t és támogatja a 2D bemeneti tenzorokat (az 1D továbbra is támogatott); további TensorFlow Lite műveletek lettek engedélyezve a beépített libtf könyvtárakban.

Egyéb változások és fejlesztések

  • A MicroPython 1.20.0-ra frissült; az ulab 6.0.12-re.

  • Az image.gamma / gamma_corr ISP metódusként lett átdolgozva, és kiterjesztve a Bayer és YUV képek támogatására (nem csak a módosítható képekre).

  • Az STM32 kártyák (Portenta H7, Nicla Vision) átálltak a nyílt forráskódú cyw43 WiFi-illesztőprogramra.

  • Az rtsp könyvtárat hordozhatóvá tettük (a pyb helyett a random/time modulokat használja); az urequests mostantól mindig bezárja a socketjét.

Hibajavítások

Kamera és érzékelők:

  • Javítottuk az OV767x órajel-sebességet (CLKRC) az Arduino Nano 33 BLE Sense-en, az OV7670 CLKRC bypass/előosztó kezelését, valamint a felcserélt D0/D1 adatvonalakat az Arduino Nicla Vision / ML kit-en (nrf port).

Rendszer és USB:

  • Javítottuk a rövid USB-csomagok kezelését TinyUSB hibakeresési módban (megbízhatóbb IDE/host átvitelek).

  • Javítottuk az OpenMV RT1060 villogó LED polaritását és az SD-kártya észlelését bekapcsoláskor.

Hardver- és kártyatámogatás

  • OpenMV RT1060 — új NXP i.MX RT1060 kártya, valamint a REV2 verzió.

  • STM32 — a Portenta H7 / Nicla Vision átállt a nyílt forráskódú cyw43 WiFi-illesztőprogramra.

Törést okozó API-változások

A felhasználó számára látható API-törések a v4.4.2 és a v4.4.3 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.

Minden változás meg van jelölve a hatásával:

  • behavior — ugyanaz az API, eltérő eredmények; ellenőrizd újra a finomhangolt szkripteket.

  • tooling — a kártya elnevezését / flashelését érinti, nem a Python API-t.

A változások hatás szerint, ebben a sorrendben vannak csoportosítva. Minden commit-hash a GitHub-on lévő diffjére hivatkozik.

MJPEG alapértelmezések és hibakezelés (behavior)

Az MJPEG felvételi kódot átdolgoztuk. Az alapértelmezett add_frame() / write() JPEG quality értéket 50-ről 90-re emeltük (a felvételek alapértelmezetten nagyobbak és jobb minőségűek), egy érvénytelen minőség mostantól ValueError kivételt vált ki, egy lezárt fájlon végzett művelet mostantól OSError kivételt vált ki, és a felvételi metódusok mostantól az Mjpeg objektumot adják vissza. A régi alapértelmezett minőségtől vagy a korábbi hibaviselkedéstől függő szkripteket újra kell ellenőrizni.

Commit: 3fc55ad31

Arduino kártyacélok átnevezve (tooling)

Az Arduino kártyacélokat átneveztük egy frissített elnevezési konvencióra, és az összes kártyamanifesztet (befagyasztott modulkészletet) frissítettük. Ez nem változtatja meg a Python API-t, de az Arduino kártyák építéséhez vagy flasheléséhez használt firmware fájl-/kártyanevek megváltoztak — frissítsd ennek megfelelően az eszközeidet.

Commitok: 77a7d16c0, 59d9f2603

Migrációs ellenőrzőlista

A v4.4.3-ra való tiszta portoláshoz: ellenőrizd újra az MJPEG felvételeket az új alapértelmezett minőség és hibaviselkedés szempontjából (az MJPEG változás), és frissítsd az építő/flashelő eszközeidet az átnevezett Arduino kártyacélokhoz (a kártya-átnevezés). Az összes többi szkript változatlanul fut.