v4.8.1¶
A versão v4.8.1 é baseada no Qt Creator 14.0.2 e tem como foco um novo protocolo de câmera OpenMV V2 de alta confiabilidade, um Code Profiler integrado e um fluxo de salvamento que mantém a câmera montada em vez de ejetá-la. O firmware incluído e o conjunto completo de exemplos foram atualizados para a 4.8.1. Não há quebras na API de scripting, mas o comportamento de salvar sem ejetar e a remoção de algumas flags seriais de inicialização são mudanças de fluxo de trabalho visíveis ao usuário.
Destaques¶
OpenMV Protocol V2 é uma nova pilha de câmera de alta confiabilidade (
OMVCamera/OMVTransport/OMVDebug) com CRC32, sequenciamento, ACK/NAK, retransmissão, eventos e fragmentação. É negociado automaticamente no momento da conexão e controla reset, boot, streaming, execução de script e estatísticas.Code Profiler é uma nova janela (
Window>Show Code Profiler) que consulta registros de profiling por função da câmera e exibe chamadas, microssegundos (μs) mín./máx./total/médio, ciclos médios, porcentagem e contadores de eventos em uma tabela ordenável.Save in place não ejeta mais a unidade da câmera; a IDE agora grava o
main.pye descarrega o volume para o disco, de modo que o dispositivo permanece montado.Detecção multi-sensor reporta todas as câmeras de uma placa, exibidas na barra de status como
Sensors: X, Y, com o sensor principal listado primeiro.Dynamic Frame Reading recalcula a melhor resolução de streaming bruto por formato de pixel e reconfigura o stream automaticamente.
Firmware e exemplos incluídos foram atualizados para a 4.8.1 em todas as placas, adicionando novos exemplos de câmera de eventos GenX320, ML TensorFlow, OLED Alif e shield LCD/Touch-LCD.
Novos recursos¶
Adicionado o protocolo de comunicação OpenMV V2: uma camada completa de transporte e transação com CRC32, sequenciamento, ACK/NAK, retransmissão, eventos e fragmentação, além de uma classe
OMVCameranegociada automaticamente na conexão e integrada ao driver serial (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Adicionada a janela Code Profiler (
Window>Show Code Profiler), que consulta registros de profiling por função e exibe chamadas, microssegundos (μs) mín./máx./total/médio, ciclos médios, porcentagem e contadores de eventos, resolvendo endereços para símbolos por meio de um parser de ELF ELFIO incluído (019d3cd2c, 57cd9e1cc).Adicionado um diálogo Debug Protocol Settings mostrando System Info, Host Stats e Device Stats ao vivo, atualizados a cada segundo, expondo as taxas de polling por canal além de controles de polling combinado vs. dividido (5220a6125, 0da2f79d0).
Adicionada a detecção multi-sensor: uma placa com mais de uma câmera reporta todas elas na barra de status como
Sensors: X, Y, com o sensor principal primeiro (cebc79ce7).Adicionado o Dynamic Frame Reading (ativado por padrão), que recalcula a melhor resolução de streaming bruto por formato de pixel (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) e reconfigura o stream (75c073bdb, 0da2f79d0).Adicionada a decodificação de framebuffer para os formatos de pixel bruto
BINARY(mono de 1 bpp) eARGB8(alpha de 32 bits), de modo que esses tipos de imagem agora são renderizados no visualizador (dabb82062).No Windows, o Connect agora verifica dispositivos USB sinalizados com problema pelo sistema operacional e avisa com uma lista dos dispositivos defeituosos que podem bloquear a conexão (1a5beb081, 1b59cd78e).
Adicionado um indicador de registro na barra de status: um botão verde
Registeredou coralUnregisteredpara a câmera conectada, clicável para registrar a placa (a8c98a4b9).O visualizador de framebuffer agora pode exibir uma mensagem de texto centralizada enviada pelo script em execução por meio de um novo código de escape
FB_MESSAGEem vez de uma imagem (530048201).Adicionadas novas entradas no model-zoo: modelos de estimativa de profundidade ST FastDepth (224/256/320), um modelo de pose de pontos de referência da cabeça da ST, modelos de mão para detecção de palma e pontos de referência da mão, e um modelo de detecção de rosto frontal BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Adicionado um script de autoteste exclusivo de builds de fábrica (câmera, IMU, ToF, WiFi, LAN) que é incluído e aberto automaticamente na inicialização da variante de fábrica da IDE (0db7fbbb0); a parte de LAN do RT1060 do teste está atualmente desativada (48370d022).
Outras mudanças e melhorias¶
Save in place: salvar um script não ejeta mais a unidade da câmera; a IDE grava o
main.pye descarrega o volume para o disco (FlushFileBuffersno Windows,syncfsno Linux,sync_volume_np/F_FULLFSYNCno macOS), de modo que o dispositivo permanece montado (1614c572f, 6928b51ea, 35ed53967).Ações da barra de ferramentas clicadas enquanto a câmera está ocupada (desabilitar framebuffer, compressão JPEG, salvar script, configurar settings) agora são enfileiradas e executadas automaticamente quando o dispositivo fica livre, em vez de exibir um diálogo de erro de ocupado (f4315f0a4).
O visualizador de framebuffer agora usa por padrão o ajuste à janela, de modo que a imagem é redimensionada automaticamente ao tamanho da janela na inicialização, e o painel de saída do terminal serial agora é exibido por padrão na inicialização (f3ce4dc75).
Arquivos de modelo compilados com a extensão
.liteagora são reconhecidos em todos os lugares: filtragem e exibição do navegador do model-zoo, alinhamento do ROMFS do firmware, e os compiladores Vela/STEdge AI agora emitem saída.lite(f3ce4dc75).O diálogo de compilação de modelo do STEdge AI (N6) agora analisa e reporta as porcentagens de uso de NPU RAM e hyperRAM e copia a saída de rede realocada para um arquivo correspondente à extensão do modelo (f3ce4dc75).
O navegador do model-zoo agora exibe a coluna de Tamanho do arquivo e estica a coluna de nome para se ajustar, em vez de ocultar o tamanho (f3ce4dc75).
O template de novo script foi atualizado para a nova API do módulo
csie usa por padrão o framesize VGA, e o exemplo Hello World incluído foi mudado de framesize QVGA para VGA (f3ce4dc75).O diálogo Convert Video foi reescrito para usar o diálogo de carregamento compartilhado com saída colorida, mensagens de sucesso/falha, um botão de OK-para-fechar e um erro claro quando o FFMPEG não está disponível na plataforma (f56efc7be).
O visualizador de framebuffer agora exibe um aviso piscante quando uma imagem
JPEG/PNGé grande demais para colocar em buffer e enviar, por meio de um novo código de escapeFB_BUFFER_ERROR(fda826126).A entrada no bootloader DFU agora força o bootloader a permanecer residente em firmware com protocolo V2, com detecção de versão que recorre a um reset simples em bootloaders mais antigos (<1.0.2) que poderiam travar quando forçados (975857221).
Renomeadas e reorganizadas as pastas de modelos de detecção de objetos da ST (
st_yolo_lc_v1parayolo_lc,tiny_yolo_v2parayolo_v2, modelos de pessoayolov8npara arquivos nomeados simplesmente pelo tamanho) e removidas as grandes variantes int8 detiny_yolo_v2(34240cc3c).O timing serial agora é ajustado por meio das chaves de override de
protocolnosettings.jsondo firmware (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaite as chaves V2overrideCRC/overrideSEQ/overrideACK) em vez de flags de linha de comando de inicialização (019d8bf1d).Definido o limite de comprimento de linha do language-server do Python em 120 colunas para o flake8 e o pycodestyle, de modo que linhas longas não são mais sinalizadas no padrão de 79 (dabb82062).
Reduzido o conjunto de modelos de machine learning incluídos movendo a coleção de modelos da Qualcomm e o
google/mobilenet_v1paramodels_unuseda fim de reduzir o instalador (c44ddba20).
Correções de bugs¶
Os diálogos de progresso de download de firmware e de atualização de recursos foram tornados à prova de falhas usando guardas
QPointer, de modo que não usam mais um diálogo já excluído caso ele seja fechado no meio do download (f3ce4dc75).A varredura de unidades agora continua revarrendo até que a unidade USB da câmera seja encontrada e limpa entradas de unidade obsoletas na desconexão, removendo o antigo truque de timer de disparo único (a31d41b4e).
Várias correções de conexão e serial: sensores ocultos (por exemplo,
SoftCSI) não poluem mais o tipo de sensor exibido, um timer de keep-alive serial do Windows evita travamentos de USB, o Start não reinicia mais um script que já está em execução, e o canal da câmera é desconectado de forma limpa ao fechar a porta (a8e467be6).A visualização do profiler restaurou sua seleção de contadores de eventos PMU por coluna (menus de eventos marcáveis) e o estado salvo de contadores/cabeçalho que haviam sido temporariamente desativados (40c679e90).
Suporte de plataforma e ferramentas¶
Base do Qt Creator: 14.0.2.
Firmware incluído: atualizado de 4.7.0 para 4.8.1, recompilando o firmware para OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 e as placas Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).
Corrigido o handshake de versão de protocolo no macOS para as placas RT1062 e AE3 dividindo a transferência USB multicomando em pedaços do tamanho de
USBDBG_LENque essas placas conseguem lidar (6b9d5f842).Refeito o pacote de drivers do Windows incluído: adicionados arquivos de driver
.cat/.infassinados por placa (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) e movidos os drivers seriais CDC para uma nova pastaopenmvcdccom um autoinstalador baseado em dpinst (439557829, ba3b01bfb).Adicionado suporte para revisões mais antigas do sensor de câmera MT9V032 registrando os IDs de sensor
0x1311e0x1312(junto com o0x1313existente) comoMT9V0X2(eaaa624e3).
Mudanças incompatíveis¶
Esta versão não tem quebras na API de scripting, mas há algumas mudanças de fluxo de trabalho visíveis ao usuário:
Salvar um script não ejeta nem desmonta mais a unidade USB da câmera. A IDE agora descarrega os buffers do volume no lugar, de modo que o dispositivo permanece montado após um salvamento.
As flags seriais de inicialização
-override_read_timeout(padrão 5000 ms),-override_read_stall_timeout(padrão 1000 ms) e-override_per_command_wait(padrão 1 ms, 2 ms no macOS) foram removidas; o timing serial agora é configurado por meio das chaves de override deprotocolnosettings.jsondo firmware (019d8bf1d).Os bootloaders incluídos agora são fornecidos apenas como
.bin; os arquivos.dfude firmware e bootloader por placa foram removidos.