v4.5.9

v4.5.9 tuo raakaesikatselun suoratoiston korteille, joissa ei ole laitteistollista JPEG-koodainta, laitteistollisen sensorin rajauksen lisää RAM-muistin vapauttamiseksi, nopeamman Helium-kiihdytetyn debayeroinnin sekä joukon kamera-/USB-debug-korjauksia. Se myös muuttaa AprilTag-tulos-API:a ja oletus-AprilTag-perhejoukkoa, joten lue alla olevat rikkovat muutokset.

Kohokohdat

  • Raakaesikatselun suoratoisto — kortit, joissa ei ole laitteistollista JPEG-koodainta, voivat nyt lähettää alasskaalattuja raakakehyksiä IDE:lle/isännälle sen sijaan, että esikatselu epäonnistuisi.

  • Laitteistollinen sensorin rajaus — pienemmän kehyskoon asettaminen vähentää nyt puskurikohtaista muistia ja vapauttaa RAM-muistia funktiolle fb_alloc().

  • Nopeampi debayerointi — Bayer→RGB/harmaasävy-muunnos on nyt Helium-SIMD-kiihdytetty Cortex-M55-korteilla.

  • Rikkova: AprilTag-tulosobjekti muuttui attribuuttipohjaiseksi ja oletus-AprilTag-perhejoukkoa pienennettiin (katso AprilTag-muutokset ja AprilTag-perhemuutos).

Uudet ominaisuudet

  • Raakaesikatselun suoratoisto — kortit, joissa ei ole laitteistollista JPEG-koodainta, voivat ohittaa JPEG:n ja suoratoistaa alasskaalattuja raakakehyksiä (rajattu noin 60 kt:hen) IDE:lle/isännälle, joten live-esikatselu toimii näillä korteilla.

Muut muutokset ja parannukset

  • Laitteistollinen rajaus on nyt käytössä kaikilla STM32/NXP-korteilla (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Kun kehyskoko tai ikkuna asetetaan, puskurikohtainen muisti pienennetään rajattuun kokoon, vapauttaen lisää RAM-muistia funktiolle fb_alloc().

  • Nopeampi debayerointi — Bayer→RGB565/harmaasävy-muunnos on nyt ARM Helium/MVE SIMD-kiihdytetty Cortex-M55-korteilla (esim. RT1060), jaetulla SIMD-JPEG-koodainpolulla.

  • Nopeampi IDE-debug — debuggeri siirtää nyt dataa suoraan USB-pinosta mahdollisuuksien mukaan, välttäen ylimääräisen kopioinnin.

  • MicroPython-alimoduuli päivitetty — kortit voivat muuttaa TinyUSB CDC -puskurin kokoa, sekä GC- ja käännössääntökorjauksia.

Korjatut viat

Kamera ja sensorit:

  • Korjattu OV7725:n Bayer/CFA-kuvio (GBRG → BGGR), korjaten debayeroidun väritulosteen OV7725-kameroilla; OV7725 raportoi nyt Bayer-pikselimuodon, ja vain-Bayer-sensorit raportoivat nyt 1 tavu pikseliä kohden -lähdesyvyyden.

  • Korjattu raaka-/Bayer-kehyspuskurin koon laskenta.

Koneoppiminen:

  • TensorFlow Lite Micro käyttää nyt GC-keon vapaata muistia tilapäistä tensoriarenaa mitoittaessaan, estäen mallin latauksen varausvirheet korteilla, joiden kehyspuskurimuisti on rajallinen.

Isäntä / IDE:

  • Korjattu USB-debug-CDC-puskurin käsittely TinyUSB-korteilla luotettavamman sarja-/debug-läpäisykyvyn saamiseksi.

  • tools/pyopenmv: korjattu RGB565-tavujärjestys, lisätty scale -argumentti, ja kehyspuskurityökalu raportoi nyt kuvan koon/muodon.

Laitteisto- ja korttituki

  • OV7725 raportoi nyt Bayer-pikselimuodon (oikea raaka-/CFA-käsittely).

  • Laitteistollinen rajaus käytössä koko STM32/NXP-korttivalikoimassa.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkomukset versioiden v4.5.8 ja v4.5.9 välillä. Laajuus: Python-C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • minor — kapea API; vaikuttaa vain sitä käyttäneisiin skripteihin.

  • behavior — sama API, eri tulokset; tarkista viritetyt skriptit uudelleen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, hyppää lopussa olevaan siirtotarkistuslistaan. Jokainen commit-hash linkittää diffiinsä GitHubissa.

AprilTag-tulosobjektit ja set_buffers (minor)

AprilTag-tulokset funktiosta find_apriltags() paljastavat nyt datansa attribuutteina metodien sijaan — käytä tag.cx, tag.cy, tag.rotation, tag.family, tag.corners metodien tag.cx(), tag.family() jne. sijaan. Lisättiin uudet name (perheen nimimerkkijono) sekä liukulukutarkkuuden cxf / cyf -lukijat.

Erikseen automaattinen videopuskurin konfigurointi muuttui: set_buffers korvaa auto_adjust -toiminnon — anna -1 käyttääksesi enintään kolmea kehyskoon puskuria (tai eniten, mitä mahtuu) ja 1 käyttääksesi koko kehyspuskuria. Puskurin mitoitus huomioi nyt bitit per pikseli, joten 1 bpp -muodoille voidaan varata enemmän puskureita.

Commitit: c0d4759f8, 7b36e4ef6

ble_advertising ja RPC-yli-verkon poistettu (minor)

ble_advertising -avustinkirjasto ja ble_temperature.py -esimerkki poistettiin — käytä aioble -moduulia sen sijaan (aioble-lämpötilaesimerkki on tarjolla). RPC-verkon master/slave-luokat poistettiin tiedostosta rpc.py.

Commitit: 6513276c1, 44a7e579d

AprilTag-perheet oletuksena poissa käytöstä (behavior)

AprilTag-perheet ovat nyt yksittäin käännösaikana valittavissa, ja käyttämättömät ovat oletuksena poissa käytöstä. Vakiokorteilla find_apriltags() tunnistaa nyt vain TAG36H11 -perheen, ellei laiteohjelmistoa käännetä uudelleen muut perheet käytössä. Skriptit, jotka nojaavat muihin perheisiin (TAG16H5, TAG25H9, …) vakiokäännöksessä, lakkaavat hiljaisesti tunnistamasta niitä.

Commit: effe12f2c

Siirtotarkistuslista

Siisti siirto versioon v4.5.9 vaatii tyypillisesti seuraavan työn:

  1. Muuta AprilTag-tuloksen käyttö metodikutsuista attribuuteiksi (tag.cx()tag.cx) ja vaihda auto_adjust toimintoon set_buffers (AprilTag-/puskurimuutokset).

  2. Korvaa ble_advertising moduulilla aioble ja luovu kaikesta RPC-verkon master/slave-käytöstä (poistot).

  3. Jos käytät muita AprilTag-perheitä kuin TAG36H11 vakiokäännöksessä, huomaa, ettei niitä enää oletuksena tunnisteta (AprilTag-perhemuutos).