======== STEREO MATCHING AND DEPTH MAP ======== ==== New stereo matching available on OpenCV 3.1.0 in opencv-contrib ==== OpenCV 3.1.0 propose de nouveau algorithme dans opencv-contrib qui ne sont pas encore totalement intégrés dans OpenCV. Ces algorithmes restent des algorithmes de block matching (BM) et semi-global block matching(SGBM) comme ceux déjà présents dans OpenCV, en revanche ils proposent différents descripteurs dont certains plus récents. On propose ici de tester ces algorithmes pour une paire d'images rectifiées peu texturées présentant un changement de luminosité et de couleur entre les deux images (reflet des lumières du plafond sur les murs). Les images du banc stéréo sont les suivantes : {{:000001_remapped_view_left.png?200|}} {{:000001_remapped_view_right.png?200|}} Résultats obtenus sur des images rectifiées du banc stéréo de l'oculus avec l'algorithme de SGBM de OpenCV pour différentes tailles de fenêtre de comparaison et pour différents descripteurs. Vous trouverez ici une évaluation de différentes fonctions de coût pour du stéréo matching : {{:evaluation_of_stereo_matching_costs_on_images_with_radiometric_differences.pdf|}}, des informations sur les descripteurs mean variante et modified census transform : {{:mean_variante_and_modified_census_transform.pdf|}}, et sur le descripteur cs-census transform : {{:cs-census_transform.pdf|}}. Les autres paramètres ont leur valeur par défaut. ^ kernel size ^ k=5 ^ k=7 ^ k=9 ^ | CV_DENSE_CENSUS |{{:disparity_algo_sgm_cv_dense_census_k5.png?200|}} | | | CV_SPARSE_CENSUS |{{:disparity_algo_sgm_cv_sparse_census_k5.png?200|}} | {{:disparity_algo_sgm_cv_sparse_census_k7.png?200|}} | {{:disparity_algo_sgm_cv_sparse_census_k9.png?200|}}| | CV_CS_CENSUS |{{:disparity_algo_sgm_cv_cs_census_k5.png?200|}} | {{:disparity_algo_sgm_cv_cs_census_k7.png?200|}}| | CV_MODIFIED_CS_CENSUS | {{:disparity_algo_sgm_cv_modified_cs_census_k5.png?200|}} | {{:disparity_algo_sgm_cv_modified_cs_census_k7.png?200|}} | | CV_MODIFIED_CENSUS_TRANSFORM | | | {{:disparity_algo_sgm_cv_modified_census_transform_k9.png?200|}}| | CV_MEAN_VARIATION | | | {{:disparity_algo_sgm_cv_mean_variation_k9.png?200|}}| | CV_STAR_KERNEL | | | {{:disparity_algo_sgm_cv_star_kernel_k9.png?200|}}| L'implémentation est sur CPU. Les temps de calcul pour des images 1080 x 1080 et pour un processeur Intel Core i7-4800MQ CPU à 2.70GHz × 8 sont : ^ kernel size ^ k=5 ^ k=7 ^ k=9 ^ | CV_DENSE_CENSUS |1.282967 s| | | | CV_SPARSE_CENSUS |1.276487 s|1.363369 s|1.330379 s| | CV_CS_CENSUS |1.389252 s|1.405589 s| | | CV_MODIFIED_CS_CENSUS |1.401459 s|1.457219 s| | | CV_MODIFIED_CENSUS_TRANSFORM | | |1.437858 s| | CV_MEAN_VARIATION | | | 1.421193 s| | CV_STAR_KERNEL | | | 1.472423 s| Résultats obtenus pour l'algorithme BM de opencv-contrib sur ce même couple d'images pour le descripteur CV_SPARSE_CENSUS pour différentes tailles de fenêtre "k" (utilisées pour le descripteur) et pour différentes tailles de fenêtre d’agrégation "w" : ^ kernel size ^ k=5 ^ k=7 ^ k=9 ^ | CV_SPARSE_CENSUS : w=5 | {{ :disparity_algo_bm_cv_sparse_census_k5_w5.png?200 |}}| {{ :disparity_algo_bm_cv_sparse_census_k7_w5.png?200 |}}| {{ :disparity_algo_bm_cv_sparse_census_k9_w5.png?200 |}}| | CV_SPARSE_CENSUS : w=9 | {{ :disparity_algo_bm_cv_sparse_census_k5_w9.png?200 |}}| {{ :disparity_algo_bm_cv_sparse_census_k7_w9.png?200 |}}| {{ :disparity_algo_bm_cv_star_kernel_k9_w9.png?200 |}}| Les résultats pour les autres descripteurs sont disponibles dans le dossier compressé suivant : {{:results_images_bm.zip|}} ==== ROS NODE AVAILABLE ==== TO DO : test them. [[http://wiki.ros.org/stereo_image_proc]] use OpenCV algorithm [[http://wiki.ros.org/nerian_sp1]] [[http://wiki.ros.org/elas_ros]]