CN114782628A - 基于深度相机的室内实时三维重建方法 - Google Patents
基于深度相机的室内实时三维重建方法 Download PDFInfo
- Publication number
- CN114782628A CN114782628A CN202210440569.4A CN202210440569A CN114782628A CN 114782628 A CN114782628 A CN 114782628A CN 202210440569 A CN202210440569 A CN 202210440569A CN 114782628 A CN114782628 A CN 114782628A
- Authority
- CN
- China
- Prior art keywords
- point
- depth
- points
- point cloud
- camera
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明基于深度相机的室内实时三维重建方法,包括:步骤1:获取室内场景的深度图和彩色图像;步骤2:补全深度图的孔洞;步骤3:将深度图转换为点云,对点云进行降采样;步骤4:进行特征点的检测与匹配,求取初值位姿参数估计;步骤5:使用ICPpoint‑to‑plane算法配准点云,再使用特征点法联合直接法实现位姿追踪;步骤6:使用词袋法完成回环检测,对检测到的闭环进行优化;步骤7:依据TSDF阶段距离符号函数构造网状地图并利用移动立方体MC算法重建物体表面,利用通过加权融合完成纹理映射,得到室内物体的三维重建模型。本发明解决了现有技术中存在的累计误差造成的漂移问题,能够得到更加精确地三维重建模型。
Description
技术领域
本发明属于机器视觉技术领域,涉及一种基于深度相机的室内实时三维重建方法。
背景技术
随着三维视觉领域技术的日渐兴起与三维空间数据扫描硬件设备的普及化,三维视觉领域的即时定位与地图构建(SLAM)技术与基于视觉SLAM的实时三维重建技术不断发展,虚拟三维空间与真实场景的交互也成为趋势。
在采集深度图的过程中,由于Kinectv2相机通过向目标物体发送连续的光脉冲,传感器接收从目标物体返回的光,室内环境光源附近以及强光直射部分返回的红外激光阵列受到干扰,故会出现环境导致的孔洞噪声;由于红外发射器与红外接收器之间有距离,造成了视觉上的遮挡,若获取数据区域不在红外发射视场范围内,会产生区域遮挡,导致前景与背景存在梯度阶跃,故边缘处出现孔洞噪声;当目标物体表面为玻璃材质或电脑屏幕等易产生反光的材质时,红外激光脉冲未能完全返回接收器,故物体表面会出现孔洞噪声。物体遮挡、物体的材质、环境光等情况造成的深度图噪声和孔洞,一般采用高斯滤波、双边滤波、自适应中值滤波等方式去除噪声,但滤除噪声后深度图孔洞依旧存在,影响着三维重建的视觉效果。
由于三维重建需提取大量特征点确保稠密重建且相机位姿追踪需准确,通常使用的直接法应用场景需区分度强、易陷入局部最小值,特征点法匹配时间较长、效率低下的问题,故在完成实时三维重建时,需要平衡特征点数量与实时性。
累计误差会造成重建结果的漂移问题,重建室内会发生形变,可能将立方体的房顶构建为椭球形。
发明内容
本发明的目的是提供一种基于深度相机的室内实时三维重建方法,解决了现有技术中存在的累计误差造成的漂移等问题。
本发明所采用的技术方案是:
基于深度相机的室内实时三维重建方法,包括以下步骤:
步骤1:获取室内场景的深度图和彩色图像;
步骤2:利用基于孔洞邻域深度值与彩色信息的深度补全算法补全深度图的孔洞;
步骤3:利用棋盘格标定法求取相机内参,依据相关坐标系的转换原理,将深度图转换为点云,利用体素滤波法对点云进行降采样;
步骤4:使用改进的SURF算法进行特征点的检测与匹配,求取初值位姿参数估计;
步骤5:使用ICP point-to-plane算法配准点云,再使用特征点法联合直接法实现位姿追踪;
步骤6:使用词袋法完成回环检测,对检测到的闭环进行优化;
步骤7:依据TSDF阶段距离符号函数构造网状地图并利用移动立方体MC算法重建物体表面,利用通过加权融合完成纹理映射,得到室内物体的三维重建模型。
本发明的特点还在于:
步骤2为:设置有效深度值,对于像素点的长度大于有效值的孔洞采用插值法进行孔洞补全,对于像素点的长度不大于有效值的孔洞,依次采用孔洞邻域深度值孔洞补全与彩色信息的深度补全方法进行孔洞补全;
其中对于像素点的长度不大于有效值的孔洞,具体操作为:
步骤2.1,根据有效深度值将孔洞类型分为两类:在有效深度值的右侧的孔洞,在有效深度值的左侧的孔洞,对于上述两类孔洞分别采用从左侧索引、从右侧索引方法来补全孔洞;
步骤2.2,经过2.1孔洞填充后采用彩色信息的深度补全方法进行进一步孔洞补全,公式如下:
其中设置彩色信息的高斯权重为wRGB,在有效深度值的右侧的孔洞为第一类孔洞,权值为wRGB1,在有效深度值的左侧的孔洞为第二类孔洞,权值为wRGB2;σRGB表示高斯权重为wRGB的标准差,Jk为判断是在第一类还是第二类孔洞,v(i)为考虑邻域深度值和斜率的深度值,v(i)final增加了色彩信息的限制,Lvalid为可用深度值长度,Lmiss为孔洞长度,N为邻域的彩色信息的集合,v(i)final为i处最终补全的深度值。
步骤2.1中当孔洞延伸到当前对象中最右侧的像素,从左侧索引深度值向右传播,依次填补孔洞,具体计算公式为:
v(i)=v(i-1)+[v(i-L)-v(i-L-1)]×slope (1)
其中i为像素点,v(i)为考虑斜率和邻域的补全处深度值,slope为斜率,L为孔洞长度:斜率slope初始化设置为1,v0(i)被初始化为零,即v0(i)=0,其中slope和v0(i)的求解公式为:
v0(i)=v(i-1)+v(i-L)-v(i-L-1) (3)
步骤2.1中当孔洞在有效深度值的左侧时,从右侧索引深度值,向左依次进行填补,具体的采用公式(4)进行填补:
v(i)=v(i-1)+[v(i+L)-v(i+L+1)]×slope (4)
其中slope和v0(i)的求解公式为:
v0(i)=v(i+1)+v(i+L)-v(i+L+1) (6)。
步骤3包括:
步骤3.1,相机内参的求取:从不同角度拍摄18张以上三维场景中的一个平面棋盘格图像;标定棋盘是特制的,通过角点的提取算法得到角点坐标;得到棋盘平面和图像平面的单应性矩阵,最终使用SVD分解求解最小二乘,得到相机的各个内参,即相机x、y轴的焦距fx,fy,相机光轴在图像坐标系中的偏移量Cx,Cy;
步骤3.2:深度图转换为点云的过程,定义邻近的像素点所对应的每个光束相差,并设置六自由度,利用PCL点云库pcl::common模块中的pcl_range_image完成深度图到点云的转换,由深度图(u,v)转换为世界坐标系下的点云(xw,yw,zw)依据如下公式,其中ZC为该点深度值,f为相机焦距,式(11)描述了点(u,v)在世界坐标系下的点云坐标为(xw,yw,zw);
步骤3.3:利用统计滤波法移除离群点,再利用体素滤波法完成点云降采样;具体的为:
步骤3.3.1:对于每个点,在统计滤波法中先计算它到所有相邻点的平均距离;假设得到的分布是高斯分布,计算出一个均值μ和一个标准差σ;
步骤3.3.2:计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数;再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点则被视为离群点,并可从点云数据中去除,完成统计滤波;
步骤3.3.3:体素滤波使用AABB包围盒将点云数据体素化,通过体素网格去除噪音点及离群点。
步骤4包括:
步骤4.1,角点检测依据检测某个像素点与其邻域点的像素值的梯度大小决定该点是否为角点,图像中任选一个像素点并设其亮度为Ia,设定阈值k,以选取的点p为中心,搜索以p为圆心,并获取亮度;若选取的点中有连续N个,其亮度I>Ia+k或I<Ia-k,则该点可被定义为Fast特征点,N的取值为9,循环以上步骤,直到遍历完所有像素点;在该特征点邻域范围内,若拥有足够多的灰度值变化较大的点,则该点被视为特征点;
步骤4.2,特征点筛选:将提取到的特征点利用四叉树划分,设置四叉树的划分网格数为25,所有特征点均落入25个网格内,选取每个网格中FAST特征点响应值最高的特征点作为特征点,从而实现特征点均匀化。再加入3层高斯像素金字塔与缩放因子,金字塔模板逐层递减,分别提取不同尺度下的特征,增强特征点的鲁棒性;最后加入欧氏距离,决定提取的特征点的数量,完成特征点的筛选过程。
步骤4.3,特征点描述:在关键点邻域选取边长为20s的矩形框,将其划分为16个等大的矩形,选择利用尺寸2s的harr计算求得响应,最长矢量的方向作为主方向,再统计响应值生成特征矢量∑|dy|、∑dx、∑|dx|、∑dy;
步骤4.4,特征匹配:如果欧式距离小于设定阈值,则可认为特征点匹配成功;也可利用Hessian矩阵的迹作为判断依据,特征点构成的矩阵的迹的符号相同,则证明特征点间的方向相同,特征点匹配成功。
步骤5具体的为:
步骤5.1:输入步骤3获取的.pcd格式的点云;
步骤5.2:利用ICP point-to-plane算法配准点云,具体步骤如下:
步骤5.2.1:计算点集的重心位置坐标,并进行点集中心化生成新的点集;
步骤5.2.2:由新的点集计算正定矩阵N,并计算N的最大特征值及其最大特征向量;
步骤5.2.3:由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵R;
步骤5.2.4:确定R后,平移向量t仅仅是两个点集的重心差异;
式(12)描述需最小化的误差函数J,pi为源点集,pi′为目标点集:
旋转分量R的表达式,:
平移分量t的表达式:
t*=p-R*·p′ (14)
步骤5.3,结合特征点法联合直接法获取最佳的相机位姿估计结果。
步骤6具体的为:
步骤6.1:实现特征字典的创建:利用SURF特征描述算法创建字典并训练,且利用kd树划分字典,其中的参数设置为:分枝数k=10,深度d=5;
步骤6.2:完成字典的构建过程:将提取到的图像特征存放至容器内,再调用DBoW字典生成接口;
步骤6.3:使用TF-IDF的加权方法判断是否产生回环;利用L1范数表示两幅图像X,Y之间的差异;
步骤6.4:若当前帧与之前某关键帧的相似度超过当前帧与上一关键帧相似度的3倍,就认为可能存在回环,将信息传递给后端进行优化处理;即空间上保持一致时,则对回环检测到的两个帧进行特征匹配,再估计相机运动;回环检测产生比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图;如果能够检测到闭环,并对其优化,就可以消除累计误差。
步骤7具体的为:
步骤7.1:使用八叉树表达点云数据;
步骤7.2:使用已知的点云数据估计一个潜在曲面的隐式表达函数;利用该函数对八叉树节点的顶点进行分类,分别标记为曲面的里面和外面;
步骤7.3:采用MC移动立方体算法提取三角网格表面;
步骤7.4:按照加权方式融合网格色彩的值,得到具备彩色纹理的三维重建模型。
本发明的有益效果是:
一、本发明可实现利用深度相机扫描数据完成室内实时三维重建过程。利用Kinectv2相机获取深度图和彩色图像,利用基于孔洞邻域深度值与彩色信息的深度补全算法补全深度图的孔洞,利用棋盘格标定法求取相机内参,将补全深度图转换为点云。利用体素滤波法完成点云的降采样。使用改进的SURF算法进行特征点的检测与匹配,求取初值位姿参数估计,使用ICP point-to-plane算法配准点云,再使用特征点法联合直接法实现位姿追踪,利用基于词袋法的回环检测解决累计误差造成的漂移问题,最后利用TSDF数据融合以及移动立方体算法实现物体曲面重构与纹理映射,完成室内实时三维重建过程。
二、本发明能够利用获取的深度图与彩色图像,依据彩色图像的色彩信息对深度图逐点遍历,再依据邻域深度有效值与梯度、色彩一致性共同作用,完成基于边界约束的孔洞类型分类并完成补全过程,并将深度图孔洞补全算法应用于室内实时三维重建***增强重建模型精度,解决了物体遮挡、物体的材质、环境光等情况造成的深度图噪声和孔洞问题,实现孔洞的补全。
三、本发明将FAST提取出的角点利用SURF描述出,并利用四叉树实现特征点均匀化,并设置欧式距离筛选的特征点,从而实现短时间内获取到一定数量的特征点的效果,特征匹配时,结合RANSAC算法剔除错误匹配点。实现重建过程中,满足特征点的数量可实现稠密重建的需求的同时,也提升运算速度,解决特征点的数量与重建实时性之间的平衡性问题。
四、本发明利用基于词袋法的回环检测解决了累计误差导致的场景漂移;利用融合特征点法与直接法的位姿追踪方式解决相机跟踪丢失与场景重识别的问题;ICP结合NDT算法,解决刚体运动平移与旋转变换的兼顾问题。
附图说明
图1是本发明完整流程图
图2是利用Kinect v2深度相机获取彩色图像和深度图
图3是利用本发明孔洞补全算法补全后的深度图
图4是相机内参标定过程示意图
图5是利用内参将深度图转换为点云
图6是两帧椅子点云模型配准前后
图7是融合特征点法与直接法追踪位姿变换的特征点与轨迹图
图8是椅子的曲面重建模型
图9是最终三维重建的室内椅子的带纹理三维模型
图10是包含椅子的室内场景三维重建
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明基于深度相机的室内实时三维重建方法,其过程如图1,步骤具体为:
步骤1:通过Kinect v2深度相机对室内场景扫描,获取室内场景的深度图和彩色图像。
步骤2:利用基于孔洞邻域深度值与彩色信息的深度补全算法补全深度图的孔洞。
步骤3:利用棋盘格标定法求取相机内参,依据相关坐标系的转换原理,将深度图转换为点云,利用体素滤波法对点云进行降采样;
步骤4:使用改进的SURF算法进行特征点的检测与匹配,求取初值位姿参数估计。
步骤5:使用ICP point-to-plane算法配准点云,再使用特征点法联合直接法实现位姿追踪。
步骤6:使用词袋法完成回环检测,若能够检测到闭环,并对其优化,就可以消除累计误差造成的漂移问题。
步骤7:依据TSDF阶段距离符号函数构造网状地图并利用移动立方体MC算法重建物体表面,利用通过加权融合完成纹理映射,得到室内物体的三维重建模型。
其中步骤1中采用Kinect v2深度相机获取,彩色图像和深度图的具体过程如下:
步骤1.1:在PC端配置Libfreenect2库,实现Kinectv2的连接;
步骤1.2:利用OPENNI2库进行数据的获取:手持Kinectv2相机在室内场景采集彩色图像与深度图像;
步骤1.3:获取的彩色图像分辨率为1920×1080,深度图的分辨率为512×424,获得的图像格式为.png。
其中步骤2为:设置有效深度值,对于像素点的长度大于有效值的孔洞采用插值法进行孔洞补全,对于像素点的长度不大于有效值的孔洞,依次采用孔洞邻域深度值孔洞补全与彩色信息的深度补全方法进行孔洞补全。
其中对于像素点的长度不大于有效值的孔洞,具体操作为:
步骤2.1,根据有效深度值将孔洞类型分为两类:在有效深度值的右侧的孔洞,在有效深度值的左侧的孔洞,对于上述两类孔洞分别采用从左侧索引、从右侧索引方法来补全孔洞。
①当孔洞延伸到当前对象中最右侧的像素,从左侧索引深度值,孔洞右侧没有可用的深度信息,无需考虑任何填充连续性的情况。该类孔洞识别孔洞左侧的深度变化模式就足够,其长度大于孔洞本身的长度,将该模式向右传播,依次填补孔洞。受约束的孔未到达场景对象的最左侧或最右侧边界边缘,即孔包含在具有有效深度的对象内,这种情况下,可以根据同一场景对象内的有效深度值可用性,从任一侧对深度变化模式进行采样。为正确预测缺失的深度值,需考虑孔左侧和右侧有效值之间的连续性。斜率用于确保预测值合理地将深度值连接到孔的左侧和右侧,具体计算公式为:
v(i)=v(i-1)+[v(i-L)-v(i-L-1)]×slope (1)
公式(1)描述了i处深度值可被补全为i-1处深度值加上i-L处深度值与i-L-1处深度值的差值与斜率的乘积。其中i为像素点,v(i)为考虑斜率和邻域的补全深度值,slope为斜率,L为孔洞长度:斜率slope初始化设置为1,v0(i)被初始化为零,即v0(i)=0。其中slope和v0(i)的求解公式为:
v0(i)=v(i-1)+v(i-L)-v(i-L-1) (3)
公式(2)描述了公式(1)中斜率slope的求解方式,公式(3)描述了i处的初始化深度值的求解。
②当孔洞在有效深度值的左侧时,从右侧索引深度值。具体的采用公式(4)进行填补:
v(i)=v(i-1)+[v(i+L)-v(i+L+1)]×slope (4)
其中i为像素点,v(i)为考虑斜率和邻域的补全处深度值,slope为斜率,L为孔洞长度:斜率slope初始化为1,v0(i)被初始化为零,即v0(i)=0。
受约束的孔未到达对象的最左侧或最右侧边界,但孔左侧的有效深度值的数量小于孔本身的长度,而存在足够的有效深度值在孔的右侧补全。其中slope和v0(i)的求解公式为:
v0(i)=v(i+1)+v(i+L)-v(i+L+1) (6)
步骤2.2,经过2.1孔洞填充后采用彩色信息的深度补全方法进行进一步孔洞补全,为增加补全孔洞的语义合理性,需考虑彩色图像的色彩区域一致性,故通过深度图对应彩色图像相应区域颜色信息的约束来估计缺失的深度值,防止其他区域的干扰。利用彩色信息的高斯权重、上述v(i)以及判断函数Jk的乘积加和的平均,构建补全孔洞。
在补全算法中建立彩色信息的高斯权重模型。设置彩色信息的高斯权重为wRGB,在有效深度值的右侧的孔洞为第一类孔洞,权值为wRGB1,在有效深度值的左侧的孔洞为第二类孔洞,权值为wRGB2。该权重由邻域像素点i+1或i-1处的彩色图像对应的R、G、B值和孔洞对应的像素点i处的Ri、Gi、Bi共同决定,σRGB表示高斯权重为wRGB的标准差,Jk函数是为了判断是在有效深度值的右侧的孔洞还是在有效深度值的左侧的孔洞,v(i)为考虑邻域深度值和斜率的深度值,v(i)final增加了色彩信息的限制,Lvalid为可用深度值长度,Lmiss为孔洞长度,N为邻域的彩色信息的集合。v(i)final为i处最终补全的深度值。
公式(7)描述了i处最终求解的深度值,可被描述为:判断函数Jk与上述v(i)与孔洞所在物体范围内的彩色信息高斯标准差的乘积分布在该物体的平均值。公式(8)和(9)描述第一类孔洞的彩色信息权值为wRGB1,第二类为wRGB2。公式(10)判断孔洞是否属于第一类和第二类。
其中步骤3中利用棋盘格标定法求取相机内参,依据相关坐标系的转换原理将深度图转换为点云,利用体素滤波法对点云进行降采样。具体步骤为:
步骤3.1:相机内参的求取步骤如下;从不同角度拍摄18张以上三维场景中的一个平面棋盘格图像;标定棋盘是特制的,通过角点的提取算法得到交点坐标;得到棋盘平面和图像平面的单应性矩阵,最终使用SVD分解求解最小二乘,得到相机的各个内参数:相机x、y轴的焦距fx,fy,相机光轴在图像坐标系中的偏移量Cx,Cy。
步骤3.2:深度图转换为点云的过程,定义邻近的像素点所对应的每个光束相差,并设置六自由度,利用PCL点云库pcl::common模块中的pcl_range_image完成深度图到点云的转换。由深度图(u,v)转换为世界坐标系下的点云(xw,yw,zw)依据如下公式,其中ZC为该点深度值,f为相机焦距,式(11)描述了点(u,v)在世界坐标系下的点云坐标为(xw,yw,zw)。
步骤3.3:利用统计滤波法移除离群点,再利用体素滤波法完成点云降采样;具体操作为:
步骤3.3.1:对于每个点,在统计滤波法中先计算它到所有相邻点的平均距离。假设得到的分布是高斯分布,计算出一个均值μ和一个标准差σ;
步骤3.3.2:计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数;再次遍历点云,剔除与k个邻域点,平均距离大于dmax的点则被视为离群点,并可从点云数据中去除,完成统计滤波;
步骤3.3.3:体素滤波使用AABB包围盒将点云数据体素化,通过体素网格去除噪音点及离群点。
步骤4中使用改进的SURF算法进行特征点的检测与匹配,求取初值位姿参数估计,改进的SURF算法具体步骤如下。采集到的相邻两帧图像利用改进的SURF算法匹配特征点,利用RANSAC剔除错误匹配。
步骤4.1:SURF算法提取的角点数量多但速度较慢,不满足实时性的需求,故将特征点检测部分替换为FAST算子,该算法速度的优势在于其决定因素仅为亮度,决定因素单一,可加速检测过程。FAST角点检测依据检测某个像素点与其邻域点的像素值的差别大小决定该点是否为角点,图像中任选一个像素点并设其亮度为Ia,设定阈值k,以选取的点p为中心,搜索以p为圆心,并获取亮度。若选取的点中有连续N个,其亮度I>Ia+k或I<Ia-k,则该点可被定义为Fast特征点,N的取值为9,循坏以上步骤,直到遍历完所有像素点。在该特征点邻域范围内,若拥有足够多的灰度值变化较大的点,则该点被视为特征点。
步骤4.2:特征点筛选,将FAST提取到的特征点利用四叉树划分,设置四叉树的划分网格数为25,所有角点均落入25个网格内,选取每个网格中FAST角点响应值最高的角点作为特征点,从而实现角点均匀化。再加入3层高斯像素金字塔与缩放因子,金字塔模板逐层递减,分别提取不同尺度下的特征,增强特征点的鲁棒性;最后加入欧氏距离,决定提取的特征点的数量,完成特征点的筛选过程。
步骤4.3:利用SURF算法进行特征描述。在关键点邻域选取边长为20s的矩形框,将其划分为16个等大的矩形,选择利用尺寸2s的harr计算求得响应,最长矢量的方向作为主方向,再统计响应值生成特征矢量∑|dy|、∑dx、∑|dx|、∑dy。
步骤4.4:特征匹配。如果欧式距离小于设定阈值,则可认为特征点匹配成功。也可利用Hessian矩阵的迹作为判断依据,特征点构成的矩阵的迹的符号相同,则证明特征点间的方向相同,特征点匹配成功。
步骤5中ICP point-to-plane算法配准点云使用特征点法联合直接法实现位姿追踪。
步骤5.1:输入步骤3获取的.pcd格式的点云;
步骤5.2:利用ICP point-to-plane算法配准点云,具体步骤如下。
步骤5.2.1:计算点集的重心位置坐标,并进行点集中心化生成新的点集;
步骤5.2.2:由新的点集计算正定矩阵N,并计算N的最大特征值及最大特征向量;
步骤5.2.3:由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵R;
步骤5.2.4:确定R后,平移向量t仅仅是两个点集的重心差异。
式(12)描述需最小化的误差函数J,pi为源点集,pi′为目标点集:
旋转分量R的表达式,:
平移分量t的表达式:
t*=p-R*·p′ (14)
步骤5.3:特征点法联合直接法实现位姿追踪是为解决直接法的应用场景区分度强、易陷入局部最小值与特征点法的匹配时间较长,效率低下的问题,故可将两种方法融合使用,获取最佳的相机位姿估计结果。
步骤5.3.1:初始化图像序列。图像中检测到的FAST角点数量大于设定阈值则将该帧设为关键帧,利用光流法跟踪特征点并将其转换为相机坐标系下的深度归一化的点。处理第一张之后的连续图像序列,如果有足够的内点,认为这帧是合适用来三角化的帧。根据追踪的关键帧角点恢复出的位姿和地图点,进行尺度变换,把上一帧的位姿作为当前帧的初始位姿,将这一帧,作为关键帧,送入到深度滤波器中。深度滤波器为种子点在极线上搜索匹配点,更新种子点,种子点收敛出新的候选地图点。
步骤5.3.2:基于稀疏点亮度的位姿预估。把参考帧上的所有图块结合地图点,往当前帧图像的金字塔图像上投影。在当前帧的金字塔图像上,从最高层开始逐层计算。每次都继承前一次的优化结果,每层的优化,迭代30次。如果前一次的误差相比前前次没有减小,就继承前前次的优化后的位姿。把上一帧的位姿作为当前帧的初始位姿,在几个图像金字塔层之间迭代。如果跟踪的像素个数少,则视为跟踪失败,下一帧开始重定位。
步骤5.3.3:基于图块的特征点匹配。获得的关键帧,将其上分散的点投影到当前帧,投影成功则是为共视,依照与当前帧的距离由近到远的规则,将所有的共视关键帧排序,如果地图点在当前帧上的投影位置,能取到8x8的图块,就把这个地图点存入到当前帧投影位置的网格中。如果一个候选点有10帧投影不成功,则删除该点,遍历全部地图点,找到这个地图点所在的被观察到的所有关键帧。获取那些关键帧光心与这个地图点的连线,以及地图点与当前帧光心连线的夹角。选出夹角最小的关键帧作为参考帧,以及对应的特征点,计算仿射矩阵、当前帧的目标搜索层数、仿射矩阵的逆仿射矩阵,从映射图块中取出一定大小的参考图块并优化调整,使其与目标位置的图块匹配。
步骤5.3.4:优化位姿和地图点。对每个地图点,优化其的三维空间的位置,使得在它被观察到的每个关键帧上的重投影误差最小。每个地图点优化5次。如果这次优化的误差平方和小于上次优化的误差平方和,就更新优化结果。
步骤6基于词袋法完成回环检测,高效地消除累计误差,构建词典:
步骤6.1:实现特征字典的创建:利用SURF特征描述算法创建字典并训练,且利用kd树划分字典,其中的参数设置为:分枝数k=10,深度d=5;
步骤6.2:完成字典的构建过程:将提取到的图像特征存放至容器内,再调用DBoW字典生成接口;
步骤6.3:使用TF-IDF的加权方法判断是否产生回环。利用L1范数表示两幅图像之间的差异。
步骤6.4:若当前帧与之前某关键帧的相似度超过当前帧与上一关键帧相似度的3倍,就认为可能存在回环,将信息传递给后端进行优化处理。即空间上保持一致时,则对回环检测到的两个帧进行特征匹配,再估计相机运动。回环检测产生比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致性的轨迹地图。如果能够检测到闭环,并对其优化,就可以消除累计误差。
步骤7将生成的点云模型经位姿变换得到的点云模型,依据阶段距离符号函数构造网状地图进行数据融合并利用移动立方体MC算法重建物体表面。利用加权融合完成纹理映射,得到室内物体的三维重建模型。手持Kinectv2扫描的室内点云模型,生成重建场景,且重建细节也较为准确精细,证明本发明可用于室内小物体与大场景的三维重建。具体过程如下:
步骤7.1:使用八叉树表达点云数据;
步骤7.2:使用已知的点云数据估计一个潜在曲面的隐式表达函数;利用该函数对八叉树节点的顶点进行分类,分别标记为曲面的里面和外面;
步骤7.3:采用MC移动立方体算法提取三角网格表面;
步骤7.4:按照加权方式融合网格色彩的值,得到具备彩色纹理的三维重建模型。
实施例1
本实施例采用本发明方法对(室内椅子图像)进行室内实时三维重建;
执行步骤1,采集到的图像为图2,包括彩色图像和深度图;
执行步骤2,补全孔洞后的深度图如图3。
执行步骤3,实现相机的内参标定,标定过程如图4;利用标定的参数将深度图转换为如图5所示的点云。
执行步骤4~执行步骤5,实现两帧点云配准过程,两帧点云如图6左图所示,配准后的点云如图6右图所示。追踪椅子的位姿变换,如图7的右侧为相机运动位姿变换的轨迹与椅子场景的特征地图点。
执行步骤6~执行步骤7,实现椅子的曲面重建,如图8所示,将点转换为mesh网格。最终结果为图9所示的获取带纹理的椅子模型,图10为包含椅子的室内场景三维重建。
Claims (8)
1.基于深度相机的室内实时三维重建方法,其特征在于,包括以下步骤:
步骤1:获取室内场景的深度图和彩色图像;
步骤2:利用基于孔洞邻域深度值与彩色信息的深度孔洞补全算法补全深度图的孔洞;
步骤3:利用棋盘格标定法求取相机内参,依据相关坐标系的转换原理,将深度图转换为点云,利用体素滤波法对点云进行降采样;
步骤4:使用改进的SURF算法进行特征点的检测与匹配,求取初值位姿参数估计;
步骤5:使用ICP point-to-plane算法配准点云,再使用特征点法联合直接法实现位姿追踪;
步骤6:使用词袋法完成回环检测,对检测到的闭环进行优化;
步骤7:依据TSDF阶段距离符号函数构造网状地图并利用移动立方体MC算法重建物体表面,利用通过加权融合完成纹理映射,得到室内物体的三维重建模型。
2.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤2为:设置有效深度值,对于像素点的长度大于有效值的孔洞采用插值法进行孔洞补全,对于像素点的长度不大于有效值的孔洞,依次采用孔洞邻域深度值孔洞补全与彩色信息的深度补全方法进行孔洞补全;
其中对于像素点的长度不大于有效值的孔洞,具体操作为:
步骤2.1,根据有效深度值将孔洞类型分为两类:在有效深度值的右侧的孔洞,在有效深度值的左侧的孔洞,对于上述两类孔洞分别采用从左侧索引、从右侧索引方法来补全孔洞;
步骤2.2,经过2.1孔洞填充后采用彩色信息的深度补全方法进行进一步孔洞补全,公式如下:
其中设置彩色信息的高斯权重为wRGB,在有效深度值的右侧的孔洞为第一类孔洞,权值为wRGB1,在有效深度值的左侧的孔洞为第二类孔洞,权值为wRGB2;σRGB表示高斯权重为wRGB的标准差,Jk为判断是在第一类还是第二类孔洞,v(i)为考虑邻域深度值和斜率的深度值,v(i)final增加了色彩信息的限制,Lvalid为可用深度值长度,Lmiss为孔洞长度,N为邻域的彩色信息的集合,v(i)final为i处最终补全的深度值。
3.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤2.1中当孔洞延伸到当前对象中最右侧的像素,从左侧索引深度值向右传播,依次填补孔洞,具体计算公式为:
v(i)=v(i-1)+[v(i-L)-v(i-L-1)]×slope (1)
其中i为像素点,v(i)为考虑斜率和邻域的补全处深度值,slope为斜率,L为孔洞长度:斜率slope初始化设置为1,v0(i)被初始化为零,即v0(i)=0,其中slope和v0(i)的求解公式为:
v0(i)=v(i-1)+v(i-L)-v(i-L-1) (3)
所述步骤2.1中当孔洞在有效深度值的左侧时,从右侧索引深度值,向左依次进行填补,具体的采用公式(4)进行填补:
v(i)=v(i-1)+[v(i+L)-v(i+L+1)]×slope (4)
其中slope和v0(i)的求解公式为:
v0(i)=v(i+1)+v(i+L)-v(i+L+1) (6)。
4.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤3包括:
步骤3.1,相机内参的求取:从不同角度拍摄18张以上三维场景中的一个平面棋盘格图像;标定棋盘是特制的,通过角点的提取算法得到交点坐标;得到棋盘平面和图像平面的单应性矩阵,最终使用SVD分解求解最小二乘,得到相机的各个内参数相机x、y轴的焦距fx,fy,相机光轴在图像坐标系中的偏移量Cx,Cy;
步骤3.2:深度图转换为点云的过程,定义邻近的像素点所对应的每个光束相差,并设置六自由度,利用PCL点云库pcl::common模块中的pcl_range_image完成深度图到点云的转换,由深度图(u,v)转换为世界坐标系下的点云(xw,yw,zw)依据如下公式,其中ZC为该点深度值,f为相机焦距,式(11)描述了点(u,v)在世界坐标系下的点云坐标为(xw,yw,zw);
步骤3.3:利用统计滤波法移除离群点,再利用体素滤波法完成点云降采样;具体的为:
步骤3.3.1:对于每个点,在统计滤波法中先计算它到所有相邻点的平均距离;假设得到的分布是高斯分布,计算出一个均值μ和一个标准差σ;
步骤3.3.2:计算所有平均距离的均值μ与标准差σ,则距离阈值dmax表示为dmax=μ+α×σ,α是一个常数,可称为比例系数;再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点则被视为离群点,并从点云数据中去除,完成统计滤波;
步骤3.3.3:体素滤波使用AABB包围盒将点云数据体素化,通过体素网格去除噪音点及离群点。
5.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤4包括:
步骤4.1,角点检测依据检测某个像素点与其邻域点的像素值的差别大小决定该点是否为角点,图像中任选一个像素点并设其亮度为Ia,设定阈值k,以选取的点p为中心,搜索以p为圆心,并获取亮度;若选取的点中有连续N个,其亮度I>Ia+k或I<Ia-k,则该点可被定义为Fast特征点,N的取值为9,循坏以上步骤,直到遍历完所有像素点;在该特征点邻域范围内,若拥有足够多的灰度值变化较大的点,则该点被视为特征点;
步骤4.2,特征点筛选:将提取到的特征点利用四叉树划分,设置四叉树的划分网格数为25,所有特征点均落入25个网格内,选取每个网格中FAST特征点响应值最高的特征点作为特征点,从而实现特征点均匀化;再加入3层高斯像素金字塔与缩放因子,金字塔模板逐层递减,分别提取不同尺度下的特征,增强特征点的鲁棒性;最后加入欧氏距离,决定提取的特征点的数量,完成特征点的筛选过程;
步骤4.3,特征点描述:在关键点邻域选取边长为20s的矩形框,将其划分为16个等大的矩形,选择利用尺寸2s的harr计算求得响应,最长矢量的方向作为主方向,再统计响应值生成特征矢量∑|dy|、∑dx、∑|dx|、∑dy;
步骤4.4,特征匹配:如果欧式距离小于设定阈值,则认为特征点匹配成功;或者利用Hessian矩阵的迹作为判断依据,特征点构成的矩阵的迹的符号相同,则证明特征点间的方向相同,特征点匹配成功。
6.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤5具体的为:
步骤5.1:输入步骤3获取的.pcd格式的点云;
步骤5.2:利用ICP point-to-plane算法配准点云,具体步骤如下:
步骤5.2.1:计算点集的重心位置坐标,并进行点集中心化生成新的点集;
步骤5.2.2:由新的点集计算正定矩阵N,并计算N的最大特征值及其最大特征向量;
步骤5.2.3:由于最大特征向量等价于残差平方和最小时的旋转四元数,将四元数转换为旋转矩阵R;
步骤5.2.4:确定R后,平移向量t仅仅是两个点集的重心差异;
式(12)描述需最小化的误差函数J,pi为源点集,pi′为目标点集:
旋转分量R的表达式,:
平移分量t的表达式:
t*=p-R*·p′ (14)
步骤5.3,结合特征点法联合直接法获取最佳的相机位姿估计结果。
7.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤6具体的为:
步骤6.1:实现特征字典的创建:利用SURF特征描述算法创建字典并训练,且利用kd树划分字典,其中的参数设置为:分枝数k=10,深度d=5;
步骤6.2:完成字典的构建过程:将提取到的图像特征存放至容器内,再调用DBoW字典生成接口;
步骤6.3:使用TF-IDF的加权方法判断是否产生回环;利用L1范数表示两幅图像X,Y之间的差异;
步骤6.4:若当前帧与之前某关键帧的相似度超过当前帧与上一关键帧相似度的3倍,就认为存在回环,将信息传递给后端进行优化处理;即空间上保持一致时,则对回环检测到的两个帧进行特征匹配,再估计相机运动;回环检测产生比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图;如果能够检测到闭环,并对其优化,就可以消除累计误差。
8.如权利要求1所述的基于深度相机的室内实时三维重建方法,其特征在于,所述步骤7具体的为:
步骤7.1:使用八叉树表达点云数据;
步骤7.2:使用已知的点云数据估计一个潜在曲面的隐式表达函数;利用该函数对八叉树节点的顶点进行分类,分别标记为曲面的里面和外面;
步骤7.3:采用MC移动立方体算法提取三角网格表面;
步骤7.4:按照加权方式融合网格色彩的值,得到具备彩色纹理的三维重建模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210440569.4A CN114782628A (zh) | 2022-04-25 | 2022-04-25 | 基于深度相机的室内实时三维重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210440569.4A CN114782628A (zh) | 2022-04-25 | 2022-04-25 | 基于深度相机的室内实时三维重建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114782628A true CN114782628A (zh) | 2022-07-22 |
Family
ID=82433739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210440569.4A Pending CN114782628A (zh) | 2022-04-25 | 2022-04-25 | 基于深度相机的室内实时三维重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114782628A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115222790A (zh) * | 2022-08-11 | 2022-10-21 | 中国科学技术大学 | 单光子三维重建方法、***、设备及存储介质 |
CN115294277A (zh) * | 2022-08-10 | 2022-11-04 | 广州沃佳科技有限公司 | 一种物体的三维重建方法、装置、电子设备及存储介质 |
CN116662728A (zh) * | 2023-07-28 | 2023-08-29 | 北京图知天下科技有限责任公司 | 一种屋顶平面的提取方法、电子设备及存储介质 |
WO2024066891A1 (zh) * | 2022-09-30 | 2024-04-04 | 合肥美亚光电技术股份有限公司 | 曲面融合方法、装置和医疗影像设备 |
CN118097036A (zh) * | 2024-04-25 | 2024-05-28 | 武汉大学 | 一种适用于含有透光材料的物体点云重建***及方法 |
-
2022
- 2022-04-25 CN CN202210440569.4A patent/CN114782628A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294277A (zh) * | 2022-08-10 | 2022-11-04 | 广州沃佳科技有限公司 | 一种物体的三维重建方法、装置、电子设备及存储介质 |
CN115222790A (zh) * | 2022-08-11 | 2022-10-21 | 中国科学技术大学 | 单光子三维重建方法、***、设备及存储介质 |
CN115222790B (zh) * | 2022-08-11 | 2022-12-30 | 中国科学技术大学 | 单光子三维重建方法、***、设备及存储介质 |
WO2024066891A1 (zh) * | 2022-09-30 | 2024-04-04 | 合肥美亚光电技术股份有限公司 | 曲面融合方法、装置和医疗影像设备 |
CN116662728A (zh) * | 2023-07-28 | 2023-08-29 | 北京图知天下科技有限责任公司 | 一种屋顶平面的提取方法、电子设备及存储介质 |
CN116662728B (zh) * | 2023-07-28 | 2023-10-27 | 北京图知天下科技有限责任公司 | 一种屋顶平面的提取方法、电子设备及存储介质 |
CN118097036A (zh) * | 2024-04-25 | 2024-05-28 | 武汉大学 | 一种适用于含有透光材料的物体点云重建***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106910242B (zh) | 基于深度相机进行室内完整场景三维重建的方法及*** | |
KR101195942B1 (ko) | 카메라 보정 방법 및 이를 이용한 3차원 물체 재구성 방법 | |
CN114782628A (zh) | 基于深度相机的室内实时三维重建方法 | |
Zhu et al. | Spatial-temporal fusion for high accuracy depth maps using dynamic MRFs | |
KR101554241B1 (ko) | 3차원 이미지에서의 결함성 픽셀 깊이 데이터 값의 깊이 맵 품질 향상을 위한 방법 | |
Beall et al. | 3D reconstruction of underwater structures | |
Fitzgibbon et al. | Automatic 3D model acquisition and generation of new images from video sequences | |
CN110853075B (zh) | 一种基于稠密点云与合成视图的视觉跟踪定位方法 | |
CN110945565A (zh) | 利用概率面元地图的密集视觉slam | |
Ummenhofer et al. | Point-based 3D reconstruction of thin objects | |
CN113362457B (zh) | 一种基于散斑结构光的立体视觉测量方法及*** | |
CN110211169B (zh) | 基于多尺度超像素和相位相关的窄基线视差的重构方法 | |
Xu et al. | Survey of 3D modeling using depth cameras | |
CN112630469B (zh) | 一种基于结构光和多光场相机的三维检测方法 | |
Yuan et al. | 3D reconstruction of background and objects moving on ground plane viewed from a moving camera | |
CN110245199A (zh) | 一种大倾角视频与2d地图的融合方法 | |
CN112243518A (zh) | 获取深度图的方法、装置及计算机存储介质 | |
Furukawa | High-fidelity image-based modeling | |
CN117036612A (zh) | 一种基于神经辐射场的三维重建方法 | |
CN115222884A (zh) | 一种基于人工智能的空间对象分析及建模优化方法 | |
CN114463521B (zh) | 一种面向空地影像数据融合的建筑目标点云快速生成方法 | |
Zhao et al. | Mvpsnet: Fast generalizable multi-view photometric stereo | |
CN116681839B (zh) | 一种基于改进NeRF的实景三维目标重建与单体化方法 | |
CN117523100A (zh) | 基于神经网络与多视图一致性的三维场景重建方法和装置 | |
Szeliski et al. | Stereo correspondence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |