Je développe un SDK de réalité augmentée sur OpenCV. J'ai eu du mal à trouver des tutoriels sur le sujet, les étapes à suivre, les algorithmes possibles, le codage rapide et efficace pour les performances en temps réel, etc.
Jusqu'à présent, j'ai rassemblé les informations suivantes et des liens utiles.
Installation d'OpenCV
Télécharger dernière version du logiciel .
Vous pouvez trouver des guides d'installation aquí (plates-formes : linux, mac, Windows, java, Android, iOS).
En ligne documentation .
Réalité augmentée
Pour les débutants aquí est un code simple de réalité augmentée en OpenCV. C'est un bon début.
Pour tous ceux qui recherchent un SDK de pointe bien conçu, j'ai trouvé quelques étapes générales que toute réalité augmentée basée sur le suivi de marqueurs devrait avoir, en tenant compte des fonctions OpenCV.
-
Programme principal : crée toutes les classes, initialisation, capture des images de la vidéo.
-
Classe AR_Engine : Contrôle les parties d'une application de réalité augmentée. Il devrait y avoir 2 états principaux :
- détection : essaie de détecter le marqueur dans la scène
- suivi de Une fois qu'il est détecté, il utilise des techniques de calcul inférieures pour tracer le marqueur dans les images suivantes.
Il devrait également y avoir des algorithmes pour trouver la position et l'orientation de la caméra dans chaque image. Ceci est réalisé en détectant la transformation homographique entre le marqueur détecté dans la scène, et une image 2D du marqueur que nous avons traitée hors ligne. L'explication de cette méthode aquí (page 18). Les principales étapes de l'estimation de la pose sont les suivantes :
-
Charger les paramètres intrinsèques de la caméra . Préalablement extraites hors ligne par calibrage.
-
Charger le motif (marqueur) à suivre : C'est une image du marqueur planaire que l'on va suivre. Il est nécessaire d'extraire des caractéristiques et de générer des descripteurs ( points clés ) pour ce motif afin de pouvoir le comparer ultérieurement avec les caractéristiques de la scène. Algorithmes pour cette tâche :
-
Pour chaque mise à jour de trame, exécutez un algorithme de détection pour extraction de caractéristiques de la scène et générer des descripteurs. Là encore, nous avons plusieurs options.
-
Trouvez correspond à entre le motif et les descripteurs de la scène.
-
Trouvez Homographie matrice de ces matches. RANSAC peut être utilisé auparavant pour trouver les valeurs aberrantes/aberrantes dans l'ensemble des correspondances.
-
Extrait Pose de la caméra de l'homographie.
- Exemple de code sur Pose à partir de l'homographie .
- Exemple de code sur Homographie à partir de la pose .