zoukankan      html  css  js  c++  java
  • 视觉SLAM十四讲课后习题—ch13

    1.推导式(13.6)

      根据教材后的附录A两个服从高斯分布的随机变量相乘后的结果仍服从高斯分布很容易推导出。

    2.把本讲的稠密深度估计改成半稠密,你可以把梯度明显的地方筛选出来。

      (1)dense_mapping.cpp

        对程序进行修改:   

     1 bool update(const Mat& ref, const Mat& curr, const SE3& T_C_R, Mat& depth, Mat& depth_cov )
     2 {
     3 //#pragma omp parallel for
     4     for ( int x=boarder; x<width-boarder; x++ )
     5 //#pragma omp parallel for
     6         for ( int y=boarder; y<height-boarder; y++ )
     7         {
     8             //把遍历所有像素点更改为梯度明显的像素点
     9             Eigen::Vector2d delta(
    10                         ref.ptr<uchar>(y)[x+1]-ref.ptr<uchar>(y)[x-1],
    11                         ref.ptr<uchar>(y+1)[x]-ref.ptr<uchar>(y-1)[x]
    12                     );
    13             if(delta.norm()<50)
    14                 continue;
    15 
    16 //            Eigen::Vector2d delta(
    17 //                        depth_cov.ptr<uchar>(y)[x+1]-depth_cov.ptr<uchar>(y)[x-1],
    18 //                        depth_cov.ptr<uchar>(y+1)[x]-depth_cov.ptr<uchar>(y-1)[x]
    19 //                    );
    20 //            if(delta.norm()<50)
    21 //                continue;
    22 //                         遍历每个像素
    23             if ( depth_cov.ptr<double>(y)[x] < min_cov || depth_cov.ptr<double>(y)[x] > max_cov ) // 深度已收敛或发散
    24                 continue;
    25             // 在极线上搜索 (x,y) 的匹配
    26             Vector2d pt_curr;
    27             bool ret = epipolarSearch (
    28                 ref,
    29                 curr,
    30                 T_C_R,
    31                 Vector2d(x,y),
    32                 depth.ptr<double>(y)[x],
    33                 sqrt(depth_cov.ptr<double>(y)[x]),
    34                 pt_curr
    35             );
    36 
    37             if ( ret == false ) // 匹配失败
    38                 continue;
    39 
    40                         // 取消该注释以显示匹配
    41             // showEpipolarMatch( ref, curr, Vector2d(x,y), pt_curr );
    42 
    43             // 匹配成功,更新深度图
    44             updateDepthFilter( Vector2d(x,y), pt_curr, T_C_R, depth, depth_cov );
    45         }
    46 }

       实验结果:以下分别为实验过程中某一时刻的深度图和逐渐趋于稳定的深度图

      

         在运行时间上,半稠密的运行时间比稠密估计少很多。

    3.把本讲的单目稠密重建代码从正深度改成逆深度,并添加放射变换。你的实验效果是否有改进?

  • 相关阅读:
    经典的ajax遍历循环
    fastadmin别名关联表与js下划线冲突问题解决:with里的别名,不要用驼峰,用shippingtype
    thinkphp 临时关闭布局,ajax只输出主题部分
    linux php5.6 链接sql server
    ecstore导入文件开发问题解决 死循环+不兼容mac换行解决
    thinkphp 二级目录安装
    解决crontab执行时间与系统时间不一致的问题
    电阻性能检测的二种方法(转载)
    短路的原因与危害有哪些
    潮湿引发的电路板常见故障(转载)
  • 原文地址:https://www.cnblogs.com/cc111/p/9688441.html
Copyright © 2011-2022 走看看