v4.5.3¶
v4.5.3 är en stor utgåva: OV5640-autofokus, kantutjämnad linjeritning, en mainline-integrerad hårdvarubaserad JPEG-avkodare, stora kapacitetsförbättringar för i.MX RT (RT1060) och en bred uppsättning kamera-/ISP-fixar. Flera sällan använda bildmetoder togs bort och vissa ISP-/display-API:er ändrades — läs de brytande ändringarna nedan.
Höjdpunkter¶
OV5640-autofokus — aktiverat på OpenMV 4 / 4 Plus / RT1060 (
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), med ett exempel.Kantutjämnad
draw_line()och en mainline-integrerad hårdvarubaserad JPEG-avkodare för STM32 (snabbare JPEG-dekomprimering).OpenMV RT1060 fick ulab, ISP-operationer,
set_framerate()/set_frame_callback(), en mycket större bildbuffert och CAN-drivrutinen.Brytande:
Image.div()/cartoon()/mul()togs bort och vissa ISP-/display-API:er ändrades — se de brytande ändringarna.
Nya funktioner¶
OV5640-autofokus — autofokus-firmware är aktiverad på OPENMV4, OPENMV4P och OPENMV RT1060; utlös den med
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). Ett nytt exempel07-Sensor-Control/autofocus.pylades till.Kantutjämnad linjeritning —
draw_line()fick kantutjämning.Anpassade SPI-displaystyrenheter —
SPIDisplayaccepterar nu nyckelordetcontroller=och exponerar enbus_write-hook för anpassade init-/kommandosekvenser.Image.ccm()-uppgradering — accepterar nu nästlade 3x3-/4x3-/3x4-/4x4-matriser och ulab-arrayer (med en valfri offset-rad per kanal); ett exempel på färgkorrigering lades till.i.MX RT JPEG-infångning —
sensor.JPEG-infångning på Arduino Portenta/Nicla Vision/Giga, plusset_framerate()ochset_frame_callback()på mimxrt-porten.TFLite-modellvalidering — modeller bär nu en hash för operatorordning och en operatoruppsättningsstorlek.
WiFi — lade till CYW43-konstanter för säkerhetsläge; nya exempelskript för kortstyrning på i.MX RT (Pin/ADC/CAN/I2C/PWM/SPI/UART/…).
Övriga ändringar och förbättringar¶
MicroPython uppdaterad till 1.22; CMSIS uppdaterad till 5.9.0.
Mainline-integrerad hårdvarubaserad JPEG-avkodare för STM32 — snabbare JPEG-dekomprimering på den inbyggda codecen.
Optimerade
Image.invert()/negate()och binära/matematiska bildoperationer (CMSIS-intrinsics).Biblioteken
rpcochvl53l1xgjordes portabla (användermachine/timeistället förpyb), så att de körs på icke-STM32-portar.DMA-accelererad memcpy av bildbuffert på OpenMV H7 / H7 Plus / Pro / Pure Thermal och Arduino Giga / Nicla Vision / Portenta H7; STM32 skannar nu I2C-enheter en gång per skanning för snabbare uppstart.
Buggfixar¶
Kamera och sensorer:
Korrigerade STM32-kamerans XCLK till en sann 50 % arbetscykel och en bugg när kamerans klockfrekvens sätts till noll; korrigerade Bayer-beskärning+transponering, YUV422-färgskift och
set_windowing()på mimxrt-porten.Korrigerade GC2145-chip-ID-avkänningen och hmirror/vflip på roterade monteringar; korrigerade PAJ6100 på RT1062 och ett SPI-buffertöverflöde för PixArt PAJ7620/PAW3902.
Bildbehandling:
Korrigerade
find_rects()-roi-beskärning, trunkering av fraktionerad offset imorph(), standardvärden för kontrast/ljusstyrka iimage.gamma(), A/B-offset iget_threshold()på RGB565 och JPEG-avkodning av dimensioner som inte är en multipel av 8.
System och bibliotek:
machine.LED.value()utan argument returnerar nu LED-tillståndet istället för att rensa det; korrigerade SPI-SSEL-deinit på en delad buss,machine.deepsleep()på RT1062, en TF-krasch vid saknade operatorer och WINC1500/ninaw10-NIC:ens autoaktivering vidconnect().
Hårdvaru- och kortstöd¶
OpenMV RT1060 — ulab och ISP-operationer aktiverade, större bildbuffert (10M→20M) / fb_alloc (2M→11M), CAN-drivrutin återställd, mer heap.
Arduino GIGA — stöd för GC2145-kamera, med automatisk detektering av GC2145/OV5640 (de delar en I2C-adress).
i.MX RT — stöd för
sensor.JPEG-infångning.
Brytande API-ändringar¶
Användarsynliga API-brytningar mellan v4.5.2 och v4.5.3. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
minor — smalt API; påverkar endast skript som använde det.
behavior — samma API, annorlunda resultat; kontrollera inställda skript på nytt.
Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod, hoppa till migrationschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
Borttagna bildmetoder (minor)¶
Image.div(), Image.cartoon() (och dess exempel) och Image.mul() togs bort.
Display-modulens API (minor)¶
Den äldre reservlösningen med modulnamnet udisplay togs bort — modulen registreras nu endast som display. De DSI-exklusiva metoderna dsi_write() / dsi_read() ersattes av bus_write() / bus_read(), som nu är tillgängliga på alla displaystyrenheter.
API-ändringar för MQTT och tf.regression (minor)¶
mqtt-bibliotekets MQTTClient omarbetades: port är nu obligatoriskt, nya konstruktor-nyckelord ssl_params / callback och ett timeout-argument på connect() lades till, de gamla standardvärdena ssl= / port=0 togs bort, och check_msg() är nu icke-blockerande. tf.regression() skrevs om — dess signatur är nu regression(model, array) och den hanterar 1D-/2D-/3D- och kvantiserade (int8) modeller.
Beteendeändringar för ISP / sensor (behavior)¶
Image.awb() omarbetades — gråvärld (standard) kontra vitfält (max=True) är nu explicit, och argumentet max plus argumenten gamma / contrast / brightness i Image.gamma() är nu endast nyckelord (positionella anrop måste uppdateras). Bildtransponering är nu inaktiverad för YUV422 (den producerade tidigare felaktig utdata) och YUV422-färgskiftet korrigerades för att matcha Bayer. STM32-JPEG-vägen ger nu ett fel vid en geometriavvikelse i JPEG istället för att producera en korrupt bild, och WiFi AP-läge tillämpar nu ett standardsäkerhetsläge på STM32- och i.MX RT-portarna.
Commits: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af
Migrationschecklista¶
För en ren portning till v4.5.3 är det typiska arbetet:
Sluta använda
Image.div()/cartoon()/mul()(de borttagna metoderna).Importera display-modulen som
displayoch bytdsi_write/dsi_readtillbus_write/bus_read(display-API-ändringen).Uppdatera konstruktionen av
MQTTClient(portär obligatoriskt;ssl_params/callback) och eventuellatf.regression()-anrop (biblioteks-API-ändringarna).Skicka
awb()-maxochgamma()-gamma/contrast/brightnesssom nyckelordsargument, och kontrollera på nytt YUV422/transponering och säkerhetsantaganden för AP-läge (ISP-/sensor-ändringarna).