v3.0.0¶
Verze v3.0.0 je hlavní vydání v2 → v3. Zavádí OpenMV Cam M7 (STM32F7) a nový modul neuronových sítí nn CMSIS-NN (nahrazující staré pevně zabudované metody find_number() / classify_object()), přidává podporu senzorů MT9V034 s globální závěrkou a FLIR Lepton, velikosti snímku sensor.WVGA a aktualizuje jádro na MicroPython 1.9.4. Změnilo se několik chování v image / sensor / WiFi — přečtěte si přelomové změny níže.
Hlavní novinky¶
OpenMV Cam M7 — nová deska STM32F7.
Modul
nn— inference CMSIS-NN:nn.load(),Net.forward(),Net.search(), s konvertorem modelů a příklady.Nové senzory — MT9V034 s globální závěrkou (spouštěná přes FSIN) a FLIR Lepton.
Aktualizace jádra na MicroPython 1.9.4.
Přelomová změna: pevně zabudované
image.find_number()/image.classify_object()byly odstraněny,sensor.sleep()nyní vyvolává výjimku, WINC sockety vracejí skutečné počty bajtů,image.binary()vrací nový obraz afind_apriltags()je omezen na 64K pixelů — viz přelomové změny.
Nové funkce¶
nn— nový modul neuronových sítí CMSIS-NN:nn.load(path),Net.forward(img, roi=, softmax=, dry_run=)(vrací floaty 0.0–1.0),Net.search()pro detekci ve více měřítkách/pozicích aNet.test(), plus konvertor modelů CMSIS-NN (nn_convert.py/nn_quantizer.py), přibalené modely CIFAR-10 / LeNet / smile a ukázkové skripty NN / NN-search.Senzory — podpora MT9V034 s globální závěrkou (snímek spouštěný přes FSIN) na OpenMV 4, aktualizovaný ovladač FLIR Lepton se snímkem Lepton a nové velikosti snímku
sensor.WVGA(720x480) /sensor.WVGA2(752x480).Zpracování obrazu —
image.find_circles()získalo klíčová slovar_min/r_max/r_step(rychlejší Houghova transformace),find_keypoints()a Haarfind_features()nyní přijímají RGB obrazy aimage.compress()/ kódování JPEG nyní podporuje binární (bitmapové) obrazy.Boot —
boot.pyse nyní spouští před inicializací USB, takže může přepsat režim USB (např. HID).Příklady — přidány příklady AprilTag v malém/vysokém rozlišení, příklad I2C LIDAR-Lite V3 a nástroje pro datové sady (
augment_images.py/make_patches.py).
Další změny a vylepšení¶
Aktualizace přibaleného MicroPythonu na 1.9.4 (s vrácením parse/compile/exec v pyexec a opravou PendSV); srozumitelnější chybové zprávy o nedostatku paměti
fb_alloc/xalloc; potlačen šum z printf modulunnběhem načítání sítě; reorganizace repozitáře (příklady →scripts/, nástroje →tools/, Haar kaskády →ml/). Modulnnnení na OpenMV 2 dostupný (nedostatek flash paměti).
Opravy chyb¶
Zpracování obrazu:
Opraveno
fast_atan2fpro x≤0 (dříve vždy 0 — překontrolujte úhly blobů / čar / klíčových bodů), správa pamětifind_apriltags()(ztracený obsah a chybný realloc při nedostatku paměti), ukazatele řádků pro jednotlivé bpp u binárních/bitmapových obrazů (poškozené binární výsledky),find_edges(EDGE_CANNY)s ROI, makroTO_GS_PIXEL(integrál / morfologie), streamování bitmap/JPEG pro snímky ve stupních šedi (bpp==0),pop_frontu seznamu klíčových bodů/blobů a výsledkymatch_descriptor.
Systém a kamera:
Opraveno číslování rozhraní/endpointů USB HID, dynamická změna frekvence XCLK za běhu,
Net.forward()vracející správný počet výstupů a hardfault při přerušení parsování skriptu.
Hardware a podpora desek¶
OpenMV Cam M7 (STM32F7) — nová deska.
Senzor MT9V034 s globální závěrkou (OpenMV 4, spouštěný přes FSIN).
FLIR Lepton — aktualizovaný ovladač s podporou snímku.
Přelomové změny API¶
Uživatelsky viditelné změny API mezi v2.9.0 a v3.0.0. Rozsah: Python C-moduly v modules/ a knihovny Pythonu v scripts/libraries/.
Každá změna je označena podle svého dopadu:
major — týká se většiny skriptů, které danou funkci používaly; budete muset přepsat kód.
minor — úzké API; týká se pouze skriptů, které jej používaly.
behavior — stejné API, jiné výsledky; překontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přenést svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
image.find_number() / image.classify_object() odstraněny (major)¶
Pevně zabudované metody image.find_number() (LeNet) a image.classify_object() (CMSIS CNN) byly odstraněny ve prospěch nového modulu nn. Nahraďte je výrazem net = nn.load('/model.network'); out = net.forward(img).
Commity: d151f7e38
sensor.sleep() / sensor.reset() vyvolávají výjimku při selhání (minor)¶
sensor.sleep() a sensor.reset() nyní při selhání vyvolávají výjimku místo vrácení True / False. Kód, který kontroloval logickou návratovou hodnotu sensor.sleep(), musí volání místo toho obalit do try / except.
Commity: 7d16d008f
WINC sockety vracejí skutečný počet bajtů (behavior)¶
Metody socketu WINC1500 send / recv / sendto / recvfrom dříve vždy vracely 0; nyní vracejí skutečný počet přenesených bajtů. Kód, který předpokládal návratovou hodnotu 0 (nebo na ní zacyklil/blokoval), musí ošetřit skutečné počty.
Commity: a07fb2f60
image.binary() vrací nový obraz (behavior)¶
image.binary() získalo klíčová slova to_bitmap / copy a nyní vrací nový objekt obrazu místo vrácení/úpravy zdrojového obrazu na místě. Kód, který spoléhal na to, že binary() upravuje původní obraz, by měl používat vrácený objekt (a předat copy=True pro chování bez úpravy na místě).
Commity: 8a44f0cd9
Kontrolní seznam migrace¶
Pro čistý přechod na v3.0.0 je typická práce následující:
Nahraďte
image.find_number()/image.classify_object()modulemnn(migrace na nn).Obalte
sensor.sleep()/sensor.reset()dotry/exceptmísto kontroly logické návratové hodnoty (změna sensor.sleep).Ošetřete skutečné počty bajtů z WINC socketu
send/recv(změna WINC socketu).Používejte obraz vrácený z
image.binary()místo očekávání úpravy na místě (změna binary).Před
find_apriltags()zmenšete obrazy, aby zůstaly pod 64K pixelů (omezení find_apriltags).
Všechny ostatní skripty běží beze změny.