v4.5.9

v4.5.9 donosi streamanje sirovog pregleda za ploče bez hardverskog JPEG enkodera, hardversko izrezivanje senzora radi oslobađanja više RAM-a, brže debayeriranje ubrzano Heliumom te skup ispravaka za kameru/USB-otklanjanje pogrešaka. Također mijenja API rezultata AprilTag-a i zadani skup obitelji AprilTag, pa pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Istaknuto

  • Streamanje sirovog pregleda — ploče bez hardverskog JPEG enkodera sada mogu slati smanjene sirove sličice u IDE/domaćin umjesto da ne uspiju s pregledom.

  • Hardversko izrezivanje senzora — postavljanje manje veličine sličice sada smanjuje memoriju po međuspremniku i oslobađa RAM za fb_alloc().

  • Brže debayeriranje — pretvorba Bayer→RGB/sivi tonovi sada je ubrzana s Helium-SIMD na Cortex-M55 pločama.

  • Narušava kompatibilnost: objekt rezultata AprilTag promijenjen je na pristup putem atributa, a zadani skup obitelji AprilTag je smanjen (pogledajte promjene AprilTag-a i promjenu obitelji AprilTag).

Nove značajke

  • Streamanje sirovog pregleda — ploče bez hardverskog JPEG enkodera mogu zaobići JPEG i streamati smanjene sirove sličice (ograničene na ~60 KB) u IDE/domaćin, tako da pregled uživo radi na tim pločama.

Ostale promjene i poboljšanja

  • Hardversko izrezivanje sada je omogućeno na svim STM32/NXP pločama (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Kada se postavi veličina sličice ili prozor, memorija po međuspremniku smanjuje se na izrezanu veličinu, oslobađajući više RAM-a za fb_alloc().

  • Brže debayeriranje — pretvorba Bayer→RGB565/sivi tonovi sada je ubrzana s ARM Helium/MVE SIMD na Cortex-M55 pločama (npr. RT1060), uz zajedničku SIMD putanju JPEG enkodera.

  • Brže otklanjanje pogrešaka u IDE-u — program za otklanjanje pogrešaka sada prenosi podatke izravno iz USB stoga kada je to moguće, izbjegavajući dodatno kopiranje.

  • MicroPython podmodul ažuriran — ploče mogu promijeniti veličinu TinyUSB CDC međuspremnika, uz ispravke za GC i pravila izgradnje.

Ispravci pogrešaka

Kamera i senzori:

  • Ispravljen OV7725 Bayer/CFA uzorak (GBRG → BGGR), čime je ispravljen debayerirani izlaz boje na OV7725 kamerama; OV7725 sada prijavljuje Bayer format piksela, a senzori samo s Bayerom sada prijavljuju izvornu dubinu od 1 bajta po pikselu.

  • Ispravljen izračun veličine sirovog/Bayer međuspremnika slike.

Strojno učenje:

  • TensorFlow Lite Micro sada koristi slobodnu memoriju GC hrpe pri određivanju veličine privremene tenzorske arene, sprječavajući neuspjeh alokacije pri učitavanju modela na pločama s ograničenom memorijom međuspremnika slike.

Domaćin / IDE:

  • Ispravljeno rukovanje USB-debug CDC međuspremnikom na TinyUSB pločama za pouzdaniju serijsku/debug propusnost.

  • tools/pyopenmv: ispravljen redoslijed bajtova RGB565, dodan argument scale, a alat za međuspremnik slike sada prijavljuje veličinu/format slike.

Hardver i podrška za ploče

  • OV7725 sada prijavljuje Bayer format piksela (ispravno rukovanje sirovim/CFA).

  • Hardversko izrezivanje omogućeno u cijelom rasponu STM32/NXP ploča.

Promjene API-ja koje narušavaju kompatibilnost

Korisniku vidljivi prekidi API-ja između v4.5.8 i v4.5.9. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka promjena označena je svojim utjecajem:

  • malen — uzak API; utječe samo na skripte koje su ga koristile.

  • ponašanje — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, skočite na popis za migraciju na kraju. Svaki hash commita povezuje se sa svojim diffom na GitHubu.

Objekti rezultata AprilTag i set_buffers (malen)

Rezultati AprilTag iz find_apriltags() sada izlažu svoje podatke kao atribute umjesto kao metode — koristite tag.cx, tag.cy, tag.rotation, tag.family, tag.corners umjesto tag.cx(), tag.family() itd. Dodani su novi pristupnici name (string s nazivom obitelji) te cxf / cyf s float preciznošću.

Zasebno, automatska konfiguracija video-međuspremnika se promijenila: set_buffers zamjenjuje auto_adjust — proslijedite -1 za korištenje do tri međuspremnika veličine sličice (ili najviše koliko stane) i 1 za korištenje cijelog međuspremnika slike. Određivanje veličine međuspremnika sada je svjesno broja bitova po pikselu, pa se za formate od 1 bpp može alocirati više međuspremnika.

Commiti: c0d4759f8, 7b36e4ef6

ble_advertising i RPC-preko-mreže uklonjeni (malen)

Pomoćna biblioteka ble_advertising i primjer ble_temperature.py su uklonjeni — umjesto toga koristite aioble (priložen je aioble primjer temperature). Klase RPC mrežnog mastera/slavea uklonjene su iz rpc.py.

Commiti: 6513276c1, 44a7e579d

Obitelji AprilTag prema zadanim postavkama onemogućene (ponašanje)

Obitelji AprilTag sada se mogu pojedinačno odabirati u vrijeme prevođenja, a one koje se ne koriste onemogućene su prema zadanim postavkama. Na standardnim pločama find_apriltags() sada otkriva samo obitelj TAG36H11 osim ako se ugrađeni program (firmware) ponovno izgradi s omogućenim drugim obiteljima. Skripte koje se oslanjaju na druge obitelji (TAG16H5, TAG25H9, …) na standardnoj izgradnji tiho će ih prestati otkrivati.

Commit: effe12f2c

Popis za migraciju

Za čist prijenos na v4.5.9 tipičan posao je:

  1. Promijenite pristup rezultatima AprilTag iz poziva metoda u atribute (tag.cx()tag.cx) i prijeđite s auto_adjust na set_buffers (promjene AprilTag / međuspremnika).

  2. Zamijenite ble_advertising s aioble i prestanite koristiti bilo kakav RPC mrežni master/slave (uklanjanja).

  3. Ako koristite obitelji AprilTag osim TAG36H11 na standardnoj izgradnji, imajte na umu da se one više ne otkrivaju prema zadanim postavkama (promjena obitelji AprilTag).