一种基于单目视觉的直接法点云三维重建及尺度确定方法转让专利

申请号 : CN201810800534.0

文献号 : CN109087325A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 方黎勇谢嵩

申请人 : 成都指码科技有限公司

摘要 :

本发明公开了一种基于单目视觉的直接法点云三维重建及尺度确定方法,包括以下步骤:S1、将原始图像帧平均划分多个9*9的子图像,利用OTSU求解每个子图像的前景比重;S2、根据阈值判断子图像是否需要利用Retinex改善图像质量;S3、利用基于直接法与稀疏法的视觉里程计重构目标三维空间;S4、求解点云数据法向量;S5、计算最小内积和,得到目标三维空间与世界坐标系z轴平行的向量;S6、利用三维变换矩阵矫正点云位姿;S7、利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。本发明计算过程简单,计算结果误差小,能够获得精确的物体尺寸。

权利要求 :

1.一种基于单目视觉的直接法点云三维重建及尺度确定方法,其特征在于,包括以下步骤:S1、将原始图像帧平均划分多个9*9的子图像,利用OTSU求解每个子图像的前景比重;

S2、根据阈值判断子图像是否需要利用Retinex改善图像质量;

S3、利用基于直接法与稀疏法的视觉里程计重构目标三维空间;

S4、求解点云数据法向量;

S5、计算最小内积和,得到目标三维空间与世界坐标系z轴平行的向量;

S6、根据步骤S5得到的向量,利用三维变换矩阵矫正点云位姿;

S7、利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。

2.根据权利要求1所述的一种基于单目视觉的直接法点云三维重建及尺度确定方法,其特征在于,所述OTSU是一类基于全局的二值化算法,其具体实现方法为:计算图像的类间方差函数:g=ω0ω1(μ0-μ1)2    (1)其中,ω0为前景像素占整个图像的比例,其平均灰度为μ0;ω1为背景占整个图像的比例,其平均灰度为μ1;

针对每一个灰度值,求解g值,找到所有g值中最大值对应的灰度值,并将该灰度值作为阈值将图像分为前景和背景两个部分,将大于该阈值的灰度值作为前景图像,小于或等于该阈值的灰度值作为背景图像;

所述步骤S1具体实现方法为:把图像分为n×n个子图像,然后对每个子图像使用OTSU算法,把子图像的每个像素都根据阈值划分为前景或背景,前景和背景的像素个数分别为m和n;然后计算前景部分占子图中总像素的比例BR,即:BR=m/(m+n)    (2)。

3.根据权利要求1所述的一种基于单目视觉的直接法点云三维重建及尺度确定方法,其特征在于,所述步骤S2具体实现方法为:设定阈值T,当T>BR时,认为该区域为光照良好;

反之,认为该区域光照不均,需进一步优化;优化的具体方法为:设I(x,y)为相机抓取到的图像信息,L(x,y)表示光源照射的照射分量,R(x,y)表示物体真实颜色的反射分量,则I(x,y)=L(x,y)·R(x,y)    (3)采用单尺度Retinex展开公式(1)得到:logR(x,y)=logI(x,y)-log[F(x,y)*I(x,y)]    (4)其中,*表示卷积运算,F(x,y)为环绕函数,其计算方法为:式中,c为环绕尺度,K为归一化常数;环绕函数满足:∫∫F(x,y)dxdy=1    (6)对log R(x,y)取反对数,得到改善后的图像。

4.根据权利要求1所述的一种基于单目视觉的直接法点云三维重建及尺度确定方法,其特征在于,所述步骤S4具体实现方法为:将求解点云数据法向量问题转化为最小二乘法平面拟合估计问题;

设点云数据的个数为n,Pi(xi,yi,zi)表示第i个点云数据,i=1,2,…,n;

设平面方程为:

a*x+b*y+c*z+d=0    (7)其中,a,b,c,d为待定参数,且a,b,c不能同时为0;设点云数据到该平面的距离为di,则:令 为目标函数,求L的最小值;

L取最小值的必要条件为:

其中:

式中:

同理得到:

其中,

由式(11),有:

其中:

于是有方程组:

A1*a+B1*b+C1*c+D1*d=0    (19)A2*a+B2*b+C2*c+D2*d=0    (20)A3*a+B3*b+C3*c+D3*d=0    (21)D1*a+D2*b+D3*c+D4*d=0    (22)求解方程组,得到平面方程,进而获得该平面方程的法向量。

5.根据权利要求1所述的一种基于单目视觉的直接法点云三维重建及尺度确定方法,其特征在于,所述步骤S5具体实现方法为:得到了所有点云的法向量后,设目标函数为:其中 为第i个点云的法向量,表示三维重构图像中与世界坐标系z轴平行的向量;遍历求解 使得目标函数取得最小值,即:

说明书 :

一种基于单目视觉的直接法点云三维重建及尺度确定方法

技术领域

[0001] 本发明属于图像处理技术领域,特别涉及一种基于单目视觉的直接法点云三维重建及尺度确定方法。

背景技术

[0002] DSO为SLAM中的一种基于直接法和稀疏法的视觉里程计(VO),DSO本身并不是一个完整的SLAM,它没有回环检测与地图复用等功能,也因此省去了需要大量的计算量。DSO为了能够实时三维重构,利用光度标定对图像进行预处理,但光度标定时需要大量的标定样本,没有普遍的适用性。
[0003] 单目视觉采用单个相机作为传感器,得到三维世界的二维投影,即获得环境的图像信息,再通过相应的算法重建三维场景。其得到的三维场景多用于巡检机器人导航和定位中。在三维世界转二维图像时,减少了一个维度,相应地,反应在重构图中,也就减少了一个尺度因子。重构图中的所有物体大小都是相对的,无论扩大或缩小任意倍数,他们的大小关系都是成立的。但是,物体的具体尺寸大小却无从得知,对于巡检机器人的避障和寻路都会产生不同程度的影响。目前获取真实尺度的方法都是基于特征点法三维重建,并没有基于直接法点云三维重建的尺度的确定。

发明内容

[0004] 本发明的目的在于克服现有技术的不足,提供一种基于单目视觉的直接法点云三维重建及尺度确定方法,首先计算点云的法向量,建立目标函数,然后通过三维变换获得矫正后的点云三维重构图,最后利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。本发明的计算过程简单,计算结果误差小,能够获得精确的物体尺寸。
[0005] 本发明的目的是通过以下技术方案来实现的:一种基于单目视觉的直接法点云三维重建及尺度确定方法,包括以下步骤:
[0006] S1、将原始图像帧平均划分多个9*9的子图像,利用OTSU求解每个子图像的前景比重;
[0007] S2、根据阈值判断子图像是否需要利用Retinex改善图像质量;
[0008] S3、利用基于直接法与稀疏法的视觉里程计(DSO)重构目标三维空间;
[0009] S4、求解点云数据法向量;
[0010] S5、计算最小内积和,得到目标三维空间与世界坐标系z轴平行的向量;
[0011] S6、根据步骤S5得到的向量,利用三维变换矩阵矫正点云位姿;
[0012] S7、利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。
[0013] 进一步地,所述OTSU是一类基于全局的二值化算法,其具体实现方法为:计算图像的类间方差函数:
[0014] g=ω0ω1(μ0-μ1)2   (1)
[0015] 其中,ω0为前景像素占整个图像的比例,其平均灰度为μ0;ω1为背景占整个图像的比例,其平均灰度为μ1;
[0016] 针对每一个灰度值,求解g值,找到所有g值中最大值对应的灰度值,并将该灰度值作为阈值将图像分为前景和背景两个部分,将大于该阈值的灰度值作为前景图像,小于或等于该阈值的灰度值作为背景图像;
[0017] 所述步骤S1具体实现方法为:把图像分为n×n个子图像,然后对每个子图像使用OTSU算法,把子图像的每个像素都根据阈值划分为前景或背景,前景和背景的像素个数分别为m和n;然后计算前景部分占子图中总像素的比例BR,即:
[0018] BR=m/(m+n)   (2)。
[0019] 进一步地,所述步骤S2具体实现方法为:设定阈值T,当T>BR时,认为该区域为光照良好;反之,认为该区域光照不均,需进一步优化;优化的具体方法为:
[0020] 设I(x,y)为相机抓取到的图像信息,L(x,y)表示光源照射的照射分量,R(x,y)表示物体真实颜色的反射分量,则
[0021] I(x,y)=L(x,y)·R(x,y)   (3)
[0022] 采用单尺度Retinex展开公式(1)得到:
[0023] logR(x,y)=logI(x,y)-log[F(x,y)*I(x,y)]   (4)
[0024] 其中,*表示卷积运算,F(x,y)为环绕函数,其计算方法为:
[0025]
[0026] 式中,c为环绕尺度,K为归一化常数;环绕函数满足:
[0027] ∫∫F(x,y)dxdy=1   (6)
[0028] 对log R(x,y)取反对数,得到改善后的图像。
[0029] 进一步地,所述步骤S4具体实现方法为:将求解点云数据法向量问题转化为最小二乘法平面拟合估计问题;
[0030] 设点云数据的个数为n,Pi(xi,yi,zi)表示第i个点云数据,i=1,2,…,n;
[0031] 设平面方程为:
[0032] a*x+b*y+c*z+d=0   (7)
[0033] 其中,a,b,c,d为待定参数,且a,b,c不能同时为0;设点云数据到该平面的距离为di,则:
[0034]
[0035] 令 为目标函数,求L的最小值;
[0036] L取最小值的必要条件为:
[0037]
[0038] 其中:
[0039]
[0040] 式中:
[0041]
[0042]
[0043]
[0044]
[0045] 同理得到:
[0046]
[0047]
[0048] 其中,
[0049]
[0050] 由式(11),有:
[0051]
[0052] 其中:
[0053]
[0054] 于是有方程组:
[0055] A1*a+B1*b+C1*c+D1*d=0   (19)
[0056] A2*a+B2*b+C2*c+D2*d=0   (20)
[0057] A3*a+B3*b+C3*c+D3*d=0   (21)
[0058] D1*a+D2*b+D3*c+D4*d=0   (22)
[0059] 求解方程组,得到平面方程,进而获得该平面方程的法向量。
[0060] 进一步地,所述步骤S5具体实现方法为:得到了所有点云的法向量后,设目标函数为:
[0061]
[0062] 其中 为第i个点云的法向量,表示三维重构图像中与世界坐标系z轴平行的向量;遍历求解 使得目标函数取得最小值,即:
[0063]
[0064] 本发明的有益效果是:本发明基于Retinex对图像进行改善,提高了整体方法的普遍适用性且针对单目视觉尺度不确定性问题;然后计算点云的法向量,建立目标函数,通过三维变换获得矫正后的点云三维重构图,最后利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。本发明的计算过程简单,计算结果误差小,能够获得精确的物体尺寸。

附图说明

[0065] 图1为本发明的基于单目视觉的直接法点云三维重建及尺度确定方法的流程图;
[0066] 图2为本发明实施例的相机采集得到的原始图像;
[0067] 图3为本发明实施例利用Retinex改善质量后的图像;
[0068] 图4为本发明实施例基于DSO得到的点云三维重构图像;
[0069] 图5为本发明点云点云位姿矫正示意图;
[0070] 图6为本实施例采用本发明的算法得到的重构图像。

具体实施方式

[0071] 本发明提出的一种基于单目视觉的直接法点云三维重建及尺度确定方法,其核心目的是:基于DSO中光度标定没有普遍适用性的问题,提出了一种基于Retinex的图像增强方法。又针对单目视觉尺度不确定性问题,利用真实世界的实际尺度与三维坐标下的相对尺度的比值获取点云数据实际尺度值。下面结合附图进一步说明本发明的技术方案。如图1所示,一种基于单目视觉的直接法点云三维重建及尺度确定方法,具体包括以下步骤:
[0072] S1、将原始图像帧平均划分多个9*9的子图像,利用OTSU求解每个子图像的前景比重;
[0073] 所述OTSU是一类基于全局的二值化算法,其具体实现方法为:计算图像的类间方差函数:
[0074] g=ω0ω1(μ0-μ1)2   (25)
[0075] 其中,ω0为前景像素占整个图像的比例,其平均灰度为μ0;ω1为背景占整个图像的比例,其平均灰度为μ1;
[0076] 针对每一个灰度值,求解g值,找到所有g值中最大值对应的灰度值,并将该灰度值作为阈值将图像分为前景和背景两个部分,将大于该阈值的灰度值作为前景图像(二值图像中令其等于1),小于或等于该阈值的灰度值作为背景图像(二值图像中令其等于0);
[0077] 所述步骤S1具体实现方法为:把图像分为n×n个子图像,然后对每个子图像使用OTSU算法,把子图像的每个像素都根据阈值划分为前景或背景,前景和背景的像素个数分别为m和n;然后计算前景部分占子图中总像素的比例BR,即:
[0078] BR=m/(m+n)   (26)。
[0079] S2、根据阈值判断子图像是否需要利用Retinex改善图像质量;具体实现方法为:设定阈值T,当T>BR时,认为该区域为光照良好;反之,认为该区域光照不均,需进一步优化;
优化的具体方法为:
[0080] 设I(x,y)为相机抓取到的图像信息,L(x,y)表示光源照射的照射分量,R(x,y)表示物体真实颜色的反射分量,则
[0081] I(x,y)=L(x,y)·R(x,y)   (27)
[0082] 采用单尺度Retinex(SSR)展开公式(25)得到:
[0083] logR(x,y)=logI(x,y)-log[F(x,y)*I(x,y)]   (28)
[0084] 其中,*表示卷积运算,F(x,y)为环绕函数,其计算方法为:
[0085]
[0086] 式中,c为环绕尺度,K为归一化常数;环绕函数满足:
[0087] ∫∫F(x,y)dxdy=1   (30)
[0088] 对log R(x,y)取反对数,得到改善后的图像,本实施例所采用的原图如图2所示,改善后的图像如图3所示。
[0089] S3、利用基于直接法与稀疏法的视觉里程计重构目标三维空间,如图4所示;
[0090] S4、求解点云数据法向量;具体实现方法为:将求解点云数据法向量问题转化为最小二乘法平面拟合估计问题;
[0091] 设点云数据的个数为n,Pi(xi,yi,zi)表示第i个点云数据,i=1,2,…,n;
[0092] 设平面方程为:
[0093] a*x+b*y+c*z+d=0   (31)
[0094] 其中,a,b,c,d为待定参数,且a,b,c不能同时为0;设点云数据到该平面的距离为di,则:
[0095]
[0096] 令 为目标函数,求L的最小值;
[0097] L取最小值的必要条件为:
[0098]
[0099] 其中:
[0100]
[0101] 式中:
[0102]
[0103]
[0104]
[0105]
[0106] 同理得到:
[0107]
[0108]
[0109] 其中,
[0110]
[0111] 由式(35),有:
[0112]
[0113] 其中:
[0114]
[0115] 于是有方程组:
[0116] A1*a+B1*b+C1*c+D1*d=0   (43)
[0117] A2*a+B2*b+C2*c+D2*d=0   (44)
[0118] A3*a+B3*b+C3*c+D3*d=0   (45)
[0119] D1*a+D2*b+D3*c+D4*d=0   (46)
[0120] 求解方程组,得到平面方程,进而获得该平面方程的法向量。
[0121] S5、计算最小内积和,得到目标三维空间与世界坐标系z轴平行的向量;具体实现方法为:具体实现方法为:得到了所有点云的法向量后,设目标函数为:
[0122]
[0123] 其中 为第i个点云的法向量,表示三维重构图像中与世界坐标系z轴平行的向量;遍历求解 使得目标函数取得最小值,即:
[0124]
[0125] S6、根据步骤S5得到的向量,利用三维变换矩阵矫正点云位姿;如图5所示,三维重构图为图像中矩形区域,通过S5求解得到与世界坐标系z轴平行的 最后通过 完成S6,三维变换矩阵就是用来对目标物体进行平移和旋转的,所以可以用来矫正,利用三维变换矩阵进行位姿矫正是本领域的常用技术手段,此处不再赘述;
[0126] S7、利用点云的相对尺度与物体的实际尺度的比值,得到三维重构图的实际尺寸。
[0127] 图6为本实施例采用本发明的算法得到的重构图像。从图6中可以获得顶端尺度值0.978和底端尺度值0.147,通过测量获得该目标区域的高度为9.6m,即可得到单位尺度的值为11.552m。比较一层楼的尺度差为0.271,得到实际一层楼约为3.131m,实际楼层高度约为3.2m,误差约为0.069m,误差很小。
[0128] 本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。