v4.5.3

v4.5.3 on laaja julkaisu: OV5640-autotarkennus, reunanpehmennetty viivanpiirto, viralliseen koodikantaan tuotu laitteistopohjainen JPEG-dekooderi, merkittäviä i.MX RT (RT1060) -ominaisuusparannuksia ja laaja joukko kamera-/ISP-korjauksia. Useita harvoin käytettyjä kuvametodeja poistettiin ja joitakin ISP-/näyttö-API:ja muutettiin — lue alla olevat rikkovat muutokset.

Kohokohdat

  • OV5640-autotarkennus — käytössä OpenMV 4- / 4 Plus- / RT1060-laitteissa (sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), esimerkin kera.

  • Reunanpehmennetty draw_line() ja viralliseen koodikantaan tuotu STM32:n laitteistopohjainen JPEG-dekooderi (nopeampi JPEG-purku).

  • OpenMV RT1060 sai ulabin, ISP-operaatiot, set_framerate()- / set_frame_callback()-metodit, paljon suuremman kehyspuskurin ja CAN-ajurin.

  • Rikkova: Image.div() / cartoon() / mul() poistettiin ja joitakin ISP-/näyttö-API:ja muutettiin — katso rikkovat muutokset.

Uudet ominaisuudet

  • OV5640-autotarkennus — autotarkennuslaiteohjelmisto on käytössä OPENMV4-, OPENMV4P- ja OPENMV RT1060 -laitteissa; laukaise se komennolla sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). Lisättiin uusi 07-Sensor-Control/autofocus.py-esimerkki.

  • Reunanpehmennetty viivanpiirtodraw_line() sai reunanpehmennyksen.

  • Mukautetut SPI-näyttöohjaimetSPIDisplay hyväksyy nyt controller=-avainsanan ja tarjoaa bus_write-koukun mukautettuja alustus-/komentosekvenssejä varten.

  • Image.ccm()-parannus — hyväksyy nyt sisäkkäiset 3x3- / 4x3- / 3x4- / 4x4-matriisit ja ulab-taulukot (valinnaisen kanavakohtaisen offset-rivin kera); lisättiin värinkorjausesimerkki.

  • i.MX RT JPEG -kuvaussensor.JPEG-kuvaus Arduino Portenta-/Nicla Vision-/Giga-laitteilla sekä set_framerate() ja set_frame_callback() mimxrt-portissa.

  • TFLite-mallin validointi — mallit sisältävät nyt operaattorijärjestyksen hajautusarvon ja operaattorijoukon koon.

  • WiFi — lisättiin CYW43-turvatilavakiot; uudet i.MX RT -korttiohjauksen esimerkkiskriptit (Pin/ADC/CAN/I2C/PWM/SPI/UART/…).

Muut muutokset ja parannukset

  • MicroPython päivitettiin versioon 1.22; CMSIS päivitettiin versioon 5.9.0.

  • Viralliseen koodikantaan tuotu STM32:n laitteistopohjainen JPEG-dekooderi — nopeampi JPEG-purku sirulla olevalla koodekilla.

  • Optimoitiin Image.invert() / negate() sekä binääri-/matematiikkakuvaoperaatiot (CMSIS-intrinsikat).

  • rpc- ja vl53l1x-kirjastoista tehtiin siirrettäviä (käyttävät machine- / time-moduuleja pyb:n sijaan), joten ne toimivat myös muissa kuin STM32-porteissa.

  • DMA-kiihdytetty kehyspuskurin memcpy OpenMV H7- / H7 Plus- / Pro- / Pure Thermal- ja Arduino Giga- / Nicla Vision- / Portenta H7 -laitteilla; STM32 skannaa nyt I2C-laitteet kerran skannausta kohti nopeampaa käynnistystä varten.

Virhekorjaukset

Kamera ja sensorit:

  • Korjattiin STM32-kameran XCLK todelliseksi 50 %:n pulssisuhteeksi sekä virhe, kun kameran kellotaajuudeksi asetetaan nolla; korjattiin Bayer-rajaus+transponointi, YUV422-värisiirtymä ja set_windowing() mimxrt-portissa.

  • Korjattiin GC2145:n siru-ID-tunnistus sekä hmirror/vflip kierretyissä asennuksissa; korjattiin PAJ6100 RT1062:lla ja PixArt PAJ7620/PAW3902 -SPI-puskurin ylivuoto.

Kuvankäsittely:

  • Korjattiin find_rects()-roi-rajaus, morph()-murto-osa-offsetin katkaisu, image.gamma()-kontrastin/kirkkauden oletukset, get_threshold()-A/B-offsetit RGB565:ssä ja JPEG-purku mitoille, jotka eivät ole 8:n kerrannaisia.

Järjestelmä ja kirjastot:

  • machine.LED.value() ilman argumenttia palauttaa nyt LEDin tilan sen tyhjentämisen sijaan; korjattiin SPI SSEL -deinit jaetulla väylällä, machine.deepsleep() RT1062:lla, TF-kaatuminen puuttuvilla operaattoreilla sekä WINC1500/ninaw10 NIC:n automaattinen aktivointi connect()-kutsulla.

Laitteisto- ja korttituki

  • OpenMV RT1060 — ulab ja ISP-operaatiot käytössä, suurempi kehyspuskuri (10M→20M) / fb_alloc (2M→11M), CAN-ajuri palautettu, enemmän kekoa.

  • Arduino GIGA — GC2145-kameratuki, GC2145/OV5640-automaattitunnistuksella (ne jakavat I2C-osoitteen).

  • i.MX RTsensor.JPEG-kuvaustuki.

Rikkovat API-muutokset

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

Jokainen muutos on merkitty vaikutuksellaan:

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

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

Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, hyppää lopussa olevaan siirtymistarkistuslistaan. Jokainen commit-tiiviste linkittää muutoksen erotteluun GitHubissa.

Poistetut kuvametodit (minor)

Image.div(), Image.cartoon() (ja sen esimerkki) sekä Image.mul() poistettiin.

Commitit: 7c932602e, 055a468b8, 4fe7fb63b

Näyttömoduulin API (minor)

Vanha udisplay-moduulinimen varatie poistettiin — moduuli on rekisteröity vain nimellä display. Vain DSI:lle tarkoitetut dsi_write() / dsi_read() -metodit korvattiin bus_write() / bus_read() -metodeilla, jotka ovat nyt käytettävissä kaikilla näyttöohjaimilla.

Commitit: 7df6694c3, 7d1f378a0

MQTT- ja tf.regression-API-muutokset (minor)

mqtt-kirjaston MQTTClient uudistettiin: port on nyt pakollinen, lisättiin uudet ssl_params / callback -konstruktoriavainsanat sekä timeout-argumentti connect()-metodiin, vanhat ssl= / port=0 -oletukset poistettiin, ja check_msg() ei nyt enää estä suoritusta. tf.regression() kirjoitettiin uudelleen — sen allekirjoitus on nyt regression(model, array) ja se käsittelee 1D-/2D-/3D- ja kvantisoituja (int8) malleja.

Commitit: d12874c63, c5ec576c1

ISP-/sensorikäyttäytymismuutokset (behavior)

Image.awb() uudistettiin — gray-world (oletus) vs. white-patch (max=True) on nyt selkeästi eroteltu, ja max-argumentti sekä Image.gamma():n gamma / contrast / brightness -argumentit ovat nyt vain avainsanoina annettavia (positionaaliset kutsut on päivitettävä). Kuvan transponointi on nyt poistettu käytöstä YUV422:lle (se tuotti aiemmin virheellistä tulostetta) ja YUV422-värisiirtymä korjattiin vastaamaan Bayeria. STM32:n JPEG-polku antaa nyt virheen JPEG-geometrian ristiriidasta vioittuneen kuvan tuottamisen sijaan, ja WiFi-AP-tila ottaa nyt käyttöön oletusturvatilan STM32- ja i.MX RT -porteissa.

Commitit: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af

Siirtymistarkistuslista

Siisti siirtyminen versioon v4.5.3 sisältää tyypillisesti seuraavan työn:

  1. Lopeta Image.div() / cartoon() / mul() -metodien käyttö (poistetut metodit).

  2. Tuo näyttömoduuli nimellä display ja vaihda dsi_write/dsi_read muotoon bus_write/bus_read (näytön API-muutos).

  3. Päivitä MQTTClient-konstruointi (port on pakollinen; ssl_params/callback) ja kaikki tf.regression()-kutsut (kirjastojen API-muutokset).

  4. Anna awb()-metodin max ja gamma()-metodin gamma/contrast/brightness avainsana-argumentteina ja tarkista uudelleen YUV422-/transponointi- ja AP-tilan turvaoletukset (ISP-/sensorimuutokset).