论文部分内容阅读
目前,GPU已经被广泛应用于通用计算领域,早期的基于GPU的通用计算由于硬件的可编程性差,限制了其应用范围。NVIDIA推出的CUDA是一种将图形处理器作为并行计算平台的软硬件体系,其编程风格简单,采用的是多线程的并行处理方式,使人们能够有效利用GPU的强大性能。另一方面,图像匹配作为图像视觉的常用技术,应用范围十分广泛,SIFT立体匹配算法是一种较为稳定的基于特征的匹配算法,对于尺度变换、旋转变换以及光照变化都有较好的抵抗能力,是图像处理领域的研究热点。SIFT立体匹配算法虽然具有很多优点,但是其程序复杂,运行所耗费的时间较多,而且由于它是一种基于特征的匹配算法,得到的匹配点对数量较少,无法满足生成视差图的要求,所以使得它的应用领域受到了限制。本文首先对传统的预处理算法进行了探讨,分析了算法的并行性,并在CUDA上实现了图像灰度转换、高斯滤波、直方图均衡化处理以及Wallis滤波。然后针对SIFT立体匹配算法存在的上述两个问题,一方面对原算法进行改进,将由原算法得到的匹配点对作为种子点进行区域增长,从而获取数量可观的匹配点,有利于视差图的生成;另一方面,使用CPU和GPU的异构平台,深入分析了CUDA的编程模型和存储器模型,对SIFT立体匹配算法进行了任务划分,对算法进行详细的并行化分析,使算法得以在CUDA上进行实现,加快算法的运行速度。在搭建的双目视觉平台上对基于SIFT的区域增长算法进行实验,验证了改进算法的有效性。为了更直观地评价GPU的加速效果,在各种不同的场景下对基于GPU的SIFT立体匹配算法进行实验,实验结果表明,在CUDA上实现算法不仅提高了算法的速度,而且保证了原算法的稳定性,算法的效率得到了很大提升。