Table des matières:

Reconstruction 3D à partir d'une seule photo : 8 étapes
Reconstruction 3D à partir d'une seule photo : 8 étapes

Vidéo: Reconstruction 3D à partir d'une seule photo : 8 étapes

Vidéo: Reconstruction 3D à partir d'une seule photo : 8 étapes
Vidéo: LES ÉTAPES DE LA DEVITALISATION DENTAIRE 2024, Novembre
Anonim
Reconstruction 3D à partir d'une seule photo
Reconstruction 3D à partir d'une seule photo
Reconstruction 3D à partir d'une seule photo
Reconstruction 3D à partir d'une seule photo

La tâche de reconstruction 3D est généralement associée à la vision binoculaire. Alternativement, vous pouvez déplacer une seule caméra autour de l'objet. Pendant ce temps, si la forme de l'objet est connue, la tâche peut être résolue à partir d'une seule photo. C'est-à-dire que vous n'avez qu'une seule caméra et qu'elle ne bouge pas. Voyons comment procéder étape par étape. Nous utiliserons Rubik's Cube car il est bien standardisé et possède un ensemble riche de fonctionnalités. Il peut être considéré comme un objet très simple et simultanément une construction compliquée. La vision industrielle doit donc surmonter des obstacles substantiels pour accomplir la tâche.

Étape 1: Évaluer la complexité de la tâche

Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche
Évaluer la complexité de la tâche

À première vue, la tâche est simple. Trouvez le nœud central où 3 arêtes du cube se rejoignent et dessinez ces arêtes. A partir de leurs coordonnées, il est possible de calculer la distance à la caméra et les angles de rotation. Le problème est que ces lignes n'existent pas. Sur l'image de gauche, vous voyez que chaque bord est représenté par 2 lignes parallèles. De plus, l'image en haut à droite montre que chacun d'eux est divisé en 3 segments. De plus, si nous appliquons une variante de la populaire transformée de Hough qui peut détecter des segments de ligne, elle effectue la tâche avec quelques erreurs qui rendent impossible la détection du nœud central. Si les extrémités ne se rejoignent pas, il n'y a pas de point unique. Si la détection dépasse la fin, cela ressemblera au nœud au milieu du bord comme vous le voyez sur les 2 images restantes.

Étape 2: Trouvez la bonne approche

Trouvez la bonne approche
Trouvez la bonne approche

Lorsque trop de détails rendent les algorithmes déterministes impraticables, il est temps d'envisager une approche probabiliste. Si l'on calcule les paramètres moyennés de l'image, leurs erreurs seront sensiblement diminuées et paradoxalement la méthode s'avérera plus fiable. La transformation de Hough standard ne produit pas de segments de ligne. Seulement sa pente theta et la distance rho de l'origine des coordonnées. Ils forment l'espace de Hough dont la partie est illustrée ci-dessus. Ici thêta correspond à l'axe horizontal. Des points lumineux marquent des lignes possibles sur l'image. Notez que plusieurs de ces spots sont situés les uns au-dessus des autres. Pas étonnant, sur notre image il y a beaucoup de lignes parallèles. Ils ont le même thêta et un rho différent.

Étape 3: Calculer l'histogramme thêta

Calculer l'histogramme thêta
Calculer l'histogramme thêta

Détectons de tels clusters. À cette fin, nous résumerons les lectures de tous les points dans l'espace de Hough avec le même thêta. Vous voyez l'histogramme correspondant sur l'illustration. Quelques notes sur les mesures. Lorsque vous travaillez avec des images en coordonnées de pixels, l'axe X se déroule comme d'habitude, mais Y pointe vers le bas de sorte que l'origine des coordonnées est le coin supérieur gauche et le thêta doit être mesuré à partir de l'axe X dans le sens des aiguilles d'une montre. En gardant à l'esprit que tout le balayage de thêta sur l'image est de 180 degrés, vous pouvez vérifier approximativement que 3 pics majeurs représentent 3 pentes prédominantes sur l'image.

Étape 4: Calculer l'histogramme Rho

Calculer l'histogramme Rho
Calculer l'histogramme Rho

Maintenant que nous connaissons 3 groupes principaux de lignes parallèles, séparons les lignes à l'intérieur de chacun d'eux. Nous pouvons répéter la même approche. Prenons une colonne de l'espace de Hough qui correspond à un pic sur l'histogramme thêta. Ensuite, nous allons calculer un autre histogramme où l'axe X représente la valeur rho et Y - les lectures résumées pour ce rho. Évidemment, la somme sera moindre donc ce graphique n'est pas si lisse. Néanmoins, les pics sont bien visibles et leur nombre (7) correspond exactement au nombre de lignes parallèles sur l'image source. Malheureusement, tous les graphiques ne sont pas aussi parfaits, mais le principe est clair.

Étape 5: Trouvez le nœud central

Trouver le nœud central
Trouver le nœud central

Si nous prenons le pic central sur l'histogramme rho pour chaque thêta, nous obtiendrons 3 lignes qui sont rouges sur l'image. Leur intersection marque le point nécessaire.

Étape 6: choisissez parmi 2 alternatives

Choisissez parmi 2 alternatives
Choisissez parmi 2 alternatives
Choisissez parmi 2 alternatives
Choisissez parmi 2 alternatives

Vous voyez que chaque ligne part du point central dans les deux sens. Comment déterminer la bonne moitié? Prenons theta3. Supposons que nous prenions la partie inférieure de cette ligne. Calculons encore un autre espace de Hough uniquement pour la partie de l'image entre 2 lignes vertes et le coin supérieur droit de l'image. Créez ensuite un histogramme thêta pour cela. Vous voyez que le troisième pic a complètement disparu donc nous avons fait le bon choix.

Étape 7: Déterminez les coins externes

Déterminer les coins externes
Déterminer les coins externes

Maintenant, nous pouvons utiliser le premier et le dernier pic sur les histogrammes rho afin de tracer des lignes bleues qui coupent les bords rouges et marquent les coins restants. La tâche est résolue.

Étape 8: essayez-le en pratique

Les illustrations de ce Instructable ont été créées à l'aide de Perception 1.0. Il s'agit d'un logiciel gratuit qui utilise OpenCV - une puissante bibliothèque de vision par ordinateur. Il peut également être lié à WinNB qui a été utilisé dans mon autre Instructable, offrant ainsi une capacité de vision pour la robotique. Vous pouvez télécharger les deux programmes à partir de nbsite. Pour l'installation, exécutez simplement le fichier exe téléchargé. Plus tard, vous pouvez le supprimer à l'aide de l'outil standard de Windows. Le site contient également des ressources sur la vision par ordinateur et des sujets connexes. Dans Perception, vous trouverez la méthode décrite de reconstruction 3D ainsi que bien d'autres. L'avantage de ce programme est qu'il génère le résultat final avec des données intermédiaires. Vous êtes capable de faire des recherches sur le fonctionnement de la vision par ordinateur sans être un programmeur. En ce qui concerne l'entrée, chaque méthode a des échantillons typiques spécialement sélectionnés. Bien sûr, vous pouvez également utiliser le vôtre. Il est possible de saisir des images à partir d'un fichier ou de l'appareil photo de l'ordinateur. N'hésitez pas à me contacter pour toutes questions ou suggestions.

Conseillé: