v2.7.0¶
v2.7.0 modernizuje API senzoru sensor pro automatický zisk / automatickou expozici / vyvážení bílé na fyzikální jednotky (dB / mikrosekundy), přepracovává fázovou korelaci find_displacement() (s přidáním rotace/měřítka) a přidává get_similarity() (SSIM), chrominvar() / illuminvar(), další framebuffery a knihovnu MQTT. Jde o velké vydání s nekompatibilními změnami — přečtěte si nekompatibilní změny níže.
Hlavní novinky¶
Moderní API senzoru —
set_auto_gain()/set_auto_exposure()/set_auto_whitebal()nyní používají dB / mikrosekundy, s odpovídajícímiget_gain_db()/get_exposure_us()/get_rgb_gain_db().Fázová korelace — přepracovaný
find_displacement()s rotací / měřítkem afind_rotscale()/linpolar()/logpolar().SSIM — strukturální podobnost
image.get_similarity().Další framebuffery —
sensor.alloc_extra_fb()/dealloc_extra_fb().MQTT — nová knihovna MQTT.
Nekompatibilní: změnilo se API senzoru pro zisk/expozici/vyvážení bílé,
find_displacement()/ formáty snímku FFT,find_number(), nástroje firmwaru WINC a AprilTagz_rotation()— viz nekompatibilní změny.
Nové funkce¶
Senzor — přidány
sensor.get_gain_db(),sensor.get_exposure_us(),sensor.get_rgb_gain_db(), klíčové slovogain_db_ceilinguset_auto_gain(), podporahmirror/vflipu MT9V034 asensor.alloc_extra_fb()/sensor.dealloc_extra_fb()pro další framebuffery v RAM.Obraz — přidány
remove_shadows(),min()/max()(rozdíl snímků),get_similarity()(SSIM) s příkladem strukturální podobnosti,chrominvar()/illuminvar(),find_rotscale(),linpolar()/logpolar(), klíčová slova threshold / offset / invert u adaptivních filtrůmean()/mode()/median()/midpoint(),len()/ indexování u objektu keypoints a přístupový prvek.match()u objektu shody klíčových bodů.Knihovny / síť — přidána knihovna MQTT (s příkladem WiFi MQTT) a režim
network.WINC.MODE_BSPpro programování firmwaru WINC přes ladicí UART.Příklady — přidány nízkopříkonové
deep_sleep.py/stop_mode.py, pokročilý optický tok a příkladové skripty s lineárně/log-polárními souřadnicemi; firmware nyní při startu parsujeuart.inipro povolení REPL UART.
Další změny a vylepšení¶
get_regression()získal klíčová slovaarea_threshold/pixels_thresholda rychlejší robustní regresi (pro sledování čáry / závodění);get_pixel()nyní podporuje obrazy Bayer; přidán základ pro STM32H7 (hlavičky CMSIS / HAL / bootloader — deska H7 zatím není použitelná); aktualizován přibalený firmware WINC1500 (19.4.4 / 19.5.2).
Opravy chyb¶
Zpracování obrazu:
Opravena chyba přístupu mimo meze při diamantovém vyhledávání ve
find_template(), poškozenílogpolar/linpolara divoké chováníilluminvar()u barevných hodnot blízkých nule.
Senzor a systém:
Opraveny chyby automatického řízení zisku, obnovena velikost
MAIN_FBpřisnapshot()(takžecopy_to_fbv jiném rozlišení, změna velikosti FB a poolování optického toku opět fungují), timeoutgethostbynameu WINC, mazání stavupydfuv bootloaderu H7 a nízkopříkonové režimy stop/standby.
Hardware a podpora desek¶
STM32H7 — základ (CMSIS / HAL / bootloader); deska OpenMV H7 v tomto vydání zatím není použitelná.
WINC1500 — aktualizovaný přibalený firmware.
Nekompatibilní změny API¶
Uživatelsky viditelné nekompatibilní změny API mezi v2.6.0 a v2.7.0. Rozsah: Python C-moduly v modules/ a knihovny Pythonu v scripts/libraries/.
Každá změna je označena svým dopadem:
major — ovlivňuje většinu skriptů, které funkci používaly; budete muset přizpůsobit kód.
minor — úzké API; ovlivňuje pouze skripty, které jej používaly.
behavior — stejné API, jiné výsledky; znovu zkontrolujte vyladěné skripty.
Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen přizpůsobit svůj kód, přejděte na kontrolní seznam migrace na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.
sensor.set_auto_gain() přepracován na dB (major)¶
sensor.set_auto_gain() již nepřijímá celočíselné klíčové slovo value= a již nevrací True / False. Použijte sensor.set_auto_gain(False, gain_db=...) (hodnota dB typu float), zpětně ji načtěte novou sensor.get_gain_db() a obalte volání do try / except, protože selhání nyní vyvolá ValueError.
Commity: b906c5f19
sensor.set_auto_exposure() přepracován na mikrosekundy (major)¶
sensor.set_auto_exposure() již nepřijímá celočíselné klíčové slovo value= a již nevrací True / False. Použijte sensor.set_auto_exposure(False, exposure_us=...), zpětně ji načtěte novou sensor.get_exposure_us() a ošetřete ValueError vyvolaný při selhání.
Commity: 7be0a7a18
find_displacement() / formáty snímku FFT přepracovány (major)¶
Fázová korelace byla přepracována. image.find_displacement() nyní vrací objekt posunutí (s x_translation() / y_translation() — dříve x_offset / y_offset — plus rotation() / scale() a nová klíčová slova logpolar / fix_rotation_scale); samostatný objekt rot-scale byl odstraněn a byl přidán find_rotscale(). Konstanty formátu snímku FFT byly přejmenovány/odstraněny: sensor.B40x30 byl zcela odstraněn a sensor.B64x32 / B64x64 byly přejmenovány na velká písmena sensor.B64X32 / B64X64 (s novými B128X64 / B128X128).
sensor.set_auto_whitebal() přepracován na dB (minor)¶
sensor.set_auto_whitebal() nahradil své celočíselné klíčové slovo value=[r, g, b] za rgb_gain_db=[r, g, b] (dB typu float) a nyní vrací None (při selhání vyvolává ValueError) místo True / False. Pro zpětné načtení zisků použijte novou sensor.get_rgb_gain_db().
Commity: 30ecbdc4f
set_hmirror() / set_vflip() vracejí None (minor)¶
sensor.set_hmirror() a sensor.set_vflip() nyní vracejí None a při selhání vyvolávají ValueError místo vracení stavu True / False. Odstraňte veškerý kód, který se větví podle jejich návratové hodnoty.
Commity: aeb023804
Nástroje firmwaru WINC vyžadují cestu k souboru (minor)¶
Nástroje firmwaru network.WINC se změnily: wlan.fw_dump() / wlan.fw_update() nyní vyžadují povinný argument s cestou k souboru firmwaru a WINC se otevírá v programovacím režimu (network.WINC(mode=...)). Aktualizujte volání bez argumentů tak, aby předávala cestu (např. wlan.fw_update("/winc_19_5_2.bin")).
Commity: fcc3b0b9c
image.find_number() vyžaduje ROI 28x28 (behavior)¶
image.find_number() (LeNet) nyní vyžaduje přesně 28x28 ROI, které se vejde do obrazu, a jinak vyvolá chybu (místo spuštění na libovolném ROI / ROI celého obrazu). Předejte explicitní roi=(x, y, 28, 28).
Commity: 4d09a13f3
Znaménko AprilTag z_rotation() obráceno (behavior)¶
AprilTag z_rotation() (a související rotation()) nyní používá pravotočivou konvenci souřadnic, takže vrácený úhel má opačné znaménko než v předchozích vydáních. Skripty, které závisí na starém znaménku, musí hodnotu invertovat nebo upravit svůj výpočet úhlu.
Commity: 7673aaf74
Kontrolní seznam migrace¶
Pro čistý přechod na v2.7.0 je obvyklá práce následující:
Přepište
set_auto_gain()nagain_db=+get_gain_db()a ošetřeteValueError(přepracování automatického zisku).Přepište
set_auto_exposure()naexposure_us=+get_exposure_us()(přepracování automatické expozice).Aktualizujte
find_displacement()na objekt posunutí a přejmenujte konstanty formátu snímku FFT (přepracování find_displacement).Přepište
set_auto_whitebal()nargb_gain_db=+get_rgb_gain_db()(přepracování vyvážení bílé) a přestaňte kontrolovat návratovou hodnotuset_hmirror()/set_vflip()(změna zrcadlení/převrácení).Předejte cestu k firmwaru nástrojům WINC
fw_*(změna nástrojů WINC).Předejte 28x28
roidofind_number()(změna find_number) a upravte výpočet úhlu AprilTag kvůli obrácenému znaménkuz_rotation()(změna z_rotation).
Všechny ostatní skripty běží beze změny.