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 kierto —
get_pixformat()/get_framesize()/get_hmirror()/get_vflip()/get_windowing(),set_transpose()/set_auto_rotation()sekä IMU-ohjattu tilannekuvan kierto.Perspektiivikorjaus —
rotation_corr()saafov- jacorners-avainsanat (4-pisteinen).Uusi laitteisto — Arduino Portenta H7, HIMAX HM01B0 ja OV7690-kamera.
Rikkova:
set_pixformat()/set_framesize()palauttavat nytNone,sensor.set_framerate()poistettiin, TensorFlow poistettiin M7:stä, jalens_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()jaimu.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 kierto —
sensor.snapshot()käyttää IMU:ta kehysten kääntämiseen / peilaamiseen / transponointiin, kun automaattinen kierto on käytössä.rotation_corr()— lisättiinfov- jacorners-avainsanat (4-pisteinen perspektiivi) sekä perspektiivikorjauksen esimerkit.lcd.init()— lisättiinbgr-avainsana-argumentti.collections.deque— otettiin käyttöön MicroPython-käännöksessä.Lisättiin
sensor.OV7690- jasensor.HM01B0-id-vakiot sekä numpy-tyylinenulab-kuvasuodatinesimerkki.
Muut muutokset ja parannukset#
Kuvasuodattimia (mediaani / moodi / keskiarvo / …) sekä
find_circles()-toimintoa ja linssikorjausta optimoitiin merkittävästi;alloc_extra_fbvoi 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():nload_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.
Siirtymistarkistuslista#
Puhdas siirtyminen versioon v3.6.1 vaatii tyypillisesti seuraavat työt:
Poista
sensor.set_framerate()-kutsut (set_framerate-poisto).Siirrä TensorFlow-työkuormat pois OpenMV Cam M7:stä (M7:n TensorFlow-muutos).
Lopeta
set_pixformat()/set_framesize()-kutsujen paluuarvoon luottaminen ja nappaaValueErrortukemattomille pikseliformaateille (paluuarvon muutos).Varmista parilliset kuvamitat ennen
lens_corr()/linpolar()/logpolar()-kutsuja (parillisten mittojen vaatimus).
Kaikki muut skriptit toimivat muuttumattomina.