v4.4.3

v4.4.3 introduce placa OpenMV RT1060 (NXP i.MX RT1060), un API de înregistrare MJPEG mult extins, metode noi de imagine ISP (balans automat de alb, matrice de corecție a culorilor, gamma) și MicroPython 1.20. Numele plăcilor Arduino au fost schimbate, iar valorile implicite MJPEG s-au modificat — citiți modificările incompatibile de mai jos.

Aspecte importante

  • OpenMV RT1060 — placă nouă NXP i.MX RT1060 (și o revizie REV2).

  • API MJPEG extinswrite(), count, is_closed, sync(), cuvinte-cheie ROI/palette/alpha și un finalizator.

  • Metode ISP noiimage.awb(), image.ccm(), image.gamma().

  • MicroPython actualizat la 1.20.0.

  • Incompatibil: țintele de placă Arduino au fost redenumite, iar calitatea MJPEG implicită s-a schimbat — vedeți modificările incompatibile.

Funcționalități noi

  • OpenMV RT1060 — port complet NXP i.MX RT1060 (drivere de senzor, GPIO, I2C, SPI) și configurație de placă, plus suport pentru revizia REV2 a plăcii RT1060 și alarmă/trezire machine.RTC pe portul i.MX RT.

  • MJPEG — o nouă metodă Mjpeg.write() (cu cuvintele-cheie roi, rgb_channel, alpha, color_palette, alpha_palette, hint) plus count, is_closed, sync() și un finalizator __del__, precum și aliasurile de constructor MJPEG / Mjpeg / mjpeg.

  • Metode de imagine ISPimage.awb([max]) (balans automat de alb), image.ccm(matrix) (matrice de corecție a culorilor 3x3 / 4x3) și image.gamma(gamma, contrast, brightness).

  • AprilTag — noi atribute de centroid în virgulă mobilă cxf / cyf (cx / cy returnează în continuare numere întregi rotunjite).

  • MLtf.regression() acceptă acum un ndarray ulab și suportă tensori de intrare 2D (1D este încă suportat); operații TensorFlow Lite suplimentare au fost activate în bibliotecile libtf incluse.

Alte modificări și îmbunătățiri

  • MicroPython actualizat la 1.20.0; ulab actualizat la 6.0.12.

  • image.gamma / gamma_corr au fost reproiectate ca metodă ISP și extinse pentru a suporta imagini Bayer și YUV (nu doar imagini mutabile).

  • Plăcile STM32 (Portenta H7, Nicla Vision) au trecut la driverul WiFi cyw43 open-source.

  • Biblioteca rtsp a fost făcută portabilă (folosește random/time în loc de pyb); urequests își închide acum întotdeauna socket-ul.

Corecturi de erori

Cameră și senzori:

  • S-au corectat rata ceasului OV767x (CLKRC) pe Arduino Nano 33 BLE Sense, gestionarea bypass/prescaler-ului CLKRC al OV7670 și liniile de date D0/D1 inversate pe Arduino Nicla Vision / kitul ML (portul nrf).

Sistem și USB:

  • S-a corectat gestionarea pachetelor USB scurte în modul de depanare TinyUSB (transferuri IDE/gazdă mai fiabile).

  • S-au corectat polaritatea LED-ului care clipește pe OpenMV RT1060 și detectarea cardului SD la pornire.

Suport hardware și plăci

  • OpenMV RT1060 — placă nouă NXP i.MX RT1060, plus revizia REV2.

  • STM32 — Portenta H7 / Nicla Vision au trecut la driverul WiFi cyw43 open-source.

Modificări incompatibile ale API-ului

Modificări incompatibile ale API-ului vizibile pentru utilizator între v4.4.2 și v4.4.3. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.

Fiecare modificare este etichetată cu impactul său:

  • comportament — același API, rezultate diferite; reverificați scripturile reglate fin.

  • tooling — afectează denumirea/flash-area plăcilor, nu API-ul Python.

Modificările sunt grupate după impact în această ordine. Fiecare hash de commit are legătură către diff-ul său de pe GitHub.

Valorile implicite MJPEG și gestionarea erorilor (comportament)

Codul de înregistrare MJPEG a fost revizuit. Valoarea implicită quality JPEG pentru add_frame() / write() a fost ridicată de la 50 la 90 (înregistrările sunt în mod implicit mai mari și de calitate superioară), o calitate invalidă ridică acum ValueError, operarea pe un fișier închis ridică acum OSError, iar metodele de înregistrare returnează acum obiectul Mjpeg. Scripturile care depindeau de vechea calitate implicită sau de comportamentul anterior la erori ar trebui reverificate.

Commit: 3fc55ad31

Țintele de placă Arduino redenumite (tooling)

Țintele de placă Arduino au fost redenumite conform unei convenții de denumire actualizate și toate manifestele de placă (seturile de module înghețate) au fost reîmprospătate. Aceasta nu schimbă API-ul Python, dar numele de fișiere/plăci de firmware folosite pentru a construi sau a flash-ui plăcile Arduino s-au schimbat — actualizați-vă tooling-ul în consecință.

Commit-uri: 77a7d16c0, 59d9f2603

Lista de verificare pentru migrare

Pentru o portare curată la v4.4.3: reverificați înregistrările MJPEG pentru noua calitate implicită și comportamentul la erori (modificarea MJPEG) și actualizați tooling-ul de construire/flash pentru țintele de placă Arduino redenumite (redenumirea plăcilor). Toate celelalte scripturi rulează nemodificate.