v4.6.0

v4.6.0 on merkittävä ominaisuusjulkaisu. Sen kärkenä: kameramoduuli nimettiin uudelleen sensor-moduulista csi-moduuliksi (taaksepäin yhteensopivalla sensor-aliaksella), uusi ml.postprocessing-moduuli, tuki Prophesee GenX320 -tapahtumasensorille, PAG7936:lle ja FLIR Boson -lämpökameroille, uusi TinyUSB-pohjainen DFU-käynnistyslatain, Nema GPU -kiihdytys ja MicroPython 1.24. Se muuttaa myös piirtämisen alpha-aluetta, joten lue alla olevat rikkovat muutokset.

Kohokohdat

  • sensor on nyt myös csi — kameramoduuli nimettiin uudelleen csi-moduuliksi; sensor säilyy taaksepäin yhteensopivana aliaksena (koodimuutoksia ei vielä tarvita).

  • Uusi ml.postprocessing -moduulifomo_postprocess, yolo_v2_postprocess, yolo_v5_postprocess.

  • Uudet sensorit — Prophesee GenX320 -tapahtumakamera, PAG7936 ja FLIR Boson 320/640 -lämpökamera.

  • Uusi DFU-käynnistyslatain — TinyUSB-pohjainen standardi-DFU-käynnistyslatain korvaa vanhan CDC-käynnistyslataimen kaikilla korteilla.

  • Nema GPU — kiihdytetty 2D-/vektorigrafiikka STM32:lla.

  • MicroPython päivitetty versioon 1.24.0.

  • Rikkova: piirtämisen alpha-alue muuttui arvosta 0–256 arvoon 0–255 (katso alpha-alueen muutos).

Uudet ominaisuudet

  • ml.postprocessing — uusi moduuli, joka dekoodaa mallin tulosteen: FOMO-dekooderi (fomo_postprocess, find_blobs + NMS, mukautettava threshold) sekä yolo_v2_postprocess / yolo_v5_postprocess (parametreilla threshold, anchors, nms_threshold, nms_sigma).

  • Tapahtumakameran visualisointi — uudet Image.to_evt_dark() / Image.to_evt_light() -metodit sekä PALETTE_EVT_DARK / PALETTE_EVT_LIGHT -väripaletit.

  • Syvyysvisualisointi — uusi Image.to_depth() -metodi ja PALETTE_DEPTH -väripaletti (ToF-tuella varustetut kortit).

  • Sensorin introspektio — uusi IOCTL_GET_RGB_STATS -ioctl, joka palauttaa (R, Gb, Gr, B) -kanavatilasto-monikon.

  • GenX320-bias-esiasetukset — uusi IOCTL_GENX320_SET_BIASES -ioctl, jossa esiasetukset GENX320_BIASES_DEFAULT / LOW_LIGHT / ACTIVE_MARKER / LOW_NOISE / HIGH_SPEED.

  • omv.debug_mode() — uusi funktio, jolla voi kysyä, onko USB-virheenkorjausrajapinta aktiivinen.

  • Nema GPU — Cortex-M55 NemaGFX/NemaVG -ajurin integrointi STM32:lle, mukana paikallaan tapahtuva GPU-läpivienti draw_image-toiminnolle.

  • PAG7936 — lisätty väripalkkitulostus, automaattivalotus / automaattivahvistus, lepotila ja MIPI-tila.

Muut muutokset ja parannukset

  • MicroPython päivitetty versioon 1.24.0; ulab päivitetty versioon 6.7.3 (lisää keepdims).

  • Yhteinen käynnistysskripti — STM32 / i.MX RT / RP2 jakavat nyt _boot.py-tiedoston, joka luo automaattisesti flash-/SD-tiedostojärjestelmän oletusarvoisella main.py- ja README.txt-tiedostolla ja vapauttaa väliaikaiset käynnistyksen globaalit.

  • STM32N6:n pohjatyö — perustuki STM32N6:lle, XSPI-ajuri, yhteinen MPU-ajuri sekä laiteohjelmiston/käynnistyslataimen allekirjoitus STM32:lla.

  • Computed-goto-VM — käytössä STM32:lla ja nRF:llä tulkin nopeuttamiseksi.

Korjatut virheet

Kamera ja sensorit:

  • Korjattu OV5640:n PCLK-/valotuslaskenta (kaksi MIPI-väylää, korjattu jakajataulukko).

  • MT9V0xx Bayer-CFA -variantti hyväksyy nyt RGB565/BAYER/GRAYSCALE-tilat ja tuottaa kunnollista raakaa Bayer-dataa virheilmoituksen sijaan.

  • Otettu käyttöön PAG7936:n linssivarjostuksen korjaus ja korjattu HD-kuvan siirtyminen; set_framerate() on nyt rajoitettu resoluutiokohtaisesti.

  • Korjattu FLIR Lepton -lämpökuvaus i.MX RT1060:lla (korjattu VoSPI CPOL/CPHA), ja Lepton-tilannekuvat palauttavat nyt tarkat virhekoodit.

  • Korjattu GenX320:n taajuuden pyöristys.

Kuvankäsittely:

  • Korjattu muistin vioittuminen to_ndarray()-toiminnossa harmaasävykuvilla.

  • Korjattu debayerin rajaennuste Bayer→RGB-/harmaasävymuunnoksessa.

  • Korjattu draw_image()-toiminnon transpose korteilla ilman SDRAM-muistia (paloiteltu puskuri).

  • Korjattu totuusarvoargumenttien käsittely Image.binary()-toiminnossa ja ml.Model load_to_fb -lipussa.

Järjestelmä:

  • Korjattu SPI:n pelkkä-RX-/pelkkä-TX-nastojen määritys STM32:lla ja i.MX RT:llä.

  • Siirretty Portenta H7:n Ethernet-DMA-puskurit SRAM3:een, jotta Ethernet toimii.

  • Korjattu pudonnut merkki virheenkorjauskanavan tekstitulosteessa USB:n yli; ML:n dynaamisen varauksen koot pyöristetään nyt ylöspäin alimittaisten mallipuskureiden välttämiseksi.

Laitteisto- ja korttituki

  • Prophesee GenX320 -tapahtumapohjainen konenäkösensori (STM32F7 + i.MX RT1060).

  • PAG7936 -sensori (MIPI-tilalla).

  • FLIR Boson 320/640 -lämpökamerat (IDD 4 -ajuri).

  • Nema GPU -kiihdytys STM32:lla.

  • STM32N6 -käynnistyslataimen/XSPI:n pohjatyö.

  • VL53L5CX — lisätty tuki virranhallintanastalle.

Rikkovat API-muutokset

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

Jokainen muutos on merkitty vaikutuksensa mukaan:

  • major — useimmat sitä käyttäneet skriptit vaativat muokkauksia.

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

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

  • tooling — vaikuttaa vain flashaukseen / isäntätyökaluihin / korttien saatavuuteen.

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, siirry lopussa olevaan siirtymän tarkistuslistaan. Jokainen commit-tunniste linkittää diffiinsä GitHubissa. Huomaa: tämän julkaisun sensorcsi -moduulin uudelleennimeäminen ei ole rikkova — sensor toimii edelleen aliaksena.

Piirtämisen alpha-alue on nyt 0–255 (major)

draw_image()-toiminnon alpha-argumentti ja jokainen sitä käyttävä päällys (FIR, ToF, näyttö, TV, MJPEG, alfataulukot) käyttää nyt 0–255-aluetta entisen 0–256:n sijaan. Skriptit, jotka välittivät täysin läpinäkymättömälle arvon 256 tai laskivat alfaa 256:ta vasten, on skaalattava uudelleen alueelle 0–255.

Commit: 1f87b5bb6

FLIR Lepton -ioctl-vakiot nimetty uudelleen (minor)

Kolme Lepton-ioctl-vakiota lyhennettiin: IOCTL_LEPTON_SET_MEASUREMENT_MODEIOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGEIOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATUREIOCTL_LEPTON_GET_FPA_TEMP. Mukana toimitetut esimerkit päivitettiin.

Commit: 12582d54d

ML-jälkikäsittelyn API-muutoksia (minor)

ml.postprocessing on uusi tässä julkaisussa, ja sen API muuttui sen aikana: yolo_v2_postprocess-konstruktorin avainsana score_threshold nimettiin uudelleen muotoon threshold, ja tyhjät jälkikäsittelytulokset palauttavat nyt () arvon [] sijaan. Mukana toimitettu malli yolov5_rgb_person nimettiin uudelleen muotoon yolo_v5_224_nano. ml.apps.MicroSpeech välittää nyt mielivaltaiset **kwargs-argumentit funktiolle audio.init() kiinteän gain_db=24-arvon sijaan.

Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c

AGAST on oletusarvoinen kulmantunnistin (behavior)

find_keypoints() käyttää nyt AGAST-algoritmia FAST:n sijaan oletusarvoisena kulmantunnistimena kaikilla korteilla. Avainpistejoukot (ja siten kuvaajavastaavuudet) eroavat aiemmista julkaisuista — tarkista viritetyt avainpisteputket uudelleen. IDE:n kehyspuskurin suoratoisto on myös nyt rajoitettu 20 Hz:iin USB-kuorman vähentämiseksi.

Commits: da6bf6910, bc4e39246

Käynnistyslatain, poistetut kortit ja ominaisuudet (tooling)

Vanha CDC-käynnistyslatain korvattiin uudella TinyUSB-pohjaisella standardi-DFU-käynnistyslataimella kaikilla korteilla — laiteohjelmiston päivitysmekanismi muuttui; päivitä flashaustyönkulkusi/työkalusi sen mukaisesti. OpenMV Pro -kortti, erillinen Raspberry Pi Pico -käännös sekä WiFi-virheenkorjauksen (wifidbg) etä-IDE-ominaisuus poistettiin.

Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2

Siirtymän tarkistuslista

Puhtaaseen siirtymiseen versioon v4.6.0 tyypillinen työ on:

  1. Skaalaa jokainen piirtämisen/päällyksen alpha-arvo alueelta 0–256 alueelle 0–255 (alpha-alueen muutos).

  2. Nimeä kaikki FLIR Lepton -ioctl-vakiot lyhennettyihin muotoihinsa (Lepton-ioctl-uudelleennimeäminen).

  3. Jos käytit uusia ML-jälkikäsittelijöitä, vaihda score_threshold arvoon threshold, käsittele () -tyhjä tulos ja päivitä yolo_v5_224_nano -mallin nimi (ML-muutokset).

  4. Tarkista find_keypoints()-pohjaiset putket uudelleen AGAST-tunnistimen muutoksen vuoksi (kulmantunnistimen muutos).

  5. Päivitä laiteohjelmiston flashaustyönkulkusi uudelle DFU-käynnistyslataimelle (käynnistyslataimen/korttien muutokset).