Complementando a realidade: material de revisão
Postado por Igor Litvinenko, desenvolvedor sênior de dispositivos móveis.Todo mundo provavelmente já ouviu falar de capacetes VR que criam o efeito de estar no mundo virtual. No entanto, hoje eu gostaria de falar não sobre virtual, mas sobre realidade aumentada. Esses conceitos são importantes para distinguir. Nos capacetes da realidade virtual, toda a imagem é gerada - tal realidade é completamente artificial. A realidade aumentada, diferentemente da realidade virtual, não implica a criação de uma realidade completamente artificial, mas a adição do fluxo de vídeo da nossa realidade a objetos e dados virtuais. Assim, ocorre a combinação do mundo virtual e do mundo real.Principais tecnologias de realidade aumentada
Como a realidade aumentada é criada? Para a adição de um objeto real específico, é necessário detectar esse objeto real no fluxo de vídeo. Isso é o mais importante - após a descoberta de um objeto, não é mais difícil concluir algo e de alguma forma complementá-lo. Existem diferentes maneiras de detectar os objetos necessários - principalmente para isso, são utilizados marcadores de realidade aumentada. Abaixo, na sequência evolutiva, estão listados os principais métodos para detectar objetos complementados:- O marcador ou imagem mais simples.
- Sem Marcador - Realidade Aumentada sem Marcador.
- Marcadores 3D simples.
- Uma combinação de marcadores para renderizar objetos complexos (cilindro, cubo, caixa).
- Marcador de quadro.
- Com base na localização.
- Realidade Aumentada Real.
Marcador de imagem
O marcador mais simples da realidade aumentada pode ser facilmente reconhecido pela moldura preta grossa. Esse objeto é muito fácil de detectar no fluxo de vídeo:
- Requisitos:
- Uma moldura preta cuja largura é de pelo menos 10%.
- Apenas preto e branco.
- Invariante para curvas - podemos indicar o ângulo exato de rotação a qualquer momento.
- Sempre quadrado.
- Os algoritmos aqui são os mais simples: podemos determinar as bordas da imagem (detecção de bordas), o quadrado e o quadrado branco no meio, executando esses limites - binarizando a exibição. Dessa forma, podemos acessar o conteúdo interno, cortá-lo e trabalhar com ele como uma imagem - é muito mais fácil do que digitalizar o quadro inteiro.
- Detecção de canto.
- Detecção de blob.
- Detecção de borda.
- Limiar.
- Benefício:
- O algoritmo de detecção mais simples são muitas bibliotecas abertas e fechadas que podem detectar um marcador.
- O mais estável - o marcador é sempre detectado com muita precisão e praticamente não há efeito de tremulação do modelo.
Sem marcador
Apesar do nome, com a abordagem sem marcador, o marcador ainda está lá. Só que aqui não parece um marcador, mas uma imagem.
- Requisitos:
- Um grande número de peças pequenas.
- Quanto mais cores, melhor.
- É invariável a curvas.
- A proporção ideal é de 1: 1, ou seja, quanto mais próximo do quadrado, melhor. Com uma proporção de 1: 2 ou mais, o marcador é reconhecido muito pouco
- Algoritmos Pontos característicos são usados para detectar esses marcadores: digamos que este é o ponto em que o gradiente muda. Ou seja, este é o ponto em que um limite claro é visível. Um algoritmo para encontrar pontos geométricos também pode ser usado: em alguns lugares da figura, existem marcadores precisos que formam cantos - por exemplo, uma cruz pode ser um ponto geométrico.
- Detect interest points.
- Fiducial markers/
- Edge detection — .
- Simultaneous localization and mapping (SLAM) — .
- :
Essa tecnologia nos permite levar em conta a forma simples de objetos tridimensionais: um cubo, um cilindro etc. Aqui, podemos criar uma configuração que ajuda a entender que tipo de objeto está à nossa frente - por exemplo, um objeto de uma determinada forma com uma certa combinação de cores pode servir como marcador (por exemplo, nós fez um pedido que identifica o medicamento por embalagem e etiqueta). Também criamos um aplicativo que reconhece marcas de vinho - a biblioteca pode encontrar rótulos de diferentes ângulos, o que não funciona com tecnologia simples ou sem marcador devido à transformação não linear de marcador.Marcador de quadro
Digamos que você esteja tendo uma conferência. Você tem um logotipo pendurado nas paredes para mostrar às pessoas para onde ir. Existe apenas um logotipo, portanto, todas as imagens são iguais; ao fazer isso, você precisa identificar exclusivamente cada imagem. Como fazer isso? Usando um marcador de quadro. Ao usar o marcador de quadro, o ID da imagem é criptografado no quadro:
- Requisitos:
- Quadro unificado.
- É invariável a curvas.
- Sempre quadrado.
- A imagem interna deve estar em contraste com o quadro.
- Tamanho pequeno (3 - 10 cm).
- Algoritmos:
- Benefício:
- A capacidade de identificar exclusivamente o mesmo marcador.
Realidade aumentada baseada em localização
Se você andar pela cidade e obter informações sobre os edifícios que vê, provavelmente a adição da realidade ocorre usando o local.
Nesse caso, não há tarefa de reconhecimento de imagem. Essa tecnologia é baseada no uso de um receptor GPS, bússola e acelerômetro presentes no dispositivo móvel. Graças a eles, sabemos em que direção estamos olhando. Assim, para complementar a realidade, basta responder corretamente às leituras dos sensores do dispositivo móvel. Essa tarefa não é tão difícil - existem bibliotecas suficientes que lidam bem com ela.Realidade Aumentada Real
Não há marcadores aqui. Aqui, em movimento, determinamos as formas e características 3D de qualquer objeto que caia nas lentes da câmera. Precisamos conhecer a profundidade do objeto para transformar uma imagem 2D em 3D. Para fazer isso, você pode usar, por exemplo, o algoritmo SLAM já mencionado, que procura pontos característicos nos objetos circundantes. Até agora, em dispositivos móveis, tudo isso é muito lento. Agora, a tecnologia dessa realidade aumentada está implementando ativamente a Sony em conjunto com o PlayStation.Keyshare - keyshare.org
E agora vou contar como escrevemos nosso mecanismo de realidade aumentada no DataArt e por que fizemos isso.Uma startup suíça decidiu propor um novo sistema para aumentar as vendas com base no uso da tecnologia de realidade aumentada, e nós desenvolvemos esse sistema para ela. É assim que funciona.Temos um marcador de realidade aumentada patenteado na forma de uma imagem-chave que pode ser colocada, por exemplo, em uma revista ao lado da descrição de um produto. Pontos brancos de tamanhos diferentes nesta chave permitem identificar exclusivamente o conteúdo. Existe um servidor - ele pega o código lido da chave e retorna ao usuário uma variedade de dados sobre o produto, seu modelo 3D etc.
Para desenvolver essa chave, tentamos todas as bibliotecas mais populares, mas não conseguimos encontrar um marcador que se encaixasse em nenhuma combinação. Quando usamos a realidade aumentada do marcador, ela fica em pontos-chave. O marcador é preto e branco e os pontos principais estão concentrados em locais de mudança. No final, decidimos escrever tudo do zero.Usamos o algoritmo de pesquisa MSER, que encontra apenas um escopo. Afinal, sabemos que existe definitivamente uma chave preta e há definitivamente uma cruz branca dentro dessa chave. Portanto, primeiro encontramos uma grande região negra e, dentro dessa região, encontramos uma região branca. Em seguida, recortamos a imagem e observamos a relação de aspecto - deve ser 2: 1. Em seguida, analisamos o formulário. Focando na cruz, podemos encontrar o começo da frase-chave. Quanto aos pontos, eles estão sempre localizados nos mesmos lugares, portanto, encontrá-los também é fácil. Como resultado, temos um algoritmo de pesquisa de marcadores para o formulário. Obviamente, essa não é uma solução universal, mas executa bem nossa tarefa.Portanto, no iPhone 5S, obtivemos um desempenho superior a 25 FPS. Conseguir isso foi bastante difícil. Inicialmente, como em qualquer algoritmo, reduzimos a imagem: o algoritmo de reconhecimento funciona muito melhor em uma imagem reduzida com baixa qualidade. Em seguida, eles introduziram o algoritmo de previsão - depois de encontrar a imagem, assumimos que a chave não pode sair do quadro mais do que um determinado valor de pixel. Então reduzimos a imagem. Depois disso, analisamos a dinâmica: se o usuário girar o telefone para a esquerda, a tecla se moverá para a direita. Este é um algoritmo probabilístico. se não encontrarmos imediatamente o que procuramos, começaremos a processar uma área cada vez maior. Temos um ótimo algoritmo de renderização de modelo, que foi escrito do zero.O que mais nós temos? Existem três linhas na chave, em cada uma delas há 13 pontos. Isso significa que 469 combinações são possíveis. Como a imagem já está um pouco embaçada a uma distância de mais de um metro, criamos um algoritmo probabilístico de descriptografia com correção de erros. Nós o usamos em conjunto com uma chave de correção automática. Portanto, identificamos com precisão os quatro sinais falsos, o que é suficiente. Também temos um algoritmo de detecção otimizado, um algoritmo de rastreamento e previsão para a próxima posição.Apesar do fato de que essa chave lembra um código QR, existem diferenças fundamentais. Você não pode anexar realidade aumentada ao código QR, porque seu conteúdo está mudando constantemente. Em outras palavras, você não pode criá-lo como um marcador. Você não pode colocar um modelo 3D e não pode determinar o ângulo de rotação. Além disso, essa chave é facilmente reconhecível.Reconhecedor de clubes de futebol
Também desenvolvemos um aplicativo que ajuda os usuários a acompanhar seus clubes de futebol favoritos. Permite adicionar realidade virtual à imagem do logotipo de um clube de futebol - quando você passa a câmera no logotipo, os dados do clube são exibidos. Source: https://habr.com/ru/post/pt391055/
All Articles