v3.6.3#

A v3.6.3 ativa o TensorFlow no OpenMV 3 / F7, adiciona suporte a modelos uint8/int8/float32, muda os sensores térmicos MLX90640/AMG8833 para hardware I2C, adiciona histogramas de diferença de imagem e offset de correção de lente, e reformula o controlo de leitura. As constantes de hint do image foram renomeadas e o escalonamento de draw_image() foi alterado — leia as alterações incompatíveis abaixo.

Destaques#

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

  • Sensores térmicos — MLX90640 e AMG8833 movidos para hardware I2C 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 em modo escala de cinzentos e controlo de leitura reformulado.

  • Incompatível: as constantes de hint do image foram renomeadas e o escalonamento negativo de draw_image() foi removido — consulte as alterações incompatíveis.

Novas funcionalidades#

  • TensorFlow — ativado tf no OpenMV 3 / F7 e TensorFlow atualizado para suportar modelos uint8 / int8 / float32.

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

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

  • draw_image() — as paletas alfa funcionam agora no modo escala de cinzentos (não bilinear), com paletas alfa com interpolação bilinear e centramento de imagem; novo código de controlo de leitura.

Outras alterações e melhorias#

  • Mudados o MLX90640 e o AMG8833 para hardware I2C (novo driver MLX90640, HW I2C em configuração de placa para sensores externos, maior retry de leitura MLX), ativado I2C fast-mode-plus em câmaras que o suportam, adicionadas leitura/escrita de bytes cambus com temporização I2C, e ignorada a aplicação de alfa quando é 0 por questões de desempenho.

Correções de erros#

Câmara e imagem:

  • Corrigida e acelerada a correção de rotação, o erro Bayer-to-YCbCr na aresta esquerda, e adicionada uma correção de aresta a bayer_to_y() / bayer_to_binary().

Ferramentas:

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

Alterações incompatíveis de API#

Alterações de API visíveis pelo utilizador entre a v3.6.2 e a v3.6.3. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada alteração está marcada com o seu impacto:

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

  • behavior — mesma API, resultados diferentes; re-verifique scripts ajustados.

As alterações estão agrupadas por impacto nessa ordem. Se apenas pretende portar o seu código, salte para a lista de verificação de migração no final. Cada hash de commit liga ao respetivo diff no GitHub.

Constantes de hint do image renomeadas (minor)#

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

Commits: 8f8872537

Escalonamento negativo de draw_image() removido (behavior)#

image.draw_image() já não suporta escalonamento negativo, e o ponto de amostragem de textura foi movido para o centro do pixel. Scripts que dependiam do escalonamento negativo para inverter uma imagem durante o desenho devem usar outro método de inversão, e a saída pode deslocar-se até meio pixel em relação ao comportamento anterior.

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 (a renomeação das constantes de hint), e substitua qualquer escalonamento negativo de draw_image() por uma inversão explícita (a alteração de escalonamento de draw_image). Todos os outros scripts funcionam sem alterações.