[PYTHON] Compréhension de base de l'estimation de la profondeur par caméra mono (Deep Learning)

Je ne serai peut-être pas en mesure de bien l'expliquer, mais je vous serais reconnaissant de bien comprendre les nuances. J'ai également résumé la profondeur stéréo, donc si vous êtes intéressé, s'il vous plaît https://qiita.com/minh33/items/55717aa1ace9d7f7e7dd https://qiita.com/minh33/items/6b8d37ce08f85d3a3479

Table des matières 1. Depth Estimation 2. Image warp 3. Loss

Depth Estimation

La position peut être estimée avec une caméra monoculaire afin qu'une personne puisse voir la position approximative d'un objet avec un œil. Par exemple, si vous fixez l'angle de la caméra, l'objet proche est situé en haut de l'image et l'objet éloigné est situé en haut de l'image. Puisque l'objet est essentiellement au sol, la position de l'objet peut être estimée si la distance du plan du sol est connue. De plus, la position relative entre les objets et la taille des objets peuvent également être utilisées comme informations. Comme j'apprends à utiliser CNN, il est difficile de comprendre le type d'informations que le modèle obtient réellement, mais il y avait un article intéressant sur lequel j'ai fait une expérience, donc si vous êtes intéressé, faites-le

Image warp

Pour monoculaire </ h3> En déplaçant la voiture avec la caméra dessus, vous pouvez la convertir à l'image précédente. Premièrement, la distance de l'image lorsque t = t est estimée par le réseau. Puisque la distance peut être estimée, il est possible de calculer le nuage de points 3D. Utilisez l'estimation de l'auto-position pour trouver la quantité de mouvement de la voiture avec la caméra. VSLAM, odométrie, GPS, IMU, etc. peuvent être utilisés pour l'estimation de l'auto-position. En transférant le nuage de points 3D qui a calculé la quantité de changement dans 1 image de x, y, z, roulis, tangage, lacet plus tôt, nous avons pu déduire le nuage de points 3D avec t = t-1. En le convertissant en vue Image, vous pouvez déformer l'image de t = t en l'image de t = t-1. Cependant, il y a aussi des inconvénients que vous ne pouvez apprendre que si vous vous déplacez, et si l'objet de l'adversaire bouge, il se déplacera même si vous déformez.

image.png It=>target Image(t=t) Is=>source Image(t=t-1) Dt => profondeur cible (vérité au sol de la distance avec LiDAR) D^t=>Estimated target Depth I^t=>Estimated target Image Voir la synthèse => Reconstruction d'image Perte photométrique => Comparaison de l'image estimée et de l'image réelle

Pour les jumelles </ h3>

Il est utilisé pour calculer la perte dans le n ° 3, mais vous pouvez convertir la profondeur obtenue en disparité et déformer l'image de droite vers l'image de gauche. Au fait, est-ce binoculaire même si c'est mono profondeur? Je pense que certaines personnes pensent que l'estimation de la distance se fait avec un seul œil et que l'objectif opposé est utilisé comme vérité fondamentale pour l'apprentissage.

image.png

Définition de la perte [

Unsupervised Monocular Depth Estimation with Left-Right Consistency(2017)

]( https://arxiv.org/pdf/1609.03677.pdf')

Ce papier est probablement le plus célèbre en monodepth

・ Perte de reconstruction L'image de reconstruction de gauche peut être créée par déformation en utilisant la Disparité de gauche estimée à partir de l'image de droite. Calculez le SAD et le SSIM de cette image et l'image d'entrée sur la gauche. Faites l'inverse

・ Perte de cohérence LR Déformez la carte de disparité sur la droite vers la carte de disparité sur la gauche et calculez la différence entre les valeurs absolues de la disparité. Faites l'inverse

・ Perte de douceur Etant donné que la disparité (profondeur) des pixels voisins doit être presque la même s'ils sont le même objet, la douceur de la disparité est calculée en utilisant la douceur laplacienne ou similaire. Effectuez respectivement la carte de disparité droite et gauche

image.png

Recommended Posts

Compréhension de base de l'estimation de la profondeur par caméra mono (Deep Learning)
Compréhension de base de l'estimation de la profondeur stéréo (Deep Learning)
Détection d'objets par apprentissage profond pour comprendre en profondeur par Keras
Apprentissage parallèle du deep learning par Keras et Kubernetes
Estimation raisonnable du prix de Mercari par apprentissage automatique
Apprentissage profond appris par mise en œuvre (segmentation) ~ Mise en œuvre de SegNet ~
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
Estimation de la profondeur par CNN (CNN SLAM # 3)
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Résumé de l'implémentation de base par PyTorch
Apprentissage profond appris par l'implémentation 1 (édition de retour)
Deep learning 2 appris par l'implémentation (classification d'images)
Othello-De la troisième ligne de "Implementation Deep Learning" (3)
Signification des modèles et paramètres d'apprentissage en profondeur
Produisez de belles vaches de mer par apprentissage profond
Essayez l'apprentissage profond de la génomique avec Kipoi
Visualisez les effets de l'apprentissage profond / de la régularisation
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
Opérations de base sur les blocs de données écrites par des débutants au cours d'une semaine d'apprentissage de Python