Caméras et extension d'entrée
Cet article présente le modèle de caméra physique, les paramètres et certains points d'attention pour l'utilisation, ainsi que la méthode d'extension d'entrée via des caméras personnalisées.

Trame d'entrée
La trame d'entrée (Input Frame) est l'unité de données fondamentale en RA. Elle représente toutes les informations pertinentes capturées lors d'une acquisition depuis une caméra ou une autre source de données. Une trame d'entrée contient généralement :
- Les données d'image brutes (camera image)
- Les paramètres de la caméra (tels que les paramètres intrinsèques)
- Un horodatage
- La matrice de transformation de la caméra dans le système de coordonnées monde
- L'état de suivi (tracking status)
Ces informations fournissent le contexte spatio-temporel nécessaire aux algorithmes de RA pour le positionnement, le suivi, le rendu, etc.
Caméra physique
Les caméras utilisées actuellement sur les appareils électroniques sont généralement composées de plusieurs lentilles et miroirs. Cependant, leur modèle n'est généralement pas basé sur leur structure optique réelle, mais sur des modèles simplifiés.
Modèle de caméra sténopé

C'est le modèle le plus simple couramment utilisé, où la lumière forme une image inversée à 180 degrés à travers un petit trou. Cependant, les données sortantes de la caméra sont réorientées pour afficher l'image correctement. Six paramètres décrivent ce modèle : la largeur et la hauteur en pixels \(w, h\), la distance focale en pixels \(f_x, f_y\), la position du point principal en pixels \(c_x, c_y\). On peut noter que lors d'un redimensionnement de la largeur/hauteur en pixels, une mise à l'échelle correspondante de la distance focale et de la position du point principal maintient la position de l'image.
Modèle de caméra OpenCV
Certaines caméras présentent des distorsions radiales et tangentielles significatives. Le modèle de caméra OpenCV ajoute des paramètres d'ordre supérieur au modèle sténopé pour décrire ces distorsions. La distorsion radiale utilise \(k_1, k_2, k_3, \cdots\). La distorsion tangentielle utilise \(p_1, p_2\).
Note
Certains traqueurs ne prennent pas en charge le modèle de caméra OpenCV.
Modèle de caméra fisheye OpenCV
Les caméras fisheye utilisent une projection perspective pour comprimer un large champ de vision dans une petite surface d'imagerie. Le modèle de caméra fisheye OpenCV ne corrige pas les distorsions. Basé sur les 6 paramètres du modèle sténopé, il utilise \(k_1, k_2, k_3, k_4, \cdots\) pour décrire les distorsions.
Note
Certains traqueurs ne prennent pas en charge le modèle de caméra fisheye OpenCV.

Orientation de la caméra et orientation de l'image
Sur un téléphone, lorsque celui-ci est tenu horizontalement (rotation de 90 degrés dans le sens antihoraire depuis la position verticale normale) et que l'affichage de l'écran est également en mode paysage, l'image de la caméra arrière s'affiche à l'écran dans la même orientation que la scène réelle. Changer uniquement l'orientation d'affichage de l'écran sans modifier son orientation physique ne modifie pas l'orientation de l'image produite par la caméra physique. Lorsque le téléphone est tenu verticalement (position normale) et que l'affichage est également en mode portrait, l'image de la caméra arrière nécessite une rotation de 90 degrés dans le sens horaire pour s'afficher correctement à l'écran. Lorsque l'orientation d'affichage de l'écran change, le rendu de l'image de la caméra nécessite une compensation par rotation inverse pour correspondre à la scène réelle.
L'orientation de la caméra et celle de l'image sont généralement définies par rapport à l'orientation naturelle de l'appareil :
Téléphones
Android
Android définit une orientation naturelle correspondant au téléphone tenu verticalement (portrait). L'unité de capteur inertiel (IMU) utilise également cette orientation comme référence. L'angle de rotation de l'image de la caméra par rapport à cette orientation peut être obtenu comme paramètre de la caméra.
iOS
Sur iOS, bien qu'aucune orientation naturelle ne soit explicitement définie, l'unité de capteur inertiel utilise la même référence qu'Android.
Tablettes
L'orientation naturelle des tablettes peut être le mode paysage pour certaines, ou le mode portrait comme pour les téléphones pour d'autres.
Lunettes
L'orientation naturelle des lunettes est généralement le mode paysage.
Lors du rendu de l'image de la caméra, l'orientation de la caméra et celle de l'écran sont prises en compte conjointement.
Type de caméra et retournement d'image
Les téléphones ont généralement une caméra arrière et une caméra frontale. L'image de la caméra frontale doit être retournée horizontalement (effet miroir) avant d'être affichée à l'écran. Sans ce retournement, l'image paraîtrait peu naturelle.
Extension d'entrée
EasyAR prend en charge l'extension d'entrée via des caméras personnalisées. Cela permet de transmettre des trames d'entrée obtenues depuis une source externe au système RA, pour utilisation par les traqueurs. Une caméra personnalisée peut être implémentée pour acquérir les données d'image de manière autonome.
Guides spécifiques à la plateforme
L'utilisation des caméras et des extensions d'entrée est étroitement liée à la plateforme. Consultez les guides suivants en fonction de votre plateforme cible :