Canny算法的GPU并行加速
2017-12-13韩树奎张立国王文胜
张 帆,韩树奎,张立国,王文胜,2
(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.中国科学院大学,北京 100049;3.东北电力设计研究院,吉林 长春 130021)
Canny算法的GPU并行加速
张 帆1,2*,韩树奎3,张立国1,王文胜1,2
(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.中国科学院大学,北京 100049;3.东北电力设计研究院,吉林 长春 130021)
Canny算法在PC机上的执行速度较慢,这极大地限制了其实用性。本文在前人的研究基础上对算法进行更深的优化和改进。首先在VS2012开发环境下利用数字图像处理技术对原算法进行原理上的改进,再利用GPU流处理器数量众多的优势以及强大的多线程并发执行能力对Canny算法进行并行加速。在500 pixel×500 pixel的图片上,对本文算法和原Canny算法进行了实验验证。实验结果表明,在4 096 pixel×4 096 pixel大小的图片上采用本文的GPU移植算法处理后,执行速度从80 ms降到了6 ms以内。在不影响边缘检测效果的前提下极大地提高了算法的实用性。
边缘检测;GPU;并行处理;连通域提取
1 引 言
边缘检测是图像处理领域的一种很重要算法,其能从原始图像中分离出目标的边缘信息,去除冗余信息。边缘检测效果比较好的算法为Canny算法。自1986年John Canny提出该算法以来,其高效性得到学者们的广泛认可[1]。该算法在总结前人算法的基础上,提出了新的边缘检测原则:(1)能正确标识出图像的边缘;(2)标出的边缘要和图像的真实边缘尽可能接近;(3)图像中的边缘在结果图中只被标识出一次,因此,可有效去除虚假边缘信息。为了达到上述效果,Canny算法采取了高斯滤波、非极大值抑制、边缘连接等方法进行处理。……
