Uma visualização de vídeo bem-sucedida por si só não é evidência suficiente de captura estável de imagem bruta no modo de operação pretendido. O software de exibição pode usar resolução mais baixa, um fluxo compactado, quadros ignorados ou uma política de buffer diferente. Registre os modos de operação e limites de medição e mantenha-os constantes antes de localizar o problema no dispositivo, transporte, motorista ou fila de aplicação.

Defina a camada onde os quadros são perdidos

Localização Campos observáveis Distinção para preservar
Dispositivo e transporte Identificadores de quadro de dispositivo, status e erros de transferência Não gerado, não recebido e inválido são eventos diferentes
Recepção do anfitrião Contagem recebida, comprimento válido, formato e erros Um buffer recebido não é necessariamente uma imagem válida
Adaptador e fila Motivos de enfileiramento, desenfileiramento, espera, ocupação e descarte Amostragem intencional e perda não intencional precisam de contadores separados
Processamento e saída Início, conclusão, tempos limite e identificadores de resultados Um resultado ausente pode refletir uma falha ou um salto intencional

Quando faltam números consecutivos de sequência de quadros de dispositivos, verifique também a reconexão, o reset e o contador envolvente (retornando ao início do intervalo de numeração). Os identificadores de quadro gerados pelo host descrevem a sequência recebida pelo host; eles não podem estabelecer de forma independente que o dispositivo não perdeu quadros.

Estabeleça uma reprodução mínima com frames brutos

Grave a câmera, firmware, cabo, host, driver, SDK, resolução, formato e taxa de quadros. Comece com um programa que receba e verifique quadros brutos. Adicione conversão, inferência, armazenamento e exibição separadamente enquanto compara erros e recursos. Registre exemplos de fornecedores separadamente dos aplicativos de negócios, em vez de comparar diferentes modos diretamente.

Verifique buffers e propriedade

Defina quando os buffers do SDK permanecem legíveis, quando devem ser retornados e se os retornos de chamada permitem propriedade de longo prazo. Registre o comprimento da fila e o tempo de espera. Se quadros antigos puderem ser descartados, preserve os motivos e contagens de descarte. Se cada quadro precisar ser armazenado, projete para rendimento e contrapressão. Uma fila maior por si só não estabelece uma solução.

Tempo e recuperação

Defina fontes de relógio e distinga os tempos de exposição, recepção, enfileiramento e conclusão. Para reconexão, especifique reaplicação de parâmetros, limpeza de buffer e reinicialização de sequência. Sem a temporização do dispositivo ou uma referência independente, os carimbos de data/hora do host não estabelecem a sincronização de exposição ou a resposta completa de ponta a ponta.

Teste a operação normal e a recuperação sob condições, simultaneidade e duração acordadas. Forneça configuração, definições de contadores, logs brutos e etapas de reprodução. Serviços relacionados: desenvolvimento de captura de imagem e SDKs de dispositivos de visão.