v4.6.0¶
v4.6.0 är en större funktionssläpp. I rampljuset: kameramodulen döptes om från sensor till csi (med ett bakåtkompatibelt sensor-alias), en ny ml.postprocessing-modul, stöd för Prophesee GenX320-händelsesensorn, PAG7936 och FLIR Boson-värmekameror, en ny TinyUSB-baserad DFU-startladdare, Nema GPU-acceleration och MicroPython 1.24. Den ändrar även ritningens alpha-intervall, så läs de brytande ändringarna nedan.
Höjdpunkter¶
sensorär nu ävencsi— kameramodulen döptes om tillcsi;sensorfinns kvar som ett bakåtkompatibelt alias (ingen kodändring krävs ännu).Ny
ml.postprocessing-modul —fomo_postprocess,yolo_v2_postprocess,yolo_v5_postprocess.Nya sensorer — Prophesee GenX320-händelsekamera, PAG7936 och FLIR Boson 320/640 värmekamera.
Ny DFU-startladdare — en TinyUSB-baserad standard-DFU-startladdare ersätter den äldre CDC-startladdaren på alla kort.
Nema GPU — accelererad 2D/vektorgrafik på STM32.
MicroPython uppdaterad till 1.24.0.
Brytande: ritningens
alpha-intervall ändrades från 0–256 till 0–255 (se ändringen av alfaintervallet).
Nya funktioner¶
ml.postprocessing— en ny modul som avkodar modellutdata: en FOMO-avkodare (fomo_postprocess,find_blobs+ NMS, konfigurerbartthreshold) ochyolo_v2_postprocess/yolo_v5_postprocess(medthreshold,anchors,nms_threshold,nms_sigma).Visualisering för händelsekamera — nya metoderna
Image.to_evt_dark()/Image.to_evt_light()och färgpaletternaPALETTE_EVT_DARK/PALETTE_EVT_LIGHT.Djupvisualisering — ny metod
Image.to_depth()och en färgpalettPALETTE_DEPTH(kort med ToF-stöd).Sensorintrospektion — ny ioctl
IOCTL_GET_RGB_STATSsom returnerar en kanalstatistiktupel(R, Gb, Gr, B).GenX320-biasförinställningar — ny ioctl
IOCTL_GENX320_SET_BIASESmed förinställningarnaGENX320_BIASES_DEFAULT/LOW_LIGHT/ACTIVE_MARKER/LOW_NOISE/HIGH_SPEED.omv.debug_mode()— en ny funktion för att fråga om USB-felsökningsgränssnittet är aktivt.Nema GPU — integration av Cortex-M55 NemaGFX/NemaVG-drivrutinen på STM32, med GPU-genomströmning på plats för
draw_image.PAG7936 — lade till färgstapelutdata, autoexponering / autoförstärkning, viloläge och MIPI-läge.
Övriga ändringar och förbättringar¶
MicroPython uppdaterad till 1.24.0; ulab uppdaterad till 6.7.3 (lägger till
keepdims).Gemensamt startskript — STM32 / i.MX RT / RP2 delar nu en
_boot.pysom automatiskt skapar flash-/SD-filsystemet med en standardmain.pyochREADME.txtoch frigör temporära globala uppstartsvariabler.STM32N6-grundarbete — grundläggande STM32N6-stöd, en XSPI-drivrutin, en gemensam MPU-drivrutin samt signering av fast programvara/startladdare på STM32.
Computed-goto VM — aktiverad på STM32 och nRF för snabbare tolk.
Buggfixar¶
Kamera och sensorer:
Korrigerade beräkningen av OV5640 PCLK/exponering (två MIPI-banor, korrigerad delartabell).
MT9V0xx Bayer-CFA-varianten accepterar nu RGB565/BAYER/GRAYSCALE och matar ut korrekt rå Bayer-data i stället för att ge fel.
Aktiverade PAG7936 linsskuggningskorrigering och korrigerade HD-bildförskjutning;
set_framerate()är nu begränsad per upplösning.Korrigerade FLIR Lepton-värmeinfångning på i.MX RT1060 (korrigerad VoSPI CPOL/CPHA), och Lepton-stillbilder returnerar nu specifika felkoder.
Korrigerade GenX320-frekvensavrundning.
Bildbehandling:
Korrigerade minneskorruption i
to_ndarray()på gråskalebilder.Korrigerade debayer-gränsförutsägelse vid Bayer→RGB/gråskala-konvertering.
Korrigerade
draw_image()transposepå kort utan SDRAM (styckad buffert).Korrigerade hantering av booleska argument i
Image.binary()ochml.Model-flagganload_to_fb.
System:
Korrigerade konfiguration av SPI RX-endast / TX-endast-stift på STM32 och i.MX RT.
Flyttade Portenta H7:s Ethernet-DMA-buffertar till SRAM3 så att Ethernet fungerar.
Korrigerade ett bortfallet tecken i textutmatning på felsökningskanalen över USB; avrundade ML:s dynamiska allokeringsstorlekar uppåt för att undvika underdimensionerade modellbuffertar.
Maskinvara och kortstöd¶
Prophesee GenX320 händelsebaserad visionssensor (STM32F7 + i.MX RT1060).
PAG7936-sensor (med MIPI-läge).
FLIR Boson 320/640 värmekameror (IDD 4-drivrutin).
Nema GPU-acceleration på STM32.
STM32N6 startladdar-/XSPI-grundarbete.
VL53L5CX — lade till stöd för power-enable-stift.
Brytande API-ändringar¶
Användarsynliga API-brytningar mellan v4.5.9 och v4.6.0. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
major — de flesta skript som använde den behöver redigeras.
minor — smalt API; påverkar bara skript som använde det.
behavior — samma API, andra resultat; kontrollera trimmade skript igen.
tooling — påverkar endast flashning / värdverktyg / korttillgänglighet.
Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migreringschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub. Obs: omdöpningen av modulen sensor → csi i detta släpp är inte brytande — sensor fungerar fortfarande som ett alias.
Ritningens alpha-intervall är nu 0–255 (major)¶
Argumentet alpha i draw_image() och alla överlägg som tar ett sådant (FIR, ToF, display, TV, MJPEG, alfatabeller) använder nu ett 0–255-intervall i stället för 0–256. Skript som skickade 256 för helt ogenomskinligt, eller beräknade alfa mot 256, måste skalas om till 0–255.
Commit: 1f87b5bb6
FLIR Lepton ioctl-konstanter omdöpta (minor)¶
Tre Lepton ioctl-konstanter förkortades: 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. De medföljande exemplen uppdaterades.
Commit: 12582d54d
Omarbetning av API:et för ML-efterbehandling (minor)¶
ml.postprocessing är ny i detta släpp och dess API ändrades under arbetet: konstruktorns nyckelord score_threshold i yolo_v2_postprocess döptes om till threshold, och tomma efterbehandlingsresultat returnerar nu () i stället för []. Den medföljande modellen yolov5_rgb_person döptes om till yolo_v5_224_nano. ml.apps.MicroSpeech vidarebefordrar nu godtyckliga **kwargs till audio.init() i stället för ett fast gain_db=24.
Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c
AGAST är standardhörndetektorn (behavior)¶
find_keypoints() använder nu AGAST i stället för FAST som standardhörndetektor på alla kort. Nyckelpunktsmängder (och därmed deskriptormatchningar) skiljer sig från tidigare släpp — kontrollera trimmade nyckelpunktspipelines igen. IDE:ns strömning av bildbuffert är nu också begränsad till 20 Hz för att minska USB-belastningen.
Startladdare, borttagna kort och funktioner (tooling)¶
Den äldre CDC-startladdaren ersattes av en ny TinyUSB-baserad standard-DFU-startladdare på alla kort — mekanismen för uppdatering av fast programvara ändrades; uppdatera ditt flashnings-arbetsflöde/verktyg därefter. Kortet OpenMV Pro, det fristående Raspberry Pi Pico-bygget och fjärr-IDE-funktionen WiFi-felsökning (wifidbg) togs bort.
Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2
Migreringschecklista¶
För en ren portning till v4.6.0 är det typiska arbetet:
Skala om varje ritnings-/överläggsvärde
alphafrån intervallet 0–256 till 0–255 (ändringen av alfaintervallet).Döp om eventuella FLIR Lepton ioctl-konstanter till sina förkortade former (omdöpningen av Lepton-ioctl).
Om du använde de nya ML-efterbehandlarna, byt
score_thresholdmotthreshold, hantera ett tomt()-resultat och uppdatera modellnamnetyolo_v5_224_nano(ML-ändringarna).Kontrollera
find_keypoints()-baserade pipelines igen med tanke på ändringen till AGAST-detektorn (ändringen av hörndetektorn).Uppdatera ditt arbetsflöde för flashning av fast programvara för den nya DFU-startladdaren (ändringarna av startladdare/kort).