网站地图怎么弄,lpl赛区战绩,网页设计师考证试题,网站主题模板下载不了前言
目前#xff0c;深度图像的获取方法有#xff1a;激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法等。针对深度图像的研究重点主要集中在以下几个方面#xff1a;深度图像的分割技术#xff0c;深度图像的边缘检测技术#xff0c;基于…前言
目前深度图像的获取方法有激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法等。针对深度图像的研究重点主要集中在以下几个方面深度图像的分割技术深度图像的边缘检测技术基于不同视点的多幅深度图像的配准技术基于深度数据的三维重建技术基于深度图像的三维目标检测技术深度数据的多分辨率建模和几何压缩技术等。在PCL中深度图像与点云最主要的区别在于其近邻的检索方式不同并且可以互相转换。
RangeImage概念及相关算法
1.1 深度图像简介
深度图像Depth Images也被称为距离影像Range Images是指将图像采集器到场景中各点的距离深度值作为像素值的图像它直接反映了景物可见表面的几何形状利用它可以很方便的解决3D目标描述中的许多问题。深度图像经过坐标转换可以计算为点云数据有规则及必要信息的点云数据也可以反算为深度图像数据。
从数学模型上看深度图像可以看作是标量函数 在集合 上的离散采样得到 ,其中 为二维网格矩阵的索引
1.2 PCL中RangeImage的相关类
PCL中的range_image库包含两个表达深度图像和对深度图像进行操作的类其依赖于pcl::common模块。深度图像或距离图像的像素值代表从传感器到物体的距离或者深度如下图所示。深度图像是物体三维表示形式一般通过立体相机或者ToF相机获取。如果知道相机的内标定参数就可以将深度图像转化为点云。
pcl::RangeImage rangeImage;rangeImage.createFromPointCloud(pointCloud,angularResolution, maxAngleWidth,maxAngleHeight,sensorPose,coordinate_frame,noiseLevel,minRange,borderSize);
std::cout rangeImage \n;基于经典图像处理的方法
虽然基于CNN的方法已经霸榜了KITTI的Depth Completion但是在小数据量情况下基于经典图像处理的算法依旧有其优势。我们来看看几个常见的基于图像处理的深度图补全思路。
High-resolution LIDAR-based Depth Mapping using Bilateral Filter
这篇文章的直接在点云投影的深度图像上做补全没有用到彩色图像信息方法颇为平凡可读之处在于实验它把最常见的几个图像滤波方法做了非常细致的对比。它的输入是一个点云投影成的颇为稠密的深度图尚未没有去除背景点。它的方法分为两步第一步是背景点剔除在局部区域用DBSCAN取剔除远处的cluster第二步是用双边滤波器(Bilateral Filter)对深度图进行插值以达补全的目的。
背景点剔除在每一个局部区域内用DBSCAN将有值的点聚类为几个类距离函数是相对深度差 -neighborhood值为0.08如果DBSCAN有超过两个类根据类的大小取选择哪个类参与下一步插值总体是偏向于靠近相机的类。
双线性插值对每一个空白点 它的局部窗口内有值点集为 它的深度值为 最后的结果如上表所示。BF*为上述方法毫无疑问效果最好。其他方法并未做遮挡检测这个比较颇为不公平。BF方法没有做遮挡检测。NEA是取距离最近值。DEL是做Delaunay三角花后插值。MIN方法其实就是Z-buffer的方法效果不赖。MED是中值滤波。IDW是线性插值线性系数是Inverse Distance Weighting。KRI是Kriging Filter。AVE是均值滤波。MAX是最大值滤波。
这篇文章其实有四个问题第一个问题是是速度对每一个窗口做DBSCAN速度会极慢可以改用点云渲染里面的技巧快速去除背景。第二个问题是在深度图像里面做插值有些不合理我们应该在视差图中用重心坐标进行插值这一点在我的另外一篇文章里描述了。第三个问题是它的输入深度图像其实非常稠密它是由好几帧激光雷达点云拼接出来的无法处理更为稀疏的图像。最后一个问题是这篇16年的文章的想法其实在其很多年之前的文章就有了比如这篇08年的文章这篇08年的文章甚至比这篇16年的文章提供了更为全面和深刻的分析。
详见深度图像补全(Depth Map Completion) - 上 3聚类算法之DBSCAN算法