v3.6.1¶
v3.6.1 je veliko izdanje. Uvodi modul imu (LSM6DS3), niz novih getter API-ja za sensor s automatskom rotacijom vođenom IMU-om, korekciju perspektive u 4 točke pomoću rotation_corr() te omogućuje rad Arduino Portenta H7 s kamerama HIMAX HM01B0 i OV7690. Promijenjeno je nekoliko sensor / image API-ja, a TensorFlow je uklonjen na M7 — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Najvažnije¶
imumodul — akcelerometar / žiroskop / temperatura / valjanje / nagib na LSM6DS3 (OpenMV 4 / Portenta).Sensor getteri + automatska rotacija —
get_pixformat()/get_framesize()/get_hmirror()/get_vflip()/get_windowing(),set_transpose()/set_auto_rotation()i rotacija snimke vođena IMU-om.Korekcija perspektive —
rotation_corr()dobiva ključne riječifovicorners(4 točke).Novi hardver — Arduino Portenta H7, HIMAX HM01B0 i kamera OV7690.
Narušava kompatibilnost:
set_pixformat()/set_framesize()sada vraćajuNone,sensor.set_framerate()je uklonjen, TensorFlow je uklonjen na M7, alens_corr()/linpolar()sada zahtijevaju parne dimenzije — pogledajte promjene koje narušavaju kompatibilnost.
Nove značajke¶
imu— novi IMU modul:imu.acceleration_mg(),imu.angular_rate_mdps(),imu.temperature_c(),imu.roll(),imu.pitch()iimu.sleep()(LSM6DS3 na OpenMV 4 / Portenta).Sensor getteri — dodani
sensor.get_pixformat(),get_framesize(),get_hmirror(),get_vflip(),get_windowing(),set_transpose()/get_transpose()iset_auto_rotation()/get_auto_rotation().Automatska rotacija —
sensor.snapshot()koristi IMU za zrcaljenje / okretanje / transponiranje sličica kada je automatska rotacija omogućena.rotation_corr()— dodane ključne riječifovicorners(perspektiva u 4 točke), s primjerima korekcije perspektive.lcd.init()— dodan ključni argumentbgr.collections.deque— omogućen u MicroPython buildu.Dodane su id konstante
sensor.OV7690isensor.HM01B0te primjer filtriranja slike sličan numpy-u pomoćuulab.
Ostale promjene i poboljšanja¶
Znatno su optimizirani filtri slike (median / mode / mean / …) te
find_circles()i korekcija leće;alloc_extra_fbsada može alocirati bilo koji broj bajtova; model za detekciju osoba ponovno je izgrađen s novom average-pool operacijom.
Ispravci grešaka¶
Kamera i senzori:
Ispravljen je OV2640
sleep()(sada koristi COM2 standby registar umjesto power-down pina), konfiguracija FSYNC pina, polaritet HM01B0 HSYNC/VSYNC i I2C adresa/skeniranje, GPIO za isključivanje napajanja Portenta senzora i reset pin kamere te je onemogućena automatska rotacija kada je nagib IMU-a blizu 90°/270°.
Obrada slike i sustav:
Ispravljena je greška u provjeri granica filtra slike, hardfault pri onemogućavanju D-cachea, pokretanje na pločama bez SD kartice, greška
load_to_fbutf.load(), preljev stoga pri detekciji osoba (H7 stog povećan na ≥12 KB) te pomaci USB deskriptora za high-speed način rada na OpenMV 4 Plus.
Hardver i podrška za ploče¶
Arduino Portenta H7 — početno osposobljavanje ploče (STM32H747 clock/OSC/HSE konfiguracija, CMSIS zaglavlja, ADC, SDRAM, Arduino USB PID).
HIMAX HM01B0 — novi upravljački program za monokromnu kameru (Bayer, vanjski oscilatorski takt).
OV7690 — novi upravljački program za kameru.
LSM6DS3 IMU — OpenMV 4 / Portenta.
Promjene API-ja koje narušavaju kompatibilnost¶
Promjene API-ja vidljive korisniku između v3.6.0 i v3.6.1. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka je promjena označena svojim utjecajem:
minor — uski API; utječe samo na skripte koje su ga koristile.
behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.
Promjene su grupirane prema utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kôd, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu.
sensor.set_framerate() uklonjen (minor)¶
Uklonjen je no-op stub sensor.set_framerate(); njegovo pozivanje sada izaziva AttributeError. Uklonite poziv i upravljajte vremenom sličica putem framesize/ekspozicije. (Funkcionalni set_framerate() ponovno je uveden u v4.0.2.)
Commiti: 705e98f91
TensorFlow uklonjen na OpenMV Cam M7 (minor)¶
TensorFlow (modul tf) je onemogućen na OpenMV Cam M7 / OpenMV 3 (više ne stane). import tf na M7 ne uspijeva — koristite kameru klase H7 za TensorFlow. (tf je ponovno omogućen na F7 u v3.6.3.)
Commiti: 2ae875077
set_pixformat() / set_framesize() vraćaju None (behavior)¶
sensor.set_pixformat() i sensor.set_framesize() sada vraćaju None umjesto True, a nepodržani format piksela sada izaziva ValueError umjesto tvrdnje (assertion). Kôd koji je provjeravao povratnu vrijednost (npr. if sensor.set_pixformat(...):) to više ne smije raditi, a kôd koji je hvatao AssertionError za nepodržane formate mora hvatati ValueError.
Commiti: f314ac4e7
lens_corr() / linpolar() / logpolar() zahtijevaju parne dimenzije (behavior)¶
image.lens_corr() i image.linpolar() / image.logpolar() sada zahtijevaju parnu širinu i visinu slike te izazivaju grešku kod neparnih dimenzija. Izrežite ili promijenite veličinu slike na parne dimenzije prije pozivanja ovih metoda.
Kontrolni popis za migraciju¶
Za čist prijenos na v3.6.1 tipičan posao je:
Uklonite pozive
sensor.set_framerate()(uklanjanje set_framerate).Premjestite TensorFlow opterećenja s OpenMV Cam M7 (promjena TensorFlowa na M7).
Prestanite se oslanjati na povratnu vrijednost
set_pixformat()/set_framesize()i hvatajteValueErrorza nepodržane formate piksela (promjena povratne vrijednosti).Osigurajte parne dimenzije slike prije
lens_corr()/linpolar()/logpolar()(zahtjev za parnim dimenzijama).
Sve ostale skripte rade nepromijenjeno.