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.