v3.6.3

v3.6.3 habilita o TensorFlow no OpenMV 3 / F7, adiciona suporte a modelos uint8/int8/float32, migra os sensores térmicos MLX90640/AMG8833 para I2C por hardware, adiciona histogramas de diferença de imagem e offset de correção de lente, e reformula o controle de readout. As constantes de hint de image foram renomeadas e a escala de draw_image() mudou — leia as mudanças incompatíveis abaixo.

Destaques

  • TensorFlow no OpenMV 3 / F7tf habilitado nas câmeras baseadas no F7, com suporte a modelos uint8/int8/float32.

  • Sensores térmicos — MLX90640 e AMG8833 migrados para I2C por hardware com um novo driver MLX90640.

  • Imagem — suporte a diferença de imagem em get_histogram() e correção de offset para lens_corr().

  • draw_image — paletas alfa no modo escala de cinza e controle de readout reformulado.

  • Incompatível: as constantes de hint de image foram renomeadas e a escala negativa de draw_image() foi removida — veja as mudanças incompatíveis.

Novos recursos

  • TensorFlow — habilitado tf no OpenMV 3 / F7 e atualizado o TensorFlow para dar suporte a modelos uint8 / int8 / float32.

  • get_histogram() — adicionada a capacidade de diferença de imagem.

  • lens_corr() — adicionada correção de offset.

  • draw_image() — as paletas alfa agora funcionam no modo escala de cinza (não bilinear), com paletas alfa interpoladas bilinearmente e centralização da imagem; novo código de controle de readout.

Outras mudanças e melhorias

  • Migrados o MLX90640 e o AMG8833 para I2C por hardware (novo driver MLX90640, I2C por HW na config de placa para sensores externos, mais tentativas de readout do MLX), habilitado o I2C fast-mode-plus nas câmeras que o suportam, adicionados read/write-bytes de cambus com timings de I2C e pulada a aplicação do alfa quando ele é 0, por desempenho.

Correções de bugs

Câmera e imagem:

  • Corrigida e acelerada a correção de rotação, o bug de Bayer-para-YCbCr na borda esquerda e adicionada uma correção de borda em bayer_to_y() / bayer_to_binary().

Ferramentas:

  • Corrigidos erros de Python 2/3 e a ordem de chamada de get_statistics().

Mudanças incompatíveis de API

Quebras de API visíveis ao usuário entre v3.6.2 e v3.6.3. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada mudança é marcada com seu impacto:

  • minor — API restrita; afeta apenas scripts que a usavam.

  • behavior — mesma API, resultados diferentes; reavalie scripts ajustados.

As mudanças estão agrupadas por impacto nessa ordem. Se você só quer portar seu código, vá direto para a lista de verificação de migração no final. Cada hash de commit aponta para o seu diff no GitHub.

Constantes de hint de image renomeadas (minor)

As constantes de hint de desenho de image foram renomeadas: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR e image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Scripts que passam os nomes antigos das constantes para draw_image() devem usar os novos nomes. (Elas são renomeadas novamente para image.BILINEAR / image.CENTER na v3.7.0.)

Commits: 8f8872537

Escala negativa de draw_image() removida (behavior)

image.draw_image() não suporta mais escala negativa, e o ponto de amostragem da textura foi movido para o centro do pixel. Scripts que dependiam da escala negativa para inverter uma imagem durante o desenho devem invertê-la de outra forma, e a saída pode deslocar-se em até meio pixel em relação a antes.

Commits: 7e83dbb92

Lista de verificação de migração

Renomeie image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER para image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (o renomear das constantes de hint) e substitua qualquer escala negativa de draw_image() por uma inversão explícita (a mudança de escala do draw_image). Todos os outros scripts funcionam sem alterações.