2010-06-18 16 views
11

Actuellement, j'ai extrait des points de profondeur pour construire un modèle 3D à partir de 2 caméras stéréo. Les méthodes que j'ai utilisées sont la méthode openCV graphCut et un logiciel de http://sourceforge.net/projects/reconststereo/. Cependant, les modèles 3D générés ne sont pas très précis, ce qui me conduit à questionner: 1) Quel est le problème avec la méthode basée sur les pixels? 2) Dois-je changer ma méthode basée sur les pixels pour une méthode basée sur les caractéristiques ou sur la reconnaissance d'objets? Y a-t-il une meilleure méthode? 3) Y a-t-il d'autres façons de faire une telle reconstruction?Comment construire un modèle 3D d'une pièce à partir de 2 caméras stéréo? Quel est le facteur déterminant pour une construction précise?

De plus, la profondeur extraite provient uniquement de 2 images. Que faire si je tourne l'appareil photo à 360 degrés pour obtenir une vidéo? Dans l'attente de suggestions sur la façon de combiner cette information de profondeur.

Merci beaucoup :)

+0

Pour obtenir des informations générales sur la création d'images et de vidéos 3D à partir de séquences de 2 camereas, voir ici: http://forum.videohelp.com/threads/321678-Output-to-a-3D-TV-via-dual- tête-DVI-matériel-portable-scrn? s = 60b9858d8ecfd11a989b30ecd9fccbca & p = 1993356 & viewfull = 1 # post1993356 – therobyouknow

+0

:) Je pensais à obtenir des modèles 3D dans l'ordinateur – yasumi

Répondre

0

Et si je tourne la caméra 360 degrés pour obtenir une vidéo?

Je pense que vous vouliez dire 180 degrés. Si vous tournez les deux caméras (c'est-à-dire la plate-forme stéréo) à 180 degrés, alors ça va. Mais si les deux caméras sont à 180 degrés l'une de l'autre, et qu'il n'y a pas de chevauchement, il n'y a rien que vous puissiez faire.

 V 
    [.] 

    [.] 
    ^ 

Aussi, pour votre question concernant pixellisé par rapport à fonctionnalité basée par rapport basée sur la reconnaissance objet --- quel est votre objectif final?

+0

Je pense qu'il veut dire "que faire si je voudrais faire pivoter les caméras et a pris plusieurs images de différents angles de la même scène " – Niki

+0

Ce serait le premier scénario, ce qui est OK. – Jacob

+0

:) yup, plusieurs images. Mon objectif principal est d'obtenir un modèle 3D sans aide humaine. par exemple. L'ordinateur sera assez intelligent pour identifier que c'est une table et est capable de percevoir sa profondeur. C'est plus comme l'environnement environnant plutôt que sur un seul objet. – yasumi

0

Existe-t-il une meilleure méthode?

La meilleure méthode consiste à créer soi-même le modèle. Nécessite quelques semaines d'entraînement avec blender. Avec plusieurs caméras haute résolution, vous pouvez obtenir un résultat assez décent très rapidement. Vous ferez un meilleur travail qu'un ordinateur.

Y a-t-il d'autres façons de faire une telle reconstruction?

Balayage laser. Google pour "scanner laser maison" ou "scanner 3d fait maison". Plusieurs personnes ont essayé de développer de tels systèmes avec divers succès. Vous aurez besoin d'un laser linéaire (peut en faire un avec un pointeur laser). Mais vous n'obtiendrez pas d'informations sur les couleurs de cette façon - seulement un soulagement. Que faire si je fais tourner l'appareil photo à 360 degrés pour obtenir une vidéo?

Vous ne pouvez pas obtenir d'informations sur la profondeur d'une seule caméra, même si vous la faites pivoter. Vous avez besoin de 2 ou plus coups superposés prises à partir de différents points. Ou vous pourriez essayer de mettre un objet sur une table tournante (bien que vous fassiez une pièce, ce n'est pas possible).

+0

:) hmm ... mais pourquoi ne puis-je pas obtenir la profondeur d'une caméra puisque les images obtenues vont se chevaucher – yasumi

+0

@yasumi: Parce qu'elles sont toutes prises à partir d'un seul point. Pour trouver la distance à l'objet, vous avez besoin d'au moins deux points de référence. Géométrie: pour trouver les côtés du triangle (distance à l'objet), vous devez connaître au moins la longueur d'un côté (distance entre deux caméras) et deux angles (angle entre la ligne de visée et la ligne de l'objet) – SigTerm

+0

effectivement, il est possible d'obtenir la reconstruction de la scène à partir d'une caméra mobile, google reconstruction monoculaire/slam (il y a un document sur CVPR 2010 par Newcombe & Davison). Cependant, c'est un sujet de recherche actuel et pas encore pratique. Utiliser un scanner laser :) – Cfr

1

Il y a projet pour cela dans Sourceforge: 3D Reconstruction

+0

:) Je l'ai utilisé mais à y regarder de plus près, il y avait des pointes qui sortaient des images à cause des bruits ... donc à la recherche d'une meilleure façon de le gérer – yasumi

+0

créer une image 3D à partir d'images 2D. Je pense que vous êtes en train de pousser les limites de ce qui peut être fait actuellement. – Harriv

+0

Je pense à l'heure actuelle, peut-être que c'est pour se concentrer sur la surface sans relief. – yasumi

5

Le problème clé qui définit la précision de la reconstruction stéréo est une estimation de disparité. Cette zone a fait l'objet d'études approfondies, mais les résultats les plus récents sont recueillis sur la page: http://vision.middlebury.edu/stereo/eval/ Je vous recommande de choisir l'une des meilleures méthodes. Vous aurez probablement besoin de l'implémenter vous-même (les références aux articles sont en bas de la page), ou essayez de trouver une implémentation sur les pages d'accueil des auteurs. Regardez également http://vision.middlebury.edu/MRF/code/.

Vous devriez également essayer de comprendre la raison de la faible précision. Ce peut être l'incapacité de l'algorithme à capturer la structure d'une scène, ou simplement la basse résolution d'une sortie. Dans ce dernier cas, vous devez passer à la précision du sous-pixel. Le nombre de méthodes aborde ce problème. Utilisez la liste déroulante Error Threshold pour classer les algorithmes en fonction de la précision souhaitée.

Plusieurs caméras pourraient aussi aider. Les mots-clés sont "multi-view stereo".

+0

après les avoir regardées, avez-vous une idée de la raison pour laquelle l'estimation de profondeur échoue si c'est une surface sans relief (par exemple, une lampe dans tsukuba)? – yasumi

+0

De quelle méthode parlez-vous? Une méthode basée sur une fenêtre simple ne peut pas estimer la disparité dans une région sans texture car elle ne peut pas correspondre à deux fenêtres à partir des différentes images. Ils n'ont pas de caractéristiques, et tout changement est également possible. Les méthodes modernes n'ont pas ce problème puisqu'elles utilisent le contexte, par ex. via les MRF. Ils connaissent la disparité sur la bordure de la lampe et la propagent au centre. –