Table of Contents

Câmeras e extensão de entrada

Este artigo apresenta o modelo de câmera, parâmetros e alguns outros pontos de atenção para uso de câmeras físicas, bem como a extensão de entrada por meio de câmeras personalizadas.

camera

Quadro de entrada

O quadro de entrada (Input Frame) é a unidade básica de dados em AR, representando todas as informações relevantes capturadas de uma câmera ou outra fonte de dados em um único quadro. Um quadro de entrada geralmente contém:

  • Dados de imagem bruta (camera image)
  • Parâmetros da câmera (como parâmetros intrínsecos)
  • Carimbo de data/hora (timestamp)
  • Matriz de transformação da câmera nas coordenadas do mundo
  • Estado de rastreamento (tracking status)

Essas informações fornecem o contexto espaço-temporal necessário para os algoritmos de AR realizarem localização, rastreamento, renderização, etc.

Câmera física

As câmeras usadas atualmente em dispositivos eletrônicos geralmente consistem em múltiplas lentes e espelhos. No entanto, geralmente não se usa a estrutura óptica real para construir o modelo da câmera, mas sim modelos simplificados.

Modelo de câmera estenopeica (pinhole)

pinhole camera

Este é o modelo mais simples normalmente usado, onde a luz passa por um pequeno orifício e forma uma imagem rotacionada em 180 graus. Porém, os dados de saída da câmera invertem a imagem para sua orientação correta. Seis parâmetros descrevem este modelo: largura e altura dos pixels \(w, h\), distância focal em pixels \(f_x, f_y\), e posição do ponto principal em pixels \(c_x, c_y\). Note que se a largura e altura dos pixels forem dimensionadas, a distância focal em pixels e a posição do ponto principal também escalam proporcionalmente, mantendo a posição da imagem inalterada.

Modelo de câmera OpenCV

Algumas câmeras apresentam distorção radial e tangencial significativas. O modelo de câmera OpenCV adiciona parâmetros de alta ordem ao modelo estenopeico para descrever essas distorções. A distorção radial é descrita usando \(k_1, k_2, k_3, \cdots\). A distorção tangencial é descrita usando \(p_1, p_2\).

Nota

Alguns rastreadores não suportam o modelo de câmera OpenCV.

Modelo de câmera fisheye OpenCV

Câmeras fisheye comprimem conteúdo de grande campo de visão em uma área de imagem menor usando projeção perspectiva. O modelo de câmera fisheye OpenCV não possui correção de distorção e usa \(k_1, k_2, k_3, k_4, \cdots\) para descrever a distorção, além dos 6 parâmetros do modelo estenopeico.

Nota

Alguns rastreadores não suportam o modelo de câmera fisheye OpenCV.

fisheye camera

Orientação da câmera e orientação da imagem

Em telefones, quando segurados horizontalmente (girados 90 graus no sentido anti-horário a partir da posição vertical normal) e com a tela também em orientação horizontal, a imagem da câmera traseira exibida na tela corresponde à cena real. Alterar apenas a orientação de exibição da tela, sem mudar sua orientação física, não altera a orientação da imagem de saída da câmera física. Quando segurados na posição vertical normal e com a tela também em orientação vertical, a imagem da câmera traseira precisa ser girada 90 graus no sentido horário antes de ser exibida na tela para corresponder à cena real. Quando a orientação de exibição da tela gira, a imagem da câmera renderizada precisa de uma compensação de rotação inversa para corresponder à cena real.

A orientação da câmera e da imagem são geralmente definidas em relação à orientação natural do dispositivo:

  • Telefone

    • Android O Android define uma orientação natural, que é a posição vertical normal de segurar o telefone. A unidade de sensor inercial (IMU) também usa essa direção como referência. O ângulo de rotação da imagem de saída da câmera em relação a essa direção pode ser obtido como um parâmetro da câmera.
    • iOS No iOS, embora não explicitamente definida, a unidade de sensor inercial também usa o mesmo referencial do Android.
  • Tablet A orientação natural de um tablet pode ser a posição horizontal ou, como nos telefones, a posição vertical normal.

  • Óculos A orientação natural dos óculos geralmente é a posição horizontal.

Ao renderizar a imagem da câmera, a orientação da câmera e a orientação da tela são consideradas em conjunto.

Tipo de câmera e inversão da imagem

Telefones geralmente têm câmeras traseiras e frontais. A imagem da câmera frontal precisa ser invertida horizontalmente (espelhada) antes de ser exibida na tela para simular um espelho. Sem essa inversão, a aparência parece pouco natural.

Extensão de entrada

O EasyAR suporta extensão de entrada usando câmeras personalizadas. Uma câmera personalizada permite obter quadros de entrada de fontes externas e transmiti-los para o sistema AR, para uso pelos rastreadores. Você pode implementar a obtenção dos dados de imagem para a câmera personalizada.

Guias específicos de plataforma

O uso de câmeras e extensão de entrada está intimamente relacionado à plataforma. Consulte os guias abaixo para desenvolvimento, de acordo com sua plataforma-alvo: