Cámaras y extensiones de entrada
Este artículo presenta el modelo de cámara, los parámetros y algunas otras notas de uso de las cámaras físicas, así como la forma de extender la entrada usando una custom camera.

Input frame
Un input frame es una unidad de datos básica en AR. Representa toda la información relacionada de un frame capturado desde una cámara u otra fuente de datos. Un input frame normalmente contiene:
- Datos de imagen raw (camera image)
- Parámetros de cámara (como intrinsics)
- Timestamp
- Matriz transform de la cámara en coordenadas del mundo
- Tracking status
Esta información proporciona a los algoritmos AR los datos de contexto espaciotemporal necesarios para localization, tracking, rendering y otras tareas.
Cámara física
Las cámaras que se usan actualmente en dispositivos electrónicos suelen estar compuestas por varias lentes y espejos. Sin embargo, normalmente no se usan estructuras ópticas reales para construir el modelo de cámara, sino modelos simplificados.
Modelo de cámara pinhole

Este es el modelo más simple de uso habitual. La luz pasa por un pequeño orificio y forma una imagen rotada 180 grados, pero los datos de salida de la cámara enderezan la imagen. Se necesitan seis parámetros para describir este modelo: ancho y alto en píxeles \(w, h\), focal lengths en píxeles \(f_x, f_y\) y posiciones en píxeles del principal point \(c_x, c_y\). Observe que, si se escalan el ancho y alto en píxeles, las focal lengths y las posiciones del principal point también se escalan correspondientemente, por lo que la posición de la imagen puede permanecer sin cambios.
Modelo de cámara OpenCV
Algunas cámaras presentan distorsión radial y tangencial significativa. El modelo de cámara OpenCV agrega parámetros de orden superior al modelo de cámara pinhole para describir radial distortion y tangential distortion. Radial distortion se describe con \(k_1, k_2, k_3, \cdots\). Tangential distortion se describe con \(p_1, p_2\).
Nota
Algunos trackers no admiten el modelo de cámara OpenCV.
Modelo de cámara fisheye OpenCV
La cámara fisheye usa perspective projection para comprimir contenido de gran field of view en un área de imagen más pequeña. El modelo de cámara fisheye OpenCV no incluye corrección de distorsión. Basado en los seis parámetros del modelo de cámara pinhole, usa \(k_1, k_2, k_3, k_4, \cdots\) para la descripción.
Nota
Algunos trackers no admiten el modelo de cámara fisheye OpenCV.

Orientación de cámara y orientación de imagen
En teléfonos móviles, cuando el teléfono se sostiene normalmente en horizontal (girado 90 grados en sentido antihorario desde la sujeción vertical normal) y la orientación de visualización de la pantalla también es horizontal, la imagen de salida de la cámara trasera se muestra en la pantalla en la misma dirección que la escena real. Cambiar solo la orientación de visualización de la pantalla sin cambiar la orientación física de la pantalla no cambia la orientación de la imagen de salida de la cámara física. Cuando el teléfono se sostiene normalmente en vertical y la orientación de visualización de la pantalla también es vertical normal, la imagen de salida de la cámara trasera debe rotarse 90 grados en sentido horario antes de mostrarse en la pantalla para coincidir con la escena real. Cuando la orientación de visualización de la pantalla rota, el rendering de la imagen de la cámara requiere compensación de rotación inversa para coincidir con la escena real.
La orientación de cámara y la orientación de imagen normalmente se definen respecto a la natural orientation del dispositivo:
Teléfono
Android
Android define una natural orientation, que es la dirección cuando el teléfono se sostiene normalmente en vertical. La inertial measurement unit (IMU) también usa esta dirección como referencia. El ángulo de rotación de la imagen de salida de la cámara respecto a esta dirección puede obtenerse como parámetro de cámara.
iOS
En iOS, aunque natural orientation no está definida explícitamente, la inertial measurement unit usa la misma referencia que Android.
Tableta
Algunas tabletas tienen natural orientation horizontal, mientras que otras, como los teléfonos, tienen orientación vertical normal.
Gafas
La natural orientation de las gafas suele ser horizontal.
Al renderizar la imagen de la cámara, se combinan la orientación de cámara y la orientación de pantalla para el rendering.
Tipo de cámara y camera flip
Los teléfonos móviles generalmente tienen cámara trasera y cámara frontal. La imagen de salida de la cámara frontal debe voltearse horizontalmente antes de mostrarse en la pantalla para simular un espejo. Si no se realiza el volteo horizontal, el resultado se ve muy poco natural.
Extensión de entrada
EasyAR admite la extensión de entrada mediante custom camera. Una custom camera puede obtener input frames de fuentes externas y transmitirlos al sistema AR para que los trackers los usen. Usted puede implementar por su cuenta la obtención de datos de imagen para la custom camera.
Guías específicas de plataforma
El uso de cámaras y extensiones de entrada está estrechamente relacionado con la plataforma. Consulte las siguientes guías para desarrollar según su plataforma objetivo: