v3.6.3

v3.6.3 abilita TensorFlow sull’OpenMV 3 / F7, aggiunge il supporto ai modelli uint8/int8/float32, passa i sensori termici MLX90640/AMG8833 all’I2C hardware, aggiunge gli istogrammi di differenza tra immagini e l’offset della correzione della lente, e rielabora il controllo del readout. Le costanti hint di image sono state rinominate e lo scaling di draw_image() è cambiato — leggi le modifiche incompatibili più sotto.

In evidenza

  • TensorFlow su OpenMV 3 / F7tf abilitato sulle camere basate su F7, con supporto ai modelli uint8/int8/float32.

  • Sensori termici — MLX90640 e AMG8833 passati all’I2C hardware con un nuovo driver MLX90640.

  • Imaging — supporto alla differenza tra immagini in get_histogram() e correzione dell’offset per lens_corr().

  • draw_image — palette alpha in modalità scala di grigi e controllo del readout rielaborato.

  • Incompatibile: le costanti hint di image sono state rinominate e lo scaling negativo di draw_image() è stato rimosso — vedi le modifiche incompatibili.

Nuove funzionalità

  • TensorFlow — abilitato tf su OpenMV 3 / F7 e aggiornato TensorFlow per supportare i modelli uint8 / int8 / float32.

  • get_histogram() — aggiunta la capacità di differenza tra immagini.

  • lens_corr() — aggiunta la correzione dell’offset.

  • draw_image() — le palette alpha ora funzionano in modalità scala di grigi (non bilineare), con palette alpha interpolate bilinearmente e centratura dell’immagine; nuovo codice di controllo del readout.

Altre modifiche e miglioramenti

  • Passati MLX90640 e AMG8833 all’I2C hardware (nuovo driver MLX90640, I2C HW di board-config per sensori esterni, più ritentativi di readout MLX), abilitato l’I2C fast-mode-plus sulle camere che lo supportano, aggiunti i metodi read/write-bytes del cambus con le temporizzazioni I2C, e saltata l’applicazione dell’alpha quando vale 0 per migliorare le prestazioni.

Correzioni di bug

Camera e imaging:

  • Corretta e velocizzata la correzione della rotazione, il bug Bayer-to-YCbCr sul bordo sinistro e aggiunta una correzione del bordo a bayer_to_y() / bayer_to_binary().

Strumenti:

  • Corretti gli errori Python 2/3 e l’ordine delle chiamate di get_statistics().

Modifiche incompatibili delle API

Modifiche incompatibili visibili all’utente tra la v3.6.2 e la v3.6.3. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.

Ogni modifica è contrassegnata dal suo impatto:

  • minor — API ristretta; interessa solo gli script che la usavano.

  • behavior — stessa API, risultati diversi; ricontrolla gli script messi a punto.

Le modifiche sono raggruppate per impatto in quest’ordine. Se vuoi solo portare il tuo codice, salta alla checklist di migrazione alla fine. Ogni hash di commit rimanda al suo diff su GitHub.

Costanti hint di image rinominate (minor)

Le costanti hint di disegno di image sono state rinominate: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR e image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Gli script che passavano i vecchi nomi delle costanti a draw_image() devono usare i nuovi nomi. (Queste vengono rinominate di nuovo in image.BILINEAR / image.CENTER nella v3.7.0.)

Commit: 8f8872537

Scaling negativo di draw_image() rimosso (behavior)

image.draw_image() non supporta più lo scaling negativo e il punto di campionamento della texture è stato spostato al centro del pixel. Gli script che si affidavano allo scaling negativo per ribaltare un’immagine durante il disegno devono ribaltarla in altro modo, e l’output può spostarsi fino a mezzo pixel rispetto a prima.

Commit: 7e83dbb92

Checklist di migrazione

Rinomina image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER in image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (la rinomina delle costanti hint) e sostituisci qualsiasi scaling negativo di draw_image() con un ribaltamento esplicito (la modifica allo scaling di draw_image). Tutti gli altri script funzionano senza modifiche.