v4.4.3¶
v4.4.3 führt das Board OpenMV RT1060 (NXP i.MX RT1060), eine stark erweiterte MJPEG-Aufnahme-API, neue ISP-Bildmethoden (automatischer Weißabgleich, Farbkorrekturmatrix, Gamma) und MicroPython 1.20 ein. Die Arduino-Boardnamen wurden geändert und die MJPEG-Standardwerte haben sich verschoben — lesen Sie die nachstehenden Breaking Changes.
Highlights¶
OpenMV RT1060 — neues NXP-i.MX-RT1060-Board (und eine REV2-Revision).
Erweiterte MJPEG-API —
write(),count,is_closed,sync(), ROI-/Paletten-/Alpha-Schlüsselwörter und ein Finalizer.Neue ISP-Methoden —
image.awb(),image.ccm(),image.gamma().MicroPython auf 1.20.0 aktualisiert.
Breaking: Die Arduino-Board-Targets wurden umbenannt und die MJPEG-Standardqualität wurde geändert — siehe die Breaking Changes.
Neue Funktionen¶
OpenMV RT1060 — vollständiger NXP-i.MX-RT1060-Port (Sensor-, GPIO-, I2C-, SPI-Treiber) und Board-Konfiguration sowie Unterstützung für die Board-Revision RT1060 REV2 und
machine.RTC-Alarm/Wakeup auf dem i.MX-RT-Port.MJPEG — eine neue
Mjpeg.write()-Methode (mit den Schlüsselwörternroi,rgb_channel,alpha,color_palette,alpha_palette,hint) sowiecount,is_closed,sync()und ein__del__-Finalizer und die Konstruktor-AliaseMJPEG/Mjpeg/mjpeg.ISP-Bildmethoden —
image.awb([max])(automatischer Weißabgleich),image.ccm(matrix)(3x3-/4x3-Farbkorrekturmatrix) undimage.gamma(gamma, contrast, brightness).AprilTag — neue Gleitkomma-Schwerpunktattribute
cxf/cyf(cx/cygeben weiterhin gerundete Ganzzahlen zurück).ML —
tf.regression()akzeptiert nun ein ulab-ndarray und unterstützt 2D-Eingabetensoren (1D wird weiterhin unterstützt); zusätzliche TensorFlow-Lite-Operationen wurden in den mitgeliefertenlibtf-Bibliotheken aktiviert.
Weitere Änderungen und Verbesserungen¶
MicroPython auf 1.20.0 aktualisiert; ulab auf 6.0.12 aktualisiert.
image.gamma/gamma_corrwurde als ISP-Methode überarbeitet und erweitert, um Bayer- und YUV-Bilder zu unterstützen (nicht nur veränderbare Bilder).STM32-Boards (Portenta H7, Nicla Vision) wechselten zum quelloffenen cyw43-WiFi-Treiber.
Die
rtsp-Bibliothek wurde portabel gemacht (verwendetrandom/timeanstelle vonpyb);urequestsschließt nun stets seinen Socket.
Fehlerbehebungen¶
Kamera und Sensoren:
Behebung der OV767x-Taktrate (CLKRC) auf dem Arduino Nano 33 BLE Sense, der OV7670-CLKRC-Bypass-/Pre-Scaler-Behandlung und der vertauschten D0/D1-Datenleitungen auf der Arduino Nicla Vision / dem ML-Kit (nrf-Port).
System und USB:
Behebung der Behandlung kurzer USB-Pakete im TinyUSB-Debug-Modus (zuverlässigere IDE-/Host-Übertragungen).
Behebung der Polarität der blinkenden LED des OpenMV RT1060 und der SD-Karten-Erkennung beim Einschalten.
Hardware- und Board-Unterstützung¶
OpenMV RT1060 — neues NXP-i.MX-RT1060-Board sowie die REV2-Revision.
STM32 — Portenta H7 / Nicla Vision auf den quelloffenen cyw43-WiFi-Treiber umgestellt.
Breaking API-Änderungen¶
Für Benutzer sichtbare API-Brüche zwischen v4.4.2 und v4.4.3. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.
Jede Änderung ist mit ihrer Auswirkung gekennzeichnet:
behavior — gleiche API, andere Ergebnisse; überprüfen Sie abgestimmte Skripte erneut.
tooling — betrifft die Board-Benennung / das Flashen, nicht die Python-API.
Die Änderungen sind in dieser Reihenfolge nach Auswirkung gruppiert. Jeder Commit-Hash verlinkt auf seinen Diff auf GitHub.
MJPEG-Standardwerte und Fehlerbehandlung (behavior)¶
Der MJPEG-Aufnahmecode wurde überarbeitet. Die Standard-JPEG-quality von add_frame() / write() wurde von 50 auf 90 angehoben (Aufnahmen sind standardmäßig größer und von höherer Qualität), eine ungültige Qualität löst nun ValueError aus, Operationen auf einer geschlossenen Datei lösen nun OSError aus, und die Aufnahmemethoden geben nun das Mjpeg-Objekt zurück. Skripte, die von der alten Standardqualität oder dem vorherigen Fehlerverhalten abhingen, sollten erneut überprüft werden.
Commit: 3fc55ad31
Arduino-Board-Targets umbenannt (tooling)¶
Die Arduino-Board-Targets wurden auf eine aktualisierte Namenskonvention umbenannt und alle Board-Manifeste (eingefrorene Modulsätze) wurden aktualisiert. Dies ändert nicht die Python-API, aber die Firmware-Datei-/Boardnamen, die zum Erstellen oder Flashen von Arduino-Boards verwendet werden, haben sich geändert — aktualisieren Sie Ihr Tooling entsprechend.
Migrations-Checkliste¶
Für eine saubere Portierung auf v4.4.3: Überprüfen Sie MJPEG-Aufnahmen erneut hinsichtlich der neuen Standardqualität und des Fehlerverhaltens (die MJPEG-Änderung) und aktualisieren Sie das Build-/Flash-Tooling für die umbenannten Arduino-Board-Targets (die Board-Umbenennung). Alle anderen Skripte laufen unverändert.