v4.8.1¶
A versão v4.8.1 é compilada sobre o Qt Creator 14.0.2 e centra-se num novo protocolo de câmara OpenMV V2 de alta fiabilidade, num Analisador de Código integrado e num fluxo de gravação que mantém a câmara montada em vez de a ejetar. O firmware incluído e o conjunto completo de exemplos foram atualizados para a versão 4.8.1. Não existem quebras na API de scripting, mas o comportamento de guardar sem ejetar e a remoção de alguns sinalizadores de série no arranque são alterações visíveis ao fluxo de trabalho.
Destaques¶
O OpenMV Protocol V2 é uma nova pilha de câmara de alta fiabilidade (
OMVCamera/OMVTransport/OMVDebug) com CRC32, sequenciamento, ACK/NAK, retransmissão, eventos e fragmentação. É negociado automaticamente no momento da ligação e controla o reset, o arranque, a transmissão em fluxo, a execução de scripts e as estatísticas.O Analisador de Código é uma nova janela (
Window>Show Code Profiler) que obtém por sondagem os registos de análise por função a partir da câmara e apresenta chamadas, microssegundos mínimos/máximos/totais/médios (μs), ciclos médios, percentagem e contadores de eventos numa tabela ordenável.A funcionalidade Guardar no lugar já não ejeta o disco da câmara; o IDE escreve agora
main.pye liberta o volume para o disco, de modo a que o dispositivo permaneça montado.A deteção de múltiplos sensores reporta todas as câmaras numa placa, apresentadas na barra de estado como
Sensors: X, Ycom o sensor principal listado primeiro.A Leitura Dinâmica de Fotogramas recalcula a melhor resolução de transmissão em bruto por formato de pixel e reconfigura o fluxo automaticamente.
O firmware e os exemplos incluídos foram atualizados para a versão 4.8.1 em todas as placas, adicionando novos exemplos para câmara de eventos GenX320, TensorFlow ML, Alif OLED e shields LCD/Touch-LCD.
Novas funcionalidades¶
Adicionado o protocolo de comunicação OpenMV V2: uma camada de transporte e transação completa com CRC32, sequenciamento, ACK/NAK, retransmissão, eventos e fragmentação, além de uma classe
OMVCameranegociada automaticamente na ligação e integrada no controlador de série (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Adicionada a janela do Analisador de Código (
Window>Show Code Profiler), que obtém por sondagem os registos de análise por função e apresenta chamadas, microssegundos mínimos/máximos/totais/médios (μs), ciclos médios, percentagem e contadores de eventos, resolvendo endereços para símbolos através de um analisador ELF ELFIO incluído (019d3cd2c, 57cd9e1cc).Adicionada uma caixa de diálogo Definições do Protocolo de Depuração que apresenta System Info, Host Stats e Device Stats em direto, atualizados a cada segundo, expondo taxas de sondagem por canal e controlos de sondagem combinada vs separada (5220a6125, 0da2f79d0).
Adicionada deteção de múltiplos sensores: uma placa com mais de uma câmara reporta todas na barra de estado como
Sensors: X, Y, com o sensor principal em primeiro lugar (cebc79ce7).Adicionada a Leitura Dinâmica de Fotogramas (ativa por defeito), que recalcula a melhor resolução de transmissão em bruto por formato de pixel (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) e reconfigura o fluxo (75c073bdb, 0da2f79d0).Adicionada descodificação do buffer de fotograma para os formatos de pixel em bruto
BINARY(mono 1-bpp) eARGB8(alfa 32 bits), de modo a que esses tipos de imagem sejam agora apresentados no visualizador (dabb82062).No Windows, o Connect examina agora os dispositivos USB sinalizados com um problema pelo sistema operativo e emite um aviso com a lista dos dispositivos problemáticos que podem bloquear a ligação (1a5beb081, 1b59cd78e).
Adicionado um indicador de registo na barra de estado: um botão verde
Registeredou coralUnregisteredpara a câmara ligada, clicável para registar a placa (a8c98a4b9).O visualizador do buffer de fotograma pode agora apresentar uma mensagem de texto centrada enviada pelo script em execução através de um novo código de escape
FB_MESSAGE, em vez de uma imagem (530048201).Adicionadas novas entradas ao model-zoo: modelos de estimativa de profundidade ST FastDepth (224/256/320), um modelo de pose para landmarks da cabeça da ST, modelos de deteção de palma e landmarks da mão, e um modelo de deteção de face frontal BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Adicionado um script de autoteste exclusivo para builds de fábrica (câmara, IMU, ToF, WiFi, LAN) que é incluído e aberto automaticamente no arranque na variante IDE de fábrica (0db7fbbb0); a parte do teste LAN do RT1060 está atualmente desativada (48370d022).
Outras alterações e melhorias¶
Guardar no lugar: guardar um script já não ejeta o disco da câmara; o IDE escreve
main.pye liberta os buffers do volume para o disco (FlushFileBuffersno Windows,syncfsno Linux,sync_volume_np/F_FULLFSYNCno macOS) de modo a que o dispositivo permaneça montado (1614c572f, 6928b51ea, 35ed53967).As ações da barra de ferramentas acionadas enquanto a câmara está ocupada (desativar buffer de fotograma, comprimir JPEG, guardar script, configurar definições) são agora colocadas em fila e executadas automaticamente quando o dispositivo fica livre, em vez de apresentar uma caixa de diálogo de erro de Ocupado (f4315f0a4).
O visualizador do buffer de fotograma passa agora a ajustar por defeito a imagem à vista, de modo a que a imagem seja dimensionada automaticamente à janela no arranque, e o painel de saída do terminal de série é agora apresentado por defeito no arranque (f3ce4dc75).
Os ficheiros de modelo compilados com a extensão
.litesão agora reconhecidos em todo o lado: filtragem e apresentação no browser do model-zoo, alinhamento ROMFS do firmware, e os compiladores Vela/STEdge AI emitem agora saída com extensão.lite(f3ce4dc75).A caixa de diálogo de compilação de modelos STEdge AI (N6) analisa e reporta agora as percentagens de utilização de RAM NPU e hyperRAM, e copia a saída de rede relocalizada para um ficheiro com a extensão correspondente ao modelo (f3ce4dc75).
O browser do model-zoo apresenta agora a coluna Tamanho do ficheiro e estica a coluna de nome para ajustar, em vez de ocultar o tamanho (f3ce4dc75).
O modelo de novo script foi atualizado para a nova API do módulo
csie tem por defeito o tamanho de fotograma VGA, e o exemplo Hello World incluído foi alterado de QVGA para VGA (f3ce4dc75).A caixa de diálogo Converter Vídeo foi reescrita para utilizar a caixa de diálogo de carregamento partilhada com saída colorida, mensagens de sucesso/falha, um botão OK-para-fechar e um erro claro quando o FFMPEG não está disponível na plataforma (f56efc7be).
O visualizador do buffer de fotograma apresenta agora um aviso intermitente quando uma imagem
JPEG/PNGé demasiado grande para ser colocada no buffer e enviada, através de um novo código de escapeFB_BUFFER_ERROR(fda826126).A entrada no modo DFU bootloader força agora o bootloader a permanecer residente no firmware do protocolo V2, com deteção de versão que reverte para um reset simples em bootloaders mais antigos (<1.0.2) que podiam ficar bloqueados quando forçados (975857221).
Renomeadas e reorganizadas as pastas de modelos de deteção de objetos ST (
st_yolo_lc_v1parayolo_lc,tiny_yolo_v2parayolo_v2, modelosyolov8nde pessoa para ficheiros simples com nome de tamanho) e removidas as variantes int8 de grande dimensão dotiny_yolo_v2(34240cc3c).A temporização de série é agora ajustada através das chaves de substituição
protocoldo ficheirosettings.jsondo firmware (overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWait, e as chaves V2overrideCRC/overrideSEQ/overrideACK) em vez de sinalizadores de linha de comandos no arranque (019d8bf1d).O limite de comprimento de linha do servidor de linguagem Python foi definido para 120 colunas para o flake8 e pycodestyle, de modo a que as linhas longas deixem de ser sinalizadas com o valor predefinido de 79 (dabb82062).
Reduzido o conjunto de modelos de aprendizagem automática incluído, movendo a coleção de modelos Qualcomm e
google/mobilenet_v1paramodels_unusedde forma a diminuir o tamanho do instalador (c44ddba20).
Correções de erros¶
As caixas de diálogo de progresso de transferência de firmware e atualização de recursos foram tornadas seguras contra falhas através de proteções
QPointer, deixando assim de utilizar uma caixa de diálogo eliminada caso esta feche durante a transferência (f3ce4dc75).A análise de unidades continua agora a reanalisar até que o disco USB da câmara seja encontrado, e limpa as entradas de disco desatualizadas ao desligar, eliminando o hack anterior com temporizador de disparo único (a31d41b4e).
Várias correções de ligação e de série: os sensores ocultos (por exemplo,
SoftCSI) deixam de poluir o tipo de sensor apresentado, um temporizador de manutenção de série no Windows evita bloqueios USB, Start já não reinicia um script já em execução, e o canal da câmara é desligado de forma limpa ao fechar a porta (a8e467be6).A vista do analisador restaurou a seleção de contadores de eventos PMU por coluna (menus de eventos verificáveis) e o estado guardado de contadores/cabeçalho que tinha sido temporariamente desativado (40c679e90).
Suporte de plataforma e ferramentas¶
Base 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 do protocolo no macOS para as placas RT1062 e AE3, dividindo a transferência USB com múltiplos comandos em partes de tamanho
USBDBG_LENque essas placas conseguem processar (6b9d5f842).Remodelado o pacote de controladores Windows incluído: adicionados ficheiros de controlador
.cat/.infassinados por placa (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) e movidos os controladores de série CDC para uma nova pastaopenmvcdccom um instalador automático baseado em dpinst (439557829, ba3b01bfb).Adicionado suporte para revisões mais antigas do sensor de câmara MT9V032, registando os IDs de sensor
0x1311e0x1312(juntamente com o existente0x1313) comoMT9V0X2(eaaa624e3).
Alterações de rutura¶
Esta versão não apresenta quebras na API de scripting, mas existem algumas alterações visíveis ao fluxo de trabalho:
Guardar um script já não ejeta nem desmonta o disco USB da câmara. O IDE liberta agora os buffers do volume no lugar, de modo a que o dispositivo permaneça montado após guardar.
Os sinalizadores de série no arranque
-override_read_timeout(predefinição 5000 ms),-override_read_stall_timeout(predefinição 1000 ms) e-override_per_command_wait(predefinição 1 ms, 2 ms no macOS) foram removidos; a temporização de série é agora configurada através das chaves de substituiçãoprotocolno ficheirosettings.jsondo firmware (019d8bf1d).Os bootloaders incluídos são agora distribuídos apenas como
.bin; os ficheiros de firmware e bootloader.dfupor placa foram removidos.