Table of Contents

Câmeras e extensões de entrada

Este artigo apresenta o modelo de câmera, os parâmetros e outras observações de uso para câmeras físicas, além da forma de estender a entrada usando uma custom camera.

camera

Input frame

Um input frame é uma unidade básica de dados em AR. Ele representa todas as informações relacionadas de um frame capturado por uma câmera ou outra fonte de dados. Um input frame geralmente contém:

  • Dados de imagem raw (camera image)
  • Parâmetros da câmera (como intrinsics)
  • Timestamp
  • Matriz transform da câmera em coordenadas do mundo
  • Tracking status

Essas informações fornecem aos algoritmos AR os dados de contexto espaço-temporal necessários para localization, tracking, rendering e outras tarefas.

Câmera física

As câmeras atualmente usadas em dispositivos eletrônicos geralmente são compostas por várias lentes e espelhos. Porém, normalmente não se usam estruturas ópticas reais para construir o modelo de câmera; em vez disso, usam-se modelos simplificados.

Modelo de câmera pinhole

pinhole camera

Este é o modelo mais simples normalmente usado. A luz passa por um pequeno orifício e forma uma imagem rotacionada em 180 graus, mas os dados de saída da câmera deixam a imagem na orientação correta. São necessários seis parâmetros para descrever esse modelo: largura e altura em pixels \(w, h\), focal lengths em pixels \(f_x, f_y\) e posições em pixels do principal point \(c_x, c_y\). Observe que, quando a largura e a altura em pixels são escaladas, as focal lengths e as posições do principal point também são escaladas de forma correspondente, mantendo a posição da imagem inalterada.

Modelo de câmera OpenCV

Algumas câmeras têm radial distortion e tangential distortion significativas. O modelo de câmera OpenCV adiciona parâmetros de ordem superior ao modelo pinhole para descrever radial distortion e tangential distortion. Radial distortion é descrita por \(k_1, k_2, k_3, \cdots\). Tangential distortion é descrita por \(p_1, p_2\).

Nota

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

Modelo de câmera fisheye OpenCV

A câmera fisheye usa perspective projection para comprimir conteúdo de grande campo de visão em uma área de imagem menor. O modelo de câmera fisheye OpenCV não inclui correção de distortion. Com base nos seis parâmetros do modelo pinhole, ele usa \(k_1, k_2, k_3, k_4, \cdots\) para descrição.

Nota

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

fisheye camera

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

Em celulares, quando o telefone é normalmente segurado na horizontal (rotacionado 90 graus no sentido anti-horário a partir da posição portrait normal) e a orientação de exibição da tela também é landscape, a imagem de saída da câmera traseira é exibida na tela na mesma direção da cena real. Alterar apenas a orientação de exibição da tela sem alterar a orientação física da tela não altera a orientação da imagem de saída da câmera física. Quando o telefone é segurado normalmente em portrait e a orientação de exibição da tela também é portrait normal, a imagem de saída da câmera traseira precisa ser rotacionada 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, o rendering da imagem da câmera exige compensação de rotação inversa para corresponder à cena real.

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

  • Celular

    • Android

      Android define uma natural orientation, que é a direção quando o telefone é normalmente segurado em portrait. A inertial measurement unit (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 parâmetro da câmera.

    • iOS

      No iOS, embora natural orientation não seja definida explicitamente, a inertial measurement unit usa a mesma referência do Android.

  • Tablet

    Alguns tablets têm natural orientation em landscape, enquanto outros, como celulares, usam portrait normal.

  • Óculos

    A natural orientation dos óculos geralmente é landscape.

Ao fazer rendering da imagem da câmera, a orientação da câmera e a orientação da tela são combinadas.

Tipo de câmera e camera flip

Celulares geralmente têm câmera traseira e câmera frontal. A imagem de saída da câmera frontal precisa ser invertida horizontalmente antes de ser exibida na tela para simular um espelho. Sem flip horizontal, o resultado parece muito estranho.

Extensão de entrada

EasyAR suporta extensão de entrada usando uma custom camera. Uma custom camera pode obter input frames de fontes externas e transmiti-los ao sistema AR para uso pelos trackers. Você pode implementar por conta própria a aquisição de dados de imagem para a custom camera.

Guias específicos de plataforma

O uso de câmeras e extensões de entrada está intimamente relacionado à plataforma. Consulte os seguintes guias para desenvolver de acordo com sua plataforma alvo: