v4.5.3¶
v4.5.3 is een grote release: OV5640-autofocus, anti-aliased lijnen tekenen, een gemainlinede hardware-JPEG-decoder, grote i.MX RT (RT1060) capaciteitswinst en een brede reeks camera-/ISP-fixes. Verschillende zelden gebruikte image-methoden werden verwijderd en sommige ISP-/display-API’s veranderden — lees de breaking changes hieronder.
Hoogtepunten¶
OV5640-autofocus — ingeschakeld op OpenMV 4 / 4 Plus / RT1060 (
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), met een voorbeeld.Anti-aliased
draw_line()en een gemainlinede STM32 hardware-JPEG-decoder (snellere JPEG-decompressie).OpenMV RT1060 kreeg ulab, ISP-bewerkingen,
set_framerate()/set_frame_callback(), een veel grotere framebuffer en de CAN-driver.Breaking:
Image.div()/cartoon()/mul()werden verwijderd en sommige ISP-/display-API’s veranderden — zie de breaking changes.
Nieuwe functies¶
OV5640-autofocus — autofocus-firmware is ingeschakeld op OPENMV4, OPENMV4P en OPENMV RT1060; activeer het met
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). Een nieuw voorbeeld07-Sensor-Control/autofocus.pywerd toegevoegd.Anti-aliased lijnen tekenen —
draw_line()kreeg anti-aliasing.Aangepaste SPI-displaycontrollers —
SPIDisplayaccepteert nu eencontroller=keyword en biedt eenbus_writehook voor aangepaste init-/commandosequenties.Image.ccm()upgrade — accepteert nu geneste 3x3 / 4x3 / 3x4 / 4x4 matrices en ulab-arrays (met een optionele offset-rij per kanaal); een voorbeeld voor kleurcorrectie werd toegevoegd.i.MX RT JPEG-opname —
sensor.JPEGopname op Arduino Portenta/Nicla Vision/Giga, plusset_framerate()enset_frame_callback()op de mimxrt-port.TFLite-modelvalidatie — modellen dragen nu een hash van de operatorvolgorde en de grootte van de operatorenset.
WiFi — CYW43-beveiligingsmodusconstanten toegevoegd; nieuwe i.MX RT board-control voorbeeldscripts (Pin/ADC/CAN/I2C/PWM/SPI/UART/…).
Overige wijzigingen en verbeteringen¶
MicroPython bijgewerkt naar 1.22; CMSIS bijgewerkt naar 5.9.0.
Gemainlinede STM32 hardware-JPEG-decoder — snellere JPEG-decompressie op de on-chip codec.
Geoptimaliseerde
Image.invert()/negate()en binaire/wiskundige image-bewerkingen (CMSIS-intrinsics).De
rpc- envl53l1x-bibliotheken werden portabel gemaakt (gebruikmachine/timein plaats vanpyb), zodat ze draaien op niet-STM32-ports.DMA-versnelde framebuffer-memcpy op OpenMV H7 / H7 Plus / Pro / Pure Thermal en Arduino Giga / Nicla Vision / Portenta H7; STM32 scant nu eenmaal per scan naar I2C-apparaten voor sneller opstarten.
Bugfixes¶
Camera en sensoren:
STM32 camera-XCLK gefixt naar een echte 50%-duty-cycle en een bug wanneer de cameraklokfrequentie op nul wordt ingesteld; Bayer crop+transpose, YUV422-kleurverschuiving en
set_windowing()op de mimxrt-port gefixt.De GC2145 chip-ID-probe en hmirror/vflip op geroteerde montages gefixt; PAJ6100 op de RT1062 en een PixArt PAJ7620/PAW3902 SPI-bufferoverflow gefixt.
Beeldverwerking:
find_rects()roi-clipping,morph()fractionele offset-afkapping,image.gamma()contrast-/helderheidsdefaults,get_threshold()A/B-offsets op RGB565 en JPEG-decodering van afmetingen die geen veelvoud van 8 zijn gefixt.
Systeem en bibliotheken:
machine.LED.value()zonder argument retourneert nu de LED-status in plaats van die te wissen; SPI SSEL deinit op een gedeelde bus,machine.deepsleep()op de RT1062, een TF-crash bij ontbrekende operatoren en WINC1500/ninaw10 NIC-auto-activering bijconnect()gefixt.
Hardware- en boardondersteuning¶
OpenMV RT1060 — ulab en ISP-bewerkingen ingeschakeld, grotere framebuffer (10M→20M) / fb_alloc (2M→11M), CAN-driver hersteld, meer heap.
Arduino GIGA — GC2145-cameraondersteuning, met GC2145/OV5640 automatische detectie (ze delen een I2C-adres).
i.MX RT —
sensor.JPEGopnameondersteuning.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breaks tussen v4.5.2 en v4.5.3. Scope: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is getagd met de impact ervan:
minor — beperkte API; raakt alleen scripts die deze gebruikten.
behavior — dezelfde API, andere resultaten; controleer afgestelde scripts opnieuw.
Wijzigingen zijn gegroepeerd op impact in die volgorde. Als je alleen je code wilt porten, ga dan naar de migratiechecklist aan het eind. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
Verwijderde image-methoden (minor)¶
Image.div(), Image.cartoon() (en het bijbehorende voorbeeld) en Image.mul() werden verwijderd.
Display-module-API (minor)¶
De verouderde udisplay modulenaam-fallback werd verwijderd — de module is alleen geregistreerd als display. De alleen-DSI dsi_write() / dsi_read() methoden werden vervangen door bus_write() / bus_read(), die nu beschikbaar zijn op alle displaycontrollers.
MQTT- en tf.regression-API-wijzigingen (minor)¶
De MQTTClient van de mqtt-bibliotheek werd herwerkt: port is nu vereist, nieuwe ssl_params / callback constructor-keywords en een timeout argument op connect() werden toegevoegd, de oude ssl= / port=0 defaults werden verwijderd, en check_msg() is nu niet-blokkerend. tf.regression() werd herschreven — de signatuur is nu regression(model, array) en het verwerkt 1D-/2D-/3D- en gekwantiseerde (int8) modellen.
ISP-/sensorgedragswijzigingen (behavior)¶
Image.awb() werd herwerkt — gray-world (default) versus white-patch (max=True) is nu expliciet, en het max argument plus de gamma / contrast / brightness argumenten van Image.gamma() zijn nu keyword-only (positionele aanroepen moeten worden bijgewerkt). Image-transpose is nu uitgeschakeld voor YUV422 (het produceerde voorheen onjuiste uitvoer) en de YUV422-kleurverschuiving werd gecorrigeerd om overeen te komen met Bayer. Het STM32 JPEG-pad genereert nu een fout bij een JPEG-geometriemismatch in plaats van een corrupte afbeelding te produceren, en WiFi AP-modus past nu een standaardbeveiligingsmodus toe op de STM32- en i.MX RT-ports.
Commits: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af
Migratiechecklist¶
Voor een schone port naar v4.5.3 is het typische werk:
Stop met het gebruik van
Image.div()/cartoon()/mul()(de verwijderde methoden).Importeer de display-module als
displayen schakeldsi_write/dsi_readom naarbus_write/bus_read(de display-API-wijziging).Werk de constructie van
MQTTClientbij (portis vereist;ssl_params/callback) en eventueletf.regression()aanroepen (de bibliotheek-API-wijzigingen).Geef
maxvanawb()engamma/contrast/brightnessvangamma()door als keyword-argumenten, en controleer YUV422/transpose en AP-modus-beveiligingsaannames opnieuw (de ISP-/sensorwijzigingen).