Je développe un SDK de réalité augmentée sur OpenCV. J'ai eu quelques problèmes pour trouver des tutoriels sur le sujet, les étapes à suivre, les algorithmes possibles, un codage rapide et efficace pour des performances en temps réel etc.
Jusqu'à présent, j'ai rassemblé les informations suivantes et les liens utiles.
Installation d'OpenCV
Téléchargez la dernière version .
Vous pouvez trouver des guides d'installation ici (plates-formes: linux, mac, windows, java, android, iOS).
Documentation en ligne .
Réalité augmentée
Pour les débutants, voici un simple code de réalité augmentée dans 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 des marqueurs devrait avoir, compte tenu des fonctions OpenCV.
Programme principal: crée toutes les classes, initialisation, capture des images à partir 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 : tente de détecter le marqueur dans la scène
- tracking : une fois qu'il est détecté, utilise des techniques de calcul inférieures pour traquer le marqueur dans les images à venir.
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 d'homographie entre le marqueur détecté dans la scène, et une image 2D du marqueur que nous avons traité hors ligne. L'explication de cette méthode ici (page 18). Les principales étapes des estimations de pose sont:
Charger les paramètres intrinsèques de la caméra . Précédemment extrait hors ligne par étalonnage.
Chargez le motif (marqueur) à suivre: c'est une image du marqueur plan que nous allons suivre. Il est nécessaire d'extraire des caractéristiques et de générer des descripteurs ( points clés ) pour ce modèle afin que nous puissions ultérieurement comparer avec les caractéristiques de la scène. Algorithmes pour cette tâche:
Pour chaque mise à jour d'image, exécutez un algorithme de détection pour extraire des caractéristiques de la scène et générer des descripteurs. Encore une fois, nous avons plusieurs options.
Trouvez des correspondances entre le motif et les descripteurs de scène.
Trouvez la matrice d' homographie à partir de ces correspondances. RANSAC peut être utilisé avant pour rechercher des inliers / outliers dans l'ensemble de correspondances.
Extraire la pose de la caméra de l'homographie.
- Exemple de code sur Pose from Homography .
- Exemple de code sur l' homographie de Pose .