Guias específicos da plataforma
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
As APIs Augmented Images no ARCore permitem criar apps de RA que podem 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 tons de cinza de cada imagem e armazena uma representação desses recursos em um ou mais bancos de dados de imagens aumentadas.
No momento da execução, o ARCore pesquisa 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, a orientação e o tamanho delas, se um não for fornecido.
Recursos
O ARCore pode rastrear até 20 imagens simultaneamente. O ARCore não detecta nem rastreia várias instâncias da mesma imagem simultaneamente.
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 no momento da execução, até o limite de 1.000 imagens por banco de dados. É possível baixar 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 melhora a performance de 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 são:
Imagens fixas, como uma impressão pendurada em uma parede ou uma revista em uma mesa
Imagens em movimento, como um anúncio em um ônibus ou uma imagem em um objeto plano mantido pelo usuário enquanto ele move as mãos.
Depois que o ARCore começa a rastrear uma imagem, ele fornece estimativas de posição e orientação da imagem a cada frame. O 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 a imagem sai temporariamente da imagem da câmera ao vivo porque o usuário moveu o dispositivo. Quando isso acontece, o ARCore pressupõ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 rastreamento acontece no dispositivo. Não é necessária uma conexão de Internet para detectar e rastrear imagens.
Requisitos
As imagens precisam:
Preencher pelo menos 25% do frame da câmera para serem detectadas inicialmente.
Ser planas (por exemplo, não enrugadas ou enroladas em uma garrafa).
Estar claramente visíveis na câmera. Elas não podem estar parcialmente obscurecidas, visualizadas em um ângulo muito oblíquo ou visualizadas quando a câmera está se movendo muito rápido devido ao desfoque de movimento.
Considerações sobre uso da CPU e performance
Dependendo dos recursos do ARCore que já estão ativados, a ativação de imagens aumentadas pode aumentar o uso da CPU do ARCore. Considere desativar os recursos não utilizados durante os períodos em que a experiência de RA não os exige. Isso disponibilizará mais ciclos de CPU para o app e melhorará a performance térmica e a duração da bateria.
Para mais informações, consulte Considerações sobre performance.
Práticas recomendadas
Dicas para selecionar imagens de referência
- A resolução da imagem precisa ser de pelo menos 300 x 300 pixels. O uso de imagens de alta resolução não melhora a performance.
- As imagens de referência podem ser fornecidas no formato de arquivo PNG ou JPEG.
- As informações de cores não são usadas. Imagens coloridas e equivalentes em tons de cinza podem ser usadas como imagens de referência ou por usuários no momento da execução.
- Evite imagens com compressão pesada , pois isso interfere na extração de recursos.
- Evite imagens que contenham um grande número de recursos geométricos ou muito poucos recursos (por exemplo, códigos de barras, códigos QR, logotipos e outras artes de linha), pois isso resultará em detecção e performance de rastreamento ruins.
- Evite imagens com padrões repetidos , pois isso também pode causar problemas com detecção e rastreamento.
Use a ferramenta
arcoreimgincluída no SDK do ARCore para receber uma pontuação de qualidade entre0e100para cada imagem. Recomendamos uma pontuação de qualidade de pelo menos 75. Confira dois exemplos:Imagem de exemplo 1 Imagem de exemplo 2 

Pontuação: 0Pontuação: 100contém recursos 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 para gerar um arquivo de banco de dados de imagens. Essa ferramenta está disponível apenas para desenvolvimento do Android e do Android NDK. Ela é integrada ao SDK do Unity e ao plug-in do ARCore Unreal.
- O banco de dados armazena uma representação compactada dos recursos extraídos dos dados em tons 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 momento da execução.
- Adicione imagens em uma linha de execução de worker para evitar o bloqueio da linha de execução da interface.
- Ou, se possível, adicione imagens no tempo de compilação usando a ferramenta
arcoreimgincluída no SDK do ARCore.
- Se você souber o tamanho físico esperado de uma imagem, especifique-o. Essas informações melhoram a performance de detecção e rastreamento, especialmente para imagens físicas grandes (mais de 75 cm).
- Evite manter muitas imagens não utilizadas no banco de dados, porque há um pequeno impacto na performance do sistema devido ao aumento do uso da CPU.
Dicas para otimizar o rastreamento
- Se a imagem nunca se mover da posição inicial (por exemplo, um pôster afixado a uma parede), você poderá anexar uma âncora à imagem para aumentar a estabilidade do rastreamento.
- A imagem física precisa ocupar pelo menos 25% da imagem da câmera para a detecção inicial. Você pode pedir aos usuários que 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 completo. Quando uma imagem é detectada inicialmente pelo ARCore e nenhum tamanho físico esperado é especificado, o estado de rastreamento dela é 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.