基于多核处理器的哈里斯特征点检测并行实现方法

文档序号:8257907阅读:460来源:国知局
基于多核处理器的哈里斯特征点检测并行实现方法
【技术领域】
[0001]本发明涉及一种图像并行处理技术的方法,特别涉及基于多核处理器的哈里斯(Harris)特征点检测并行实现方法。
技术背景
[0002]从处理器诞生时代直到21世纪初,处理器性能可以不断提高的原因,主要基于两个方面:一是半导体工艺的逐渐进步;二是处理器体系结构的不断发展。它们相辅相成,互相促进彼此的发展,但由于工艺技术的限制,半导体工艺已经达到了物理极限,处理器的频率也就很难再有所提高,如此,各处理器厂商转而向单个芯片上集成多个处理器内核,即所谓的多核处理器诞生了。多核处理器诞生后,并行计算得到的关注度越来越多,所谓的并行计算是指,由运行在多个部件上的分任务合作来求解一个规模很大的问题的一种计算方法,它可以降低单个问题的求解时间、增加问题的求解规模、提高问题的求解精度、具有更高的容错性、可用性及系统吞吐率等。
[0003]随着计算机技术的发展,如今人们所使用的计算机多为双核乃至4核处理器,且4核处理器已逐渐成为主流。多核时代的来临使得高性能计算的并行编程成为主要研宄方向。传统程序在执行时只运行一个线程,这些程序在多核处理器平台上不能有效地利用多核处理器资源,所以必须使用多线程编写程序才能让各个处理器内核得到充分利用。早在单核处理器时代,应用程序已经能够支持多线程技术,但是不同的是,单核内的多线程运行是串行的,多个线程交替执行,在同一时刻只能有一个线程执行;而多核处理器是通过增加计算机中物理处理器的数量,它能够有效利用线程实现并行性,因此多核处理器系统支持真正意义上的并行执行,表现出多个线程能够在多个处理器内核上同时执行。
[0004]OpenMP用于共享内存并行系统的多线程程序设计的一套指导性编译处理方案,常用于多核处理器环境下的多线程并行程序设计。通过在原串行程序的基础上增加编译制导语句,显示地实现串行程序的并行化;且OpenMP提供了对并行算法高层的抽象描述,通过在源代码中加入专用的pragma来指明意图,由此编译器可以自动将程序并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma语句,或者编译器不支持OpenMP时,程序又可以退化为串行程序,代码仍然可以正常运作,只是不能利用多线程来加速程序执行。
[0005]Harris特征点检测作为基于图像灰度信息的检测方法被广泛使用。其是通过泰勒级数展开法扩展了思路,计算窗口沿着任何方向移动后的灰度变化情况,利用数学解析式来进一步确定特征点,定位精度高。同时引入了平滑因子,增强了该算法的鲁棒性。整个算法是受到信号处理中自相关函数的启发,引入与自相关函数相联系的矩阵M。矩阵M的特征值可以表示某一点的图像灰度自相关函数的极值曲率,如果两个曲率极值都高,那么就取该像素点为特征点。Harris特征点检测算法原理参考图1,其中λ?和λ 2是矩阵M的两个特征值。虽然Harris特征点定位准确,但由于涉及到卷积运算,计算量较大,时间复杂度高,影响后续诸如场景分析、目标识别、图像配准等一系列的图像处理应用。

【发明内容】

[0006]为克服现有技术的不足,本发明旨在提出一种基于多核处理器的Harris特征点检测并行实现方法。该方法在当今多核处理器的应用前景下,大大提高Harris特征点检测算法的运算速度,增加其实用性。为此,本发明采取的技术方案是,基于多核处理器的哈里斯特征点检测并行实现方法,包括如下步骤:
[0007]步骤一:并行梯度计算:将输入图像的梯度计算分配给不同的线程以实现并行计算;
[0008]步骤二:并行高斯滤波步骤:将1x2梯度图像、Iy2梯度图像和Ixy梯度图像的高斯滤波操作分配给不同的线程以实现并行计算;
[0009]步骤三:并行特征点响应函数计算步骤:将自相关矩阵图像的特征点响应函数计算分配给不同的线程以实现并行计算;
[0010]步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。
[0011]并行梯度计算步骤进一步具体为:将输入图像划分为NXN的图像块,即每块含N行,每行含N个像素点;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的水平梯度Ix和垂直梯度Iy ;每个线程并行计算每个图像块的水平梯度的平方1x2、垂直梯度的平方y2和水平梯度与垂直梯度的乘积Ixy ;其中,Ix和Iy分别表示图像在水平和垂直方向上的梯度,1x2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积,N为正整数。
[0012]并行高斯滤波步骤进一步具体为:将1x2梯度图像、Iy2梯度图像和Ixy梯度图像划分为NXN的图像块,即每块含N行,每行含N个梯度值;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的自相关矩阵中的元素A、B和C ;其中,A由对1x2梯度图像进行高斯滤波而得;B由对Iy2梯度图像进行高斯滤波而得;C由对Ixy梯度图像进行高斯滤波而得。
[0013]并行特征点响应函数计算步骤进一步具体为:将自相关矩阵图像划分为NXN的图像块,即每块含N行,每行含N个自相关矩阵;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的特征点响应函数。
[0014]并行非极大值抑制步骤进一步具体为:将特征点响应函数图像划分为NXN的图像块,即每块含N行,每行含N个特征点响应函数;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的最终特征点。
[0015]与已有技术相比,本发明的技术特点与效果:
[0016]与传统Harris特征点检测算法相比,本发明将算法中4个关键步骤:梯度计算、高斯滤波、特征点响应函数计算、非极大值抑制,在多核处理器环境下利用多线程并行编程实现了并行程序设计。在任务划分过程中,每个线程具有相近的工作量,保证以相同繁忙程度来工作;并且任务划分的粒度要远大于线程开销时间,在总的处理器时间中所占的比重很大,因此大大提高了运算速度。
[0017]而且本发明具有极好的可扩展性和适用性,将N设置成不同的数值即可适用于不同处理器核数环境下的并行程序设计。
【附图说明】
[0018]图1是Harris特征点检测算法原理示意图。
[0019]图2是本发明的流程图。
[0020]图3是并行梯度计算步骤划分与计算过程。
[0021]图4是并行高斯滤波步骤划分与计算过程。
[0022]图5是并行特征点响应函数计算步骤划分与计算过程。
[0023]图6是并行非极大值抑制步骤划分与计算过程。
【具体实施方式】
[0024]本发明包括下列步骤:并行梯度计算步骤;并行高斯滤波步骤;并行特征点响应函数计算步骤;并行非极大值抑制步骤。本发明的流程图参考图2。根据目前图像处理中实际的应用需求,所述的特征点检测方法中各个步骤所处理的图像区域均为除最外围5行5列的区域。
[0025]步骤一:并行梯度计算:将输入图像的梯度计算分配给不同的线程以实现并行计笪并ο
[0026]并行梯度计算步骤进一步具体为:将输入图像划分为NXN的图像块,即每块含N行,每行含N个像素点;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的水平梯度Ix和垂直梯度Iy ;每个线程并行计算每个图像块的水平梯度的平方x2、垂直梯度的平方Iy2和水平梯度与垂直梯度的乘积Ixy。
[0027]其中,Ix和Iy分别表示图像在水平和垂直方向上的梯度。1x2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积。N为正整数。
[0028]步骤二:并行高斯滤波步骤:将1x2梯度图像、Iy2梯度图像和Ixy梯度图像的高斯滤波操作分配给不同的线程以实现并行计算。
[0029]并行高斯滤波步骤进一步具体为:将1x2梯度图像、Iy2梯度图像和Ixy梯度图像划分为NXN的图像块,即每块含N行,每行含N个梯度值;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的自相关矩阵中的元素A、B和C。
[0030]其中,A由对1x2梯度图像进行高斯滤波而得;B由对Iy2梯度图像进行高斯滤波而得;C由对Ixy梯度图像进行高斯滤波而得。
[0031]步骤三:并行特征点响应函数计算步骤:将自相关矩阵图像的特征点响应函数计算分配给不同的线程以实现并行计算。
[0032]并行特征点响应函数计算步骤进一步具体为:将自相关矩阵图像划分为NXN的图像块,即每块含N行,每行含N个自相关矩阵;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的特征点响应函数。
[0033]步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。
[0034]并行非极大值抑制步骤进一步具体为:将特征点响应函数图像划分为NXN的图像块,即每块含N行,每行含N个特征点响应函数;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的最终特征点。
[0035]下面结合附图及实例,对本发明进行进一步详细说明。
[0036]应该指出,此处所描述的具体实施实例仅仅用以解释本发明,并不用于限定本发明。本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实例。
[0037]Harris特征点检测算法计算流程共有4个步骤:梯度计算、高斯滤波、特征点响应函数计算、非极大值抑制。通过对每个步骤进行并行设计,即可实现整体算法的并行化。根据目前图像处理中实际的应用需求,在算法的并行程序设计中各个步骤所处理的图像区域均为除最外围5行5列的区域
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1