v4.5.9¶
v4.5.9 přináší streamování raw náhledu pro desky bez hardwarového JPEG enkodéru, hardwarové ořezávání senzoru pro uvolnění více RAM, rychlejší debayering akcelerovaný technologií Helium a sadu oprav kamery/USB-debug. Mění také API výsledku AprilTag a výchozí sadu rodin AprilTag, proto si přečtěte zásadní změny níže.
Hlavní novinky¶
Streamování raw náhledu — desky bez hardwarového JPEG enkodéru nyní mohou do IDE/hostitele posílat zmenšené raw snímky namísto selhání náhledu.
Hardwarové ořezávání senzoru — nastavení menší velikosti snímku nyní snižuje paměť na buffer a uvolňuje RAM pro
fb_alloc().Rychlejší debayering — převod Bayer→RGB/stupně šedi je nyní akcelerován technologií Helium-SIMD na deskách Cortex-M55.
Zásadní změna: objekt výsledku AprilTag se změnil na přístup přes atributy a výchozí sada rodin AprilTag byla zredukována (viz změny AprilTag a změna rodiny AprilTag).
Nové funkce¶
Streamování raw náhledu — desky bez hardwarového JPEG enkodéru mohou obejít JPEG a streamovat zmenšené raw snímky (omezené na ~60 KB) do IDE/hostitele, takže živý náhled na těchto deskách funguje.
Další změny a vylepšení¶
Hardwarové ořezávání je nyní zapnuto na všech deskách STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Při nastavení velikosti snímku nebo okna se paměť na buffer redukuje na oříznutou velikost, čímž se uvolní více RAM pro
fb_alloc().Rychlejší debayering — převod Bayer→RGB565/stupně šedi je nyní akcelerován pomocí ARM Helium/MVE SIMD na deskách Cortex-M55 (např. RT1060), se sdílenou SIMD cestou JPEG enkodéru.
Rychlejší ladění v IDE — debugger nyní pokud možno přenáší data přímo z USB zásobníku, čímž se vyhne kopírování navíc.
Submodul MicroPython aktualizován — desky mohou změnit velikost CDC bufferu TinyUSB, plus opravy GC a pravidel sestavení.
Opravy chyb¶
Kamera a senzory:
Opraven Bayer/CFA vzor OV7725 (GBRG → BGGR), čímž se opravil debayerovaný barevný výstup na kamerách OV7725; OV7725 nyní hlásí Bayer formát pixelů a senzory pouze pro Bayer nyní hlásí zdrojovou hloubku 1 bajt na pixel.
Opraven výpočet velikosti raw/Bayer framebufferu.
Strojové učení:
TensorFlow Lite Micro nyní při dimenzování dočasné tenzorové arény používá volnou paměť GC haldy, čímž se předchází selhání alokace při načítání modelu na deskách s omezenou pamětí snímkového bufferu.
Hostitel / IDE:
Opraveno zpracování CDC bufferu pro USB-debug na deskách TinyUSB pro spolehlivější propustnost sériové/ladicí komunikace.
tools/pyopenmv: opraveno pořadí bajtů RGB565, přidán argumentscalea nástroj snímkového bufferu nyní hlásí velikost/formát obrazu.
Hardware a podpora desek¶
OV7725 nyní hlásí Bayer formát pixelů (správné zpracování raw/CFA).
Hardwarové ořezávání zapnuto v celé řadě desek STM32/NXP.
Zásadní změny API¶
Změny API viditelné pro uživatele mezi v4.5.8 a v4.5.9. Rozsah: pythonovské C moduly v modules/ a pythonovské knihovny v scripts/libraries/.
Každá změna je označena svým dopadem:
minor — úzké API; ovlivňuje pouze skripty, které ho 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 pouze 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.
Objekty výsledku AprilTag a set_buffers (minor)¶
Výsledky AprilTag z find_apriltags() nyní zpřístupňují svá data jako atributy namísto metod — použijte tag.cx, tag.cy, tag.rotation, tag.family, tag.corners namísto tag.cx(), tag.family() atd. Byly přidány nové přístupové prvky name (řetězec s názvem rodiny) a cxf / cyf s přesností float.
Samostatně se změnila automatická konfigurace video bufferu: set_buffers nahrazuje auto_adjust — předejte -1 pro použití až tří bufferů velikosti snímku (nebo co největšího počtu, který se vejde) a 1 pro použití celého snímkového bufferu. Dimenzování bufferu nyní zohledňuje počet bitů na pixel, takže pro formáty s 1 bpp lze alokovat více bufferů.
ble_advertising a RPC po síti odstraněny (minor)¶
Pomocná knihovna ble_advertising a příklad ble_temperature.py byly odstraněny — místo nich použijte aioble (je k dispozici příklad teploty s aioble). Třídy RPC network master/slave byly odstraněny z rpc.py.
Rodiny AprilTag ve výchozím nastavení vypnuté (behavior)¶
Rodiny AprilTag jsou nyní jednotlivě volitelné při kompilaci a nepoužívané jsou ve výchozím nastavení vypnuté. Na standardních deskách find_apriltags() nyní detekuje pouze rodinu TAG36H11, pokud není firmware znovu sestaven s povolenými dalšími rodinami. Skripty spoléhající na jiné rodiny (TAG16H5, TAG25H9, …) na standardním sestavení je tiše přestanou detekovat.
Commit: effe12f2c
Kontrolní seznam migrace¶
Pro čistý přechod na v4.5.9 je typická práce následující:
Změňte přístup k výsledku AprilTag z volání metod na atributy (
tag.cx()→tag.cx) a přejděte zauto_adjustnaset_buffers(změny AprilTag / bufferů).Nahraďte
ble_advertisingzaaioblea zrušte jakékoli použití RPC network master/slave (odstranění).Pokud používáte jiné rodiny AprilTag než
TAG36H11na standardním sestavení, vezměte na vědomí, že ve výchozím nastavení již nejsou detekovány (změna rodiny AprilTag).