v3.6.1

v3.6.1 on suuri julkaisu. Se tuo mukanaan imu-moduulin (LSM6DS3), joukon uusia sensor-getter-rajapintoja, joissa on IMU-ohjattu automaattinen kierto, 4-pisteisen perspektiivin rotation_corr()-toiminnon sekä tuen Arduino Portenta H7 -laitteelle HIMAX HM01B0- ja OV7690-kameroiden kanssa. Useita sensor- / image-rajapintoja muutettiin ja TensorFlow poistettiin M7:stä — lue alla olevat rikkovat muutokset.

Kohokohdat

  • imu-moduuli — kiihtyvyysanturi / gyroskooppi / lämpötila / kallistus / nyökkäys LSM6DS3-piirissä (OpenMV 4 / Portenta).

  • Sensorin getterit + automaattinen kiertoget_pixformat() / get_framesize() / get_hmirror() / get_vflip() / get_windowing(), set_transpose() / set_auto_rotation() sekä IMU-ohjattu tilannekuvan kierto.

  • Perspektiivikorjausrotation_corr() saa fov- ja corners-avainsanat (4-pisteinen).

  • Uusi laitteisto — Arduino Portenta H7, HIMAX HM01B0 ja OV7690-kamera.

  • Rikkova: set_pixformat() / set_framesize() palauttavat nyt None, sensor.set_framerate() poistettiin, TensorFlow poistettiin M7:stä, ja lens_corr() / linpolar() vaativat nyt parilliset mitat — katso rikkovat muutokset.

Uudet ominaisuudet

  • imu — uusi IMU-moduuli: imu.acceleration_mg(), imu.angular_rate_mdps(), imu.temperature_c(), imu.roll(), imu.pitch() ja imu.sleep() (LSM6DS3 OpenMV 4:ssä / Portentassa).

  • Sensorin getterit — lisättiin sensor.get_pixformat(), get_framesize(), get_hmirror(), get_vflip(), get_windowing(), set_transpose() / get_transpose() sekä set_auto_rotation() / get_auto_rotation().

  • Automaattinen kiertosensor.snapshot() käyttää IMU:ta kehysten kääntämiseen / peilaamiseen / transponointiin, kun automaattinen kierto on käytössä.

  • rotation_corr() — lisättiin fov- ja corners-avainsanat (4-pisteinen perspektiivi) sekä perspektiivikorjauksen esimerkit.

  • lcd.init() — lisättiin bgr-avainsana-argumentti.

  • collections.deque — otettiin käyttöön MicroPython-käännöksessä.

  • Lisättiin sensor.OV7690- ja sensor.HM01B0-id-vakiot sekä numpy-tyylinen ulab-kuvasuodatinesimerkki.

Muut muutokset ja parannukset

  • Kuvasuodattimia (mediaani / moodi / keskiarvo / …) sekä find_circles()-toimintoa ja linssikorjausta optimoitiin merkittävästi; alloc_extra_fb voi nyt varata minkä tahansa määrän tavuja; henkilöntunnistusmalli rakennettiin uudelleen uudella average-pool-operaatiolla.

Virhekorjaukset

Kamera ja sensorit:

  • Korjattiin OV2640:n sleep() (käyttää nyt COM2-valmiustilarekisteriä virrankatkaisunastan sijaan), FSYNC-nastan konfigurointi, HM01B0:n HSYNC/VSYNC-polariteetit ja I2C-osoite/-skannaus, Portentan sensorin virrankatkaisu-GPIO ja kameran nollausnasta, sekä poistettiin automaattinen kierto käytöstä, kun IMU:n nyökkäys on lähellä 90°/270°.

Kuvankäsittely ja järjestelmä:

  • Korjattiin kuvasuodattimen rajantarkistusvirhe, hardfault D-välimuistia poistettaessa, käynnistyminen ilman SD-korttia olevilla korteilla, tf.load():n load_to_fb-virhe, henkilöntunnistuksen pinon ylivuoto (H7:n pino nostettiin ≥12 KB:hen) sekä USB-deskriptorien siirtymät OpenMV 4 Plus -laitteen suurnopeustilassa.

Laitteisto- ja korttituki

  • Arduino Portenta H7 — alustava kortin käyttöönotto (STM32H747:n kello/OSC/HSE-konfiguraatio, CMSIS-otsikot, ADC, SDRAM, Arduino-USB-PID).

  • HIMAX HM01B0 — uusi yksivärikameran ohjain (Bayer, ulkoinen oskillaattorikello).

  • OV7690 — uusi kameran ohjain.

  • LSM6DS3 IMU — OpenMV 4 / Portenta.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikkoukset v3.6.0:n ja v3.6.1:n 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 viritetyt skriptit uudelleen.

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

sensor.set_framerate() poistettu (minor)

Tyhjä sensor.set_framerate() -tynkä poistettiin; sen kutsuminen aiheuttaa nyt AttributeError-virheen. Poista kutsu ja hallitse kehysajoitusta framesize/exposure-arvojen kautta. (Toimiva set_framerate() palautetaan versiossa v4.0.2.)

Commitit: 705e98f91

TensorFlow poistettu OpenMV Cam M7:stä (minor)

TensorFlow (tf-moduuli) poistettiin käytöstä OpenMV Cam M7:ssä / OpenMV 3:ssa (se ei enää mahdu). import tf epäonnistuu M7:ssä — käytä H7-luokan kameraa TensorFlowiin. (tf otetaan uudelleen käyttöön F7:ssä versiossa v3.6.3.)

Commitit: 2ae875077

set_pixformat() / set_framesize() palauttavat None (behavior)

sensor.set_pixformat() ja sensor.set_framesize() palauttavat nyt None True:n sijaan, ja tukematon pikseliformaatti aiheuttaa nyt ValueError-virheen assertion sijaan. Koodin, joka tarkisti paluuarvon (esim. if sensor.set_pixformat(...):), on lopetettava tämä, ja koodin, joka nappasi AssertionError-virheen tukemattomille formaateille, on napattava ValueError.

Commitit: f314ac4e7

lens_corr() / linpolar() / logpolar() vaativat parilliset mitat (behavior)

image.lens_corr() ja image.linpolar() / image.logpolar() vaativat nyt parillisen kuvan leveyden ja korkeuden ja aiheuttavat virheen parittomilla mitoilla. Rajaa tai skaalaa kuva parillisiin mittoihin ennen näiden metodien kutsumista.

Commitit: b36460a36, 2b26ca17b

Siirtymistarkistuslista

Puhdas siirtyminen versioon v3.6.1 vaatii tyypillisesti seuraavat työt:

  1. Poista sensor.set_framerate() -kutsut (set_framerate-poisto).

  2. Siirrä TensorFlow-työkuormat pois OpenMV Cam M7:stä (M7:n TensorFlow-muutos).

  3. Lopeta set_pixformat() / set_framesize() -kutsujen paluuarvoon luottaminen ja nappaa ValueError tukemattomille pikseliformaateille (paluuarvon muutos).

  4. Varmista parilliset kuvamitat ennen lens_corr() / linpolar() / logpolar() -kutsuja (parillisten mittojen vaatimus).

Kaikki muut skriptit toimivat muuttumattomina.