本发明属于计算机视觉仿真模拟技术领域,具体涉及对拍摄的连续图像序列进行三维重构的方法。
背景技术:
随着图像处理技术的进步以及三维传感器的发展,使得智能移动机器人、无人驾驶、ar等三维应用场景需求迅速增加,这些都需要用到三维重构技术。不同于二维图像,三维模型真实感更加强烈,能够呈现人们更多的信息,也不同于图纸建模,三维场景重建技术对更快较好的实时反映原场景情况要求更高,其中仅仅依靠图像序列实现三维建模,虽然降低了经济成本,但在保证三维模型构建的质量、精度、准确度上较为困难,而连续多图像的重建还需要考虑不同角度观测产生误差累积,存在一个针对三维模型进行优化或者平差的过程。因此,为了较快又好的实现实景三维模型重构,研究基于图像序列的三维重构方法具有重要的工程价值和现实意义。
目前,对提高图像序列三维重构效率及精度的方法有许多,大致在方法上可以分为两类:一类是通过分割图像,得到目标图像及背景图像来分别进行三维重构,最后再通过点云的拼接融合来实现图像三维模型的重构;另一类是直接对场景图像进行三维重构,再对得到的点云模型分割进行优化模型。
技术实现要素:
本发明的目的是为了为了解决现有的三维点云模型质量低,准确度差的问题,本发明提供一种基于图像序列的目标物体三维点云生成方法。
本发明的目的是这样实现的:
一种基于图像序列的目标物体三维点云生成方法,包括以下步骤:
获取源图像序列,计算源图像序列的灰度图像序列;
对灰度图像序列中的每一图像进行阈值分割,确定最佳分割阈值,依据最佳分割阈值对灰度图像序列进行分割,保留大于最佳分割阈值的像素作为目标物体像素,得到目标灰度图像序列,对应保留源图像序列中的目标物体像素,得到目标图像序列;
对目标图像序列进行特征点检测,提取保存特征点,计算特征点的模值及方向;
组件目标图像序列中的有效准匹配对,所述有效准匹配对中的两个特征点的模值及方向相等,记
根据得到的有效匹配对计算第p图像与第p+1图像间的基础矩阵fp;获取相机的内部参数矩阵k;根据得到的基础矩阵fp计算本征矩阵ep,对本征矩阵ep进行奇异值分解计算出第p图像及第p+1图像间的相机的外部参数旋转矩阵rp、平移矩阵tp:
根据旋转矩阵rp、平移矩阵tp计算第p图像和第p+1图像间有效匹配对的点云数据
其中,x′=(x′,y′,1)为有效匹配对中第p+1图像中的特征点的位置;
将所有有效匹配对全部算出,组成点云数据组,将得到的点云数据组变换到同一坐标系下,剔除重复数据点,生成目标物体三维点云。
源图像序列的灰度图像序列的计算方法为:
对源图像序列中每一图像的每一像素点,做灰度值计算:
gray=0.299r+0.587g+0.114b(2)
gray为灰度值,r、g、b分别为像素点的r、g、b三通道值;
将每个像素点的灰度值存储在对应源图像序列像素点的新图像序列的像素点中,将新图像序列作为灰度图像序列。
最佳分割阈值的确定方法为:
(a1)统计灰度图像序列中0~255各灰度色阶对应的像素个数,记μ(t)(t=0,1,2,…,255)为灰度值t对应的像素个数;
(a2)计算图像的灰度值的均值
式中,p[μ(t)]为灰度值为t的像素个数μ(t)的概率函数;
(a3)计算图像中待分割物体目标图像像素c0的平均灰度μ1:
其中,pr(i|c0)表示灰度值为i的像素个数占分割物体目标图像像素c0的概率,pi为灰度值为i的像素占总像素个数的概率;
(a4)计算图像中待分割物体目标图像像素c0的像素数所占比例ω1:
其中,n1为目标图像c0像素数,sum为图像像素总数;
(a5)计算图像中背景图像像素c1的平均灰度μ2:
其中,pr(i|c1)表示灰度值为i的像素个数占背景图像像素c1的概率,pi为灰度值为i的像素占总像素个数的概率;
(a6)计算图像中背景图像像素c1的像素数所占比例ω2:
其中,n2为背景图像c1像素数;
(a7)计算最佳分割阈值tbest,所述最佳分割阈值tbest为使类间方差g(t)最大的t值,
其中,α∈(0,1)视每一张图像分割二值化效果图调整取值。
特征点的检测方法为:
对目标灰度图像序列中的每一图像像素值f(x,y)进行如下处理:
(b1)将图像像素值f(x,y)在不同的高斯平滑参数σ下进行高斯滤波gσ计算:
(b2)计算图像像素值f(x,y)的dog响应图像dogf:
dogf(x,y)=dog*f(x,y)=g1(x,y)-g2(x,y)(10)
(b3)重复(b1)、(b2)步骤得到dogf1(x,y)、dogf2(x,y)、dogf3(x,y);
对dogf2(x,y)中所有值进行检测,若某个dogf2(x,y)在dogfi(x+n,y+m)(i=1,2,3;n=-1,0,1;m=-1,0,1)中为极大或极小值,则标记该像素点为特征点,记
令所述特征点的模值为m,计算方法为:
其中,l所用的尺度为特征点
l(x,y,σ)=g(x,y,σ)*i(x,y)(12)
中,σ为自主选定的参数,且在所有特征点中保持不变。
令所述特征点的方向为θ,计算方法为:
θ(x,y)=tan-1((l(x,y+1)-l(x,y-1))/(l(x+1,y)-l(x-1,y)))(13)。
删除误匹配对的方法为:
(c1)从有效准匹配对kpmq′中选取前m个不共线的样本数据,m≥4,由式计算出最佳单应性矩阵,记为模型m;
其中(x,y)、(x',y')分别表示有效准匹配对kpmq′中两对特征点的位置,s为尺度参数,通常令h33=1来归一化矩阵;
(c2)基于模型m,计算有效准匹配对kpmq′中所有数据的投影误差e:
若e<0.75,则保留数据,否则剔除;
(c3)设最优有效匹配对kpm′best,kpm′best的初始值=kpm1′,如果当前有效准匹配对kpmq′元素个数大于最优有效匹配对kpm′best,则kpm′best=kpmq′,同时更新迭代次数kk:
其中,p为置信度,取值0.995,w=kpm′best元素个数/kpmq′元素个数,初始迭代次数kk0中kpm′best的元素个数为1;
(c4)如果迭代次数大于kk,则退出循环,记kpmq为有效匹配对kpmq=kpm′best;否则迭代次数加1,并重复上述步骤(c3)。
所述相机的内部参数矩阵为:
其中,fx,fy为焦距,x0、y0为主点坐标,s为坐标轴倾斜参数。
第p图像与第p+1图像间的基础矩阵fp的计算方法为:
其中,x=k-1(x,y,1),x′=k-1(x′,y′,1)为有效匹配对
与现有技术相比,本发明的有益效果是:
本发明提供一种基于图像序列的目标物体三维点云生成方法,以基于图像序列的目标物体三维点云生成为研究对象,深入分析了三维建模的各项流程搭配以及算法的优缺点,设计了一种基于图像分割的目标物体图像序列三维点云生成方法,本方法能有效提高三维建模流程的效率,提高三维点云模型的质量,降低各环节处理误差出现的概率。本发明适用于智能机器人开发的研制,对智能机器人作业,尤其是水下机器人作业的效率有着重要的工程价值和理论指导意义。
附图说明
图1基于图像序列的目标物体三维点云生成方法流程图;
图2基于图像序列的目标物体阈值分割法流程图;
图3特征点提取算法模型示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
如图1所示,基于图像序列的目标物体三维点云生成方法,具体包括以下步骤:
1、从拍摄设备中获取源图像序列,记为s1;对源图像序列s1中每一图像的每一像素点的r、g、b三通道值由下式(1)计算,得到每一像素点的灰度值gray,将灰度值存储到对应源图像序列像素点的新图像序列的像素点中,并将该新图像序列记为灰度图像序列s2。
gray=0.299r+0.587g+0.114b(1)
2、对灰度图像序列s2中每一图像进行阈值分割,确定最佳分割阈值。
阈值分割的流程图如图2,具体步骤如下:
统计0~255各灰度色阶对应的像素个数,记μ(t)(t=0,1,2,…,255)为灰度值t对应的像素个数。
(a1)统计灰度图像序列中0~255各灰度色阶对应的像素个数,记μ(t)(t=0,1,2,…,255)为灰度值t对应的像素个数;
(a2)计算图像的灰度值的均值
式中,p[μ(t)]为灰度值为t的像素个数μ(t)的概率函数;;
(a3)计算图像中待分割物体目标图像像素c0的平均灰度μ1:
其中,pr(i|c0)表示灰度值为i的像素个数占分割物体目标图像像素c0的概率,pi为灰度值为i的像素占总像素个数的概率。
(a4)计算图像中待分割物体目标图像像素c0的像素数所占比例ω1:
其中,n1为目标图像c0像素数,sum为图像像素总数;
(a5)计算图像中背景图像像素c1的平均灰度μ2:
其中,pr(i|c1)表示灰度值为i的像素个数占背景图像像素c1的概率,pi为灰度值为i的像素占总像素个数的概率。
(a6)计算图像中背景图像像素c1的像素数所占比例:
其中,n2为背景图像c1像素数;
(a7)计算最佳分割阈值tbest,所述最佳分割阈值tbest为使类间方差g(t)最大的t值,
g(t)=ω1α-2(ω1μ-μ(t))2+ω2α-2(μ(ω2-1)+μ(t))2(7)
其中,α∈(0,1)视每一张图像分割二值化效果图调整取值。
依据最佳分割阈值tbest将灰度图像序列s2进行分割,小于tbest的像素为背景像素c1,大于tbest的像素为目标物体像素c0,此时将目标物体像素c0保留,即得到物体目标灰度图像序列sablack,对应保留源图像序列s1中像素点得到分割后的目标图像序列sa。
3、对目标图像序列sa进行特征点检测及提取保存,特征点提取的方法流程图如图3,具体包括:
对目标灰度图像序列sablack中的每一图像像素值f(x,y)进行如下处理:
(b1)将图像像素值f(x,y)在不同的高斯平滑参数σ下进行高斯滤波gσ计算:
(b2)计算图像像素值f(x,y)的dog响应图像dogf:
dogf(x,y)=dog*f(x,y)=g1(x,y)-g2(x,y)(9)
(b3)重复(b1)、(b2)步骤得到dogf1(x,y)、dogf2(x,y)、dogf3(x,y);
对dogf2(x,y)中所有值进行检测,若某个dogf2(x,y)在dogfi(x+n,y+m)(i=1,2,3;n=-1,0,1;m=-1,0,1)中为极大或极小值,则标记该像素点为特征点,记
由式(10)计算特征点
其中,l所用的尺度为特征点
l(x,y,σ)=g(x,y,σ)*i(x,y)(11)
其中,参数σ自主选定,且在所有特征点中
由式(12)计算特征点
θ(x,y)=tan-1((l(x,y+1)-l(x,y-1))/(l(x+1,y)-l(x-1,y)))(12)
4、对目标图像序列sa中的特征点
删除误匹配对的具体步骤如下:
(c1)从有效准匹配对kpmq′中选取前m个不共线的样本数据,m≥4,由式计算出最佳单应性矩阵,记为模型m;
其中(x,y)、(x',y')分别表示有效准匹配对kpmq′中两对特征点的位置,s为尺度参数,通常令h33=1来归一化矩阵;
(c2)基于模型m,计算有效准匹配对kpmq′中所有数据的投影误差e:
若e<0.75,则保留数据,否则剔除;
(c3)设最优有效匹配对kpm′best,kpm′best的初始值=kpm1′,如果当前有效准匹配对kpmq′元素个数大于最优有效匹配对kpm′best,则kpm′best=kpmq′,同时更新迭代次数kk:
其中,p为置信度,取值0.995,w=kpm′best元素个数/kpmq′元素个数,初始迭代次数kk0中kpm′best的元素个数为1;
(c4)如果迭代次数大于kk,则退出循环,记kpmq为有效匹配对kpmq=kpm′best;否则迭代次数加1,并重复上述步骤(c3)。
5、通过查阅相机相关信息或用相机标定法获得相机的内部参数,内参矩阵k有:
其中,fx,fy为焦距,一般情况下二者相等,x0、y0为主点坐标(相对于成像平面),s为坐标轴倾斜参数,理想情况下为0。
根据得到的有效匹配对
其中,x=k-1(x,y,1),x′=k-1(x′,y′,1)为有效匹配对
根据得到的基础矩阵fp,由式(18)计算第p图像及第p+1图像间的相机的外部参数旋转矩阵rp、平移矩阵tp。
fp=c-tepc-1,ep=tp×rp(18)
其中,c为自己给定的相机中心在世界坐标系中的位置的向量,常令c等于第p图像的相机坐标系,ep为第p图像及第p+1图像间的相机的本征矩阵,通过对本征矩阵ep进行奇异值分解(singularvaluedecomposition),可以分别计算出第p图像及第p+1图像间的相机的外部参数旋转矩阵rp、平移矩阵tp。
6、由式(19)计算第p图像及第p+1图像间有效匹配对
将有效匹配对
综上所述:本发明公开了一种基于图像序列的目标物体三维点云生成方法,以分割图像为基础,对分割出的目标图像序列进行特征点检测、提取、匹配以及减少误匹配对,得到有效匹配对,再对有效匹配对进行三维点云重建,以得到较高质量及精度的目标物体三维点云模型。本发明能有效提高三维建模流程的效率,提高三维点云模型的质量,降低各环节处理误差出现的概率,适用于智能机器人开发的研制,对智能机器人作业,尤其是水下机器人作业的效率有着重要的工程价值和理论指导意义。