一种基于GPU的高精度视差计算加速方法技术

技术编号:18240885 阅读:168 留言:0更新日期:2018-06-17 05:52
一种基于GPU的高精度视差计算加速方法,GPU设置为统一计算设备架构,具体步骤包括:S1、获取左视角图像和右视角图像;S2、分别将左视角图像和右视角图像拆分成若干个大小为32×32的传播区块;S3、对左视角图像和右视角图像中每个传播区块进行视差值迭代更新,视差值迭代更新过程中传播区块的所有像素值存入到GPU的纹理内存中,视差值迭代更新过程的过程参数存入到GPU的共享内存中。本发明专利技术能够充分利用CPU的计算能力,在保证视差计算精度的前提下大幅加快计算速度。 1

A high accuracy parallax computing acceleration method based on GPU

A high precision parallax calculation acceleration method based on GPU, GPU is set as a unified computing device architecture. The specific steps include: S1, acquisition of left angle image and right angle image; S2, separate the left angle image and right angle image into a number of 32 * 32 propagation block blocks; S3, left angle image and right angle graph The parallax values are updated iteratively in every propagation block in the image, and all the pixel values of the propagation block are stored in the GPU texture memory during the iterative updating of the parallax value, and the process parameters of the iterative updating process of the parallax value are stored into the shared memory of the GPU. The invention can make full use of the computing power of CPU, and greatly speed up the calculation speed under the premise of ensuring the accuracy of parallax calculation. One

【技术实现步骤摘要】
一种基于GPU的高精度视差计算加速方法
本专利技术涉及三维重建
,具体地说是一种基于GPU的高精度视差计算加速方法。
技术介绍
作为计算机视觉的一个重要分支,双目立体视觉的获取过程大致是由一台通过移动或者转动视角来拍摄同一幅场景的摄像机或者是模拟双眼的两个摄像头拍摄同一个物体,然后利用立体匹配算法求出两幅图像对应像点间的视差,结合视差图像与摄像机标定所得参数求出场景内被测物体各点的三维坐标,进而重建出场景的三维结构信息并获得相应点的深度值,此深度值即为成像平面与被测物体之间的实际距离。一个完整的立体视觉系统一般可以由图像获取、摄像机标定、特征提取、立体匹配、深度确定及内插重建6个部分组成。立体匹配是双目立体视觉中最重要、最核心的问题。它解决的是对于同一空间景物上的一点在参考图像上的投影点如何在匹配图像上找到其对应点的问题。目前大部分立体匹配算法都包括四个步骤:(1)代价计算,(2)代价聚合,(3)视差计算和优化,(4)视差求精。总体来说,立体匹配算法可以分为两类:局部立体匹配算法和全局立体匹配算法。局部立体匹配算法利用一个窗口内的颜色或灰度信息来确定每个点的视差值。而全局立体匹配算法基于平滑性假设,并且利用能量最小化技术同时确定所有点的视差值。全局立体匹配算法利用图像的平滑项和数据项两项约束项求解整体能量的最小值。能够很好的解决低纹理区域的误匹配现象。全局立体匹配算法的代表有图割法、动态规划算法、置信度传播算法等。但是算法运算量大,不适合实时系统。局部立体匹配算法由于每个点仅仅依赖局部信息,通过计算匹配窗口内的总匹配代价,利用WTA策略找到最小的匹配代价,来确定视差。若采用固定的小尺寸窗口可以保留纹理和边缘信息,但视差图噪声比较大;而采用固定的大尺寸窗口可对局部的匹配进行平滑,在深度不连续区域产生前景膨胀效应,视差图模糊,边缘的效果很差。局部立体匹配算法的代表有像素差的绝对值(SAD)、自适应窗口算法、自适应权重算法等。虽然局部立体匹配算法精度不如全局立体匹配算法,但算法运算量小,适合实时系统。传统的局部立体匹配方法:自适应权重算法利用局部自适应支持权重计算该中心像素和属于同一区域相邻的像素的概率。由于其复杂度取决于匹配窗口的大小,与窗口的大小成平方关系,自适应窗口速度慢,不能满足实时性的要求;固定窗口的立体匹配算法虽然运算速度快,但在低纹理区域处理效果不好,容易出现前景膨胀效应。综上,在立体匹配过程中,视差计算是非常重要的一个环节。基于双目立体视觉系统所得到的视差是获得目标物体深度信息的基础,高精度的视差信息有利于对目标物体进行高精度的建模。然而,要获得高精度的视差通常意味着要承担较大的计算量。现在有越来越多的建模过程要求具有实时性或近似实时性,提高视差计算的速度有利于达到此类建模过程的要求。
技术实现思路
为了解决现有技术中的不足,本专利技术提供一种基于GPU的高精度视差计算加速方法,能够充分利用GPU的计算能力,在保证视差计算精度的前提下大幅加快计算速度。为了实现上述目的,本专利技术采用的具体方案为:一种基于GPU的高精度视差计算加速方法,GPU设置为统一计算设备架构,具体步骤包括:S1、获取左视角图像和右视角图像;S2、分别将左视角图像和右视角图像拆分成若干个大小为32×32的传播区块;S3、对左视角图像和右视角图像中每个传播区块进行视差值迭代更新,视差值迭代更新过程中传播区块的所有像素值存入到GPU的纹理内存中,视差值迭代更新过程的过程参数存入到GPU的共享内存中。优选的,S2中,任意两个相邻的传播区块之间均有一个重叠区,重叠区为32个排列成行的像素或者32个排列成列的像素。视差值迭代更新包括空域传播,空域传播包括行方向传播、行方向逆传播、列方向传播和列方向逆传播,过程参数包括像素的当前视差值和当前视差分数。行方向传播的具体方法为:在行方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;行方向逆传播的具体方法为:在行方向的逆方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;列方向传播的具体方法为:在列方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;列方向传播的具体方法为:在列方向的逆方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,用传播视差分数替换当前视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数。优选的,S3中空域传播的具体方法为:S3.1、设定当前视差值平均改变量阈值X;S3.2、将传播区块中所有像素的当前视差值和当前视差分数存入到GPU的共享内存中;S3.3、对传播区块同步进行行方向传播和列方向传播;S3.4、对传播区块同步进行行方向逆传播和列方向逆传播;S3.5、将传播区块中所有像素的当前视差值和当前视差分数从共享内存中存出,并计算整个左视角图像中所有像素当前视差值平均的改变量X1和整个右视角图像中所有像素当前视差值平均的改变量X2;S3.6、重复进行S3.3至S3.5,直到X1和X2均小于X。优选的,当前视差值存储为short类型,占用两个字节,当前视差分数存储为double类型,占用八个字节。优选的,加速方法的具体步骤包括:S1’、获取左视角图像、右视角图像和基准图像;S2’、从基准图像提取目标区域,将目标区域向右偏移得到左参考图像,将目标区域向左偏移得到右参考图像;S3’、将左视角图像中与左参考图像上目标区域相对应的部分设置为左有效区域,将右视角图像中与右参考图像上的目标区域相对应的部分设置为右有效区域;S4’、将左有效区域和右有效区域分别拆分为若干个有效块,有效块的大小为32×32的整倍数;S5’、将有效块拆分为若干个32×32的传播区块,对左视角图像和右视角图像中每个传播区块进行视差值迭代更新,视差值迭代更新过程中传播区块的所有像素值存入到GPU的纹理内存中,视差值迭代更新过程的过程参数存入到GPU的共享内存中。优选的,S2’中,从基准图像中提取目标区域采用Mask方法,具体包括:S2’.1、拍摄背景图像;S2’.2、将目标物体置于背景图像前方,拍摄叠加图像;S2’.3、对背景图像和叠加图像做差分处理,提取目标物体的轮廓线,轮廓线围合出的区域即为目标区域。优选的,S4’中,对每个有效块赋予一个母标记,S5’中,每个传播区块赋予一个标识,标识包括传播区块所在有效块的目标记和传播区块的子标记。优选的,S1’用到一种图像获取装置,图像获取装置固定连接的相机组和红外散斑生成器,相机组本文档来自技高网
...
一种基于GPU的高精度视差计算加速方法

【技术保护点】
1.一种基于GPU的高精度视差计算加速方法,GPU设置为统一计算设备架构,其特征在

【技术特征摘要】
1.一种基于GPU的高精度视差计算加速方法,GPU设置为统一计算设备架构,其特征在于:具体步骤包括:S1、获取左视角图像和右视角图像;S2、分别将左视角图像和右视角图像拆分成若干个大小为32×32的传播区块;S3、对左视角图像和右视角图像中每个传播区块进行视差值迭代更新,视差值迭代更新过程中传播区块的所有像素值存入到GPU的纹理内存中,视差值迭代更新过程的过程参数存入到GPU的共享内存中。2.如权利要求1的一种基于GPU的高精度视差计算加速方法,其特征在于:S2中,任意两个相邻的传播区块之间均有一个重叠区,重叠区为32个排列成行的像素或者32个排列成列的像素。3.如权利要求1的一种基于GPU的高精度视差计算加速方法,其特征在于:视差值迭代更新包括空域传播,空域传播包括行方向传播、行方向逆传播、列方向传播和列方向逆传播,过程参数包括像素的当前视差值和当前视差分数。4.如权利要求3的一种基于GPU的高精度视差计算加速方法,其特征在于:行方向传播的具体方法为:在行方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;行方向逆传播的具体方法为:在行方向的逆方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;列方向传播的具体方法为:在列方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,用传播视差分数替换当前视差分数,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数;列方向传播的具体方法为:在列方向的逆方向上,对于任一像素用其前一像素的视差值作为传播视差值计算传播视差分数,用传播视差分数替换当前视差分数,如果传播视差分数大于当前视差分数,则用传播视差值替换当前视差值,如果传播视差分数小于或者等于当前视差分数,则不改变当前视差值和当前视差分数。5.如权利要求4的一种基于GPU的高精度视差计算加速方法,其特征在于:S3中空域传播的具体方法为:S3.1、设定当前视差值平均改变量阈值X;S...

【专利技术属性】
技术研发人员:冯文铎
申请(专利权)人:洛阳中科众创空间科技有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1