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 / F7 —
tfativado 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 paralens_corr().draw_image — paletas alfa em modo escala de cinzentos e controlo de leitura reformulado.
Incompatível: as constantes de hint do
imageforam renomeadas e o escalonamento negativo dedraw_image()foi removido — consulte as alterações incompatíveis.
Novas funcionalidades#
TensorFlow — ativado
tfno 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_BILINEAR → image.IMAGE_HINT_BILINEAR e image.IMAGE_CENTER → image.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.