CN105022889B - 一种基于视频的快速模板匹配gpu实现方法 - Google Patents
一种基于视频的快速模板匹配gpu实现方法 Download PDFInfo
- Publication number
- CN105022889B CN105022889B CN201510469830.3A CN201510469830A CN105022889B CN 105022889 B CN105022889 B CN 105022889B CN 201510469830 A CN201510469830 A CN 201510469830A CN 105022889 B CN105022889 B CN 105022889B
- Authority
- CN
- China
- Prior art keywords
- template
- image
- value
- matching
- maximum value
- 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.)
- Active
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于视频的快速模板匹配GPU实现方法,包括以下步骤:(1)将图像数据复制到GPU设备中,图像复制到设备的操作和图片模板匹配分为两个独立的流执行同时进行,一个执行当前帧的图片模板匹配计算过程操作,一个执行下一帧的图像复制操作;(2)将图像模板数据存储在共享内存中,将图片数据存储在纹理内存中,利用纹理存储器随机取数与图像模板进行匹配度计算;(3)采用多线程并行计算的方式同时进行计算,且一个线程计算一个位置的模板匹配度量值;(4)利用全局原子和共享原子确定模板匹配度量值的最大值或最小值,即得到模板匹配的结果。本发明可以明显缩短模板匹配的时间,提高了模板匹配算法的实用价值。
Description
技术领域
本发明涉及一种模板匹配方法,具体地说,是涉及一种基于视频的快速模板匹配GPU实现方法。
背景技术
模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配或相似部分的技术。很多视频分析应用场景,例如车辆、行人的跟踪中,都选择性地加入了模板匹配的辅助功能,以达到能够适应复杂场景的目的。
模板匹配算法为了确定匹配区域,不得不滑动模板图像与原图像进行比较,
图像块一次一个像素 (从左往右,从上往下)地滑动在每一个位置,都进行一次度量计算来表明它与那个位置的匹配度 (或者说图像块和原图像的特定区域的相似度),最后匹配度量值最大或者最小的位置即为图像最匹配的部分。
目前,最基本的快速模板匹配度量值计算方法大概以下有六种:
1、平方差匹配SQDIFF
2、标准平方差匹配SQDIFF_NORMED
3、相关匹配CCORR
4、标准相关匹配CCORR_NORMED
5、相关匹配CCOEFF
其中:
6、标准相关匹配CCOEFF_NORMED
I表示图像,T表示模板,R表示结果,模板与图像重叠区域之间求和。
上面算法公式来源于《Opencv教程 基础篇》p327。
随着从简单的测量(平方差)到更复杂的测量(相关系数),我们可获得越来越准确的匹配(同时也意味着越来越大的计算代价)。
但是,就算最简单的平方差测量,在模板大小为180*160,图像大小为1920*1080时,在处理器i7、内存8G的机器上利用CPU运行现有的模板匹配算法也需要花费超过1.5s,这样的速度难以满足人们的实际需要,成为了影响其加入实时视频检测算法的瓶颈。
发明内容
本发明的目的在于提供一种基于视频的快速模板匹配GPU实现方法,解决现有技术中模板匹配算法实现速度低下、难以满足人们实际需求的问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于视频的快速模板匹配GPU实现方法,包括以下步骤:
(1)将图像数据复制到GPU设备中,图像复制到设备的操作和图片模板匹配分为两个独立的流执行同时进行,一个执行当前帧的图片模板匹配计算过程操作,一个执行下一帧的图像复制操作;
(2)将图像模板数据存储在共享内存中,将图片数据存储在纹理内存中,利用纹理存储器随机取数与图像模板进行匹配度计算;
(3)采用多线程并行计算的方式同时进行计算,且一个线程计算一个位置的模板匹配度量值;
(4)确定模板匹配度量值的最大值或最小值,即得到模板匹配的结果。
进一步地,所述步骤(4)的具体方法如下:
a.原子操作的块内全局值(块内共享原子值)加上当前线程结果的负值的最终结果与零进行比较,如果小于0,则最大值为当前线程结果,否则最大值不变;
b.循环a操作,直到块内所有线程完成a操作,最大值即为块内所有线程模板匹配结果的最大值;
C.利用全局原子值在b操作求得的所有块内共享原子值中求取最大值,其最终最大值对应的线程计算位置即为模板匹配的最佳位置。
与现有技术相比,本发明具有以下有益效果:
(1)本发明采用下一帧图像数据的传输和上一帧图像的模板匹配计算并行的方式,两个独立流同时进行,充分缩短了整体的运行时间,提高了实现效率。
(2)本发明利用共享内存读写速度仅次于寄存器的特性,将模板数据存于寄存器中,加速了数据读取的过程;而将图像数据存储在纹理内存中,利用纹理存储器随机取数的优势,同样加速了读取速度,进一步提高模板匹配的实现效率。
(3)本发明采用一个线程负责一个滑动位置计算的方式,提高了计算密度,充分利用了GPU多小核庞大线程数的并行资源,既实现了大规模的并行,内部又可以利用寄存器累加每个像素点位置的计算结果值,使运行速度达到最大,有效缩短了模板匹配度的运算时间。
(4)本发明采用共享内存和全局内存二阶的原子操作,利用多线程同时得出出最大或最小值,进而进行综合比较,简单、方便、快速。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
本发明公开的基于视频的快速模板匹配GPU实现方法,主要针对现有的图像模板匹配算法运行效率低,难以满足人们实际需求的问题,而进行的算法优化。本发明不改变现有模板匹配算法的基本原理,只是对操作方式进行调整,可直接应用在现有的设备中,具有成本低、效率高,实现简单方便的特点。
如图1所示,本发明的具体实现方法如下:
(1)将图像数据复制到GPU设备中,图像复制到设备的操作和图片模板匹配分为两个独立的流执行同时进行,一个执行当前帧的图片模板匹配计算过程操作,一个执行下一帧的图像复制操作。
(2)将图像模板数据存储在共享内存中,将图片数据存储在纹理内存中,利用纹理存储器随机取数与图像模板进行匹配度计算。
由于图像模板数据量相对比较小,且每个线程利用到的模板数据相同,因此,将图像模板数据存储在共享内存中,可以有效提高读取速度。同时,图片数据读取操作由于呈现局部的形式,每次读取的数据均不相同,并且需要进行多次读取,因此将图片数据存储在纹理内存中,利用纹理存储器随机取数的优势,可以大大提高读取速度。
(3)采用多线程并行计算的方式同时进行计算,且一个线程计算一个位置的模板匹配度量值。
模板在图片中每一次滑动位置的计算由一个线程完成,如此既可以保证线程读取数据时的连续性,也高效率地利用了并行线程。由不同匹配度量值计算方法的计算公式可以看出,都是单个像素的结果累加,因此单个线程内部利用同一个寄存器保存累加计算结果,更加方便,高效。
(4)确定模板匹配度量值的最大值或最小值,即得到模板匹配的结果。
具体地说,首先,将原子操作的块内全局值(块内共享原子值)加上当前线程结果的负值的最终结果与零进行比较,如果小于0,则最大值为当前线程结果,否则最大值不变;然后,循环上述操作,直到图像块内所有线程均完成上述操作,得到的最大值即为块内所有线程模板匹配结果的最大值;最后,利用全局原子在所有共享原子值中求取最大值,其最终最大值对应的线程计算位置就是最佳的模板匹配位置。
原子操作可以保证一个线程在执行过程中不会被其他线程中断,上述方法可以降低单纯使用全局原子内存在访问上存在的竞争,大大提高访问速度,缩短匹配时间,提高效率。
通过上述方法,可以明显缩短模板匹配的时间,大大提高匹配效率,从而满足人们对模板匹配效率的要求,提高了模板匹配算法的实用价值,具有很高的应用前景。
上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而作出的变化,均应属于本发明的保护范围之内。
Claims (1)
1.一种基于视频的快速模板匹配GPU实现方法,其特征在于,包括以下步骤:
(1)将图像数据复制到GPU设备中,图像复制到设备的操作和图片模板匹配分为两个独立的流执行同时进行,一个执行当前帧的图片模板匹配计算过程操作,一个执行下一帧的图像复制操作;
(2)将图像模板数据存储在共享内存中,将图片数据存储在纹理内存中,利用纹理存储器随机取数与图像模板进行匹配度计算;
(3)采用多线程并行计算的方式同时进行计算,且一个线程计算一个位置的模板匹配度量值;
(4)利用全局原子和共享原子确定模板匹配度量值的最大值或最小值,即得到模板匹配的结果,具体方法如下:
a.原子操作的块内全局值加上当前线程结果的负值的最终结果与零进行比较,如果小于0,则最大值为当前线程结果,否则最大值不变;
b.循环a操作,直到块内所有线程完成操作,最大值即为块内所有线程模板匹配结果的最大值;
c.利用全局原子值在b步骤中求得的所有块内共享原子值中求取最大值,其最终最大值对应的线程计算位置即为模板匹配的最佳位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469830.3A CN105022889B (zh) | 2015-08-04 | 2015-08-04 | 一种基于视频的快速模板匹配gpu实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469830.3A CN105022889B (zh) | 2015-08-04 | 2015-08-04 | 一种基于视频的快速模板匹配gpu实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022889A CN105022889A (zh) | 2015-11-04 |
CN105022889B true CN105022889B (zh) | 2018-09-21 |
Family
ID=54412856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510469830.3A Active CN105022889B (zh) | 2015-08-04 | 2015-08-04 | 一种基于视频的快速模板匹配gpu实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022889B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404862A (zh) * | 2015-11-13 | 2016-03-16 | 山东大学 | 一种基于手部跟踪的安全驾驶检测方法 |
CN105653638A (zh) * | 2015-12-28 | 2016-06-08 | 北京像素软件科技股份有限公司 | 一种运动检索方法和装置 |
CN111862041A (zh) * | 2020-07-21 | 2020-10-30 | 华夏天信(北京)智能低碳技术研究院有限公司 | 一种基于模板匹配的井底井筒尾绳断裂检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686393B (zh) * | 2008-09-28 | 2012-10-17 | 华为技术有限公司 | 应用于模板匹配的快速运动搜索方法及装置 |
CN101609554B (zh) * | 2009-07-27 | 2012-06-27 | 浙江工商大学 | 一种基于灰度统计特征的灰度模板匹配方法 |
CN103281476A (zh) * | 2013-04-22 | 2013-09-04 | 中山大学 | 基于电视图像运动目标的自动跟踪方法 |
-
2015
- 2015-08-04 CN CN201510469830.3A patent/CN105022889B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105022889A (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022002039A1 (zh) | 一种基于视觉地图的视觉定位方法、装置 | |
US10055639B2 (en) | Face detection in an image data stream using skin colour patch constructs | |
US10453204B2 (en) | Image alignment for burst mode images | |
TWI713366B (zh) | 對影像進行目標取樣的方法及裝置 | |
US11113836B2 (en) | Object detection method, device, apparatus and computer-readable storage medium | |
US20190272646A1 (en) | Feature trackability ranking, systems and methods | |
CN111860494B (zh) | 图像目标检测的优化方法、装置、电子设备和存储介质 | |
WO2019210546A1 (zh) | 一种数据处理方法及计算设备 | |
CN104952083B (zh) | 一种基于显著性目标背景建模的视频显著性检测方法 | |
Huang et al. | An efficient optical flow based motion detection method for non-stationary scenes | |
CN107240117B (zh) | 视频中运动目标的跟踪方法和装置 | |
CN107123130B (zh) | 一种基于超像素和混合哈希的核相关滤波目标跟踪方法 | |
WO2020216249A1 (zh) | 一种基于多处理器的目标跟踪处理方法 | |
CN108280843A (zh) | 一种视频目标检测跟踪方法及设备 | |
CN105022889B (zh) | 一种基于视频的快速模板匹配gpu实现方法 | |
CN104268591A (zh) | 一种面部关键点检测方法及装置 | |
WO2019218388A1 (zh) | 一种事件数据流的处理方法及计算设备 | |
CN103400404A (zh) | 一种高效渲染位图运动轨迹的方法 | |
Meus et al. | Embedded vision system for pedestrian detection based on HOG+ SVM and use of motion information implemented in Zynq heterogeneous device | |
CN108960012B (zh) | 特征点检测方法、装置及电子设备 | |
CN111177811A (zh) | 一种应用于云平台的消防点位自动布图的方法 | |
Xu et al. | Fast and accurate object detection using image Cropping/Resizing in multi-view 4K sports videos | |
CN106408654B (zh) | 一种三维地图的创建方法及系统 | |
AU2020449440A1 (en) | Overlooking-type golf ball detection method, system and storage medium | |
CN107992821B (zh) | 一种图像识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |