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.