v4.6.0

v4.6.0 je veliko izdanje sa značajkama. Glavne novosti: modul kamere preimenovan je iz sensor u csi (uz unatrag kompatibilan alias sensor), novi modul ml.postprocessing, podrška za Prophesee GenX320 senzor događaja, PAG7936 i FLIR Boson termalne kamere, novi DFU pokretač (bootloader) temeljen na TinyUSB-u, Nema GPU ubrzanje i MicroPython 1.24. Također mijenja raspon alpha pri crtanju, pa pročitajte promjene koje narušavaju kompatibilnost u nastavku.

Najvažnije

  • sensor je sada i csi — modul kamere preimenovan je u csi; sensor ostaje kao unatrag kompatibilan alias (zasad nije potrebna izmjena koda).

  • Novi modul ml.postprocessingfomo_postprocess, yolo_v2_postprocess, yolo_v5_postprocess.

  • Novi senzori — Prophesee GenX320 kamera događaja, PAG7936 i FLIR Boson 320/640 termalna.

  • Novi DFU pokretač (bootloader) — standardni DFU pokretač temeljen na TinyUSB-u zamjenjuje stari CDC pokretač na svim pločicama.

  • Nema GPU — ubrzana 2D/vektorska grafika na STM32.

  • MicroPython ažuriran na 1.24.0.

  • Narušava kompatibilnost: raspon alpha pri crtanju promijenjen je s 0–256 na 0–255 (pogledajte promjenu raspona alpha).

Nove značajke

  • ml.postprocessing — novi modul koji dekodira izlaz modela: FOMO dekoder (fomo_postprocess, find_blobs + NMS, podesiv threshold) te yolo_v2_postprocess / yolo_v5_postprocess (s threshold, anchors, nms_threshold, nms_sigma).

  • Vizualizacija kamere događaja — nove metode Image.to_evt_dark() / Image.to_evt_light() i palete boja PALETTE_EVT_DARK / PALETTE_EVT_LIGHT.

  • Vizualizacija dubine — nova metoda Image.to_depth() i paleta boja PALETTE_DEPTH (pločice s podrškom za ToF).

  • Introspekcija senzora — novi ioctl IOCTL_GET_RGB_STATS koji vraća torku statistike kanala (R, Gb, Gr, B).

  • GenX320 unaprijed postavljene vrijednosti pristranosti (bias) — novi ioctl IOCTL_GENX320_SET_BIASES s unaprijed postavljenim vrijednostima GENX320_BIASES_DEFAULT / LOW_LIGHT / ACTIVE_MARKER / LOW_NOISE / HIGH_SPEED.

  • omv.debug_mode() — nova funkcija za provjeru je li USB sučelje za otklanjanje pogrešaka aktivno.

  • Nema GPU — integracija Cortex-M55 NemaGFX/NemaVG upravljačkog programa na STM32, s GPU prolazom na licu mjesta (in-place) za draw_image.

  • PAG7936 — dodan izlaz s trakama boja, automatska ekspozicija / automatsko pojačanje, mirovanje i MIPI način rada.

Ostale promjene i poboljšanja

  • MicroPython ažuriran na 1.24.0; ulab ažuriran na 6.7.3 (dodaje keepdims).

  • Zajednička skripta pokretanja — STM32 / i.MX RT / RP2 sada dijele _boot.py koji automatski stvara datotečni sustav na flash memoriji/SD-u s zadanim main.py i README.txt te oslobađa privremene globalne varijable pri pokretanju.

  • Temelji za STM32N6 — osnovna podrška za STM32N6, XSPI upravljački program, zajednički MPU upravljački program te potpisivanje ugrađenog programa/pokretača na STM32.

  • Computed-goto VM — omogućen na STM32 i nRF radi ubrzanja interpretera.

Ispravci pogrešaka

Kamera i senzori:

  • Ispravljen izračun OV5640 PCLK/ekspozicije (dvije MIPI linije, ispravljena tablica djelitelja).

  • Varijanta MT9V0xx Bayer-CFA sada prihvaća RGB565/BAYER/GRAYSCALE i daje ispravne sirove Bayer podatke umjesto pogreške.

  • Omogućena korekcija sjenčanja leće za PAG7936 i ispravljen pomak HD slike; set_framerate() sada je ograničen po razlučivosti.

  • Ispravljeno termalno snimanje FLIR Lepton na i.MX RT1060 (ispravljeni VoSPI CPOL/CPHA), a Lepton snimke sada vraćaju konkretne kodove pogrešaka.

  • Ispravljeno zaokruživanje frekvencije GenX320.

Obrada slike:

  • Ispravljeno oštećenje memorije u to_ndarray() na slikama u sivim tonovima.

  • Ispravljeno predviđanje granica debayera u pretvorbi Bayer→RGB/sivi tonovi.

  • Ispravljen transpose u draw_image() na pločicama bez SDRAM-a (međuspremnik u dijelovima).

  • Ispravljeno rukovanje booleovskim argumentom u Image.binary() te zastavica load_to_fb klase ml.Model.

Sustav:

  • Ispravljena konfiguracija pinova za SPI samo-RX / samo-TX na STM32 i i.MX RT.

  • Premješteni Ethernet DMA međuspremnici za Portenta H7 u SRAM3 kako bi Ethernet radio.

  • Ispravljen izgubljeni znak u tekstualnom izlazu kanala za otklanjanje pogrešaka preko USB-a; veličine dinamičke alokacije za ML zaokružene naviše kako bi se izbjegli premali međuspremnici modela.

Hardver i podrška za pločice

  • Prophesee GenX320 senzor vida temeljen na događajima (STM32F7 + i.MX RT1060).

  • PAG7936 senzor (s MIPI načinom rada).

  • FLIR Boson 320/640 termalne kamere (IDD 4 upravljački program).

  • Nema GPU ubrzanje na STM32.

  • STM32N6 temelji za pokretač/XSPI.

  • VL53L5CX — dodana podrška za pin omogućavanja napajanja.

Promjene API-ja koje narušavaju kompatibilnost

Korisniku vidljive promjene API-ja koje narušavaju kompatibilnost između v4.5.9 i v4.6.0. Opseg: Python C-moduli u modules/ i Python biblioteke u scripts/libraries/.

Svaka je promjena označena svojim utjecajem:

  • major — većina skripti koje su je koristile treba izmjene.

  • minor — uski API; utječe samo na skripte koje su ga koristile.

  • behavior — isti API, drugačiji rezultati; ponovno provjerite ugođene skripte.

  • tooling — utječe samo na flashanje / alate na računalu (host) / dostupnost pločica.

Promjene su grupirane po utjecaju tim redoslijedom. Ako samo želite prenijeti svoj kod, prijeđite na kontrolni popis za migraciju na kraju. Svaki hash commita vodi na svoj diff na GitHubu. Napomena: preimenovanje modula sensorcsi u ovom izdanju ne narušava kompatibilnost — sensor i dalje radi kao alias.

Raspon alpha pri crtanju sada je 0–255 (major)

Argument alpha funkcije draw_image() i svakog preklopa koji ga prima (FIR, ToF, zaslon, TV, MJPEG, alpha tablice) sada koristi raspon 0–255 umjesto 0–256. Skripte koje su prosljeđivale 256 za potpunu neprozirnost ili računale alpha u odnosu na 256 moraju se preračunati na 0–255.

Commit: 1f87b5bb6

Preimenovane konstante FLIR Lepton ioctl (minor)

Tri Lepton ioctl konstante skraćene su: IOCTL_LEPTON_SET_MEASUREMENT_MODEIOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGEIOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATUREIOCTL_LEPTON_GET_FPA_TEMP. Priloženi primjeri su ažurirani.

Commit: 12582d54d

Promjene u API-ju za ML naknadnu obradu (minor)

ml.postprocessing je nov u ovom izdanju i njegov se API mijenjao tijekom njega: ključna riječ konstruktora score_threshold u yolo_v2_postprocess preimenovana je u threshold, a prazni rezultati naknadne obrade sada vraćaju () umjesto []. Priloženi model yolov5_rgb_person preimenovan je u yolo_v5_224_nano. ml.apps.MicroSpeech sada prosljeđuje proizvoljne **kwargs funkciji audio.init() umjesto fiksnog gain_db=24.

Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c

AGAST je zadani detektor kutova (behavior)

find_keypoints() sada na svim pločicama koristi AGAST umjesto FAST kao zadani detektor kutova. Skupovi ključnih točaka (a time i podudaranja deskriptora) razlikuju se od prethodnih izdanja — ponovno provjerite ugođene cjevovode ključnih točaka. Strujanje međuspremnika slike u IDE-u sada je također ograničeno na 20 Hz radi smanjenja opterećenja USB-a.

Commits: da6bf6910, bc4e39246

Pokretač (bootloader), uklonjene pločice i značajke (tooling)

Stari CDC pokretač zamijenjen je novim standardnim DFU pokretačem temeljenim na TinyUSB-u na svim pločicama — mehanizam ažuriranja ugrađenog programa se promijenio; uskladite svoj tijek rada / alate za flashanje. Uklonjene su pločica OpenMV Pro, samostalna Raspberry Pi Pico verzija te značajka WiFi otklanjanja pogrešaka (wifidbg) za udaljeni IDE.

Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2

Kontrolni popis za migraciju

Za čist prijenos na v4.6.0 uobičajeni posao je:

  1. Preračunajte svaku vrijednost alpha za crtanje/preklop iz raspona 0–256 u 0–255 (promjena raspona alpha).

  2. Preimenujte sve FLIR Lepton ioctl konstante u njihove skraćene oblike (preimenovanje Lepton ioctl).

  3. Ako ste koristili nove ML naknadne obrade, zamijenite score_threshold s threshold, obradite prazan rezultat () i ažurirajte ime modela yolo_v5_224_nano (ML promjene).

  4. Ponovno provjerite cjevovode temeljene na find_keypoints() zbog promjene detektora AGAST (promjena detektora kutova).

  5. Ažurirajte svoj tijek rada za flashanje ugrađenog programa za novi DFU pokretač (promjene pokretača/pločica).