v3.6.1¶
A v3.6.1 egy nagy kiadás. Bevezeti az imu modult (LSM6DS3), egy sor új sensor getter API-t IMU-vezérelt automatikus elforgatással, a 4 pontos perspektivikus rotation_corr() korrekciót, valamint elindítja az Arduino Portenta H7 támogatását a HIMAX HM01B0 és OV7690 kamerákkal. Több sensor / image API megváltozott, és a TensorFlow támogatása megszűnt az M7-en — olvasd el az alábbi visszafelé nem kompatibilis változásokat.
Kiemelések¶
imumodul — gyorsulásmérő / giroszkóp / hőmérséklet / dőlés / bólintás az LSM6DS3-on (OpenMV 4 / Portenta).Sensor getterek + automatikus elforgatás —
get_pixformat()/get_framesize()/get_hmirror()/get_vflip()/get_windowing(),set_transpose()/set_auto_rotation(), valamint IMU-vezérelt pillanatkép-elforgatás.Perspektivikus korrekció — a
rotation_corr()újfovéscorners(4 pontos) kulcsszavakat kap.Új hardver — Arduino Portenta H7, HIMAX HM01B0 és OV7690 kamera.
Visszafelé nem kompatibilis: a
set_pixformat()/set_framesize()mostantólNoneértéket ad vissza, asensor.set_framerate()eltávolításra került, a TensorFlow támogatása megszűnt az M7-en, alens_corr()/linpolar()pedig mostantól páros méreteket igényel — lásd a visszafelé nem kompatibilis változásokat.
Új funkciók¶
imu— új IMU modul:imu.acceleration_mg(),imu.angular_rate_mdps(),imu.temperature_c(),imu.roll(),imu.pitch()ésimu.sleep()(LSM6DS3 az OpenMV 4 / Portenta eszközökön).Sensor getterek — hozzáadva a
sensor.get_pixformat(),get_framesize(),get_hmirror(),get_vflip(),get_windowing(),set_transpose()/get_transpose()ésset_auto_rotation()/get_auto_rotation().Automatikus elforgatás — a
sensor.snapshot()az IMU segítségével tükrözi / forgatja / transzponálja a képkockákat, ha az automatikus elforgatás engedélyezve van.rotation_corr()— hozzáadva afovéscorners(4 pontos perspektíva) kulcsszavak, perspektivikus korrekciós példákkal.lcd.init()— hozzáadva egybgrkulcsszó argumentum.collections.deque— engedélyezve a MicroPython buildben.Hozzáadva a
sensor.OV7690éssensor.HM01B0azonosító konstansok, valamint egy numpy-szerűulabképszűrő példa.
Egyéb változások és fejlesztések¶
Jelentősen optimalizálva lettek a képszűrők (medián / módusz / átlag / …), a
find_circles()és a lencsekorrekció; azalloc_extra_fbmostantól tetszőleges számú bájtot tud lefoglalni; a személyészlelő modell újraépült egy új average-pool művelettel.
Hibajavítások¶
Kamera és érzékelők:
Javítva az OV2640
sleep()(mostantól a COM2 standby regisztert használja a power-down láb helyett), az FSYNC láb konfigurációja, a HM01B0 HSYNC/VSYNC polaritásai és I2C címe/szkennelése, a Portenta érzékelő power-down GPIO-ja és a kamera reset lába, valamint letiltva az automatikus elforgatás, ha az IMU bólintása 90°/270° közelében van.
Képalkotás és rendszer:
Javítva egy képszűrő határellenőrzési hiba, egy hardfault a D-cache letiltásakor, az indítás SD-kártya nélküli kártyákon, egy
tf.load()load_to_fbhiba, a személyészlelés stack-túlcsordulása (a H7 stack ≥12 KB-ra emelve), valamint a USB-leírók eltolásai nagy sebességű módban az OpenMV 4 Plus eszközön.
Hardver- és kártyatámogatás¶
Arduino Portenta H7 — kezdeti kártya-bevezetés (STM32H747 órajel/OSC/HSE konfiguráció, CMSIS fejlécek, ADC, SDRAM, Arduino USB PID).
HIMAX HM01B0 — új monokróm kamera-illesztőprogram (Bayer, külső oszcillátoros órajel).
OV7690 — új kamera-illesztőprogram.
LSM6DS3 IMU — OpenMV 4 / Portenta.
Visszafelé nem kompatibilis API-változások¶
Felhasználó által észlelhető API-törések a v3.6.0 és a v3.6.1 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.
Minden változás meg van jelölve a hatásával:
minor — szűk API; csak az azt használó szkripteket érinti.
behavior — azonos API, eltérő eredmények; ellenőrizd újra a finomhangolt szkripteket.
A változások a hatásuk szerint vannak csoportosítva ebben a sorrendben. Ha csak portolni szeretnéd a kódodat, ugorj a migrációs ellenőrzőlistára a végén. Minden commit hash a GitHub-on lévő diffjére mutat.
sensor.set_framerate() eltávolítva (minor)¶
A no-op sensor.set_framerate() csonk eltávolításra került; mostantól meghívása AttributeError kivételt vált ki. Távolítsd el a hívást, és vezéreld a képkocka-időzítést helyette a framesize/expozíció révén. (Egy működő set_framerate() újra bevezetésre kerül a v4.0.2-ben.)
Commitok: 705e98f91
TensorFlow támogatása megszűnt az OpenMV Cam M7-en (minor)¶
A TensorFlow (a tf modul) le lett tiltva az OpenMV Cam M7 / OpenMV 3 eszközön (már nem fér el). Az import tf az M7-en sikertelen — használj H7-osztályú kamerát a TensorFlow-hoz. (A tf újra engedélyezésre kerül az F7-en a v3.6.3-ban.)
Commitok: 2ae875077
set_pixformat() / set_framesize() None értéket ad vissza (behavior)¶
A sensor.set_pixformat() és a sensor.set_framesize() mostantól None értéket ad vissza True helyett, egy nem támogatott képpontformátum pedig mostantól ValueError kivételt vált ki egy assertion helyett. Annak a kódnak, amely a visszatérési értéket ellenőrizte (pl. if sensor.set_pixformat(...):), fel kell hagynia ezzel, és annak a kódnak, amely AssertionError kivételt kapott el nem támogatott formátumoknál, mostantól ValueError kivételt kell elkapnia.
Commitok: f314ac4e7
lens_corr() / linpolar() / logpolar() páros méreteket igényel (behavior)¶
Az image.lens_corr() és az image.linpolar() / image.logpolar() mostantól páros képszélességet és -magasságot igényel, és páratlan méretek esetén hibát vált ki. Vágd vagy méretezd át a képet páros méretekre, mielőtt meghívnád ezeket a metódusokat.
Migrációs ellenőrzőlista¶
A v3.6.1-re való tiszta portoláshoz a tipikus teendők:
Távolítsd el a
sensor.set_framerate()hívásokat (a set_framerate eltávolítása).Helyezd át a TensorFlow munkaterheléseket az OpenMV Cam M7-ről (az M7 TensorFlow-változása).
Ne támaszkodj a
set_pixformat()/set_framesize()visszatérési értékére, és kapj elValueErrorkivételt a nem támogatott képpontformátumoknál (a visszatérési érték változása).Biztosíts páros képméreteket a
lens_corr()/linpolar()/logpolar()hívása előtt (a páros méret követelménye).
Minden más szkript változatlanul fut.