v3.0.0¶
A v3.0.0 a fő v2 → v3 kiadás. Bevezeti az OpenMV Cam M7 (STM32F7) kártyát és az új nn CMSIS-NN neurális hálózat modult (amely felváltja a régi, beégetett find_number() / classify_object() metódusokat), hozzáadja az MT9V034 globális zár és a FLIR Lepton érzékelő támogatását, a sensor.WVGA képkockaméreteket, és MicroPython 1.9.4-re frissíti a magot. Több image / sensor / WiFi viselkedés megváltozott — olvasd el az alábbi törő változásokat.
Kiemelések¶
OpenMV Cam M7 — új STM32F7 kártya.
nnmodul — CMSIS-NN következtetés:nn.load(),Net.forward(),Net.search(), modellátalakítóval és példákkal.Új érzékelők — MT9V034 globális zár (FSIN-triggerelt) és FLIR Lepton.
MicroPython 1.9.4 mag-frissítés.
Törő változás: a beégetett
image.find_number()/image.classify_object()metódusokat eltávolítottuk, asensor.sleep()mostantól kivételt dob, a WINC socketek valós bájtszámot adnak vissza, azimage.binary()új képet ad vissza, és afind_apriltags()64K képpontra van korlátozva — lásd a törő változásokat.
Új funkciók¶
nn— egy új CMSIS-NN neurális hálózat modul:nn.load(path),Net.forward(img, roi=, softmax=, dry_run=)(0.0–1.0 közötti lebegőpontos értékeket ad vissza),Net.search()a többléptékű/pozíciós észleléshez, valamintNet.test(), továbbá egy CMSIS-NN modellátalakító (nn_convert.py/nn_quantizer.py), beépített CIFAR-10 / LeNet / smile modellek, és NN / NN-search példaszkriptek.Érzékelők — MT9V034 globális zár támogatás (FSIN-triggerelt pillanatkép) az OpenMV 4-en, egy frissített FLIR Lepton illesztőprogram Lepton pillanatképpel, és az új
sensor.WVGA(720x480) /sensor.WVGA2(752x480) képkockaméretek.Képalkotás — az
image.find_circles()megkapta azr_min/r_max/r_stepkulcsszavakat (gyorsabb Hough), afind_keypoints()és a Haarfind_features()mostantól RGB képeket is elfogad, és azimage.compress()/ JPEG-kódolás mostantól bináris (bitmap) képeket is támogat.Indítás — a
boot.pymostantól az USB inicializálása előtt fut, így felülírhatja az USB módot (pl. HID).Példák — hozzáadtunk kis/nagy felbontású AprilTag példákat, egy I2C LIDAR-Lite V3 példát, és adathalmaz-eszközöket (
augment_images.py/make_patches.py).
Egyéb változások és fejlesztések¶
A beépített MicroPythont 1.9.4-re frissítettük (egy pyexec parse/compile/exec visszaállítással és PendSV javítással); érthetőbb
fb_alloc/xallocmemóriahiány-üzenetek; elnyomtuk aznnprintf zaját a hálózat betöltése közben; átszerveztük a tárolót (példák →scripts/, eszközök →tools/, Haar kaszkádok →ml/). Aznnmodul nem érhető el az OpenMV 2-n (nem elegendő flash memória).
Hibajavítások¶
Képalkotás:
Kijavítottuk a
fast_atan2ffüggvényt x≤0 esetén (korábban mindig 0 volt — ellenőrizd újra a folt / vonal / kulcspont szögeket), afind_apriltags()memóriakezelését (eldobott tartalom és hibás realloc memóriahiány esetén), a bináris/bitmap soronkénti bpp-mutatókat (sérült bináris eredmények), afind_edges(EDGE_CANNY)működését ROI-val, aTO_GS_PIXELmakrót (integrál / morf), a bitmap/JPEG streamelést szürkeárnyalatos (bpp==0) képkockáknál, a kulcspont/folt listapop_frontműveletét, és amatch_descriptoreredményeit.
Rendszer és kamera:
Kijavítottuk az USB HID interfész/végpont számokat, az XCLK frekvencia futásidejű dinamikus változtatását, hogy a
Net.forward()a helyes számú kimenetet adja vissza, és egy hardfaultot a szkriptelemzés megszakításakor.
Hardver- és kártyatámogatás¶
OpenMV Cam M7 (STM32F7) — új kártya.
MT9V034 globális zár érzékelő (OpenMV 4, FSIN-triggerelt).
FLIR Lepton — frissített illesztőprogram pillanatkép-támogatással.
Törő API-változások¶
Felhasználó számára látható API-törések a v2.9.0 és v3.0.0 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:
nagy — a legtöbb szkriptet érinti, amely az adott funkciót használta; portolnod kell a kódot.
kisebb — szűk API; csak az azt használó szkripteket érinti.
viselkedés — azonos API, eltérő eredmények; ellenőrizd újra a finomhangolt szkripteket.
A változások hatás szerint, ebben a sorrendben vannak csoportosítva. Ha csak portolni szeretnéd a kódodat, ugorj a migrációs ellenőrzőlistához a végén. Minden commit-hash a GitHubon lévő diffjére hivatkozik.
image.find_number() / image.classify_object() eltávolítva (nagy)¶
A beégetett image.find_number() (LeNet) és image.classify_object() (CMSIS CNN) metódusokat eltávolítottuk az új nn modul javára. Cseréld le őket a következőre: net = nn.load('/model.network'); out = net.forward(img).
Commitok: d151f7e38
sensor.sleep() / sensor.reset() hibánál kivételt dob (kisebb)¶
A sensor.sleep() és a sensor.reset() mostantól hiba esetén kivételt dob, ahelyett hogy True / False értéket adna vissza. Az a kód, amely a sensor.sleep() logikai visszatérési értékét ellenőrizte, mostantól try / except blokkba kell csomagolja a hívást.
Commitok: 7d16d008f
A WINC socketek a valós bájtszámot adják vissza (viselkedés)¶
A WINC1500 socket send / recv / sendto / recvfrom metódusai korábban mindig 0 értéket adtak vissza; mostantól az átvitt bájtok tényleges számát adják vissza. Az a kód, amely 0 visszatérési értéket feltételezett (vagy arra várt/blokkolt rajta ciklusban), kezelnie kell a valós értékeket.
Commitok: a07fb2f60
Az image.binary() új képet ad vissza (viselkedés)¶
Az image.binary() megkapta a to_bitmap / copy kulcsszavakat, és mostantól egy új képobjektumot ad vissza, ahelyett hogy a forrásképet helyben adná vissza/módosítaná. Az a kód, amely arra támaszkodott, hogy a binary() módosítja az eredeti képet, használja a visszaadott objektumot (és adja át a copy=True értéket a nem helyben végzett viselkedéshez).
Commitok: 8a44f0cd9
Migrációs ellenőrzőlista¶
A v3.0.0-ra való tiszta portoláshoz a tipikus teendők a következők:
Cseréld le az
image.find_number()/image.classify_object()metódusokat aznnmodulra (az nn migráció).Csomagold a
sensor.sleep()/sensor.reset()hívásokattry/exceptblokkba a logikai visszatérési érték ellenőrzése helyett (a sensor.sleep változás).Kezeld a valós bájtszámokat a WINC socket
send/recvmetódusaiból (a WINC socket változás).Használd az
image.binary()által visszaadott képet a helyben történő módosítás elvárása helyett (a binary változás).Méretezd le a képeket a
find_apriltags()hívása előtt, hogy 64K képpont alatt maradj (a find_apriltags korlát).
Minden más szkript változatlanul fut.