Caméras et extensions d'entrée
Cet article présente le modèle de caméra, les paramètres et d'autres remarques d'utilisation des caméras physiques, ainsi que la façon d'étendre l'entrée avec une custom camera.

Input frame
Un input frame est une unité de données de base en AR. Il représente toutes les informations associées à une frame capturée depuis une caméra ou une autre source de données. Un input frame contient généralement:
- Données d'image raw (camera image)
- Paramètres de caméra (comme les intrinsics)
- Timestamp
- Matrice transform de la caméra en coordonnées monde
- Tracking status
Ces informations fournissent aux algorithmes AR les données de contexte spatio-temporel nécessaires pour localization, tracking, rendering et d'autres tâches.
Caméra physique
Les caméras actuellement utilisées sur les appareils électroniques sont généralement composées de plusieurs lentilles et miroirs. Cependant, les structures optiques réelles ne sont généralement pas utilisées pour construire le modèle de caméra; des modèles simplifiés sont utilisés à la place.
Modèle de caméra pinhole

C'est le modèle le plus simple couramment utilisé. La lumière traverse un petit trou et forme une image tournée de 180 degrés, mais les données de sortie de la caméra redressent l'image. Six paramètres sont nécessaires pour décrire ce modèle: largeur et hauteur en pixels \(w, h\), focal lengths en pixels \(f_x, f_y\), et positions en pixels du principal point \(c_x, c_y\). Notez que si la largeur et la hauteur en pixels sont mises à l'échelle, les focal lengths et les positions du principal point sont également mises à l'échelle en conséquence, ce qui permet de conserver la position de l'image.
Modèle de caméra OpenCV
Certaines caméras présentent une radial distortion et une tangential distortion significatives. Le modèle de caméra OpenCV ajoute des paramètres d'ordre supérieur au modèle de caméra pinhole pour décrire radial distortion et tangential distortion. Radial distortion est décrite par \(k_1, k_2, k_3, \cdots\). Tangential distortion est décrite par \(p_1, p_2\).
Note
Certains trackers ne prennent pas en charge le modèle de caméra OpenCV.
Modèle de caméra fisheye OpenCV
Une caméra fisheye utilise perspective projection pour compresser un contenu à grand champ de vision dans une zone d'imagerie plus petite. Le modèle de caméra fisheye OpenCV n'inclut pas de correction de distortion. Sur la base des six paramètres du modèle de caméra pinhole, il utilise \(k_1, k_2, k_3, k_4, \cdots\) pour la description.
Note
Certains trackers ne prennent pas en charge le modèle de caméra fisheye OpenCV.

Orientation de la caméra et orientation de l'image
Sur les téléphones mobiles, lorsque le téléphone est généralement tenu horizontalement (pivoté de 90 degrés dans le sens antihoraire depuis la tenue portrait normale) et que l'orientation d'affichage de l'écran est également horizontale, l'image de sortie de la caméra arrière s'affiche à l'écran dans la même direction que la scène réelle. Changer uniquement l'orientation d'affichage de l'écran sans changer l'orientation physique de l'écran ne modifie pas l'orientation de l'image produite par la caméra physique. Lorsque le téléphone est tenu normalement en portrait et que l'orientation d'affichage de l'écran est également portrait normal, l'image produite par la caméra arrière doit être tournée de 90 degrés dans le sens horaire avant d'être affichée à l'écran pour correspondre à la scène réelle. Lorsque l'orientation d'affichage de l'écran tourne, le rendering de l'image de la caméra nécessite une compensation de rotation inverse pour correspondre à la scène réelle.
L'orientation de la caméra et l'orientation de l'image sont généralement définies par rapport à la natural orientation de l'appareil:
Téléphone
Android
Android définit une natural orientation, qui correspond à la direction lorsque le téléphone est tenu normalement en portrait. L'inertial measurement unit (IMU) utilise également cette direction comme référence. L'angle de rotation de l'image de sortie de la caméra par rapport à cette direction peut être obtenu comme paramètre de caméra.
iOS
Sur iOS, bien que natural orientation ne soit pas explicitement définie, l'inertial measurement unit utilise la même référence qu'Android.
Tablette
Certaines tablettes ont une natural orientation horizontale, tandis que d'autres, comme les téléphones, ont une orientation portrait normale.
Lunettes
La natural orientation des lunettes est généralement horizontale.
Lors du rendering de l'image de la caméra, l'orientation de la caméra et l'orientation de l'écran sont combinées.
Type de caméra et camera flip
Les téléphones mobiles disposent généralement d'une caméra arrière et d'une caméra avant. L'image produite par la caméra avant doit être retournée horizontalement avant d'être affichée à l'écran afin de simuler un miroir. Sans retournement horizontal, le résultat semble très inhabituel.
Extension d'entrée
EasyAR prend en charge l'extension d'entrée au moyen d'une custom camera. Une custom camera peut obtenir des input frames depuis des sources externes et les transmettre au système AR pour être utilisés par les trackers. Vous pouvez implémenter vous-même l'acquisition des données d'image pour la custom camera.
Guides spécifiques aux plateformes
L'utilisation des caméras et des extensions d'entrée est étroitement liée à la plateforme. Consultez les guides suivants pour le développement selon votre plateforme cible: