v3.6.5

v3.6.5 atualiza o TensorFlow e o ulab, melhora substancialmente a câmera HM01B0 (resoluções arbitrárias, QQVGA, recorte, set_auto_exposure() e uma correção de anti-flicker) e traz suporte a SDRAM externa do Portenta e a placas de produção. As antigas ferramentas/exemplos de treinamento CMSIS-NN foram removidos e o framebuffer do OpenMV 4 Plus foi reduzido — leia as mudanças incompatíveis abaixo.

Destaques

  • HM01B0 — suporte a resoluções arbitrárias, QQVGA, recorte e set_auto_exposure(), além de uma correção de flicker da exposição automática.

  • TensorFlow / ulab atualizados para suas versões mais recentes.

  • Portenta — uso de SDRAM externa e arquivos de placa de produção.

  • Correções — correção de lente, qualidade de imagem em baixas resoluções e uma correção do clock de FPS.

  • Incompatível: as antigas ferramentas e exemplos de treinamento/conversão CMSIS-NN foram removidos e o framebuffer do OpenMV 4 Plus foi reduzido — veja as mudanças incompatíveis.

Novos recursos

  • HM01B0 — adicionado suporte a resolução arbitrária, QQVGA e stubs adicionais, recorte no lado do sensor e suporte a sensor.set_auto_exposure().

  • Readout de apriltag — adicionado um exemplo de rastreamento de apriltag com controle de readout.

Outras mudanças e melhorias

  • Atualizados o TensorFlow e o ulab para suas versões mais recentes; adicionados o uso de SDRAM externa do Portenta e arquivos de placa de produção/CI; limpeza do driver MT9V034 e das funções de acesso ao framebuffer.

Correções de bugs

Câmera e imagem:

  • Corrigidos o flicker durante a exposição automática no HM01B0, a correção de lente, a qualidade de imagem em resoluções mais baixas, a cópia de linha OV5640/JPEG (dest_fb), o clock de FPS e o retorno de 0 quando bpp é negativo; removido um flip horizontal desnecessário do HM01B0.

Hardware e suporte a placas

  • HM01B0 — resoluções arbitrárias, QQVGA e recorte.

  • Arduino Portenta H7 — SDRAM externa e arquivos de placa de produção atualizados.

Mudanças incompatíveis de API

Quebras de API visíveis ao usuário entre v3.6.4 e v3.6.5. Escopo: C-modules Python em modules/, bibliotecas Python em scripts/libraries/ e as ferramentas/exemplos incluídos.

Cada mudança é marcada com seu impacto:

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

  • tooling — afeta as ferramentas de build/conversão ou os exemplos incluídos, não a API Python do firmware.

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.

Framebuffer do OpenMV 4 Plus reduzido (behavior)

O framebuffer do OpenMV 4 Plus foi reduzido para 20 MB (e o tamanho do buffer do OpenMV 2/3 foi corrigido). Scripts com pouca memória no OpenMV 4 Plus que alocavam quadros/objetos muito grandes a partir do framebuffer podem agora atingir os limites de alocação mais cedo e devem ser reavaliados.

Commits: 3a790a827

Ferramentas e exemplos antigos de CMSIS-NN removidos (tooling)

As antigas ferramentas de treinamento/conversão de modelos CMSIS-NN (nn_convert.py, nn_quantizer.py, os arquivos de modelo LeNet/CIFAR/smile) e os scripts de exemplo 25-Machine-Learning/nn_*.py foram removidos. O próprio módulo nn ainda funciona nesta versão (ele é removido depois, na v3.9.0), mas as ferramentas de geração de modelos CMSIS-NN se foram — use o fluxo de trabalho do TensorFlow Lite (tf) em vez disso.

Commits: 588f79a62

Lista de verificação de migração

Reavalie as alocações grandes de framebuffer no OpenMV 4 Plus em relação ao framebuffer reduzido de 20 MB (a mudança do framebuffer) e migre a geração de modelos CMSIS-NN para o fluxo de trabalho do TensorFlow Lite (a remoção das ferramentas CMSIS-NN). Todos os outros scripts funcionam sem alterações.