v3.9.0¶
v3.9.0 je velika verzija. Dodaje nRF port s Arduino Nano 33 BLE Sense (kamera, PDM audio modul, ulab, zamrznuti upravljački programi senzora), donosi FLIR Lepton te MLX90641 / MLX90621 toplinske senzore i temeljito preuređeni fir modul, OV5640 autofokus ioctl-ove te novi streaming tip image.ImageIO. Naslijeđeni CMSIS-NN nn modul i stare klase ImageReader / ImageWriter su uklonjene — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Istaknuto¶
Arduino Nano 33 BLE Sense — novi nRF52840 port s kamerom, PDM
audiomodulom,ulabi zamrznutim upravljačkim programima senzora.Toplinski — podrška za FLIR Lepton, MLX90641 i MLX90621 uz preuređeni
firmodul (palete, zrcaljenje, skaliranje, radiometrija, FFC).OV5640 autofokus — novi
sensor.IOCTL_*_AUTO_FOCUSioctl-ovi.image.ImageIO— jedinstveni tip toka slike (memorija ili datoteka; read/write/seek/size/close) koji zamjenjujeImageReader/ImageWriter.Narušava kompatibilnost: CMSIS-NN
nnmodul iimage.ImageReader/image.ImageWritersu uklonjeni, a ponašanjefind_lines()/firse promijenilo — vidi promjene koje narušavaju kompatibilnost.
Nove značajke¶
nRF port / Arduino Nano 33 BLE Sense — novi nRF52840 port i podrška za ploču, uz novi
audiomodul (audio.init(),audio.start_streaming(),audio.stop_streaming()), omogućenulabte zamrznuteapds9960/lps22h/lsm9ds1/hts221upravljačke programe senzora.image.ImageIO— novi tip toka slike koji podržava i memorijske i datotečne tokove uzread()/write()/seek()/size()/close(), plus primjeri ImageIO read/write/memory.FLIR Lepton — dodana podrška za
FIR_LEPTONuzfir.radiometric(),fir.trigger_ffc()ifir.register_vsync_cb().Toplinski senzori — dodana podrška za MLX90641 (
FIR_MLX90641) i MLX90621 termopil (službeni Melexis upravljački programi).firpalete / orijentacija — dodane konstantefir.PALETTE_RAINBOW/PALETTE_IRONBOW/GRAYSCALE/RGB565, afir.read_ir()sada prihvaćahmirror/vflip/transpose.OV5640 autofokus — dodani
sensor.IOCTL_TRIGGER_AUTO_FOCUS/IOCTL_PAUSE_AUTO_FOCUS/IOCTL_RESET_AUTO_FOCUS/IOCTL_WAIT_ON_AUTO_FOCUS(OpenMV 2/3/4/4 Plus/PT/Portenta).Reorganizirani Arduino primjeri u direktorije po pločama.
Ostale promjene i poboljšanja¶
Prelazak na komprimirane MicroPython poruke o greškama (kraći nizovi iznimki); argument
typefunkcijefir.init()sada se automatski detektira putem skeniranja I2C sabirnice kada se izostavi; iznimkaxallocsada javlja broj traženih bajtova; UART 8 je omogućen na Portenti; FIR primjeri konsolidirani su uthermal_camera.py/thermal_overlay.py/thermal_overlay_lcd.py. Kako bi stali u flash memoriju,image.get_similarity()i selektivno pretraživanje onemogućeni su u OpenMV 4 verziji, a biblioteka slike sada se može graditi bez datotečnog sustava (za ploče bez datotečnog sustava).
Ispravci grešaka¶
Kamera i senzori:
Ispravljen izračun OV5640 PCLK-a, dodani nedostajući I2C IRQ rukovatelji (ispravljanje zastoja I2C prijenosa), preuređen cambus I2C read/write radi pouzdanosti, učinjena Lepton I2C sabirnica odabirljivom, premješteni cambus pinovi za oporavak sabirnice u konfiguraciju po pločama, ponovni pokušaj cambus skeniranja jednom prije neuspjeha te osposobljen OpenMV PT (Lepton + kamera na dijeljenom I2C-u).
Toplinski:
Ispravljen izračun maksimalne vrijednosti u
firget_ir()/draw_ir()iimage.get_similarity()(FLT_MIN→-FLT_MAX), AMG8833 12→16-bitno rukovanje te točnost MLX90621 (službeni Melexis upravljački program).
Prikaz, audio i sustav:
Premješteni STM32 SPI LCD prijenosi na HAL SPI povratne pozive (pouzdanost prikaza), ispravljen Nano 33
audio.init()(HF oscilator + PDM omjer kako bi mikrofon radio), stanje H7 mjerača vremena uz novi HAL, nRFgc_collectte rana inicijalizacija/deinicijalizacija ploče, te zaustavljen ispis lažne poruke „uh oh, no preference for overlapping detection” tijekomfind_apriltags()/find_rects().
Hardver i podrška za ploče¶
Arduino Nano 33 BLE Sense — nova nRF52840 ploča (kamera, PDM audio,
ulab, zamrznuti upravljački programi senzora).FLIR Lepton, MLX90641 i MLX90621 toplinski senzori.
OV5640 autofokus — OpenMV 2/3/4/4 Plus/PT/Portenta.
Portenta — omogućen UART 8.
Promjene API-ja koje narušavaju kompatibilnost¶
Korisniku vidljive promjene API-ja koje narušavaju kompatibilnost između v3.8.0 i v3.9.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka je promjena označena svojim utjecajem:
major — utječe na većinu skripti koje su koristile značajku; morat ćete prilagoditi kod.
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 po utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kod, skočite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na njegov diff na GitHubu.
CMSIS-NN nn modul uklonjen (major)¶
CMSIS-NN nn modul je uklonjen, uključujući nn.load(), net.forward(), net.search() i nn_class pomoćnik. Zaključivanje modela seli se na TensorFlow Lite (tf) modul. Skripte koje su učitavale .network modele s nn moraju se prilagoditi na tf s TensorFlow Lite modelom.
Commits: fbc767b36
ImageReader / ImageWriter zamijenjeni s image.ImageIO (major)¶
image.ImageReader / image.ImageWriter i njihove metode next_frame() / add_frame() uklonjeni su i zamijenjeni novim tipom image.ImageIO, koji podržava i memorijske i datotečne tokove putem read() / write() / seek() / size() / close(). Kod koji koristi stare reader/writer klase mora se prilagoditi na image.ImageIO (vidi preimenovane primjere imageio_read.py / imageio_write.py).
Commits: 783a78754
Ključna riječ scale u fir.draw_ir() uklonjena (minor)¶
fir.draw_ir() je prepisana na temelju novog cjevovoda za crtanje slike. Ključna riječ scale=(min, max) je uklonjena, a dodani su hint, x_scale, y_scale, roi te pozicijski x/y argumenti pomaka. Skripte koje su prosljeđivale scale=(min, max) funkciji fir.draw_ir() moraju to ukloniti i koristiti nove argumente.
Commits: 0a29103b1
Aproksimacija find_lines() (behavior)¶
image.find_lines() sada aproksimira magnitudu gradijenta kao (abs(gx) + abs(gy)) / 2 i preskače magnitude ispod 126. Ovo je brže, ali mijenja skup detektiranih linija i vrijednosti akumulatora, pa ponovno provjerite i ponovno ugodite threshold / theta_margin / rho_margin.
Commits: 902ae3c98
fir.snapshot() preuređena (behavior)¶
fir.snapshot() je značajno preuređena s novim API-jem ključnih riječi (hmirror, vflip, transpose, x_scale, y_scale, x_size, y_size, scale, rgb_channel, alpha, color_palette, hint, pixformat, copy_to_fb), a priloženi primjeri su prepisani. Prethodno ponašanje samo s pozicijskim/pixformat argumentom se promijenilo; prilagodite FIR skripte na novi oblik s ključnim riječima (vidi ažurirane primjere za thermopile-shield).
Commits: 53f2248b8
fir.init() izaziva iznimku pri neuspjehu (behavior)¶
fir.init() sada izaziva iznimku (i čisto se deinicijalizira) kada toplinski senzor nije otkriven, umjesto tihog nastavka rada. Omotajte fir.init() u try / except (ili osigurajte da je senzor spojen) gdje ste se prije oslanjali na to da ne izaziva iznimku.
Commits: 4b2f972f3
Kontrolni popis za migraciju¶
Za čistu prilagodbu na v3.9.0 uobičajeni posao je:
Prilagodite zaključivanje CMSIS-NN
nnmodela na TensorFlow Litetfmodul (uklanjanje nn-a).Zamijenite
image.ImageReader/image.ImageWritersimage.ImageIO(ImageIO promjena).Uklonite ključnu riječ
scale=(min, max)izfir.draw_ir()i koristite nove argumente (draw_ir promjena).Ponovno ugodite parametre
find_lines()u odnosu na aproksimativnu metriku magnitude (find_lines promjena).Prilagodite FIR skripte na novi API ključnih riječi
fir.snapshot()(fir.snapshot promjena) i rukujte time dafir.init()izaziva iznimku pri nedostajućem senzoru (fir.init promjena).
Sve ostale skripte rade nepromijenjene.