v4.6.0¶
v4.6.0 is een grote feature-release. De kern ervan: de cameramodule is hernoemd van sensor naar csi (met een achterwaarts compatibele sensor-alias), een nieuwe ml.postprocessing-module, ondersteuning voor de Prophesee GenX320-eventsensor, PAG7936 en FLIR Boson thermische camera’s, een nieuwe TinyUSB-gebaseerde DFU-bootloader, Nema GPU-versnelling en MicroPython 1.24. Ook verandert het alpha-bereik bij het tekenen, dus lees de breaking changes hieronder.
Hoogtepunten¶
sensoris nu ookcsi— de cameramodule is hernoemd naarcsi;sensorblijft bestaan als achterwaarts compatibele alias (nog geen codewijziging vereist).Nieuwe
ml.postprocessing-module —fomo_postprocess,yolo_v2_postprocess,yolo_v5_postprocess.Nieuwe sensoren — Prophesee GenX320-eventcamera, PAG7936 en FLIR Boson 320/640 thermisch.
Nieuwe DFU-bootloader — een TinyUSB-gebaseerde standaard-DFU-bootloader vervangt de oude CDC-bootloader op alle boards.
Nema GPU — versnelde 2D/vectorgraphics op STM32.
MicroPython bijgewerkt naar 1.24.0.
Breaking: het
alpha-bereik bij het tekenen is veranderd van 0–256 naar 0–255 (zie de wijziging van het alpha-bereik).
Nieuwe functies¶
ml.postprocessing— een nieuwe module die modeluitvoer decodeert: een FOMO-decoder (fomo_postprocess,find_blobs+ NMS, instelbarethreshold) enyolo_v2_postprocess/yolo_v5_postprocess(metthreshold,anchors,nms_threshold,nms_sigma).Eventcamera-visualisatie — nieuwe
Image.to_evt_dark()/Image.to_evt_light()-methoden enPALETTE_EVT_DARK/PALETTE_EVT_LIGHT-kleurenpaletten.Diepte-visualisatie — een nieuwe
Image.to_depth()-methode en eenPALETTE_DEPTH-kleurenpalet (boards met ToF).Sensorintrospectie — een nieuwe
IOCTL_GET_RGB_STATS-ioctl die een(R, Gb, Gr, B)-tuple met kanaalstatistieken teruggeeft.GenX320-bias-presets — een nieuwe
IOCTL_GENX320_SET_BIASES-ioctl met de presetsGENX320_BIASES_DEFAULT/LOW_LIGHT/ACTIVE_MARKER/LOW_NOISE/HIGH_SPEED.omv.debug_mode()— een nieuwe functie om op te vragen of de USB-debuginterface actief is.Nema GPU — integratie van de Cortex-M55 NemaGFX/NemaVG-driver op STM32, met in-place GPU cut-through voor
draw_image.PAG7936 — kleurenbalkuitvoer, automatische belichting / automatische versterking, slaapstand en MIPI-modus toegevoegd.
Overige wijzigingen en verbeteringen¶
MicroPython bijgewerkt naar 1.24.0; ulab bijgewerkt naar 6.7.3 (voegt
keepdimstoe).Gemeenschappelijk bootscript — STM32 / i.MX RT / RP2 delen nu een
_boot.pydie automatisch het flash/SD-bestandssysteem aanmaakt met een standaardmain.pyenREADME.txten tijdelijke opstart-globals vrijgeeft.STM32N6-basiswerk — basisondersteuning voor STM32N6, een XSPI-driver, een gemeenschappelijke MPU-driver en firmware-/bootloader-signing op STM32.
Computed-goto VM — ingeschakeld op STM32 en nRF voor een snellere interpreter.
Bugfixes¶
Camera en sensoren:
De OV5640 PCLK-/belichtingsberekening gecorrigeerd (twee MIPI-lanes, gecorrigeerde delertabel).
De MT9V0xx Bayer-CFA-variant accepteert nu RGB565/BAYER/GRAYSCALE en levert correcte raw Bayer-data in plaats van een fout te geven.
Lens-shading-correctie voor PAG7936 ingeschakeld en het verschuiven van HD-afbeeldingen verholpen;
set_framerate()is nu per resolutie begrensd.Thermische opname met FLIR Lepton op de i.MX RT1060 verholpen (gecorrigeerde VoSPI CPOL/CPHA), en Lepton-momentopnamen geven nu specifieke foutcodes terug.
Frequentieafronding van GenX320 verholpen.
Beeldverwerking:
Geheugencorruptie in
to_ndarray()op grijswaardenafbeeldingen verholpen.Voorspelling van debayer-grenzen bij Bayer→RGB/grijswaarden-conversie verholpen.
draw_image()transposeverholpen op boards zonder SDRAM (gechunkte buffer).Verwerking van boolean-argumenten in
Image.binary()en deload_to_fb-vlag vanml.Modelverholpen.
Systeem:
SPI RX-only / TX-only pinconfiguratie op STM32 en i.MX RT verholpen.
De Portenta H7 Ethernet-DMA-buffers naar SRAM3 verplaatst zodat Ethernet werkt.
Een weggevallen teken in debug-channel-tekstuitvoer over USB verholpen; dynamische ML-allocatiegroottes naar boven afgerond om te kleine modelbuffers te voorkomen.
Hardware- en board-ondersteuning¶
Prophesee GenX320 event-gebaseerde visiesensor (STM32F7 + i.MX RT1060).
PAG7936-sensor (met MIPI-modus).
FLIR Boson 320/640 thermische camera’s (IDD 4-driver).
Nema GPU-versnelling op STM32.
STM32N6 bootloader-/XSPI-basiswerk.
VL53L5CX — ondersteuning voor power-enable-pin toegevoegd.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breuken tussen v4.5.9 en v4.6.0. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is getagd met de impact ervan:
major — de meeste scripts die het gebruikten moeten worden aangepast.
minor — beperkte API; treft alleen scripts die het gebruikten.
behavior — zelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
tooling — treft alleen het flashen / hosttools / boardbeschikbaarheid.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, spring dan naar de migratiechecklist aan het eind. Elke commit-hash linkt naar de bijbehorende diff op GitHub. Let op: de hernoeming van module sensor → csi in deze release is geen breaking change — sensor werkt nog steeds als alias.
Het alpha-bereik bij het tekenen is nu 0–255 (major)¶
Het alpha-argument van draw_image() en elke overlay die er een aanneemt (FIR, ToF, display, TV, MJPEG, alpha-tabellen) gebruikt nu een bereik van 0–255 in plaats van 0–256. Scripts die 256 doorgaven voor volledig dekkend, of die alpha berekenden tegen 256, moeten worden herschaald naar 0–255.
Commit: 1f87b5bb6
FLIR Lepton-ioctl-constanten hernoemd (minor)¶
Drie Lepton-ioctl-constanten zijn ingekort: 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 meegeleverde voorbeelden zijn bijgewerkt.
Commit: 12582d54d
Wijzigingen in de ML-postprocessing-API (minor)¶
ml.postprocessing is nieuw in deze release en de API ervan is tijdens de ontwikkeling verschoven: het constructor-keyword score_threshold van yolo_v2_postprocess is hernoemd naar threshold, en lege postprocessing-resultaten geven nu () terug in plaats van []. Het meegeleverde model yolov5_rgb_person is hernoemd naar yolo_v5_224_nano. ml.apps.MicroSpeech geeft nu willekeurige **kwargs door aan audio.init() in plaats van een vaste gain_db=24.
Commits: d67bd1ad7, 979b4e8ee, b89b815b2, 6671d9df5, 5c2f4388c
AGAST is de standaard-hoekdetector (behavior)¶
find_keypoints() gebruikt nu AGAST in plaats van FAST als standaard-hoekdetector op alle boards. Sleutelpuntsets (en daarmee descriptor-matches) verschillen van eerdere releases — controleer afgestelde sleutelpunt-pipelines opnieuw. IDE-framebuffer-streaming is nu ook begrensd op 20 Hz om de USB-belasting te verlagen.
Bootloader, verwijderde boards en functies (tooling)¶
De oude CDC-bootloader is vervangen door een nieuwe TinyUSB-gebaseerde standaard-DFU-bootloader op alle boards — het firmware-updatemechanisme is veranderd; pas je flash-workflow/tooling hierop aan. Het OpenMV Pro-board, de standalone Raspberry Pi Pico-build en de WiFi-debug (wifidbg) remote-IDE-functie zijn verwijderd.
Commits: a03fc90d8, c2e616aae, af3ea774b, f8bca9799, 59a38a0d3, 7edeb4fbe, d58d77fa2
Migratiechecklist¶
Voor een schone port naar v4.6.0 is het typische werk:
Herschaal elke
alpha-waarde bij tekenen/overlay van het bereik 0–256 naar 0–255 (de wijziging van het alpha-bereik).Hernoem eventuele FLIR Lepton-ioctl-constanten naar hun ingekorte vormen (de hernoeming van de Lepton-ioctl).
Als je de nieuwe ML-postprocessors gebruikte, schakel dan
score_thresholdom naarthreshold, verwerk een leeg()-resultaat en werk de modelnaamyolo_v5_224_nanobij (de ML-wijzigingen).Controleer op
find_keypoints()gebaseerde pipelines opnieuw vanwege de wijziging van de AGAST-detector (de wijziging van de hoekdetector).Werk je firmware-flash-workflow bij voor de nieuwe DFU-bootloader (de bootloader-/board-wijzigingen).