v4.4.3

v4.4.3 introduce la scheda OpenMV RT1060 (NXP i.MX RT1060), un’API di registrazione MJPEG molto ampliata, nuovi metodi ISP per le immagini (bilanciamento automatico del bianco, matrice di correzione del colore, gamma) e MicroPython 1.20. I nomi delle schede Arduino sono stati cambiati e i valori predefiniti MJPEG sono cambiati: leggi le modifiche con rotture di compatibilità qui sotto.

In evidenza

  • OpenMV RT1060 — nuova scheda NXP i.MX RT1060 (e una revisione REV2).

  • API MJPEG ampliatawrite(), count, is_closed, sync(), parole chiave ROI/palette/alpha e un finalizzatore.

  • Nuovi metodi ISPimage.awb(), image.ccm(), image.gamma().

  • MicroPython aggiornato alla 1.20.0.

  • Rottura di compatibilità: i target delle schede Arduino sono stati rinominati e la qualità predefinita MJPEG è cambiata: vedi le modifiche con rotture di compatibilità.

Nuove funzionalità

  • OpenMV RT1060 — porting completo di NXP i.MX RT1060 (driver sensore, GPIO, I2C, SPI) e configurazione della scheda, oltre al supporto della revisione di scheda RT1060 REV2 e di machine.RTC allarme/wakeup sulla porta i.MX RT.

  • MJPEG — un nuovo metodo Mjpeg.write() (con parole chiave roi, rgb_channel, alpha, color_palette, alpha_palette, hint) più count, is_closed, sync() e un finalizzatore __del__, e gli alias del costruttore MJPEG / Mjpeg / mjpeg.

  • Metodi ISP per le immaginiimage.awb([max]) (bilanciamento automatico del bianco), image.ccm(matrix) (matrice di correzione del colore 3x3 / 4x3) e image.gamma(gamma, contrast, brightness).

  • AprilTag — nuovi attributi di centroide in virgola mobile cxf / cyf (cx / cy restituiscono ancora interi arrotondati).

  • MLtf.regression() ora accetta un ndarray ulab e supporta tensori di input 2D (1D ancora supportato); ulteriori operazioni TensorFlow Lite sono state abilitate nelle librerie libtf incluse.

Altre modifiche e miglioramenti

  • MicroPython aggiornato alla 1.20.0; ulab aggiornato alla 6.0.12.

  • image.gamma / gamma_corr rielaborati come metodo ISP ed estesi per supportare immagini Bayer e YUV (non solo immagini mutabili).

  • Le schede STM32 (Portenta H7, Nicla Vision) sono passate al driver WiFi open-source cyw43.

  • La libreria rtsp è stata resa portabile (usa random/time invece di pyb); urequests ora chiude sempre il suo socket.

Correzioni di bug

Camera e sensori:

  • Corretti la frequenza del clock OV767x (CLKRC) sull’Arduino Nano 33 BLE Sense, la gestione del bypass/pre-scaler CLKRC dell’OV7670 e le linee dati D0/D1 invertite sull’Arduino Nicla Vision / ML kit (porta nrf).

Sistema e USB:

  • Corretta la gestione dei pacchetti USB corti in modalità debug TinyUSB (trasferimenti IDE/host più affidabili).

  • Corrette la polarità del LED lampeggiante della OpenMV RT1060 e il rilevamento della scheda SD all’accensione.

Hardware e supporto schede

  • OpenMV RT1060 — nuova scheda NXP i.MX RT1060, più la revisione REV2.

  • STM32 — Portenta H7 / Nicla Vision passate al driver WiFi open-source cyw43.

Modifiche API con rotture di compatibilità

Rotture di compatibilità dell’API visibili all’utente tra la v4.4.2 e la v4.4.3. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.

Ogni modifica è contrassegnata con il suo impatto:

  • comportamento — stessa API, risultati diversi; ricontrolla gli script regolati con cura.

  • tooling — interessa la denominazione / il flashing delle schede, non l’API Python.

Le modifiche sono raggruppate per impatto in quell’ordine. Ogni hash di commit rimanda al suo diff su GitHub.

Valori predefiniti MJPEG e gestione degli errori (comportamento)

Il codice di registrazione MJPEG è stato rivisto. La quality JPEG predefinita di add_frame() / write() è stata aumentata da 50 a 90 (le registrazioni sono più grandi e di qualità superiore per impostazione predefinita), una qualità non valida ora solleva ValueError, operare su un file chiuso ora solleva OSError, e i metodi di registrazione ora restituiscono l’oggetto Mjpeg. Gli script che dipendevano dalla vecchia qualità predefinita o dal precedente comportamento degli errori dovrebbero essere ricontrollati.

Commit: 3fc55ad31

Target delle schede Arduino rinominati (tooling)

I target delle schede Arduino sono stati rinominati secondo una convenzione di denominazione aggiornata e tutti i manifest delle schede (set di moduli congelati) sono stati rinnovati. Questo non modifica l’API Python, ma i nomi dei file firmware/delle schede usati per compilare o flashare le schede Arduino sono cambiati: aggiorna di conseguenza il tuo tooling.

Commit: 77a7d16c0, 59d9f2603

Checklist di migrazione

Per un porting pulito alla v4.4.3: ricontrolla le registrazioni MJPEG per la nuova qualità predefinita e il comportamento degli errori (la modifica MJPEG), e aggiorna il tooling di build/flash per i target delle schede Arduino rinominati (la rinominazione delle schede). Tutti gli altri script funzionano invariati.