[PYTHON] Compréhension de base de l'estimation de la profondeur stéréo (Deep Learning)

J'ai résumé le flux d'estimation de la profondeur (disparité) par caméra stéréo.

Voir l'article précédent pour la correspondance stéréo générale https://qiita.com/minh33/items/55717aa1ace9d7f7e7dd

Processus d’optimisation de la profondeur 1. Feature Extraction => Extraire des fonctionnalités en utilisant le même réseau et le même poids à gauche et à droite (LxHxC). ex) intensité, forme, ..... etc. 2. Cost Volume => Créer un canal de disparité en décalant Pixel (DxWxHxC). D est une valeur arbitraire, et vous décidez de la Disparité maximale (pixel) que vous pouvez prendre. S'il est trop grand, il sera lourd, et s'il est trop petit, les objets proches ne seront pas appariés. 3. 3D Feature Matching => Apprenez à obtenir une grande valeur là où les caractéristiques droite et gauche sont proches en convoluant (DxWxHxC) avec les caractéristiques obtenues (DxWxHx1) 4. Disparity Regression => Convertir de (DxLxH) à (1xWxH) pour trouver la Disparité finale 5. Calculer la perte => Calculez la perte en utilisant LiDAR pour Ground Truth ou en déformant les images gauche et droite. Récemment, on voit souvent que l'apprentissage se fait uniquement avec des images.

image.png

Computing the Stereo Matching Cost with a Convolutional Neural Network(2015)

Améliorez la précision en remplaçant les fonctionnalités multicanaux en convoluant les caractéristiques des images droite et gauche au lieu de l'intensité image.png

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(2015)

Vous devez vous référer à une gamme plus large de pixels pour correspondre aux objets proches. La solution consiste à combiner les résolutions fines et grossières de la carte des caractéristiques. image.png

End-to-End Learning of Geometry and Context for Deep Stereo Regression(2017)

Générez une carte des caractéristiques convolutives (LxHxC) en utilisant le même poids pour chacune des images de droite et de gauche que précédemment. Créez une carte des caractéristiques (DxWxHxC) en décalant horizontalement les pixels de l'image de gauche de 0 à maxDisparity (arbitraire) par rapport à l'image de droite. Décalez simplement le pixel horizontalement (direction de la largeur). En effectuant une convolution 3D et une déconvolution 3D à 1/2, 1/4, 1/8, 1/16, 1/32, vous pouvez apprendre des fonctionnalités approximatives et des fonctionnalités détaillées. La sortie ici est (DxHxW). La Disparité finale est sortie en multipliant la valeur de correspondance unidimensionnelle par Disparité et en prenant une moyenne pondérée. Avec softArgMin, il est possible de calculer la Disparité avec une précision sous-pixel.

image.png

image.png

Self-Supervised Learning for Stereo Matching with Self-Improving Ability(2017)

J'avais l'habitude d'obtenir la disparité ou la profondeur de LiDAR pour trouver la perte. La densité de LiDAR est plus grossière que celle de l'image, et comme l'entraînement est effectué même dans un système qui n'utilise pas de LiDAR, l'image de gauche est simulée en décalant le pixel de la Disparité estimée de l'image de droite. La perte peut être définie en regardant le SAD (différence d'intensité ou RVB) ou SSIM (similarité structurelle) entre l'image de gauche générée et l'image de gauche d'origine. Si la Disparité peut être estimée correctement, l'image déformée sera presque la même que l'image opposée.

image.png

Recommended Posts

Compréhension de base de l'estimation de la profondeur stéréo (Deep Learning)
Compréhension de base de l'estimation de la profondeur par caméra mono (Deep Learning)
Deep learning 1 Pratique du deep learning
Techniques pour comprendre la base des décisions d'apprentissage en profondeur
Deep running 2 Réglage de l'apprentissage profond
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Signification des modèles et paramètres d'apprentissage en profondeur
Essayez l'apprentissage profond de la génomique avec Kipoi
Visualisez les effets de l'apprentissage profond / de la régularisation
Détection d'objets par apprentissage profond pour comprendre en profondeur par Keras
Analyse émotionnelle des tweets avec apprentissage en profondeur
L'apprentissage en profondeur
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
L'histoire de l'apprentissage profond avec TPU
Apprentissage profond / rétropropagation d'erreur de la fonction sigmoïde
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Apprentissage parallèle du deep learning par Keras et Kubernetes
Estimation raisonnable du prix de Mercari par apprentissage automatique
Implémentation du modèle Deep Learning pour la reconnaissance d'images
Apprentissage profond appris par mise en œuvre (segmentation) ~ Mise en œuvre de SegNet ~
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Apprentissage profond × Python
Comptez le nombre de paramètres dans le modèle d'apprentissage en profondeur
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
Bibliothèque DNN (Deep Learning): Comparaison de chainer et TensorFlow (1)
Résumé du flux de base de l'apprentissage automatique avec Python
Les chats sont déjà fatigués de l'apprentissage profond et moelleux
Collecte et automatisation d'images érotiques à l'aide du deep learning
PROGRAMMATION PROFONDE PROBABILISTE --- Bibliothèque "Deep Learning + Bayes" --- Présentation d'Edward