J'essaie d'utiliser une caméra stéréo pour la reconstruction de scènes, mais je ne peux généralement obtenir que des nuages de points clairsemés (c'est-à-dire que plus de la moitié de l'image n'a pas d'informations de profondeur appropriées).
Je me rends compte que les algorithmes de traitement stéréo reposent sur la présence de texture dans les images et ont quelques paramètres qui peuvent être modifiés pour obtenir de meilleurs résultats, tels que la plage de disparité ou la taille de la fenêtre de corrélation. Même si je règle ces paramètres, je ne suis jamais en mesure d'obtenir des résultats qui sont même à distance proches de ce qui peut être obtenu en utilisant un capteur actif tel que le Kinect.
La raison pour laquelle je le souhaite est que, très souvent, les nuages de points correspondant à des régions adjacentes n'ont pas suffisamment de chevauchement pour que j'obtienne une correspondance, de sorte que la reconstruction est gravement altérée.
Ma question aux experts en vision par ordinateur est la suivante: que puis-je faire pour obtenir des nuages de points plus denses en général (sans modifier arbitrairement mon environnement de bureau)?
la source
Réponses:
Vous pouvez essayer d'ignorer la détection du point saillant, et simplement échantillonner de manière dense sur l'image (sous forme de grille) et calculer un descripteur de fonctionnalité à chaque point d'échantillonnage. Vous pouvez probablement même aller jusqu'à calculer un descripteur pour chaque pixel.
Vous pourriez perdre l'invariance d'échelle, mais je pense que cela ne fera pas trop mal pour la vision stéréo car les objets seront à peu près à la même échelle dans les deux images.
Une autre approche pourrait consister à combiner plusieurs algorithmes de détection de points saillants: coins, bords, taches, etc. Ensuite, vous devez utiliser le même algorithme de descripteur de fonctionnalités pour tous les points détectés, mais cette dernière partie peut être quelque peu délicate à mettre en œuvre.
la source
Ainsi, les algorithmes de traitement d'image stéréo que j'ai utilisés dans le passé ont été mis en œuvre pixel par pixel. Nous venons d'utiliser le modèle de caméra sténopé et avons fait des mesures à l'ancienne avec du ruban à mesurer jusqu'à ce que nos estimations de profondeur correspondent à la réalité.
Les équations pour une paire de caméras parallèles sont:
En utilisant ces équations, vous pouvez calculer un nuage stéréo dense. Un pour chaque pixel de vos caméras.
la source
Lorsque vous dites "plus de la moitié de l'image n'a pas d'informations de profondeur appropriées", quelle moitié?
Un problème que nous avons rencontré est que si la distance à l'objet est du même ordre de grandeur que votre ligne de base (généralement associée à des caméras très grand angle), alors les algorithmes stéréo denses "standard" ne fonctionnent pas si bien. Nous utilisons la bibliothèque libelas, et ses développeurs nous ont dit que cela s'appelait une "grande chaîne stéréo de base" et qu'il s'agissait d'un autre problème.
la source
Jetez un œil aux leaders KITTI Stereo Benchmark . Cette référence pénalise les algorithmes pour ne pas produire de disparité à un moment donné, de sorte que les plus performants produisent des sorties denses (même s'ils n'ont pas beaucoup de motifs pour leur estimation à plusieurs points). Certaines méthodes ont du code accessible au public qui est lié, que vous pouvez essayer.
Notez qu'ils ne sont pas pénalisés pour avoir pris beaucoup de temps, donc de nombreuses méthodes prendront l'ordre de quelques minutes par image à exécuter et peuvent ne pas convenir à votre application. De nombreuses méthodes basées sur CNN ont été introduites, mais elles fonctionnent très bien, tout en fonctionnant en moins d'une seconde (sur un GPU). Au moins l'un d'entre eux (CRL) a un code public.
Si vous n'obtenez toujours pas d'estimations de profondeur décentes avec celles-ci sur vos images, alors vous voyez peut-être les limites de ce qui est réalisable à partir d'une approche visible. Il doit fondamentalement y avoir une texture distinctive dans la zone pour pouvoir bien faire correspondre les points, ou vous avez besoin d'une base pour faire des hypothèses solides (par exemple, la douceur) dans les régions sans texture.
la source