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.

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

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.

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: