一种双目立体视频的合成方法与流程

文档序号:16403892发布日期:2018-12-25 20:18阅读:497来源:国知局
一种双目立体视频的合成方法与流程

本发明属于计算机视觉技术领域,涉及一种双目立体视频的合成方法。

背景技术

计算机视觉是一门新兴的综合性学科,它的研究涉及到数学、计算机图形学、模式识别、数字图像处理和数字信号处理等领域。双目立体视觉就是根据人眼成像的特点来研究摄像头的三维成像技术。双目立体视觉作为计算机视觉的一个重要分支,通过模拟人的双眼来达到获取视觉信息的目的。双目立体视觉,就是通过两幅具有类似人类左右眼视觉功能的图像,以双目视差为原理基础,通过立体匹配,获取视差信息,从而获得到目标物体的三维信息。随着双目立体视觉的不断发展与改进,它可以应用到生活中的各个领域,如:近年来新兴的无人机产业、我国的探月工程、汽车导航功能等方面。

近些年中,国内外一直在推动着该方向的研究,逐步将平面成像通过立体视觉技术转变为三维立体视觉。zhang等在2017年文化与计算国际会议中提出将双目立体视觉应用于博物馆的展览中;li等在2017年第四届信息科学与控制工程国际会议中提出运用双目立体视觉技术获取玉兰花的三维立体模型;2017年chen等在无人机避障技术中运用双目视觉技术,使得双目立体视觉技术得到了更广泛的应用。

但是对于立体匹配而言,由于硬件等技术原因,左右两个相机无法做到完全一致,因此会产生左右拍摄出的两幅图像在色彩饱和度或是光照条件无法做到完全统一,这样对于以颜色为匹配准则的匹配算法就会有明显的误差,为了减弱这些影响因素对最终匹配效果的影响,国内外研究者们在匹配精度方面苦寻思路,已经逐年在精确度方面有了质的提升。对于两类立体匹配算法而言,局部立体匹配算法在匹配效果上往往是低于全局匹配算法的,但在运行效率上,局部立体匹配算法由于其本身运算量比全局匹配算法小,因此往往在相同图像条件下,运行效率优于全局立体匹配算法,随着硬件科技的逐渐发展,越来越多的硬件双目设备在分辨率上也有了进一步的提升,并且更多的应用领域越来越关注实时性的问题,这就对匹配的效率提出了更高的要求。



技术实现要素:

本发明的目的是提供一种双目立体视频的合成方法,能够快速合成三维点云视频。

本发明所采用的技术方案是,一种双目立体视频的合成方法,具体按照以下方法进行:

步骤1,相机标定

将双目摄像机进行标定,得到双目摄像机的内参数和外参数;

步骤2,图像矫正

将双目摄像机采集的视频分解为成多帧目标图像,将每帧目标图像均切割成左目视图和右目视图,对每帧目标图像的左目视图和右目视图均进行校正,得到每帧目标图像的校正左目视图和校正右目视图;

步骤3,视差图匹配

将每帧目标图像的校正左目视图和校正右目视图均进行基于sse4.2指令集的立体匹配,得到多帧匹配视差图;

步骤4,合成双目立体视频。

本发明的特点还在于;

步骤1中具体按照下述步骤对双目摄像机进行标定:

步骤1.1,使用张正友标定法对双目摄像机进行标定,得到双目摄像机的初步内参数和初步外参数;

步骤1.2,将初步内参数和初步外参数作为参考,再次使用张正友标定法对双目摄像机进行标定,得到双目摄像机的内参数和外参数。

步骤2中具体按照下述步骤对每帧目标图像的左目视图和右目视图均进行校正:

步骤2.1,根据内参数和外参数,采用bouguet的极线校正算法,对每帧目标图像的左目视图和右目视图均进行畸变校正和极线平行校正,得到每帧目标图像的初步校正的左目视图和右目视图;

步骤2.2,然后对每帧目标图像的初步校正的左目视图和右目视图均裁剪、去噪,得到每帧目标图像的校正左目视图和校正右目视图。

步骤3中具体按照下述方法将矫正后的左目视图和右目视图进行立体匹配:

步骤3.1,将每帧目标图像的校正左目视图和校正右目视图均进行预处理,得到多帧包含左目视图梯度信息的梯度左目视图和包含右目视图梯度信息的梯度右目视图;

步骤3.2,计算梯度左目视图和梯度右目视图的梯度代价、校正左目视图和校正右目视图的sad匹配代价;

步骤3.3,根据梯度左目视图和梯度右目视图的梯度代价和校正左目视图和校正右目视图的匹配代价优化能量函数,得到初始视差图;

步骤3.4,将初始视差图使用加权中值滤波算法进行优化,得到匹配视差图。

步骤3.1具体按照下述方法将每帧目标图像的校正左目视图和校正右目视图均进行预处理:

步骤3.1.1,将校正左目视图和校正右目视图的像素点均进行16位地址对齐,然后将每一个像素点的左、右、左上、右上、左下和右下方向的像素点进行地址对齐并保存;

步骤3.1.2,将每个像素点的像素值中每四个元素进行组合数据返回,得到并联左目视图和并联右目视图;

步骤3.1.3,将并联左目视图和并联右目视图均使用水平sobel算子进行算子处理,得到算子左目视图和算子右目视图;

步骤3.1.4,将算子左目视图和算子右目视图均进行灰度处理,得到包含左目视图梯度信息的梯度左目视图和包含右目视图梯度信息的梯度右目视图。

骤3.2中,计算梯度左目视图和梯度右目视图梯度代价以及校正左目视图和校正右目视图的的sad匹配代价具体按照下述步骤进行:

步骤3.2.1,使用bt算法将梯度左目视图中每个像素点与梯度右目视图中像素点进行匹配,将梯度左目视图和梯度右目视图中能够进行匹配的像素点定义为梯度像素点;

使用bt算法将校正左目视图中每个像素点与校正右目视图中像素点进行匹配,将校正左目视图和校正右目视图中能够进行匹配的像素点定义为校正像素点;

步骤3.2.2,使用bt算法计算每个梯度匹配像素点与其左边相邻像素点之间的左边线性插值强度、每个匹配像素点与其右边相邻像素点之间的右边线性插值强度和每个匹配像素点上的线性插值强度;

使用bt算法计算每个校正像素点与其左边相邻像素点之间的左边线性插值强度、每个匹配像素点与其右边相邻像素点之间的右边线性插值强度和每个匹配像素点上的线性插值强度;

步骤3.2.3,将梯度左目视图和梯度右目视图的匹配像素点均进行16位对齐并存储;

将校正左目视图和校正右目视图的校正像素点均进行16位对齐并存储;

步骤3.2.4,同时对四个匹配像素点进行筛选,得到四个匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值;

同时对四个校正像素点进行筛选,得到四个校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值;

步骤3.2.5,重复步骤3.2.4,使得梯度左目视图和梯度右目视图中所有的匹配像素点和校正左目视图和校正右目视图的所有校正像素点均已经被筛选,得到梯度左目视图和梯度右目视图中匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值和校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值;

步骤3.2.6,使用bt算法根据梯度左目视图和梯度右目视图中匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值得到梯度左目视图和梯度右目视图的梯度代价

使用bt算法根据校正左目视图和校正右目视图的校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值得到校正左目视图和校正右目视图的sad匹配代价。

步骤3.3中具体按照下述步骤得到初始视差图:

步骤3.3.1,将梯度左目视图和梯度右目视图中每一个像素点的左边、左上方、上方、右上方、右边、右下方、下方,左下方的像素点均读取时进行地址对齐;

步骤3.3.2,利用梯度左目视图的梯度代价和校正左目视图和校正右目视图的sad匹配代价计算梯度左目视图中每个像素点的代价聚合值;.

利用梯度右目视图的梯度代价和校正左目视图和校正右目视图的sad匹配代价计算梯度右目视图中每个像素点的代价聚合值;.

步骤3.3.3,根据梯度左目视图中每个像素点的代价聚合值和梯度右目视图中每个像素点的代价聚合值得到每帧目标图像的初始视差图。

步骤4合成双目立体视频,具体按照下述步骤进行:

步骤4.1,将每帧匹配差图均转换为点云模型

步骤4.1.1,建立坐标转化公式:

其中,x为匹配视差图中像素点的横坐标,y为匹配视差图中像素点的纵坐标,d为视差,cx为主点在校正左目视图上的x坐标,cy为主点在校正左目视图上的y坐标,f为焦距,c'x为c'x是主点在校正右目视图上的x坐标,tx为基线,x为三维立体坐标的x轴,y为三维立体坐标的y轴,z为三维立体坐标的z轴,w为缩放因子;

步骤4.1.2,根据坐标转化公式将每帧匹配视差图中每个像素点的均转化为三维立体坐标;

步骤4.1.3,将每帧匹配视差图中每个像素点的三维立体坐标和rgb颜色信息输出为点云模型,得到多个点云模型;

步骤4.2,建立帧结构,具体按照下述步骤进行:

步骤4.2.1,构造orb特征检测器,orb描述子提取器;

步骤4.2.2,使用orb特征检测器提取每帧目标图像中的校正左目视图和校正右目视图的特征点;并根据每帧目标图像中的校正左目视图和校正右目视图的特征点,使用orb描述子提取器提取每帧目标图像中的校正左目视图和校正右目视图的描述子,建立每帧目标图像中的校正左目视图和校正右目视图的描述子矩阵;

步骤4.2.3,将每帧目标图像的校正左目视图、校正右目视图、匹配视差图、匹配视差图每个像素点的三维立体坐标、特征点和描述子矩阵组成一个帧结构,得到多个帧结构;

步骤4.3,生成双目立体视频

步骤4.3.1,相机位姿估计

步骤a,优秀匹配点提取

计算相邻两个帧结构中相对应的描述子之间的距离,得到最小描述子距离;将描述子之间的距离均与最小描述子距离进行比较;若有描述子之间的距离大于最小描述子距离的4倍,则剔除该描述子;剩余的描述子则为优秀匹配点;

步骤b,寻找每个帧结构中的每个优秀匹配点在校正左目视图和校正右目视图中的图像坐标,根据图像坐标得到每个优秀匹配点在匹配视差图中的视差信息,让视差信息为零时,则舍弃该优秀特征点;若差信息不为零时,则在该帧结构中建立三维点集合,将该优秀特征点的图像坐标转化为三维立体坐标存储至该帧结构的三维点集合中,同时在下一个帧结构中建立图像点集合,将该优秀匹配点的图像坐标存储至下一个帧结构中的图像点集合中;

步骤c,根据每个帧结构中的三维点集合和下一个帧结构中的图像点集合,通过pnp算法,得到两个帧结构间的旋转矩阵r和平移矩阵t;

步骤4.3.2,依次读取每个帧结构,根据两个帧结构间旋转矩阵和平移矩阵计算两个帧结构中较后面的帧结构的运动范围,若较后面的帧结构的运动范围过大,则舍弃较后面的帧结构;

步骤4.3.3,将相邻的两个帧结构的点云模型拼接,得到双目立体视频。

步骤4.3.3中,具体按照是下述步骤将相邻的两个帧结构中的点云模型进行拼接:

通过变换矩阵将每帧匹配视差图的点云模型变换,得到多个变换点云模型:

其中,o为投影变换矩阵,r3x3为两个帧结构间的旋转矩阵r,t3x3为两个帧结构间的平移矩阵t;

将每帧变换点云模型进行齐次变换;使用pcl库的transformpointcloud函数将点每帧齐次变换后的点云模型进行旋转缩放,将相邻的两个点云模型进行拼接。

本发明的有益效果是

本发明一种双目立体视频的合成方,标定的参数更加精确,能够更快速的合成双目立体点云视频。

附图说明

图1是本发明一种双目立体视频的合成方法的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

一种双目立体视频的合成方法,如图1所示,具体按照以下步骤实施:

步骤1,相机标定

将双目摄像机进行标定,具体按照下述方法进行:

步骤1.1,使用张正友标定法对双目摄像机进行标定,得到双目摄像机的初步内参数和初步外参数;

步骤1.2,将初步内参数和初步外参数作为参考,再次使用张正友标定法对双目摄像机进行标定,得到双目摄像机的内参数和外参数。

步骤2,图像矫正

将双目摄像机采集的视频分解为成多帧目标图像,将每帧目标图像均切割成左目视图和右目视图,对每帧目标图像的左目视图和右目视图均进行校正,得到每帧目标图像的校正左目视图和校正右目视图;

对每帧目标图像的左目视图和右目视图均进行校正,具体按照下述步骤进行:

步骤2.1,根据内参数和外参数,采用bouguet的极线校正算法,对每帧目标图像的左目视图和右目视图均进行畸变校正和极线平行校正,得到每帧目标图像的初步校正的左目视图和右目视图;

步骤2.2,然后对每帧目标图像的初步校正的左目视图和右目视图均裁剪、去噪,得到每帧目标图像的校正左目视图和校正右目视图。

步骤3,视差图匹配

将每帧目标图像的校正左目视图和校正右目视图均进行立体匹配,得到多帧匹配视差图,具体按照下述方法进行;

步骤3.1,将每帧目标图像的校正左目视图和校正右目视图均进行预处理,具体按照下述方法进行:

步骤3.1.1,将校正左目视图和校正右目视图的像素点均进行16位地址对齐,然后将每一个像素点的左、右、左上、右上、左下和右下方向的像素点进行地址对齐并保存;

步骤3.1.2,将每个像素点的像素值中每四个元素进行组合数据返回,得到并联左目视图和并联右目视图;

步骤3.1.3,将并联左目视图和并联右目视图均使用水平sobel算子进行算子处理,得到算子左目视图和算子右目视图;

步骤3.1.4,将算子左目视图和算子右目视图均进行灰度处理,得到包含左目视图梯度信息的梯度左目视图和包含右目视图梯度信息的梯度右目视图。

步骤3.2,计算梯度左目视图和梯度右目视图的梯度代价、校正左目视图和校正右目视图的sad匹配代价,具体按照下述步骤进行:

步骤3.2.1,使用bt算法将梯度左目视图中每个像素点与梯度右目视图中像素点进行匹配,将梯度左目视图和梯度右目视图中能够进行匹配的像素点定义为梯度像素点;

使用bt算法将校正左目视图中每个像素点与校正右目视图中像素点进行匹配,将校正左目视图和校正右目视图中能够进行匹配的像素点定义为校正像素点;

步骤3.2.2,使用bt算法计算每个梯度匹配像素点与其左边相邻像素点之间的左边线性插值强度、每个匹配像素点与其右边相邻像素点之间的右边线性插值强度和每个匹配像素点上的线性插值强度;

使用bt算法计算每个校正像素点与其左边相邻像素点之间的左边线性插值强度、每个匹配像素点与其右边相邻像素点之间的右边线性插值强度和每个匹配像素点上的线性插值强度;

步骤3.2.3,将梯度左目视图和梯度右目视图的匹配像素点均进行16位对齐并存储;

将校正左目视图和校正右目视图的校正像素点均进行16位对齐并存储;

步骤3.2.4,同时对四个匹配像素点进行筛选,得到四个匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值;

同时对四个校正像素点进行筛选,得到四个校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值;

步骤3.2.5,重复步骤3.2.4,使得梯度左目视图和梯度右目视图中所有的匹配像素点和校正左目视图和校正右目视图的所有校正像素点均已经被筛选,得到梯度左目视图和梯度右目视图中匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值和校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值;

步骤3.2.6,使用bt算法根据梯度左目视图和梯度右目视图中匹配像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最大值和最小值得到梯度左目视图和梯度右目视图的梯度代价;

使用bt算法根据校正左目视图和校正右目视图的校正像素点中左边线性插值强度、右边线性插值强度和线性插值强度的最小值得到校正左目视图和校正右目视图的sad匹配代价。

步骤3.3,根据梯度左目视图和梯度右目视图的梯度代价和校正左目视图和校正右目视图的匹配代价优化能量函数,并计算能量函数最优解,具体按照下述步骤进行:

步骤3.3.1,将梯度左目视图和梯度右目视图中每一个像素点的左边、左上方、上方、右上方、右边、右下方、下方,左下方的像素点均读取时进行地址对齐;

步骤3.3.2,利用梯度左目视图的梯度代价和校正左目视图和校正右目视图的sad匹配代价计算梯度左目视图中每个像素点的代价聚合值;.

利用梯度右目视图的梯度代价和校正左目视图和校正右目视图的sad匹配代价计算梯度右目视图中每个像素点的代价聚合值;.

步骤3.3.3,根据梯度左目视图中每个像素点的代价聚合值和梯度右目视图中每个像素点的代价聚合值得到每帧目标图像的视差图;

步骤3.4,将视差图使用加权中值滤波算法进行优化,得到匹配视差图。

步骤4,合成双目立体视频,具体按照下述方法进行:

步骤4.1,将每帧匹配差图均转换为点云模型

步骤4.1.1,建立坐标转化公式:

其中,x为匹配视差图中像素点的横坐标,y为匹配视差图中像素点的纵坐标,d为视差,cx为主点在校正左目视图上的x坐标,cy为主点在校正左目视图上的y坐标,f为焦距,c'x为c'x是主点在校正右目视图上的x坐标,tx为基线,x为三维立体坐标的x轴,y为三维立体坐标的y轴,z为三维立体坐标的z轴,w为缩放因子;

步骤4.1.2,根据坐标转化公式将每帧匹配视差图中每个像素点的均转化为三维立体坐标;

步骤4.1.3,将每帧匹配视差图中每个像素点的三维立体坐标和rgb颜色信息输出为点云模型,得到多个点云模型;

步骤4.2,建立帧结构,具体按照下述步骤进行:

步骤4.2.1,构造orb特征检测器,orb描述子提取器;

步骤4.2.2,使用orb特征检测器提取每帧目标图像中的校正左目视图和校正右目视图的特征点;并根据每帧目标图像中的校正左目视图和校正右目视图的特征点,使用orb描述子提取器提取每帧目标图像中的校正左目视图和校正右目视图的描述子,建立每帧目标图像中的校正左目视图和校正右目视图的描述子矩阵;

步骤4.2.3,将每帧目标图像的校正左目视图、校正右目视图、匹配视差图、匹配视差图每个像素点的三维立体坐标、特征点和描述子矩阵组成一个帧结构,得到多个帧结构;

步骤4.3,生成双目立体视频

步骤4.3.1,相机位姿估计

步骤a,优秀匹配点提取

计算相邻两个帧结构中相对应的描述子之间的距离,得到最小描述子距离;将描述子之间的距离均与最小描述子距离进行比较;若有描述子之间的距离大于最小描述子距离的4倍,则剔除该描述子;剩余的描述子则为优秀匹配点;

步骤b,寻找每个帧结构中的每个优秀匹配点在校正左目视图和校正右目视图中的图像坐标,根据图像坐标得到每个优秀匹配点在匹配视差图中的视差信息,让视差信息为零时,则舍弃该优秀特征点;若差信息不为零时,则在该帧结构中建立三维点集合,将该优秀特征点的图像坐标转化为三维立体坐标存储至该帧结构的三维点集合中,同时在下一个帧结构中建立图像点集合,将该优秀匹配点的图像坐标存储至下一个帧结构中的图像点集合中;

步骤c,根据每个帧结构中的三维点集合和下一个帧结构中的图像点集合,通过pnp算法,得到两个帧结构间的旋转矩阵r和平移矩阵t;

步骤4.3.2,依次读取每个帧结构,根据两个帧结构间旋转矩阵和平移矩阵计算两个帧结构中较后面的帧结构的运动范围,若较后面的帧结构的运动范围过大,则舍弃较后面的帧结构;

步骤4.3.3,将相邻的两个帧结构的点云模型拼接,得到双目立体视频。

具体按照下述步骤将相邻的两个帧结构中的点云模型进拼接:

通过变换矩阵将每帧匹配视差图的点云模型变换,得到多个变换点云模型:

其中,o为投影变换矩阵,r3x3为两个帧结构间的旋转矩阵r,t3x3为两个帧结构间的平移矩阵t;

将每帧变换点云模型进行齐次变换;使用pcl库的transformpointcloud函数将点每帧齐次变换后的点云模型进行旋转缩放,将相邻的两个点云模型进行拼接。

本发明一种双目立体视频的合成方改进了相机标定的方法,使得标定的参数更加精确,同时提供了一种sse4.2指令集加速图像匹配过程,最终获取到完整的双目立体视频。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1