v2.7.0¶
v2.7.0 modernizira sensor API za automatsko pojačanje / automatsku ekspoziciju / ravnotežu bijele u fizičke jedinice (dB / mikrosekunde), preuređuje faznu korelaciju find_displacement() (dodajući rotaciju/razmjer) te dodaje get_similarity() (SSIM), chrominvar() / illuminvar(), dodatne međuspremnike sličica i MQTT biblioteku. Ovo je veliko izdanje koje narušava kompatibilnost — pročitajte promjene koje narušavaju kompatibilnost u nastavku.
Istaknuto¶
Moderni senzorski API —
set_auto_gain()/set_auto_exposure()/set_auto_whitebal()sada koriste dB / mikrosekunde, s odgovarajućimget_gain_db()/get_exposure_us()/get_rgb_gain_db().Fazna korelacija — preuređeni
find_displacement()s rotacijom / razmjerom tefind_rotscale()/linpolar()/logpolar().SSIM —
image.get_similarity()strukturna sličnost.Dodatni međuspremnici sličica —
sensor.alloc_extra_fb()/dealloc_extra_fb().MQTT — nova MQTT biblioteka.
Narušava kompatibilnost: senzorski API za pojačanje/ekspoziciju/ravnotežu bijele,
find_displacement()/ FFT veličine sličica,find_number(), alati za WINC firmware te AprilTagz_rotation()— svi su se promijenili — pogledajte promjene koje narušavaju kompatibilnost.
Nove značajke¶
Senzor — dodani su
sensor.get_gain_db(),sensor.get_exposure_us(),sensor.get_rgb_gain_db(), ključna riječgain_db_ceilingnaset_auto_gain(), MT9V034hmirror/vflippodrška tesensor.alloc_extra_fb()/sensor.dealloc_extra_fb()za dodatne međuspremnike sličica u RAM-u.Slika — dodani su
remove_shadows(),min()/max()(razlika sličica),get_similarity()(SSIM) s primjerom strukturne sličnosti,chrominvar()/illuminvar(),find_rotscale(),linpolar()/logpolar(), ključne riječi threshold / offset / invert na adaptivnim filtrimamean()/mode()/median()/midpoint(),len()/ indeksiranje na objektu ključnih točaka te.match()pristupnik na objektu podudaranja ključnih točaka.Biblioteke / mreža — dodana je MQTT biblioteka (s WiFi MQTT primjerom) te
network.WINC.MODE_BSPnačin za programiranje WINC firmwarea preko debug UART-a.Primjeri — dodani su niskoenergetski
deep_sleep.py/stop_mode.py, napredni optički tok te primjeri linearno/logaritamsko-polarnih skripti; ugrađeni program sada pri pokretanju parsirauart.iniza omogućavanje REPL UART-a.
Ostale promjene i poboljšanja¶
get_regression()dobio je ključne riječiarea_threshold/pixels_thresholdi bržu robusnu regresiju (za praćenje linije / utrkivanje);get_pixel()sada podržava Bayer slike; dodani su STM32H7 temelji (CMSIS zaglavlja / HAL / pokretač (bootloader) — H7 ploča još nije upotrebljiva); ažuriran je priloženi WINC1500 firmware (19.4.4 / 19.5.2).
Ispravci grešaka¶
Obrada slika:
Ispravljena je greška izvan granica u dijamantnom pretraživanju
find_template(), oštećenje kodlogpolar/linpolarte divljanjeilluminvar()kod vrijednosti boje blizu nule.
Senzor i sustav:
Ispravljene su greške automatske kontrole pojačanja, vraćena je veličina
MAIN_FBkodsnapshot()(tako dacopy_to_fbna drugačijoj razlučivosti, promjena veličine FB-a i grupiranje optičkog toka ponovno rade), istek vremenagethostbynamena WINC-u,pydfubrisanje statusa na H7 pokretaču (bootloader) te niskoenergetski načini zaustavljanja/pripravnosti.
Podrška za hardver i ploče¶
STM32H7 — temelji (CMSIS / HAL / pokretač (bootloader)); OpenMV H7 ploča još nije upotrebljiva u ovom izdanju.
WINC1500 — ažuriran priloženi firmware.
Promjene API-ja koje narušavaju kompatibilnost¶
Korisniku vidljiva narušavanja API-ja između v2.6.0 i v2.7.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.
Svaka je promjena označena svojim utjecajem:
major — utječe na većinu skripti koje su koristile značajku; morat ćete prenijeti kod.
minor — uski API; utječe samo na skripte koje su ga koristile.
behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.
Promjene su grupirane prema utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, prijeđite na kontrolni popis migracije na kraju. Svaki hash commita vodi na njegov diff na GitHubu.
sensor.set_auto_gain() preuređen u dB (major)¶
sensor.set_auto_gain() više ne prihvaća cjelobrojnu ključnu riječ value= i više ne vraća True / False. Koristite sensor.set_auto_gain(False, gain_db=...) (float dB vrijednost), pročitajte je natrag s novim sensor.get_gain_db() te omotajte poziv u try / except jer neuspjeh sada izaziva ValueError.
Commiti: b906c5f19
sensor.set_auto_exposure() preuređen u mikrosekunde (major)¶
sensor.set_auto_exposure() više ne prihvaća cjelobrojnu ključnu riječ value= i više ne vraća True / False. Koristite sensor.set_auto_exposure(False, exposure_us=...), pročitajte je natrag s novim sensor.get_exposure_us() te obradite ValueError koji se izaziva pri neuspjehu.
Commiti: 7be0a7a18
find_displacement() / FFT veličine sličica preuređene (major)¶
Fazna korelacija je preuređena. image.find_displacement() sada vraća objekt pomaka (s x_translation() / y_translation() — ranije x_offset / y_offset — uz rotation() / scale() i nove ključne riječi logpolar / fix_rotation_scale); zasebni rot-scale objekt je uklonjen, a dodan je find_rotscale(). Konstante FFT veličina sličica su preimenovane/uklonjene: sensor.B40x30 je u potpunosti uklonjena, a sensor.B64x32 / B64x64 su preimenovane u velika slova sensor.B64X32 / B64X64 (s novima B128X64 / B128X128).
sensor.set_auto_whitebal() preuređen u dB (minor)¶
sensor.set_auto_whitebal() zamijenio je svoju cjelobrojnu ključnu riječ value=[r, g, b] s rgb_gain_db=[r, g, b] (float dB) i sada vraća None (izazivajući ValueError pri neuspjehu) umjesto True / False. Koristite novi sensor.get_rgb_gain_db() za čitanje pojačanja natrag.
Commiti: 30ecbdc4f
set_hmirror() / set_vflip() vraćaju None (minor)¶
sensor.set_hmirror() i sensor.set_vflip() sada vraćaju None i izazivaju ValueError pri neuspjehu umjesto vraćanja statusa True / False. Uklonite svaki kod koji se grana na temelju njihove povratne vrijednosti.
Commiti: aeb023804
Alati za WINC firmware zahtijevaju putanju datoteke (minor)¶
Alati za network.WINC firmware su se promijenili: wlan.fw_dump() / wlan.fw_update() sada uzimaju obavezan argument putanje do firmware datoteke, a WINC se otvara u načinu programiranja (network.WINC(mode=...)). Ažurirajte pozive bez argumenata tako da proslijede putanju (npr. wlan.fw_update("/winc_19_5_2.bin")).
Commiti: fcc3b0b9c
image.find_number() zahtijeva 28x28 ROI (behavior)¶
image.find_number() (LeNet) sada zahtijeva točno 28x28 ROI koji stane unutar slike i inače izaziva grešku (umjesto pokretanja na proizvoljnom ROI-ju / ROI-ju cijele slike). Proslijedite eksplicitan roi=(x, y, 28, 28).
Commiti: 4d09a13f3
AprilTag z_rotation() predznak obrnut (behavior)¶
AprilTag z_rotation() (i povezani rotation()) sada koristi desnoorijentirani koordinatni sustav, pa je vraćeni kut negiran u odnosu na prethodna izdanja. Skripte koje ovise o starom predznaku moraju invertirati vrijednost ili prilagoditi svoju matematiku kutova.
Commiti: 7673aaf74
Kontrolni popis migracije¶
Za čist prijenos na v2.7.0 tipičan posao je:
Prenesite
set_auto_gain()nagain_db=+get_gain_db()i obraditeValueError(prerada automatskog pojačanja).Prenesite
set_auto_exposure()naexposure_us=+get_exposure_us()(prerada automatske ekspozicije).Ažurirajte
find_displacement()na objekt pomaka i preimenujte konstante FFT veličina sličica (prerada find_displacement).Prenesite
set_auto_whitebal()nargb_gain_db=+get_rgb_gain_db()(prerada ravnoteže bijele) i prestanite provjeravati povratnu vrijednostset_hmirror()/set_vflip()(promjena zrcaljenja/preokretanja).Proslijedite putanju firmwarea WINC
fw_*alatima (promjena WINC alata).Proslijedite 28x28
roiufind_number()(promjena find_number) i prilagodite AprilTag matematiku kutova za obrnuti predznakz_rotation()(promjena z_rotation).
Sve ostale skripte rade nepromijenjeno.