v4.5.9¶
v4.5.9 aduce streaming de previzualizare brută pentru plăcile fără codificator JPEG hardware, decuparea hardware a senzorului pentru a elibera mai mult RAM, debayering accelerat cu Helium mai rapid și un lot de remedieri pentru cameră/depanare USB. De asemenea, modifică API-ul rezultatelor AprilTag și setul implicit de familii AprilTag, așa că citiți modificările incompatibile de mai jos.
Aspecte importante¶
Streaming de previzualizare brută — plăcile fără codificator JPEG hardware pot trimite acum cadre brute scalate către IDE/gazdă în loc să eșueze la previzualizare.
Decupare hardware a senzorului — setarea unei dimensiuni de cadru mai mici reduce acum memoria per tampon și eliberează RAM pentru
fb_alloc().Debayering mai rapid — conversia Bayer→RGB/tonuri de gri este acum accelerată cu Helium-SIMD pe plăcile Cortex-M55.
Incompatibil: obiectul de rezultat AprilTag a trecut la accesul prin atribute, iar setul implicit de familii AprilTag a fost redus (consultați modificările AprilTag și modificarea familiei AprilTag).
Caracteristici noi¶
Streaming de previzualizare brută — plăcile fără codificator JPEG hardware pot ocoli JPEG și transmite cadre brute scalate (limitate la ~60 KB) către IDE/gazdă, astfel încât previzualizarea live funcționează pe acele plăci.
Alte modificări și îmbunătățiri¶
Decuparea hardware este acum activată pe toate plăcile STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Când se setează o dimensiune de cadru sau o fereastră, memoria per tampon este redusă la dimensiunea decupată, eliberând mai mult RAM pentru
fb_alloc().Debayering mai rapid — conversia Bayer→RGB565/tonuri de gri este acum accelerată cu ARM Helium/MVE SIMD pe plăcile Cortex-M55 (de exemplu RT1060), cu un traseu de codificator JPEG SIMD partajat.
Depanare IDE mai rapidă — depanatorul transferă acum datele direct din stiva USB atunci când este posibil, evitând o copiere suplimentară.
Submodulul MicroPython actualizat — plăcile pot redimensiona tamponul CDC TinyUSB, plus remedieri GC și de reguli de compilare.
Remedieri de erori¶
Cameră și senzori:
Corectat tiparul Bayer/CFA al OV7725 (GBRG → BGGR), remediind ieșirea de culoare debayerizată pe camerele OV7725; OV7725 raportează acum formatul de pixel Bayer, iar senzorii doar-Bayer raportează acum o adâncime de sursă de 1 octet per pixel.
Remediat calculul dimensiunii framebuffer-ului brut/Bayer.
Învățare automată:
TensorFlow Lite Micro folosește acum memoria liberă a heap-ului GC la dimensionarea arenei temporare de tensori, prevenind eșecurile de alocare la încărcarea modelului pe plăcile cu memorie de tampon de cadre limitată.
Gazdă / IDE:
Remediată gestionarea tamponului CDC pentru depanare USB pe plăcile TinyUSB, pentru un debit serial/de depanare mai fiabil.
tools/pyopenmv: remediată ordinea octeților RGB565, adăugat un argumentscale, iar instrumentul de tampon de cadre raportează acum dimensiunea/formatul imaginii.
Suport hardware și plăci¶
OV7725 raportează acum formatul de pixel Bayer (gestionare corectă brut/CFA).
Decuparea hardware activată în întreaga gamă de plăci STM32/NXP.
Modificări incompatibile ale API-ului¶
Întreruperi de API vizibile pentru utilizator între v4.5.8 și v4.5.9. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
minor — API restrâns; afectează doar scripturile care l-au folosit.
comportament — același API, rezultate diferite; reverificați scripturile reglate.
Modificările sunt grupate după impact în această ordine. Dacă doriți doar să portați codul, săriți la lista de verificare pentru migrare de la final. Fiecare hash de commit se leagă de diff-ul său de pe GitHub.
Obiectele de rezultat AprilTag și set_buffers (minor)¶
Rezultatele AprilTag de la find_apriltags() își expun acum datele ca atribute în loc de metode — folosiți tag.cx, tag.cy, tag.rotation, tag.family, tag.corners în loc de tag.cx(), tag.family() etc. Au fost adăugate noile accesoare name (șir cu numele familiei) și cxf / cyf cu precizie float.
Separat, configurarea automată a tamponului video s-a schimbat: set_buffers înlocuiește auto_adjust — transmiteți -1 pentru a folosi până la trei tampoane de dimensiunea cadrului (sau cât mai multe care încap) și 1 pentru a folosi întregul tampon de cadre. Dimensionarea tampoanelor ține acont acum de biți per pixel, astfel încât pot fi alocate mai multe tampoane pentru formatele de 1 bpp.
ble_advertising și RPC-prin-rețea eliminate (minor)¶
Biblioteca auxiliară ble_advertising și exemplul ble_temperature.py au fost eliminate — folosiți în schimb aioble (este furnizat un exemplu de temperatură aioble). Clasele de master/slave de rețea RPC au fost eliminate din rpc.py.
Familiile AprilTag dezactivate implicit (comportament)¶
Familiile AprilTag sunt acum selectabile individual la compilare, iar cele nefolosite sunt dezactivate implicit. Pe plăcile standard, find_apriltags() detectează acum doar familia TAG36H11 cu excepția cazului în care firmware-ul este recompilat cu alte familii activate. Scripturile care se bazează pe alte familii (TAG16H5, TAG25H9, …) pe o compilare standard vor înceta în tăcere să le detecteze.
Commit: effe12f2c
Listă de verificare pentru migrare¶
Pentru o portare curată la v4.5.9, lucrul tipic este:
Schimbați accesul la rezultatele AprilTag de la apeluri de metode la atribute (
tag.cx()→tag.cx) și treceți de laauto_adjustlaset_buffers(modificările AprilTag / tampon).Înlocuiți
ble_advertisingcuaiobleși renunțați la orice utilizare de master/slave de rețea RPC (eliminările).Dacă folosiți familii AprilTag altele decât
TAG36H11pe o compilare standard, rețineți că acestea nu mai sunt detectate implicit (modificarea familiei AprilTag).