v4.6.0¶
v4.6.0 je velké vydání s novými funkcemi. Hlavní novinky: modul kamery byl přejmenován z sensor na csi (se zpětně kompatibilním aliasem sensor), nový modul ml.postprocessing, podpora událostního senzoru Prophesee GenX320, PAG7936 a termálních kamer FLIR Boson, nový DFU bootloader založený na TinyUSB, akcelerace Nema GPU a MicroPython 1.24. Vydání také mění rozsah alpha při kreslení, takže si přečtěte níže uvedené zásadní změny.
Hlavní novinky¶
sensorje nyní takécsi— modul kamery byl přejmenován nacsi;sensorzůstává jako zpětně kompatibilní alias (zatím není potřeba žádná úprava kódu).Nový modul
ml.postprocessing—fomo_postprocess,yolo_v2_postprocess,yolo_v5_postprocess.Nové senzory — událostní kamera Prophesee GenX320, PAG7936 a termální FLIR Boson 320/640.
Nový DFU bootloader — standardní DFU bootloader založený na TinyUSB nahrazuje na všech deskách dřívější CDC bootloader.
Nema GPU — akcelerovaná 2D/vektorová grafika na STM32.
MicroPython aktualizován na 1.24.0.
Zásadní změna: rozsah
alphapři kreslení se změnil z 0–256 na 0–255 (viz změna rozsahu alpha).
Nové funkce¶
ml.postprocessing— nový modul dekódující výstup modelu: FOMO dekodér (fomo_postprocess,find_blobs+ NMS, konfigurovatelnýthreshold) ayolo_v2_postprocess/yolo_v5_postprocess(sthreshold,anchors,nms_threshold,nms_sigma).Vizualizace událostní kamery — nové metody
Image.to_evt_dark()/Image.to_evt_light()a barevné paletyPALETTE_EVT_DARK/PALETTE_EVT_LIGHT.Vizualizace hloubky — nová metoda
Image.to_depth()a barevná paletaPALETTE_DEPTH(desky s podporou ToF).Introspekce senzoru — nový ioctl
IOCTL_GET_RGB_STATSvracející n-tici statistik kanálů(R, Gb, Gr, B).Předvolby biasu GenX320 — nový ioctl
IOCTL_GENX320_SET_BIASESs předvolbamiGENX320_BIASES_DEFAULT/LOW_LIGHT/ACTIVE_MARKER/LOW_NOISE/HIGH_SPEED.omv.debug_mode()— nová funkce pro zjištění, zda je aktivní USB ladicí rozhraní.Nema GPU — integrace ovladače Cortex-M55 NemaGFX/NemaVG na STM32, s in-place GPU cut-through pro
draw_image.PAG7936 — přidán výstup barevných pruhů, automatická expozice / automatický zisk, režim spánku a MIPI režim.
Další změny a vylepšení¶
MicroPython aktualizován na 1.24.0; ulab aktualizován na 6.7.3 (přidává
keepdims).Společný spouštěcí skript — STM32 / i.MX RT / RP2 nyní sdílejí soubor
_boot.py, který automaticky vytvoří souborový systém flash/SD s výchozímmain.pyaREADME.txta uvolní dočasné spouštěcí globální proměnné.Základy pro STM32N6 — základní podpora STM32N6, ovladač XSPI, společný ovladač MPU a podepisování firmwaru/bootloaderu na STM32.
Computed-goto VM — povoleno na STM32 a nRF pro zrychlení interpretu.
Opravy chyb¶
Kamera a senzory:
Opraven výpočet PCLK/expozice u OV5640 (dvě MIPI dráhy, opravená tabulka děliček).
Varianta MT9V0xx s Bayer-CFA nyní přijímá RGB565/BAYER/GRAYSCALE a vydává správná surová Bayerova data místo chyby.
Povolena korekce stínování objektivu PAG7936 a opraveno posouvání HD obrazu;
set_framerate()je nyní omezen podle rozlišení.Opraveno termální snímání FLIR Lepton na i.MX RT1060 (opravené VoSPI CPOL/CPHA) a snímky Lepton nyní vracejí konkrétní chybové kódy.
Opraveno zaokrouhlování frekvence GenX320.
Zpracování obrazu:
Opraveno poškození paměti v
to_ndarray()u obrazů ve stupních šedi.Opravena predikce hranic debayeru při převodu Bayer→RGB/stupně šedi.
Opraven
transposevdraw_image()na deskách bez SDRAM (bufferování po blocích).Opraveno zpracování boolovských argumentů v
Image.binary()a příznakuload_to_fbuml.Model.
Systém:
Opravena konfigurace pinů pouze pro RX / pouze pro TX u SPI na STM32 a i.MX RT.
Přesunuty DMA buffery Ethernetu desky Portenta H7 do SRAM3, aby Ethernet fungoval.
Opraven vynechaný znak v textovém výstupu ladicího kanálu přes USB; velikosti dynamické alokace pro ML zaokrouhleny nahoru, aby se předešlo poddimenzovaným bufferům modelu.
Podpora hardwaru a desek¶
Prophesee GenX320 událostní vizuální senzor (STM32F7 + i.MX RT1060).
PAG7936 senzor (s MIPI režimem).
FLIR Boson 320/640 termální kamery (ovladač IDD 4).
Nema GPU akcelerace na STM32.
STM32N6 základy bootloaderu/XSPI.
VL53L5CX — přidána podpora pinu pro povolení napájení.
Zásadní změny API¶
Uživatelsky viditelné změny API mezi v4.5.9 a v4.6.0. Rozsah: Python C-moduly v modules/ a Python knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
major — většina skriptů, které ji používaly, vyžaduje úpravy.
minor — úzké API; ovlivňuje pouze skripty, které je používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
tooling — ovlivňuje pouze flashování / hostitelské nástroje / dostupnost desek.
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. Poznámka: přejmenování modulu sensor → csi v tomto vydání není zásadní změnou — sensor stále funguje jako alias.
Rozsah alpha při kreslení je nyní 0–255 (major)¶
Argument alpha funkce draw_image() a každého překryvu, který jej přijímá (FIR, ToF, displej, TV, MJPEG, alpha tabulky), nyní používá rozsah 0–255 místo 0–256. Skripty, které předávaly 256 pro plnou neprůhlednost nebo počítaly alpha vůči 256, musí být přepočítány na 0–255.
Commit: 1f87b5bb6
Přejmenovány ioctl konstanty FLIR Lepton (minor)¶
Tři ioctl konstanty Lepton byly zkráceny: IOCTL_LEPTON_SET_MEASUREMENT_MODE → IOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGE → IOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATURE → IOCTL_LEPTON_GET_FPA_TEMP. Přiložené příklady byly aktualizovány.
Commit: 12582d54d
Změny v API pro ML post-processing (minor)¶
ml.postprocessing je v tomto vydání nový a jeho API se během něj měnilo: klíčové slovo konstruktoru score_threshold u yolo_v2_postprocess bylo přejmenováno na threshold a prázdné výsledky post-processingu nyní vracejí () místo []. Přiložený model yolov5_rgb_person byl přejmenován na yolo_v5_224_nano. ml.apps.MicroSpeech nyní předává libovolné **kwargs funkci audio.init() místo pevného gain_db=24.
Commity: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c
AGAST je výchozí detektor rohů (behavior)¶
find_keypoints() nyní na všech deskách používá jako výchozí detektor rohů AGAST místo FAST. Sady klíčových bodů (a tedy i shody deskriptorů) se liší od předchozích vydání — znovu zkontrolujte vyladěné pipeline klíčových bodů. Streamování snímkového bufferu do IDE je nyní také omezeno na 20 Hz, aby se snížila zátěž USB.
Bootloader, odebrané desky a funkce (tooling)¶
Dřívější CDC bootloader byl na všech deskách nahrazen novým standardním DFU bootloaderem založeným na TinyUSB — mechanismus aktualizace firmwaru se změnil; podle toho aktualizujte svůj postup/nástroje pro flashování. Deska OpenMV Pro, samostatný build Raspberry Pi Pico a funkce vzdáleného IDE přes WiFi ladění (wifidbg) byly odebrány.
Commity: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2
Kontrolní seznam migrace¶
Pro čistý přechod na v4.6.0 je typická práce následující:
Přepočítejte každou hodnotu
alphapro kreslení/překryv z rozsahu 0–256 na 0–255 (změna rozsahu alpha).Přejmenujte všechny ioctl konstanty FLIR Lepton na jejich zkrácené formy (přejmenování ioctl Lepton).
Pokud jste používali nové ML post-processory, přepněte
score_thresholdnathreshold, ošetřete prázdný výsledek()a aktualizujte název modeluyolo_v5_224_nano(změny v ML).Znovu zkontrolujte pipeline založené na
find_keypoints()kvůli změně detektoru AGAST (změna detektoru rohů).Aktualizujte svůj postup flashování firmwaru pro nový DFU bootloader (změny bootloaderu/desek).