Exibir QML retângulos no fluxo de vídeo com base no reconhecimento de objeto,

0

Pergunta

Eu tenho um fluxo de vídeo como descrever em Qt Visão geral em Vídeo, usando o MyVideoProducer a mecânica. As imagens de origem são analisados e eu tenho uma lista de componentes conectados (x,y,largura,altura) e eu gostaria de sobreposição de retângulos no vídeo.

Posso fazer isso através do envio de uma lista de retângulo coordena a QML e ter que colocar o retângulos ou eu preciso criar meus próprios sobreposição de imagens?

Eu olhei para o QtQuick sistema de partículas, mas ele não parece se encaixar. Outras perguntas têm o layout do retângulo gerenciado pelo Qt/Qml, mas eu preciso que o retângulo para ser colocada de acordo com as coordenadas que a visão de pipeline foi determinado em C++ e enviados para o software livre front-end. Eles serão obsoletos/relacionados com os quadros de vídeo.

um exemplo, mas a sobreposição é relacionado com o vídeo. Eu acho que eu preciso de uma sobreposição que é sincronizado para o onNewVideoContentReceived(). Software livre não ser capaz de determinar como manter qualquer lista de retângulo em sincronia com o vídeo.

computer-vision qml qt qt5
2021-11-22 18:51:32
1

Melhor resposta

1

Eu apenas modificado o buffer original de criação, debayered a partir de uma câmara, para desenhar os retângulos-me no formato RGBA. Isso evita o problema de sincronização do quadro de vídeo com o objeto de dados de localização. Eu não uso alpha, mas apenas a substituição de pixels. Para o meu conteúdo, a quantidade de caixas versus a área de vídeo, não foi grande. Com alfa retângulos e um monte de objetos, ele pode ser mais eficiente para envolver uma GPU. Na verdade, você poderia usado tamanho fixo praças e não o CCL delimitada região, e pode ser significativamente mais rápido, com um GPU.

Uma solução de software livre seria mais elegante, mas esta solução funciona.


Opções alternativas são QVideoFrame::setMetaDataesta pode amarrar o CCL QRect lista para o quadro, de modo a que a associação é clara e amarrado à moldura. O método onNewVideoContentReceived() do MyVideoProducer pode inutilizar o retângulos a partir de C++.

Outra opção é QAbstractVideoFilter, o que irá modificar o buffer original para adicionar dados adicionais para as imagens apresentadas. Isso é fácil de ativar/desativar através do software livre front-end.

Todas as soluções dependem de C++ por isso não é fácil para alterar a coloração, etc software livre. Por exemplo, se o objeto tem uma propriedade reconhecida como 'masculino', 'feminino', 'gato', 'veículo', etc o software livre poderia atualizar o destaque de forma adequada e manter uma contabilidade dos tipos de objeto.

2021-11-26 16:16:56

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................