v4.6.0

A v4.6.0 egy jelentős funkciókat hozó kiadás. A legfontosabb újdonságok: a kameramodult sensor névről csi névre nevezték át (visszafelé kompatibilis sensor aliasszal), megjelent egy új ml.postprocessing modul, támogatás a Prophesee GenX320 eseményérzékelőhöz, a PAG7936-hoz és a FLIR Boson hőkamerákhoz, egy új TinyUSB-alapú DFU rendszerbetöltő, Nema GPU-gyorsítás és a MicroPython 1.24. Emellett megváltozik a rajzolás alpha tartománya is, ezért olvassa el az alábbi töréses változásokat.

Kiemelt újdonságok

  • A sensor mostantól csi is — a kameramodult csi névre nevezték át; a sensor visszafelé kompatibilis aliasként megmarad (egyelőre nem szükséges kódmódosítás).

  • Új ml.postprocessing modulfomo_postprocess, yolo_v2_postprocess, yolo_v5_postprocess.

  • Új érzékelők — Prophesee GenX320 eseménykamera, PAG7936 és FLIR Boson 320/640 hőkamera.

  • Új DFU rendszerbetöltő — egy TinyUSB-alapú, szabványos DFU rendszerbetöltő váltja fel a régi CDC rendszerbetöltőt minden panelen.

  • Nema GPU — gyorsított 2D/vektorgrafika STM32-n.

  • A MicroPython 1.24.0-ra frissült.

  • Töréses változás: a rajzolás alpha tartománya 0–256-ról 0–255-re változott (lásd az alpha-tartomány változását).

Új funkciók

  • ml.postprocessing — egy új modul, amely dekódolja a modell kimenetét: egy FOMO-dekóder (fomo_postprocess, find_blobs + NMS, konfigurálható threshold), valamint yolo_v2_postprocess / yolo_v5_postprocess (threshold, anchors, nms_threshold, nms_sigma paraméterekkel).

  • Eseménykamera-megjelenítés — új Image.to_evt_dark() / Image.to_evt_light() metódusok és PALETTE_EVT_DARK / PALETTE_EVT_LIGHT színpaletták.

  • Mélységi megjelenítés — új Image.to_depth() metódus és egy PALETTE_DEPTH színpaletta (ToF-képes panelek esetén).

  • Érzékelő-introspekció — új IOCTL_GET_RGB_STATS ioctl, amely egy (R, Gb, Gr, B) csatornastatisztikai tuple-t ad vissza.

  • GenX320 bias-beállításkészletek — új IOCTL_GENX320_SET_BIASES ioctl GENX320_BIASES_DEFAULT / LOW_LIGHT / ACTIVE_MARKER / LOW_NOISE / HIGH_SPEED beállításkészletekkel.

  • omv.debug_mode() — új függvény annak lekérdezésére, hogy az USB hibakeresési interfész aktív-e.

  • Nema GPU — Cortex-M55 NemaGFX/NemaVG meghajtó-integráció STM32-n, helyben végrehajtott GPU cut-through támogatással a draw_image műveletekhez.

  • PAG7936 — színsáv-kimenet, automatikus expozíció / automatikus erősítés, alvó üzemmód és MIPI mód hozzáadva.

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

  • A MicroPython 1.24.0-ra frissült; az ulab 6.7.3-ra frissült (hozzáadja a keepdims paramétert).

  • Közös indítási szkript — az STM32 / i.MX RT / RP2 mostantól közös _boot.py szkripten osztozik, amely automatikusan létrehozza a flash/SD fájlrendszert egy alapértelmezett main.py és README.txt fájllal, és felszabadítja az ideiglenes indítási globális változókat.

  • STM32N6 alapozó munkák — alapszintű STM32N6 támogatás, egy XSPI meghajtó, egy közös MPU meghajtó, valamint firmware/rendszerbetöltő aláírás STM32-n.

  • Computed-goto VM — engedélyezve STM32-n és nRF-en az értelmező felgyorsítása érdekében.

Hibajavítások

Kamera és érzékelők:

  • Javítva az OV5640 PCLK/expozíció számítása (két MIPI sáv, javított osztótáblázat).

  • Az MT9V0xx Bayer-CFA változat mostantól elfogadja az RGB565/BAYER/GRAYSCALE formátumokat, és hibajelzés helyett megfelelő nyers Bayer-adatot ad ki.

  • Engedélyezve a PAG7936 lencseárnyékolás-korrekciója és javítva a HD kép eltolódása; a set_framerate() mostantól felbontásonként korlátozott.

  • Javítva a FLIR Lepton hőkamerás felvétel az i.MX RT1060-on (javított VoSPI CPOL/CPHA), és a Lepton pillanatképek mostantól konkrét hibakódokat adnak vissza.

  • Javítva a GenX320 frekvencia-kerekítése.

Képfeldolgozás:

  • Javítva a memóriasérülés a to_ndarray() metódusban szürkeárnyalatos képeknél.

  • Javítva a debayer határelőrejelzése a Bayer→RGB/szürkeárnyalatos konverzió során.

  • Javítva a draw_image() transpose művelete SDRAM nélküli paneleken (darabolt puffer).

  • Javítva a logikai argumentumok kezelése az Image.binary() metódusban és a ml.Model load_to_fb jelzőjében.

Rendszer:

  • Javítva a csak RX / csak TX SPI lábkonfiguráció STM32-n és i.MX RT-n.

  • A Portenta H7 Ethernet DMA-pufferek áthelyezve az SRAM3-ba, így az Ethernet működik.

  • Javítva egy kieső karakter az USB-n keresztüli hibakeresési csatorna szöveges kimenetében; az ML dinamikus allokációs méretek felfelé kerekítve, hogy elkerülhetők legyenek az alulméretezett modellpufferek.

Hardver- és paneltámogatás

  • Prophesee GenX320 eseményalapú látásérzékelő (STM32F7 + i.MX RT1060).

  • PAG7936 érzékelő (MIPI móddal).

  • FLIR Boson 320/640 hőkamerák (IDD 4 meghajtó).

  • Nema GPU gyorsítás STM32-n.

  • STM32N6 rendszerbetöltő/XSPI alapozó munkák.

  • VL53L5CX — tápengedélyező-láb támogatás hozzáadva.

Töréses API-változások

Felhasználó számára látható API-törések a v4.5.9 és a v4.6.0 között. Hatókör: Python C-modulok a modules/ könyvtárban és Python könyvtárak a scripts/libraries/ könyvtárban.

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

  • major — a legtöbb szkriptet, amely használta, szerkeszteni kell.

  • minor — szűk API; csak az azt használó szkripteket érinti.

  • behavior — azonos API, eltérő eredmények; ellenőrizze újra a finomhangolt szkripteket.

  • tooling — csak a flashelést / a gazdagépes eszközöket / a panelek elérhetőségét érinti.

A változások hatás szerint, ebben a sorrendben vannak csoportosítva. Ha csak a kódját szeretné átültetni, ugorjon a végén lévő migrációs ellenőrzőlistára. Minden commit-hash a GitHubon lévő diffjére hivatkozik. Megjegyzés: a sensorcsi modul-átnevezés ebben a kiadásban nem töréses változás — a sensor továbbra is működik aliasként.

A rajzolás alpha tartománya mostantól 0–255 (major)

A draw_image() alpha argumentuma és minden olyan rávetítés, amely ilyet fogad (FIR, ToF, kijelző, TV, MJPEG, alfatáblák), mostantól 0–255 tartományt használ 0–256 helyett. Azokat a szkripteket, amelyek 256 értéket adtak át a teljes átlátszatlansághoz, vagy az alfát 256-hoz viszonyítva számították ki, át kell skálázni 0–255-re.

Commit: 1f87b5bb6

FLIR Lepton ioctl-konstansok átnevezve (minor)

Három Lepton ioctl-konstans rövidült: IOCTL_LEPTON_SET_MEASUREMENT_MODEIOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGEIOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATUREIOCTL_LEPTON_GET_FPA_TEMP. A mellékelt példák frissültek.

Commit: 12582d54d

ML utófeldolgozási API-mozgások (minor)

A ml.postprocessing ebben a kiadásban új, és az API-ja a kiadás során megváltozott: a yolo_v2_postprocess konstruktor score_threshold kulcsszavát threshold névre nevezték át, és az üres utófeldolgozási eredmények mostantól () értéket adnak vissza [] helyett. A mellékelt yolov5_rgb_person modellt yolo_v5_224_nano névre nevezték át. Az ml.apps.MicroSpeech mostantól tetszőleges **kwargs argumentumokat továbbít az audio.init() felé egy rögzített gain_db=24 helyett.

Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c

Az AGAST az alapértelmezett sarokdetektor (behavior)

A find_keypoints() mostantól FAST helyett AGAST-ot használ alapértelmezett sarokdetektorként minden panelen. A kulcspontkészletek (és így a leíróegyezések) eltérnek a korábbi kiadásoktól — ellenőrizze újra a finomhangolt kulcspont-folyamatokat. Az IDE képkocka-puffer streamelése mostantól 20 Hz-en is korlátozva van az USB-terhelés csökkentése érdekében.

Commits: da6bf6910, bc4e39246

Rendszerbetöltő, eltávolított panelek és funkciók (tooling)

A régi CDC rendszerbetöltőt egy új TinyUSB-alapú szabványos DFU rendszerbetöltő váltotta fel minden panelen — a firmware-frissítési mechanizmus megváltozott; ennek megfelelően frissítse a flashelési munkafolyamatát/eszközeit. Eltávolításra került az OpenMV Pro panel, az önálló Raspberry Pi Pico build és a WiFi-hibakeresési (wifidbg) távoli IDE funkció.

Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2

Migrációs ellenőrzőlista

A v4.6.0-ra való tiszta átültetéshez a szokásos teendők:

  1. Skálázza át minden rajzolási/rávetítési alpha értéket a 0–256 tartományból 0–255-re (az alpha-tartomány változása).

  2. Nevezze át a FLIR Lepton ioctl-konstansokat a rövidített formájukra (a Lepton ioctl átnevezése).

  3. Ha az új ML utófeldolgozókat használta, váltson score_threshold helyett threshold paraméterre, kezelje a () üres eredményt, és frissítse a yolo_v5_224_nano modellnevet (az ML-változások).

  4. Ellenőrizze újra a find_keypoints()-alapú folyamatokat az AGAST-detektor változása miatt (a sarokdetektor változása).

  5. Frissítse a firmware-flashelési munkafolyamatát az új DFU rendszerbetöltőhöz (a rendszerbetöltő/panel változásai).