v2.1.0¶
A v2.1.0 egy hatalmas API-modernizációs kiadás. Lecseréli a FREAK kulcspont-leírót ORB-ra, átdolgozza a find_blobs() / hisztogramok / statisztikák felületét objektumalapú API-kká, átnevezi a sensor automatikus expozíció/erősítés/fehéregyensúly függvényeit, hozzáadja a QR-kód-észlelést és az OV7725 lencsekorrekciót, valamint üzembe helyezi a kezdeti OpenMV Cam M7 lapot. Sok API megváltozott — olvasd el az alábbi visszafelé nem kompatibilis változásokat.
Kiemelések¶
ORB kulcspontok — a FREAK leírót ORB váltotta fel (
find_keypoints()/match_descriptor()átdolgozva).Objektum-API-k — a
find_blobs(),get_histogram(),get_statistics()mostantól nevesített hozzáférőkkel rendelkező objektumokat ad vissza.QR-kódok — hozzáadtuk az
image.find_qrcodes()észlelést.OpenMV Cam M7 — kezdeti laptámogatás.
Sensor —
set_auto_whitebal()/set_auto_gain()/set_auto_exposure()(átnevezve) ésset_lens_correction().Visszafelé nem kompatibilis: a kulcspont/leíró, a folt/hisztogram/statisztika, az érzékelő automatikus függvényei és több más API megváltozott — lásd a visszafelé nem kompatibilis változásokat.
Új funkciók¶
OpenMV Cam M7 — hozzáadtuk a kezdeti OpenMV 3 (M7) laptámogatást.
QR-kódok — hozzáadtuk az
image.find_qrcodes()függvényt egyqrcodes.pypéldával.ORB kulcspontok — új ORB leírórendszer:
find_keypoints()egycorner_detectorargumentummal (CORNER_FAST/CORNER_AGAST),max_keypoints/scale_factor;match_descriptor()egyfilter_outlierskulcsszóval és forgásbecsléssel; kulcspontok mentése/betöltése.Objektum-API-k — az
image.get_histogram()/get_statistics()/get_percentile()hisztogram-/statisztika-objektumokat ad vissza; afind_blobs()folt-objektumokat ad vissza (rect()/cx()/cy()/code()/area()/pixels()) azarea_threshold/pixels_threshold/merge/margin/invertésx_stride/y_strideparaméterekkel.Sensor — hozzáadtuk a
sensor.set_lens_correction(enable, radi, coef)függvényt az OV7725 lencseárnyékoláshoz, asensor.set_windowing()mostantól egy(w, h)tuple-t is elfogad (automatikusan központozva), valamint azimage.Image(..., copy_to_fb=True)/load_image(copy_to_fb=True)lehetőséget.Hozzáadtunk színkövetési, Arduino SPI/I2C-slave, kulcspont- és hisztogram/statisztika példaszkripteket.
Egyéb változások és fejlesztések¶
Az IDE mostantól meg tud szakítani egy futó
main.py-t; gyorsabbfind_blobs()/find_qrcodes()/get_statistics(); az ORB popcount Hamming-távolságot használ; a lencsekorrekció kevesebb RAM-ot használ; egy Linuxudevszabály megakadályozza, hogy a ModemManager megragadja a soros portot.
Hibajavítások¶
Kamera és képalkotás:
Kijavítottuk az M7 DMA gyorsítótár ürítését/érvénytelenítését (sérült képkockák), egy hibás extra sort minden képkocka végén, a JPEG képkocka-puffer túlcsordulási határait, a képkocka-puffer felszabadítását
compress()hiba esetén, az ORB pontosságát / ROI / üres készlet kezelését, valamint aload_image(copy_to_fb=True)geometriáját.
Rendszer:
Kijavítottuk az F7 ADC-támogatást, egy OV7725 regiszternevet, a rendszerbetöltő/USB időzítést, WFI-t használtunk a pillanatképekre várakozás közben, és az MJPEG streamelő példát nem blokkolóvá tettük kliensenkénti időtúllépésekkel.
Hardver- és laptámogatás¶
OpenMV Cam M7 (OpenMV 3) — kezdeti laptámogatás.
OV7725 — lencsekorrekciós (árnyékolási) támogatás.
Visszafelé nem kompatibilis API-változások¶
A v2.0.0 és a v2.1.0 közötti, felhasználó számára látható API-törések. Hatókör: a modules/ mappában lévő Python C-modulok és a scripts/libraries/ mappában lévő Python-könyvtárak.
Minden változás meg van jelölve a hatásával:
nagy — a funkciót használó legtöbb szkriptet érinti; át kell ültetned a kódot.
kis — szűk API; csak az azt használó szkripteket érinti.
viselkedés — azonos API, eltérő eredmények; ellenőrizd újra a hangolt szkripteket.
A változások ebben a sorrendben, hatás szerint vannak csoportosítva. Ha csak a kódodat szeretnéd átültetni, ugorj a végén lévő migrációs ellenőrzőlistára. Minden commit-hash a hozzá tartozó diffre mutat a GitHubon.
A FREAK-et ORB váltotta fel; a leíró API átdolgozva (nagy)¶
A FREAK kulcspont-leírót eltávolítottuk és ORB-ra cseréltük: az image.FREAK többé nem létezik (használd az image.ORB-ot). A image.match_descriptor() / save_descriptor() / load_descriptor() többé nem fogad bevezető leírótípus-argumentumot (az objektumból van kikövetkeztetve), a match_descriptor() mostantól egy 8 elemű tuple-t ad vissza (cx, cy, x, y, w, h, match_count, rotation) (az utolsó elem nyers darabszám, nem százalék), a draw_keypoints() pedig egy kulcspont-objektumot vár nyers (x, y, angle) lista helyett. A find_keypoints() corner_detector / max_keypoints / scale_factor paramétereket kapott, megváltozott alapértelmezésekkel.
Az érzékelő automatikus függvényeinek átnevezése (nagy)¶
A sensor.set_whitebal() / set_gain_ctrl() / set_exposure_ctrl() átnevezésre került sensor.set_auto_whitebal() / set_auto_gain() / set_auto_exposure() névre (a régi neveket eltávolítottuk). Mindegyik kapott egy opcionális value= kulcsszót, amellyel automatikus helyett kézi érték állítható be.
Commitok: 1b22a2961
A hisztogram / statisztika objektum-API-kká átdolgozva (nagy)¶
A hisztogram/statisztika felület objektumalapú image.get_histogram() / get_statistics() / get_percentile() formára lett átdolgozva, amely hisztogram-/statisztika-objektumokat ad vissza. A régi lapos hisztogram-/statisztika-eredményeket és a bin_count / l_bin_count / a_bin_count / b_bin_count metódusokat eltávolítottuk (használd a len(histogram.bins()) formát stb.).
A find_features() scale paramétere átnevezve (nagy)¶
Az image.find_features() (Haar) átnevezte a scale= kulcsszavát scale_factor=-ra. Frissítsd a find_features(cascade, scale=...) hívásokat scale_factor=...-ra.
Commitok: 96e4f770c
A find_blobs() objektumokat ad vissza; a find_markers() eltávolítva (kis)¶
Az image.find_blobs() mostantól nevesített hozzáférőkkel rendelkező folt-objektumokat ad vissza (az indexes hozzáférés a visszafelé kompatibilitás érdekében továbbra is működik), az image.find_markers() pedig eltávolításra került — helyette használd a find_blobs(..., merge=True, margin=...) formát. A speciális színfolt-szűrő visszahívás már nem támogatott.
Commitok: af15ec6eb
Az img.copy_to_fb() lecserélve (kis)¶
Az img.copy_to_fb() metódust egy copy_to_fb= kulcsszó váltotta fel az image.Image / load_image() hívásokon. Használd az image.Image(path, copy_to_fb=True) formát nagy képek közvetlenül a képkocka-pufferbe való betöltéséhez.
Commitok: 1645ab94b
A compress() elutasítja a tartományon kívüli minőséget (viselkedés)¶
Az image.compress() / compressed() mostantól hibát dob, ha a quality az 1–100 tartományon kívül esik, ahelyett, hogy csendben levágná. Vágd be a quality értéket az 1–100 tartományba a hívás előtt. Külön megjegyzés: az OpenMV 3 JPEG-pufferét 64 KB-ról 23000 bájtra csökkentettük, így a nagy képkockák mostantól memóriahiányt jelezhetnek — csökkentsd a JPEG-minőséget vagy a képkockaméretet.
A lens_corr() nagyítása mostantól működik (viselkedés)¶
Az image.lens_corr() mostantól ténylegesen alkalmazza a zoom argumentumát (korábban értelmezve volt, de hatástalan), így a kimenet eltér azoknál a szkripteknél, amelyek nem alapértelmezett nagyítást adtak át. Ellenőrizd újra a lens_corr() hangolását.
Commitok: d6b49adef
Migrációs ellenőrzőlista¶
A v2.1.0-ra való tiszta átültetéshez tipikusan a következő munka szükséges:
Cseréld le az
image.FREAK-etimage.ORB-ra, hagyd el a leírótípus-argumentumot, és frissítsd amatch_descriptor()tuple-kicsomagolást / adraw_keypoints()hívást a kulcspont-objektumra (az ORB átdolgozás).Nevezd át a
sensor.set_whitebal()/set_gain_ctrl()/set_exposure_ctrl()függvényeket aset_auto_*formákra (az automatikus függvények átnevezése).Vidd át a hisztogram-/statisztika-kódot az objektum-metódusokra (a hisztogram/statisztika átdolgozás).
Nevezd át a
find_features()scale=paraméterétscale_factor=-ra (a find_features átnevezés).Használd a folt-objektum hozzáférőit, és cseréld le a
find_markers()hívást afind_blobs(merge=True, ...)formára (a find_blobs változás); cseréld le azimg.copy_to_fb()hívást acopy_to_fb=kulcsszóra (a copy_to_fb változás).Vágd be a
compress()minőségét az 1–100 tartományba, és ellenőrizd újra a JPEG-méreteket az OpenMV 3-on (a compress változás); hangold újra alens_corr()nagyítását (a lens_corr változás).
Minden más szkript változatlanul fut.