[发明专利]一种基于CUDA的单目立体匹配及加速的方法在审
申请号: | 202011178029.0 | 申请日: | 2020-10-29 |
公开(公告)号: | CN112001867A | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 左超;张晓磊;沈德同 | 申请(专利权)人: | 南京理工大学智能计算成像研究院有限公司 |
主分类号: | G06T5/00 | 分类号: | G06T5/00;G06T5/50 |
代理公司: | 北京翔瓯知识产权代理有限公司 11480 | 代理人: | 向维登 |
地址: | 210000 江苏省南京市建邺*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cuda 立体 匹配 加速 方法 | ||
本发明提出了一种基于CUDA的单目立体匹配及加速的方法,利用CUDA并行化处理来对一幅参考面图像和一幅待测图像进行立体匹配,并且生成视差图的方法,包括对图片的畸变校正、对两幅图做Census变换得到二进制码流、用汉明距离得到初始的匹配成本Cost,对得到的初始匹配成本Cost进行单目的SGM成本聚合,使用WTA算法和Outlier算法计算出可靠、稠密的视差图,再使用亚像素插值算法和自动去杂点算法对视差图进行优化处理。在CUDA运行环境下,整个代码的运行耗时在30ms以内。本发明使用的CUDA的共享内存机制以及线程之间的同步机制,能大幅度缩减计算耗时,实现最大限度加速。
技术领域
本发明属于计算机视觉的技术领域,具体涉及一种基于CUDA的单目立体匹配及加速的方法。
背景技术
立体匹配问题计算流程基本上都可以分为匹配代价计算、代价聚合、视差计算、视差优化这四个步骤。在上述框架下,立体匹配算法基本被分类为两种:(1)局部算法:匹配代价计算=代价聚合=视差计算=视差优化。(2)全局算法:匹配代价计算=视差计算=视差优化。局部算法一般在代价聚合之后,通过选择最低匹配代价来得到对应的视差。全局算法没有进行代价聚合,而是定义了一个包含数据项和平滑项的能量函数并通过最小化能量函数来求得视差,数据项一般为所有像素的代价和,平滑项一般为对邻域像素视差差异的惩罚,部分方法还添加更多的项,比如对遮挡区域的惩罚、左右一致性或对称性约束,或者根据分割区域对平滑项进行加权等。
全局算法由于非常高的运算量或内存消耗,在大多数场合都无法应用,而局部算法虽然速度很快,但是鲁棒性差,匹配质量比较低。2005年,一种半全局的立体匹配算法被提出,叫做SGM,该算法建议采用单像素互信息(HMI)作为匹配代价,沿着多个方向进行一维能量最小化来近似替代二维全局能量最小化,因此被称为半全局算法。SGM的运算速度远远快于大多数全局算法,同时精度也比较高,除了深度学习的方法外,SGM在各种公开数据集的双目匹配任务的排行榜上一直都位列前排,证明了SGM算法的强大。
发明内容
本发明为克服上述现有技术所述的缺陷,提供一种基于CUDA实现的单目立体匹配及加速的方法,主要采用单目相关SGM立体匹配算法,然后采用亚像素插值算法以及自动去杂点算法对视差进行优化。
本发明的技术方案如下:
一种基于CUDA实现的单目立体匹配及加速的方法,其特征在于步骤如下:
步骤一:输入两幅图片并进行畸变校正;
步骤二:选定一个9×7的窗口,对两幅图片除去边缘部分的其它像素做Census变换,得到二进制码流;
步骤三:在视差范围内,依次选定第一幅图片中的像素点,遍历第二幅图范围内的各个像素点的二进制码流,计算汉明距离,得到初始的匹配成本Cost;
步骤四:对初始匹配成本Cost进行单目的SGM成本聚合,结合CUDA的共享内存机制以及线程之间的同步机制,将SGM分为4条独立的路径进行成本聚合;
步骤五:使用WTA算法选取能量函数最小所对应的视差图;
步骤六:使用Outlier算法进行离群点检测,得到需要的视差图;
步骤七:对步骤六得到的视差图使用亚像素插值算法进行优化;
步骤八:对步骤七得到的视差图使用自动去杂点算法进行优化。
优选的,步骤一中,输入一张参考面图片以及一张待测对象的图片后,采用移植Matlab相机标定工具箱的畸变校正代码的方法,并通过查找表的方式用CUDA代码实现图片的畸变校正。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学智能计算成像研究院有限公司,未经南京理工大学智能计算成像研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011178029.0/2.html,转载请声明来源钻瓜专利网。