v4.1.2#

A v4.1.2 adiciona formatos de pixel avançados com debayering completo, processamento de imagem YUV, um novo módulo imu (LSM6DSOX), áudio de microfone digital DFSDM e suporte ao sensor de eventos FrogEye2020. O comportamento de erode()/dilate() e a biblioteca RPC de desktop mudaram — leia as mudanças incompatíveis abaixo.

Destaques#

  • Formatos de pixel avançados com suporte a debayering completo.

  • Processamento de imagem YUV.

  • Novo módulo imu — suporte ao LSM6DSOX (orientação configurável, MLC).

  • Áudio DFSDM — entrada de microfone digital.

  • Suporte ao sensor de eventos FrogEye2020.

  • Incompatível: erode()/dilate() agora operam em pixels não brancos e uma classe RPC de desktop foi renomeada — veja as mudanças incompatíveis.

Novos recursos#

  • Formatos de pixel avançados — novo tratamento de formato de pixel com suporte a debayering completo (Bayer → RGB/escala de cinza entre formatos).

  • Processamento de imagem YUV — adicionado suporte ao processamento de imagem YUV.

  • Módulo imu — um novo módulo de IMU com o driver LSM6DSOX, orientação de IMU configurável e suporte ao machine-learning-core (MLC).

  • Áudio — adicionado suporte a microfone digital DFSDM ao módulo audio.

  • FrogEye2020 — novo driver para o sensor de eventos FrogEye2020, com scripts de exemplo de câmera de eventos.

Outras mudanças e melhorias#

  • A codificação JPEG por software está ~10 % mais rápida (tratamento de bits melhorado).

  • machine.I2C agora usa o periférico I2C de hardware no STM32 H7.

  • find_apriltags(), find_line_segments() e o caminho de entrada do TensorFlow foram movidos para o backend unificado draw_image.

Correções de bugs#

  • Corrigidas situações de overflow na codificação JPEG por software, o compress de image e a detecção de formato IS_JPEG.

Hardware e suporte a placas#

  • Sensor de eventos FrogEye2020.

  • Arduino Nicla Vision (BORMIO) — pinout e VID/PID USB atualizados.

  • Arduino Portenta H7 — clock padrão do sensor definido em 12 MHz.

Mudanças incompatíveis na API#

Quebras de API visíveis ao usuário entre a v4.1.1 e a v4.1.2. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada mudança é marcada com seu impacto:

  • menor — API restrita; apenas ferramentas do lado do host.

  • comportamento — mesma API, resultados diferentes; reverifique scripts ajustados.

As mudanças são agrupadas por impacto nessa ordem. Cada hash de commit leva ao seu diff no GitHub.

Classe da biblioteca RPC de desktop renomeada (menor)#

Na biblioteca RPC de desktop do lado do host (tools/rpc/rpc.py), a classe rpc_wifi_or_ethernet_master foi renomeada para rpc_network_master, e os scripts de host RTSP/RPC foram migrados para usar as bibliotecas de rede padrão. Isso afeta apenas programas do PC host; scripts na câmera não são afetados.

Commits: a2f016ba0, a4858015c

erode() / dilate() operam em pixels não brancos (comportamento)#

Image.erode() e Image.dilate() foram corrigidos para operar em pixels não brancos em vez de apenas pixels brancos. Os resultados diferem das versões anteriores para imagens não binárias / não exclusivamente brancas — reverifique pipelines de morfologia ajustados.

Commit: 899f80759

Lista de verificação de migração#

Para uma porta limpa para a v4.1.2: em programas RPC do PC host, renomeie rpc_wifi_or_ethernet_master para rpc_network_master (a renomeação do RPC), e reverifique quaisquer resultados de erode() / dilate() em imagens não binárias (a mudança de morfologia). Caso contrário, os scripts na câmera rodam sem alterações.