Guias específicos para cada 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 cartazes 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 em cada imagem e armazena uma representação desses recursos em um ou mais bancos de dados de imagem aprimorada.
No momento da 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 ou rastrear simultaneamente várias instâncias da mesma imagem.
Cada banco de dados de imagem aprimorada 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 deles pode estar ativo por vez.
As imagens podem ser adicionadas a um banco de dados de imagens de RA no momento da 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 para detecção. Isso melhora a performance da detecção de imagens.
Se nenhum tamanho físico for fornecido, o ARCore vai estimar o tamanho e refinar essa estimativa ao longo do tempo.
Se um tamanho físico for fornecido, o ARCore vai 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 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 que está passando 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 da imagem em cada frame. O ARCore refina continuamente essas estimativas à medida que coleciona mais dados.
Depois que uma imagem é detectada, o ARCore continua "rastrelando" a posição e a orientação da imagem, mesmo quando ela sai temporariamente da vista da câmera porque o usuário moveu o dispositivo. Quando isso acontece, o ARCore assume que a posição e a orientação da imagem são estáticas e que a imagem não se move pelo ambiente.
Todo o acompanhamento acontece no dispositivo. Não é preciso ter uma conexão de Internet para detectar e rastrear imagens.
Requisitos
As imagens precisam:
Preencha pelo menos 25% do frame da câmera para ser detectado inicialmente.
Ser plana (por exemplo, não amassada ou enrolada em uma garrafa).
Estar claramente visível para a câmera. Eles não podem estar parcialmente obscurecidos, vistos em um ângulo muito oblíquo ou quando a câmera está se movendo muito rápido devido ao desfoque de movimento.
Considerações sobre desempenho e utilização da CPU
Dependendo dos recursos do ARCore que já estão ativados, ativar as imagens aumenta a utilização da CPU do ARCore. Considere desativar os recursos não usados quando a experiência de RA não precisar deles. 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 considerações sobre desempenho.
Práticas recomendadas
Dicas para selecionar imagens de referência
- A resolução da imagem precisa ser pelo menos 300 x 300 pixels. O uso de imagens com alta resolução não melhora a performance.
- As imagens de referência podem ser fornecidas em formato de arquivo PNG ou JPEG.
- As 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 por usuários no tempo de execução.
- Evite imagens com compressão pesada, porque isso interfere na extração de recursos.
- Evite imagens com um grande número de elementos geométricos ou muito poucos elementos (por exemplo, códigos de barras, QR codes, logotipos e outras artes lineares), porque isso resulta em uma baixa performance de detecção e rastreamento.
- Evite imagens com padrões repetidos, porque isso também pode causar problemas de detecção e rastreamento.
Use a ferramenta
arcoreimg
incluída no SDK do ARCore para receber uma pontuação de qualidade entre0
e100
para cada imagem. Recomendamos uma pontuação 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 várias características exclusivas
Dicas para criar o banco 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 NDK do Android. Ele está integrado 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 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 momento da execução.
- Adicione imagens a uma linha de execução de worker para evitar o bloqueio da linha de execução de interface.
- Ou, se possível, adicione imagens no momento da 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 a detecção e o desempenho de rastreamento, principalmente 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 no desempenho do sistema devido ao aumento da utilização da CPU.
Dicas para otimizar o acompanhamento
- Caso sua imagem nunca se mova da posição inicial (por exemplo, um pôster fixado a uma parede), você pode anexar 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 a detecção inicial. Você pode pedir que os usuários ajustem a imagem física no quadro da câmera.
- Não use as estimativas de pose e tamanho da imagem até que o estado de rastreamento da imagem seja "Rastreamento completo". Quando uma imagem é detectada inicialmente pelo ARCore e nenhum tamanho físico esperado foi 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.