v4.6.0¶
v4.6.0 este o lansare majoră de funcționalități. În prim-plan: modulul camerei a fost redenumit din sensor în csi (cu un alias sensor compatibil cu versiunile anterioare), un nou modul ml.postprocessing, suport pentru senzorul de evenimente Prophesee GenX320, PAG7936 și camerele termice FLIR Boson, un nou bootloader DFU bazat pe TinyUSB, accelerare GPU Nema și MicroPython 1.24. De asemenea, modifică intervalul alpha pentru desenare, așa că citiți modificările incompatibile de mai jos.
Repere¶
sensoreste acum șicsi— modulul camerei a fost redenumit încsi;sensorrămâne ca alias compatibil cu versiunile anterioare (deocamdată nu este necesară nicio modificare de cod).Nou modul
ml.postprocessing—fomo_postprocess,yolo_v2_postprocess,yolo_v5_postprocess.Senzori noi — camera de evenimente Prophesee GenX320, PAG7936 și termica FLIR Boson 320/640.
Nou bootloader DFU — un bootloader DFU standard bazat pe TinyUSB înlocuiește vechiul bootloader CDC pe toate plăcile.
GPU Nema — grafică 2D/vectorială accelerată pe STM32.
MicroPython actualizat la 1.24.0.
Incompatibil: intervalul
alphapentru desenare s-a schimbat de la 0–256 la 0–255 (vedeți modificarea intervalului alpha).
Funcționalități noi¶
ml.postprocessing— un nou modul care decodează ieșirea modelului: un decodor FOMO (fomo_postprocess,find_blobs+ NMS,thresholdconfigurabil) șiyolo_v2_postprocess/yolo_v5_postprocess(cuthreshold,anchors,nms_threshold,nms_sigma).Vizualizarea camerei de evenimente — noile metode
Image.to_evt_dark()/Image.to_evt_light()și paletele de culoriPALETTE_EVT_DARK/PALETTE_EVT_LIGHT.Vizualizarea adâncimii — noua metodă
Image.to_depth()și o paletă de culoriPALETTE_DEPTH(plăci compatibile cu ToF).Introspecția senzorului — noul ioctl
IOCTL_GET_RGB_STATScare returnează un tuplu de statistici pe canale(R, Gb, Gr, B).Preseturi de bias GenX320 — noul ioctl
IOCTL_GENX320_SET_BIASEScu preseturileGENX320_BIASES_DEFAULT/LOW_LIGHT/ACTIVE_MARKER/LOW_NOISE/HIGH_SPEED.omv.debug_mode()— o nouă funcție pentru a interoga dacă interfața de depanare USB este activă.GPU Nema — integrarea driverului Cortex-M55 NemaGFX/NemaVG pe STM32, cu cut-through GPU pe loc pentru
draw_image.PAG7936 — s-au adăugat ieșirea cu bare de culoare, expunerea automată / amplificarea automată, modul de repaus și modul MIPI.
Alte modificări și îmbunătățiri¶
MicroPython actualizat la 1.24.0; ulab actualizat la 6.7.3 (adaugă
keepdims).Script de boot comun — STM32 / i.MX RT / RP2 partajează acum un
_boot.pycare creează automat sistemul de fișiere flash/SD cu unmain.pyși unREADME.txtimpliciti și eliberează variabilele globale temporare de la pornire.Bazele STM32N6 — suport STM32N6 de bază, un driver XSPI, un driver MPU comun și semnarea firmware-ului/bootloaderului pe STM32.
VM cu computed-goto — activată pe STM32 și nRF pentru o accelerare a interpretorului.
Corectări de erori¶
Camera și senzorii:
S-a corectat calculul PCLK/expunere pentru OV5640 (două benzi MIPI, tabel de divizoare corectat).
Varianta MT9V0xx Bayer-CFA acceptă acum RGB565/BAYER/GRAYSCALE și produce date Bayer brute corecte în loc să genereze eroare.
S-a activat corecția de umbrire a lentilei pentru PAG7936 și s-a corectat deplasarea imaginii HD;
set_framerate()este acum limitat pentru fiecare rezoluție.S-a corectat capturarea termică FLIR Lepton pe i.MX RT1060 (CPOL/CPHA VoSPI corectate), iar instantaneele Lepton returnează acum coduri de eroare specifice.
S-a corectat rotunjirea frecvenței GenX320.
Procesarea imaginilor:
S-a corectat coruperea memoriei în
to_ndarray()pe imaginile în tonuri de gri.S-a corectat predicția limitelor debayer în conversia Bayer→RGB/tonuri de gri.
S-a corectat
transposedindraw_image()pe plăcile fără SDRAM (tampon segmentat).S-a corectat gestionarea argumentelor booleene în
Image.binary()și flag-ulload_to_fbalml.Model.
Sistem:
S-a corectat configurarea pinilor SPI doar-RX / doar-TX pe STM32 și i.MX RT.
S-au mutat tampoanele DMA Ethernet ale Portenta H7 în SRAM3 pentru ca Ethernet să funcționeze.
S-a corectat un caracter pierdut în ieșirea de text a canalului de depanare prin USB; dimensiunile de alocare dinamică ML s-au rotunjit în sus pentru a evita tampoane de model subdimensionate.
Suport hardware și plăci¶
Prophesee GenX320 senzor de viziune bazat pe evenimente (STM32F7 + i.MX RT1060).
PAG7936 senzor (cu mod MIPI).
FLIR Boson 320/640 camere termice (driver IDD 4).
GPU Nema accelerare pe STM32.
STM32N6 bazele bootloaderului/XSPI.
VL53L5CX — s-a adăugat suport pentru pin de activare a alimentării.
Modificări incompatibile de API¶
Incompatibilități de API vizibile pentru utilizator între v4.5.9 și v4.6.0. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
major — majoritatea scripturilor care îl utilizau necesită modificări.
minor — API restrâns; afectează doar scripturile care îl utilizau.
comportament — același API, rezultate diferite; reverificați scripturile reglate.
instrumente — afectează doar flashing-ul / instrumentele gazdă / disponibilitatea plăcilor.
Modificările sunt grupate după impact în această ordine. Dacă doriți doar să vă portați codul, săriți la lista de verificare pentru migrare de la final. Fiecare hash de commit duce la diff-ul său de pe GitHub. Notă: redenumirea modulului sensor → csi din această lansare nu este incompatibilă — sensor încă funcționează ca alias.
Intervalul alpha pentru desenare este acum 0–255 (major)¶
Argumentul alpha al draw_image() și fiecare suprapunere care îl acceptă (FIR, ToF, afișaj, TV, MJPEG, tabele alpha) folosește acum un interval 0–255 în loc de 0–256. Scripturile care transmiteau 256 pentru opacitate completă sau calculau alpha raportat la 256 trebuie rescalate la 0–255.
Commit: 1f87b5bb6
Constantele ioctl FLIR Lepton redenumite (minor)¶
Trei constante ioctl Lepton au fost scurtate: IOCTL_LEPTON_SET_MEASUREMENT_MODE → IOCTL_LEPTON_SET_MODE, IOCTL_LEPTON_SET_MEASUREMENT_RANGE → IOCTL_LEPTON_SET_RANGE, IOCTL_LEPTON_GET_FPA_TEMPERATURE → IOCTL_LEPTON_GET_FPA_TEMP. Exemplele incluse au fost actualizate.
Commit: 12582d54d
Modificări succesive ale API-ului de post-procesare ML (minor)¶
ml.postprocessing este nou în această lansare și API-ul său s-a modificat pe parcurs: cuvântul-cheie score_threshold al constructorului yolo_v2_postprocess a fost redenumit în threshold, iar rezultatele de post-procesare goale returnează acum () în loc de []. Modelul inclus yolov5_rgb_person a fost redenumit în yolo_v5_224_nano. ml.apps.MicroSpeech transmite acum **kwargs arbitrari către audio.init() în loc de un gain_db=24 fix.
Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c
AGAST este detectorul de colțuri implicit (comportament)¶
find_keypoints() folosește acum AGAST în loc de FAST ca detector de colțuri implicit pe toate plăcile. Seturile de puncte-cheie (și prin urmare potrivirile de descriptori) diferă de lansările anterioare — reverificați pipeline-urile de puncte-cheie reglate. De asemenea, transmiterea tamponului de cadre (frame buffer) în IDE este acum limitată la 20 Hz pentru a reduce încărcarea USB.
Bootloader, plăci și funcționalități eliminate (instrumente)¶
Vechiul bootloader CDC a fost înlocuit cu un nou bootloader DFU standard bazat pe TinyUSB pe toate plăcile — mecanismul de actualizare a firmware-ului s-a schimbat; actualizați-vă fluxul de lucru/instrumentele de flashing în consecință. Placa OpenMV Pro, build-ul autonom Raspberry Pi Pico și funcția de IDE la distanță cu depanare WiFi (wifidbg) au fost eliminate.
Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2
Lista de verificare pentru migrare¶
Pentru o portare curată la v4.6.0, lucrul tipic este:
Rescalați fiecare valoare
alphade desenare/suprapunere de la intervalul 0–256 la 0–255 (modificarea intervalului alpha).Redenumiți orice constantă ioctl FLIR Lepton în formele lor scurtate (redenumirea ioctl Lepton).
Dacă ați folosit noile post-procesoare ML, schimbați
score_thresholdînthreshold, gestionați un rezultat gol()și actualizați numele modeluluiyolo_v5_224_nano(modificările ML).Reverificați pipeline-urile bazate pe
find_keypoints()pentru modificarea detectorului AGAST (modificarea detectorului de colțuri).Actualizați-vă fluxul de lucru de flashing al firmware-ului pentru noul bootloader DFU (modificările de bootloader/plăci).