v3.0.0¶
v3.0.0 je glavno izdanje v2 → v3. Uvodi OpenMV Cam M7 (STM32F7) i novi nn CMSIS-NN modul neuronske mreže (koji zamjenjuje stare čvrsto kodirane metode find_number() / classify_object()), dodaje podršku za senzore MT9V034 s globalnim zatvaračem i FLIR Lepton, framesize-ove sensor.WVGA te ažurira jezgru na MicroPython 1.9.4. Promijenilo se nekoliko ponašanja image / sensor / WiFi — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Istaknuto¶
OpenMV Cam M7 — nova STM32F7 ploča.
nnmodul — CMSIS-NN zaključivanje:nn.load(),Net.forward(),Net.search(), s pretvaračem modela i primjerima.Novi senzori — MT9V034 s globalnim zatvaračem (okidan FSIN-om) i FLIR Lepton.
Ažuriranje jezgre na MicroPython 1.9.4.
Narušava kompatibilnost: uklonjene su čvrsto kodirane metode
image.find_number()/image.classify_object(),sensor.sleep()sada izaziva iznimku, WINC utičnice vraćaju stvaran broj bajtova,image.binary()vraća novu sliku, afind_apriltags()je ograničen na 64K piksela — pogledajte promjene koje narušavaju kompatibilnost.
Nove značajke¶
nn— novi CMSIS-NN modul neuronske mreže:nn.load(path),Net.forward(img, roi=, softmax=, dry_run=)(vraća float vrijednosti 0.0–1.0),Net.search()za detekciju na više mjerila/položaja teNet.test(), plus CMSIS-NN pretvarač modela (nn_convert.py/nn_quantizer.py), priloženi modeli CIFAR-10 / LeNet / smile te primjeri skripti NN i NN-search.Senzori — podrška za MT9V034 s globalnim zatvaračem (snimka okidana FSIN-om) na OpenMV 4, ažurirani upravljački program za FLIR Lepton s Lepton snimkom te novi framesize-ovi
sensor.WVGA(720x480) /sensor.WVGA2(752x480).Obrada slike —
image.find_circles()dobio je ključne riječir_min/r_max/r_step(brži Hough),find_keypoints()i Haarfind_features()sada prihvaćaju RGB slike, aimage.compress()/ JPEG kodiranje sada podržavaju binarne (bitmap) slike.Pokretanje —
boot.pysada se izvodi prije inicijalizacije USB-a tako da može nadjačati USB način rada (npr. HID).Primjeri — dodani primjeri AprilTag-a malih/visokih razlučivosti, primjer I2C LIDAR-Lite V3 te alati za skup podataka (
augment_images.py/make_patches.py).
Ostale promjene i poboljšanja¶
Priloženi MicroPython ažuriran je na 1.9.4 (s vraćanjem pyexec parse/compile/exec i ispravkom PendSV-a); jasnije poruke o pogreškama nedostatka memorije za
fb_alloc/xalloc; potisnut printf šum modulanntijekom učitavanja mreže; reorganiziran repozitorij (primjeri →scripts/, alati →tools/, Haar kaskade →ml/). Modulnnnije dostupan na OpenMV 2 (nedovoljno flash memorije).
Ispravci grešaka¶
Obrada slike:
Ispravljeno
fast_atan2fza x≤0 (prethodno uvijek 0 — ponovno provjerite kutove mrlja / linija / ključnih točaka), upravljanje memorijom ufind_apriltags()(izgubljeni sadržaj i loš realloc pri OOM-u), pokazivači redaka po bpp za binary/bitmap (oštećeni binarni rezultati),find_edges(EDGE_CANNY)s ROI-jem, makroTO_GS_PIXEL(integral / morph), bitmap/JPEG strujanje za sličice u sivim tonovima (bpp==0),pop_frontliste ključnih točaka/mrlja te rezultatimatch_descriptor.
Sustav i kamera:
Ispravljeni brojevi USB HID sučelja/krajnje točke, dinamička promjena frekvencije XCLK tijekom izvođenja,
Net.forward()koji vraća točan broj izlaza te hardfault pri prekidanju parsiranja skripte.
Podrška za hardver i ploče¶
OpenMV Cam M7 (STM32F7) — nova ploča.
Senzor s globalnim zatvaračem MT9V034 (OpenMV 4, okidan FSIN-om).
FLIR Lepton — ažurirani upravljački program s podrškom za snimku.
Promjene API-ja koje narušavaju kompatibilnost¶
Promjene API-ja vidljive korisniku između v2.9.0 i v3.0.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka promjena označena je svojim utjecajem:
velika — utječe na većinu skripti koje su koristile značajku; morat ćete prilagoditi kôd.
manja — uzak API; utječe samo na skripte koje su ga koristile.
ponašanje — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.
Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prilagoditi svoj kôd, prijeđite na popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu.
image.find_number() / image.classify_object() uklonjeni (velika)¶
Čvrsto kodirane metode image.find_number() (LeNet) i image.classify_object() (CMSIS CNN) uklonjene su u korist novog modula nn. Zamijenite ih s net = nn.load('/model.network'); out = net.forward(img).
Commiti: d151f7e38
sensor.sleep() / sensor.reset() izazivaju iznimku pri neuspjehu (manja)¶
sensor.sleep() i sensor.reset() sada izazivaju iznimku pri neuspjehu umjesto da vraćaju True / False. Kôd koji je provjeravao logičku povratnu vrijednost sensor.sleep() mora umjesto toga omotati poziv u try / except.
Commiti: 7d16d008f
WINC utičnice vraćaju stvaran broj bajtova (ponašanje)¶
Metode WINC1500 utičnice send / recv / sendto / recvfrom prethodno su uvijek vraćale 0; sada vraćaju stvaran broj prenesenih bajtova. Kôd koji je pretpostavljao povratnu vrijednost 0 (ili se na njoj vrtio/blokirao) mora obraditi stvarne brojeve.
Commiti: a07fb2f60
image.binary() vraća novu sliku (ponašanje)¶
image.binary() dobio je ključne riječi to_bitmap / copy i sada vraća novi objekt slike umjesto da vraća/mijenja izvornu sliku na mjestu. Kôd koji se oslanjao na to da binary() mijenja izvornu sliku trebao bi koristiti vraćeni objekt (i proslijediti copy=True za ponašanje koje nije na mjestu).
Commiti: 8a44f0cd9
Popis za migraciju¶
Za čistu prilagodbu na v3.0.0 tipičan posao je:
Zamijenite
image.find_number()/image.classify_object()modulomnn(migracija na nn).Omotajte
sensor.sleep()/sensor.reset()utry/exceptumjesto provjeravanja logičke povratne vrijednosti (promjena sensor.sleep).Obradite stvarne brojeve bajtova iz WINC utičnica
send/recv(promjena WINC utičnice).Koristite sliku koju vraća
image.binary()umjesto očekivanja izmjene na mjestu (promjena binary).Smanjite slike prije
find_apriltags()kako biste ostali ispod 64K piksela (ograničenje find_apriltags).
Sve ostale skripte rade nepromijenjeno.