Adicionar dimensão às imagens

Guias específicos da plataforma

As APIs Augmented Images no ARCore permitem criar apps de RA capazes de detectar e aumentar imagens 2D no ambiente do usuário, como pôsteres ou embalagens de produtos.

Você fornece um conjunto de imagens de referência. O ARCore usa um algoritmo de visão computacional para extrair recursos das informações em escala de cinza em cada imagem e armazena uma representação desses recursos em um ou mais bancos de dados de imagens aumentadas.

Durante a execução, o ARCore procura esses recursos em superfícies planas no ambiente do usuário. Isso permite que o ARCore detecte essas imagens no mundo e estime a posição, orientação e tamanho delas caso não sejam fornecidos.

Recursos

O ARCore pode rastrear até 20 imagens simultaneamente. O ARCore não vai detectar nem rastrear simultaneamente várias instâncias da mesma imagem.

Cada banco de dados de imagens aumentadas pode armazenar informações de até 1.000 imagens de referência. Não há limite para o número de bancos de dados, mas apenas um pode estar ativo por vez.

As imagens podem ser adicionadas a um banco de dados de imagens aumentadas durante a execução, até o limite de 1.000 imagens por banco de dados. É possível fazer o download de bancos de dados criados anteriormente usando uma conexão de rede.

Ao adicionar uma imagem, é possível fornecer o tamanho físico da imagem a ser detectada. Isso vai melhorar o desempenho da detecção de imagens.

  • Se nenhum tamanho físico for fornecido, o ARCore estimará o tamanho e refinará essa estimativa ao longo do tempo.

  • Se um tamanho físico for fornecido, o ARCore usará o tamanho fornecido e estimará a posição e a orientação da imagem, ignorando qualquer discrepância entre o tamanho aparente ou real e o tamanho físico fornecido.

O ARCore pode responder e rastrear imagens que:

  • Imagens que são fixadas no lugar, como uma impressão pendurada na parede ou uma revista em uma mesa.

  • Imagens em movimento, como um anúncio em um ônibus ou uma imagem em um objeto plano segurado pelo usuário enquanto ele move as mãos

Depois que o ARCore começa a rastrear uma imagem, ele fornece estimativas para a posição e orientação de cada frame. A ARCore refina continuamente essas estimativas à medida que coleta mais dados.

Depois que uma imagem é detectada, o ARCore continua "rastreando" a posição e a orientação dela, mesmo quando ela sai temporariamente da visualização da câmera porque o usuário moveu o dispositivo. Quando isso acontece, o ARCore supõe que a posição e a orientação da imagem são estáticas e que a imagem não está se movendo pelo ambiente.

Todo o monitoramento é feito no dispositivo. Nenhuma conexão de Internet é necessária para detectar e rastrear imagens.

Requisitos

As imagens precisam:

  • Preencha pelo menos 25% do quadro da câmera a ser detectado inicialmente.

  • Ser plana (por exemplo, não amarrada nem enrolada em uma garrafa).

  • O dispositivo precisa estar claramente visível. Elas não podem ser parcialmente obscurecidas, visualizadas em um ângulo altamente oblíquo ou quando a câmera estiver se movendo muito rápido devido ao desfoque de movimento.

Considerações sobre uso da CPU e desempenho

Dependendo de quais recursos do ARCore já estão ativados, ativar as imagens aumentadas pode aumentar a utilização da CPU pelo ARCore. Desative todos os recursos não utilizados quando a experiência de RA não exigir isso. Isso disponibiliza mais ciclos de CPU para o app e melhora o desempenho térmico e a duração da bateria.

Para mais informações, consulte as considerações de desempenho.

Práticas recomendadas

Dicas para selecionar imagens de referência

  • A resolução da imagem precisa ser de pelo menos 300 x 300 pixels. Usar imagens com alta resolução não melhora o desempenho.
  • As imagens de referência podem ser fornecidas no formato de arquivo PNG ou JPEG.
  • Informações de cor não são usadas. Tanto as imagens coloridas quanto as equivalentes em escala de cinza podem ser usadas como imagens de referência ou pelos usuários no momento da execução.
  • Evite imagens com muita compactação, porque isso interfere na extração de recursos.
  • Evite imagens com muitos elementos geométricos ou poucos recursos (por exemplo, códigos de barras, códigos QR, logotipos e outras artes de linha), já que isso resulta em baixa performance de detecção e rastreamento.
  • Evite imagens com padrões repetidos, porque isso também pode causar problemas com a detecção e o rastreamento.
  • Use a ferramenta arcoreimg incluída no SDK do ARCore para conseguir um índice de qualidade entre 0 e 100 para cada imagem. Recomendamos um índice de qualidade de pelo menos 75. Veja dois exemplos:

    Imagem de exemplo 1 Imagem de exemplo 2
    Pontuação: 0 Pontuação: 100
    contém elementos geométricos repetitivos resolução suficiente; contém muitos recursos exclusivos

Dicas para criar o banco de dados de imagens

  • Use a ferramenta Arcoreimg para Android (link em inglês) para gerar um arquivo de banco de dados de imagens. Essa ferramenta está disponível apenas para desenvolvimento no Android e no Android NDK. Ele é integrado ao SDK do Unity e ao plug-in do ARCore Unreal.
  • O banco de dados armazena uma representação compactada dos atributos extraídos dos dados em escala de cinza nas imagens de referência. Cada entrada de imagem ocupa cerca de 6 KB.
  • Leva cerca de 30 ms para adicionar uma imagem ao banco de dados no tempo de execução.
    • Adicione imagens a uma linha de execução de worker para evitar o bloqueio dela.
    • Ou, se possível, adicione imagens durante a compilação usando a ferramenta arcoreimg incluída no SDK do ARCore.
  • Se você souber o tamanho físico esperado de uma imagem, especifique-o. Essas informações melhoram o desempenho da detecção e do rastreamento, especialmente para imagens físicas grandes (mais de 75 cm).
  • Evite manter muitas imagens não usadas no banco de dados, porque há um pequeno impacto no desempenho do sistema devido ao aumento da utilização da CPU.

Dicas para otimizar o acompanhamento

  • Se a imagem nunca se mover da posição inicial (por exemplo, um pôster fixado em uma parede), anexe uma âncora a ela para aumentar a estabilidade do rastreamento.
  • A imagem física precisa ocupar pelo menos 25% da imagem da câmera para detecção inicial. Você pode solicitar que os usuários ajustem a imagem física no frame da câmera.
  • Não use as estimativas de pose e tamanho da imagem até que o estado de rastreamento da imagem seja de rastreamento completo. Quando uma imagem for detectada inicialmente pelo ARCore e nenhum tamanho físico esperado for especificado, o estado de rastreamento dela será pausado. Isso significa que o ARCore reconheceu a imagem, mas não coletou dados suficientes para estimar a localização dela no espaço 3D.