CN104572027A - 基于多核处理器的哈里斯特征点检测并行实现方法 - Google Patents
基于多核处理器的哈里斯特征点检测并行实现方法 Download PDFInfo
- Publication number
- CN104572027A CN104572027A CN201410818183.8A CN201410818183A CN104572027A CN 104572027 A CN104572027 A CN 104572027A CN 201410818183 A CN201410818183 A CN 201410818183A CN 104572027 A CN104572027 A CN 104572027A
- Authority
- CN
- China
- Prior art keywords
- image
- gradient
- parallel
- feature point
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明涉及一种图像并行处理技术的方法,为提出一种基于多核处理器的Harris特征点检测并行实现方法。该方法在当今多核处理器的应用前景下,大大提高Harris特征点检测算法的运算速度,增加其实用性。为此,本发明采取的技术方案是,基于多核处理器的哈里斯特征点检测并行实现方法,包括如下步骤:步骤一:并行梯度计算;步骤二:并行高斯滤波步骤;步骤三:并行特征点响应函数计算步骤;步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。本发明主要应用于图像并行处理。
Description
技术领域
本发明涉及一种图像并行处理技术的方法,特别涉及基于多核处理器的哈里斯(Harris)特征点检测并行实现方法。
技术背景
从处理器诞生时代直到21世纪初,处理器性能可以不断提高的原因,主要基于两个方面:一是半导体工艺的逐渐进步;二是处理器体系结构的不断发展。它们相辅相成,互相促进彼此的发展,但由于工艺技术的限制,半导体工艺已经达到了物理极限,处理器的频率也就很难再有所提高,如此,各处理器厂商转而向单个芯片上集成多个处理器内核,即所谓的多核处理器诞生了。多核处理器诞生后,并行计算得到的关注度越来越多,所谓的并行计算是指,由运行在多个部件上的分任务合作来求解一个规模很大的问题的一种计算方法,它可以降低单个问题的求解时间、增加问题的求解规模、提高问题的求解精度、具有更高的容错性、可用性及系统吞吐率等。
随着计算机技术的发展,如今人们所使用的计算机多为双核乃至4核处理器,且4核处理器已逐渐成为主流。多核时代的来临使得高性能计算的并行编程成为主要研究方向。传统程序在执行时只运行一个线程,这些程序在多核处理器平台上不能有效地利用多核处理器资源,所以必须使用多线程编写程序才能让各个处理器内核得到充分利用。早在单核处理器时代,应用程序已经能够支持多线程技术,但是不同的是,单核内的多线程运行是串行的,多个线程交替执行,在同一时刻只能有一个线程执行;而多核处理器是通过增加计算机中物理处理器的数量,它能够有效利用线程实现并行性,因此多核处理器系统支持真正意义上的并行执行,表现出多个线程能够在多个处理器内核上同时执行。
OpenMP用于共享内存并行系统的多线程程序设计的一套指导性编译处理方案,常用于多核处理器环境下的多线程并行程序设计。通过在原串行程序的基础上增加编译制导语句,显示地实现串行程序的并行化;且OpenMP提供了对并行算法高层的抽象描述,通过在源代码中加入专用的pragma来指明意图,由此编译器可以自动将程序并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma语句,或者编译器不支持OpenMP时,程序又可以退化为串行程序,代码仍然可以正常运作,只是不能利用多线程来加速程序执行。
Harris特征点检测作为基于图像灰度信息的检测方法被广泛使用。其是通过泰勒级数展开法扩展了思路,计算窗口沿着任何方向移动后的灰度变化情况,利用数学解析式来进一步确定特征点,定位精度高。同时引入了平滑因子,增强了该算法的鲁棒性。整个算法是受到信号处理中自相关函数的启发,引入与自相关函数相联系的矩阵M。矩阵M的特征值可以表示某一点的图像灰度自相关函数的极值曲率,如果两个曲率极值都高,那么就取该像素点为特征点。Harris特征点检测算法原理参考图1,其中λ1和λ2是矩阵M的两个特征值。虽然Harris特征点定位准确,但由于涉及到卷积运算,计算量较大,时间复杂度高,影响后续诸如场景分析、目标识别、图像配准等一系列的图像处理应用。
发明内容
为克服现有技术的不足,本发明旨在提出一种基于多核处理器的Harris特征点检测并行实现方法。该方法在当今多核处理器的应用前景下,大大提高Harris特征点检测算法的运算速度,增加其实用性。为此,本发明采取的技术方案是,基于多核处理器的哈里斯特征点检测并行实现方法,包括如下步骤:
步骤一:并行梯度计算:将输入图像的梯度计算分配给不同的线程以实现并行计算;
步骤二:并行高斯滤波步骤:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像的高斯滤波操作分配给不同的线程以实现并行计算;
步骤三:并行特征点响应函数计算步骤:将自相关矩阵图像的特征点响应函数计算分配给不同的线程以实现并行计算;
步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。
并行梯度计算步骤进一步具体为:将输入图像划分为N×N的图像块,即每块含N行,每行含N个像素点;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的水平梯度Ix和垂直梯度Iy;每个线程并行计算每个图像块的水平梯度的平方Ix2、垂直梯度的平方y2和水平梯度与垂直梯度的乘积Ixy;其中,Ix和Iy分别表示图像在水平和垂直方向上的梯度,Ix2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积,N为正整数。
并行高斯滤波步骤进一步具体为:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像划分为N×N的图像块,即每块含N行,每行含N个梯度值;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的自相关矩阵中的元素A、B和C;其中,A由对Ix2梯度图像进行高斯滤波而得;B由对Iy2梯度图像进行高斯滤波而得;C由对Ixy梯度图像进行高斯滤波而得。
并行特征点响应函数计算步骤进一步具体为:将自相关矩阵图像划分为N×N的图像块,即每块含N行,每行含N个自相关矩阵;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的特征点响应函数。
并行非极大值抑制步骤进一步具体为:将特征点响应函数图像划分为N×N的图像块,即每块含N行,每行含N个特征点响应函数;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的最终特征点。
与已有技术相比,本发明的技术特点与效果:
与传统Harris特征点检测算法相比,本发明将算法中4个关键步骤:梯度计算、高斯滤波、特征点响应函数计算、非极大值抑制,在多核处理器环境下利用多线程并行编程实现了并行程序设计。在任务划分过程中,每个线程具有相近的工作量,保证以相同繁忙程度来工作;并且任务划分的粒度要远大于线程开销时间,在总的处理器时间中所占的比重很大,因此大大提高了运算速度。
而且本发明具有极好的可扩展性和适用性,将N设置成不同的数值即可适用于不同处理器核数环境下的并行程序设计。
附图说明
图1是Harris特征点检测算法原理示意图。
图2是本发明的流程图。
图3是并行梯度计算步骤划分与计算过程。
图4是并行高斯滤波步骤划分与计算过程。
图5是并行特征点响应函数计算步骤划分与计算过程。
图6是并行非极大值抑制步骤划分与计算过程。
具体实施方式
本发明包括下列步骤:并行梯度计算步骤;并行高斯滤波步骤;并行特征点响应函数计算步骤;并行非极大值抑制步骤。本发明的流程图参考图2。根据目前图像处理中实际的应用需求,所述的特征点检测方法中各个步骤所处理的图像区域均为除最外围5行5列的区域。
步骤一:并行梯度计算:将输入图像的梯度计算分配给不同的线程以实现并行计算。
并行梯度计算步骤进一步具体为:将输入图像划分为N×N的图像块,即每块含N行,每行含N个像素点;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的水平梯度Ix和垂直梯度Iy;每个线程并行计算每个图像块的水平梯度的平方x2、垂直梯度的平方Iy2和水平梯度与垂直梯度的乘积Ixy。
其中,Ix和Iy分别表示图像在水平和垂直方向上的梯度。Ix2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积。N为正整数。
步骤二:并行高斯滤波步骤:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像的高斯滤波操作分配给不同的线程以实现并行计算。
并行高斯滤波步骤进一步具体为:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像划分为N×N的图像块,即每块含N行,每行含N个梯度值;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的自相关矩阵中的元素A、B和C。
其中,A由对Ix2梯度图像进行高斯滤波而得;B由对Iy2梯度图像进行高斯滤波而得;C由对Ixy梯度图像进行高斯滤波而得。
步骤三:并行特征点响应函数计算步骤:将自相关矩阵图像的特征点响应函数计算分配给不同的线程以实现并行计算。
并行特征点响应函数计算步骤进一步具体为:将自相关矩阵图像划分为N×N的图像块,即每块含N行,每行含N个自相关矩阵;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的特征点响应函数。
步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。
并行非极大值抑制步骤进一步具体为:将特征点响应函数图像划分为N×N的图像块,即每块含N行,每行含N个特征点响应函数;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的最终特征点。
下面结合附图及实例,对本发明进行进一步详细说明。
应该指出,此处所描述的具体实施实例仅仅用以解释本发明,并不用于限定本发明。本实例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实例。
Harris特征点检测算法计算流程共有4个步骤:梯度计算、高斯滤波、特征点响应函数计算、非极大值抑制。通过对每个步骤进行并行设计,即可实现整体算法的并行化。根据目前图像处理中实际的应用需求,在算法的并行程序设计中各个步骤所处理的图像区域均为除最外围5行5列的区域。
步骤一:并行梯度计算
Harris特征点检测的梯度计算步骤首先分别计算输入图像的水平方向梯度和垂直方向梯度,然后在计算梯度乘积。例如对于本发明在4核处理器平台下,可将输入图像划分为2×2的块,每个线程并行计算其中一个图像块的梯度,划分与计算过程参考图3。其中Ix2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积。利用OpenMP并行编程模型,其主要形式如下:
#pragma omp parallel sections num_threads(4)
{
#pragma omp section
{
输入图像块1;
}
#pragma omp section
{
输入图像块2;
}
#pragma omp section
{
输入图像块3;
}
#pragma omp section
{
输入图像块4;
}
}
其中,#pragma omp表示编译制导语句前缀,所有的OpenMP语句都需要这样的前缀。parallel sections表示设置多个section来并行执行任务,每个section代表一个线程。num_threads(4)表示设置线程数量为4。
步骤二:并行高斯滤波步骤
Harris特征点检测的高斯滤波步骤实现对梯度图像的平滑操作,增强算法的鲁棒性。例如对于本发明在4核处理器平台下,通过将Ix2图像、Iy2图像和Ixy图像分别划分为2×2的块,并分配给不同的线程,即可并行实现自相关矩阵中元素A、B和C的计算,划分与计算过程参考图4。其中A、B和C分别由对Ix2图像、Iy2图像和Ixy图像进行高斯滤波而得。利用OpenMP并行编程模型,其主要形式如下:
#pragma omp parallel sections num_threads(4)
{
#pragma omp section
{
Ix2图像块1;
Iy2图像块1;
Ixy图像块1;
}
#pragma omp section
{
Ix2图像块2;
Iy2图像块2;
Ixy图像块2;
}
#pragma omp section
{
Ix2图像块3;
Iy2图像块3;
Ixy图像块3;
}
#pragma omp section
{
Ix2图像块4;
Iy2图像块4;
Ixy图像块4;
}
}
步骤三:并行特征点响应函数计算步骤
Harris特征点检测的特征点响应函数计算步骤通过自相关矩阵的迹和行列式来计算每一个像素点的响应函数。例如对于本发明在4核处理器平台下,通过将自相关矩阵图像划分为2×2的块,并分配给不同的线程,即可并行实现每一个像素点响应函数的计算,划分与计算过程参考图5。利用OpenMP并行编程模型,其主要形式如下:
#pragma omp parallel sections num_threads(4)
{
#pragma omp section
{
自相关矩阵图像块1;
}
#pragma omp section
{
自相关矩阵图像块2;
}
#pragma omp section
{
自相关矩阵图像块3;
}
#pragma omp section
{
自相关矩阵图像块4;
}
}
步骤四:并行非极大值抑制步骤
Harris特征点检测的非极大值抑制步骤通过判断一个像素点的响应函数是否为其邻域内的极大值,并且大于一个给定阈值,来将此点是否归类为一个特征点。例如对于本发明在4核处理器平台下,通过将特征点响应函数图像划分为2×2的块,并分配给不同的线程,即可并行判断每一个像素点是否为特征点,划分与计算过程参考图6。利用OpenMP并行编程模型,其主要形式如下:
#pragma omp parallel sections num_threads(4)
{
#pragma omp section
{
特征点响应函数图像块1;
}
#pragma omp section
{
特征点响应函数图像块2;
}
#pragma omp section
{
特征点响应函数图像块3;
}
#pragma omp section
{
特征点响应函数图像块4;
}
}
Claims (5)
1.一种基于多核处理器的哈里斯特征点检测并行实现方法,其特征是,包括如下步骤:
步骤一:并行梯度计算:将输入图像的梯度计算分配给不同的线程以实现并行计算;
步骤二:并行高斯滤波步骤:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像的高斯滤波操作分配给不同的线程以实现并行计算;
步骤三:并行特征点响应函数计算步骤:将自相关矩阵图像的特征点响应函数计算分配给不同的线程以实现并行计算;
步骤四:并行非极大值抑制步骤:将特征点响应函数图像的非极大值抑制操作分配给不同的线程以实现并行计算。
2.如权利要求1所述的基于多核处理器的哈里斯特征点检测并行实现方法,其特征是,并行梯度计算步骤进一步具体为:将输入图像划分为N×N的图像块,即每块含N行,每行含N个像素点;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的水平梯度Ix和垂直梯度Iy;每个线程并行计算每个图像块的水平梯度的平方Ix2、垂直梯度的平方Iy2和水平梯度与垂直梯度的乘积Ixy;其中,Ix和Iy分别表示图像在水平和垂直方向上的梯度,Ix2表示图像在水平方向上梯度的平方;Iy2表示图像在垂直方向上梯度的平方;Ixy表示图像在水平和垂直方向上梯度的乘积,N为正整数。
3.如权利要求1所述的基于多核处理器的哈里斯特征点检测并行实现方法,其特征是,并行高斯滤波步骤进一步具体为:将Ix2梯度图像、Iy2梯度图像和Ixy梯度图像划分为N×N的图像块,即每块含N行,每行含N个梯度值;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的自相关矩阵中的元素A、B和C;其中,A由对Ix2梯度图像进行高斯滤波而得;B由对Iy2梯度图像进行高斯滤波而得;C由对Ixy梯度图像进行高斯滤波而得。
4.如权利要求1所述的基于多核处理器的哈里斯特征点检测并行实现方法,其特征是,并行特征点响应函数计算步骤进一步具体为:将自相关矩阵图像划分为N×N的图像块,即每块含N行,每行含N个自相关矩阵;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的特征点响应函数。
5.如权利要求1所述的基于多核处理器的哈里斯特征点检测并行实现方法,其特征是,并行非极大值抑制步骤进一步具体为:将特征点响应函数图像划分为N×N的图像块,即每块含N行,每行含N个特征点响应函数;将每个图像块分配给不同的线程,即需要N2个线程;每个线程并行计算每个图像块的最终特征点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410818183.8A CN104572027A (zh) | 2014-12-24 | 2014-12-24 | 基于多核处理器的哈里斯特征点检测并行实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410818183.8A CN104572027A (zh) | 2014-12-24 | 2014-12-24 | 基于多核处理器的哈里斯特征点检测并行实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572027A true CN104572027A (zh) | 2015-04-29 |
Family
ID=53088204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410818183.8A Pending CN104572027A (zh) | 2014-12-24 | 2014-12-24 | 基于多核处理器的哈里斯特征点检测并行实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572027A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631866A (zh) * | 2015-12-24 | 2016-06-01 | 武汉鸿瑞达信息技术有限公司 | 一种提取前景目标方法基于异构平台的计算优化方法 |
CN105787910A (zh) * | 2015-12-24 | 2016-07-20 | 武汉鸿瑞达信息技术有限公司 | 一种人脸区域滤波方法基于异构平台的计算优化方法 |
CN107705338A (zh) * | 2017-08-30 | 2018-02-16 | 中国科学院上海技术物理研究所 | 基于非极大值抑制的高精度检测用计算全息图编码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070065040A1 (en) * | 2005-09-22 | 2007-03-22 | Konica Minolta Systems Laboratory, Inc. | Photo image matching method and apparatus |
CN103226831A (zh) * | 2013-05-02 | 2013-07-31 | 天津大学 | 利用分块布尔运算的图像匹配方法 |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
-
2014
- 2014-12-24 CN CN201410818183.8A patent/CN104572027A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070065040A1 (en) * | 2005-09-22 | 2007-03-22 | Konica Minolta Systems Laboratory, Inc. | Photo image matching method and apparatus |
CN103226831A (zh) * | 2013-05-02 | 2013-07-31 | 天津大学 | 利用分块布尔运算的图像匹配方法 |
CN103530224A (zh) * | 2013-06-26 | 2014-01-22 | 郑州大学 | 一种基于GPU的Harris角点检测软件系统 |
Non-Patent Citations (1)
Title |
---|
肖汉等: "基于多GPU的Harris角点检测并行算法", 《武汉大学学报(信息科学版)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631866A (zh) * | 2015-12-24 | 2016-06-01 | 武汉鸿瑞达信息技术有限公司 | 一种提取前景目标方法基于异构平台的计算优化方法 |
CN105787910A (zh) * | 2015-12-24 | 2016-07-20 | 武汉鸿瑞达信息技术有限公司 | 一种人脸区域滤波方法基于异构平台的计算优化方法 |
CN105787910B (zh) * | 2015-12-24 | 2019-01-11 | 武汉鸿瑞达信息技术有限公司 | 一种人脸区域滤波方法基于异构平台的计算优化方法 |
CN105631866B (zh) * | 2015-12-24 | 2019-04-05 | 武汉鸿瑞达信息技术有限公司 | 一种提取前景目标方法基于异构平台的计算优化方法 |
CN107705338A (zh) * | 2017-08-30 | 2018-02-16 | 中国科学院上海技术物理研究所 | 基于非极大值抑制的高精度检测用计算全息图编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhong et al. | Data partitioning on heterogeneous multicore and multi-GPU systems using functional performance models of data-parallel applications | |
US9424099B2 (en) | Method and system for synchronization of workitems with divergent control flow | |
JP2014513853A5 (zh) | ||
US20170024894A1 (en) | Method and Apparatus For Increasing The Resolution Of A Time Of Flight Pixel Array | |
CN103631568A (zh) | 面向医学图像的多线程并行计算方法 | |
US20150269225A1 (en) | System and method for parallelizing grid search method facilitating determination of pk-pd parameters | |
CN101989192A (zh) | 一种程序自动并行化的方法 | |
CN104572027A (zh) | 基于多核处理器的哈里斯特征点检测并行实现方法 | |
US10970120B2 (en) | Method and system for opportunistic load balancing in neural networks using metadata | |
CN101639788A (zh) | 一种基于tbb线程构建块的连续系统仿真多核并行方法 | |
Saidani et al. | Parallelization schemes for memory optimization on the cell processor: a case study on the harris corner detector | |
Zhou et al. | A performance analysis framework for exploiting GPU microarchitectural capability | |
Hejazialhosseini et al. | High throughput software for direct numerical simulations of compressible two-phase flows | |
WO2019157743A1 (zh) | 线程处理方法和图形处理器 | |
Zhong et al. | Model-based parallelization for simulink models on multicore cpus and gpus | |
Tang | Multi-core parallel programming in go | |
Zheng et al. | Performance model for OpenMP parallelized loops | |
Saleem et al. | Multi-core program optimization: Parallel sorting algorithms in Intel Cilk Plus | |
TWI591579B (zh) | 減少流程控制發散度之分析系統與方法 | |
Arndt et al. | Performance evaluation of the Intel Xeon Phi manycore architecture using parallel video-based driver assistance algorithms | |
CN105260165A (zh) | 基于smt的线程级推测系统中推测线程数目的动态控制方法 | |
Tse | Image processing with CUDA | |
Wu et al. | Research on OpenMP model of the parallel programming technology for homogeneous multicore DSP | |
Barthou et al. | SPAGHETtI: Scheduling/placement approach for task-graphs on HETerogeneous architecture | |
Yu et al. | General data structure expansion for multi-threading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |