CN112967310B - 一种基于fpga的模板匹配加速方法 - Google Patents
一种基于fpga的模板匹配加速方法 Download PDFInfo
- Publication number
- CN112967310B CN112967310B CN202110166968.1A CN202110166968A CN112967310B CN 112967310 B CN112967310 B CN 112967310B CN 202110166968 A CN202110166968 A CN 202110166968A CN 112967310 B CN112967310 B CN 112967310B
- Authority
- CN
- China
- Prior art keywords
- search
- data
- ram
- fpga
- template
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于FPGA的模板匹配加速方法,包括以下步骤:S1:初始化参数:获取跟踪图像的模板数据和搜索框数据,并存入FPGA的内部RAM;S2:启动一次滑动窗口搜索,记录模板匹配统计值与坐标信息;S3:判断跨块搜索是否结束:若是,跳转至S4;若否,切换行列块地址并跳转至S2;S4:判断块内部搜索是否结束:若是,跳转至S5;若否,将移位后的数据写入搜索框RAM,并跳转至S2;S5:输出匹配的最终坐标,将最终坐标存入模板RAM;S6:将脱靶量输出给装置,更新装置跟踪位置。本发明利用FPGA内部自带的块RAM存储器,将模块与搜索框数据进行多字节绑定,减了访问内存的次数,且访问方式没有其他额外的牺牲,不需要FPGA外部增加DDR等存储设备进行数据的缓存。
Description
技术领域
本发明涉及视频目标跟踪领域,尤其涉及一种基于FPGA的模板匹配加速方法。
背景技术
视频目标跟踪作为机器视觉研究领域的热门话题之一,在军事、医学、工业、等领域等到广泛的应用,具有广阔的应用前景。基于模板匹配的目标跟踪算法,由于其计算复杂度低、简单准确、适用面广、局部抗干扰能力强、在信噪比较低的情况下依然能有效跟踪目标,更是被广泛的采用。模板匹配主要针对目标的外观进行跟踪。
由于跟踪大目标时,我们期望模板框越大越好这样能获取到目标的更多图像特征。对于运动目标我们希望搜索范围也能尽量大这样即使物体快速运动也能在搜索范围内匹配。这样跟踪丢失的概率将大大降低跟踪的稳定性较好。但是扩大模板框和搜索范围时,滑动窗口匹配的次数将呈现指数倍增长趋势。虽然该算法计算复杂度低但是它访问存储空间的次数非常频繁,频繁的访问存储设备将大大的增加了算法执行的时间。在实际应用中将不能满足实时帧率处理的能力,导致跟踪的效果差。对于一些应用比如无人机飞行,光电吊舱精密控制跟踪速度降低将影响伺服机构的转动,导致设备不稳定抖动摆动幅度大,目标跟踪很容易丢失等缺点。故如何在现有算法的基础上设计一种减少访问内存次数的加速模块是本专利的关键问题。
发明内容
本发明提供一种基于FPGA的模板匹配加速方法,用以解决跟踪大目标时由于模板框过大,导致滑动窗口匹配次数呈指数倍增长趋势,访问存储空间次数过于频繁导致算法执行时间过长的技术问题。
为实现上述目的,本发明提出一种基于FPGA的模板匹配加速方法,所述基于FPGA的模板匹配加速方法包括以下步骤:
S1:初始化参数:获取跟踪图像的模板数据和搜索框数据,并存入FPGA的内部RAM;
S2:启动一次滑动窗口搜索,记录模板匹配统计值与坐标信息,并将当前模板匹配统计值与上一次当前模板匹配统计值进行比较;
S3:判断跨块搜索是否结束:若是,则跳转至S4;若否,则切换行列块地址并跳转至S2;
S4:判断块内部搜索是否结束:若是,则跳转至S5;若否,则将移位后的数据写入搜索框RAM,并跳转至S2;
S5:输出匹配的最终坐标,并将最终坐标存入模板RAM;
S6:将脱靶量输出给装置,更新装置跟踪位置。
所述步骤S2还包括以下子步骤:
S21:令当前坐标信息为[Xmin;Ymin],将当前搜索值Smin与上一次搜索值Last_Smin相比较,若Smin小于Last_Smin,则将当前Smin赋值给S,将Xmin赋值给X,同时将Ymin赋值给Y;若Smin不小于Last_Smin则将上一次的搜索值Last_Smin赋值给S,将Last_Xmin赋值给X,将Last_Ymin赋值给Y。
所述步骤S4中,将移位后的数据写入搜索框RAM还包括以下子步骤:
S41:依次移位出每一块的高字节并用后面块的高字节补充;
S42:将移位后的数据重新写入搜索框RAM;
S43:跳转至S2,进行滑动窗口搜索。
所述步骤S1还包括以下子步骤:
S11:将指定个数的数据捆绑在一起封装在一个地址单元。
所述步骤S1中的内部RAM包括搜索框RAM和模板RAM。
所述步骤S5中的输出匹配的最终坐标为记录的最小值和脱靶量。
所述记录的最小值为Smin,脱靶量为[Xmin;Ymin]。
本申请的有益效果:
(1)该算法利用FPGA内部自带的块RAM存储器,将模块与搜索框数据进行多字节绑定减少了访问内存的次数;
(2)该访问方式没有其他额外的牺牲,不需要FPGA外部增加DDR等存储设备进行数据的缓存,我们仅仅需要内部的RAM即可完成该操作;
(3)如果在FPGA RAM资源充足的情况下,我们还可以将处理过程分为多个模块进行,分别处理搜索框数据的上下部分或者划分更多的块进行加速,这样的优化结构将大大的提高算法的处理能力。
附图说明
图1为加速模块框图;
图2为加速模块实施流程图;
图3为搜索数据存储器数据排布示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
如图1所示,该加速模块主要由4部分组成,包括:数据存储单元、滑动窗口计算单元、数据地址切换单元、数据移位再封装单元。
具体实施方案如图2所示:
(1)初始化参数:我们先获取跟踪图像的模板数据和搜索框数据存入FPGA的内部RAM。由于我们每一次模板比较都需要取出对应模板框大小的数据量进行计算,故需要多次访问RAM;我们想办法让一次访问过程中获取尽量多的数据;故数据我们采用一种多字节的排列方式。数据的排列规则如图3所示,将16个数据捆绑在一起封装在一个地址单元;
如图3中A11A12A13……A1k存储在一个地址单元,故我们访问一次存储单元即可获取16个字节数据。
(2)启动一次滑动窗口搜索,我们假设读取一次模板RAM获取的数据为:
T11 T12 T13 T14T15T16 T17 T18 T19 T1a T1b T1c T1d T1e T1f;
读取一次搜索框RAM获取的数据为:
A11A12A13 A14A15A16A17A18A19 A1a A1b A1c A1dA1eA1f;
我们根据FPGA的并行数据处理能力,第一个时钟周期我们做对应字节绝对值相减我们得到:
S11 S12 S13 S14S15S16 S17 S18 S19 S1a S1b S1c S1d S1e S1f;
下一个时钟周期我们做S变量的俩俩相加变为8字节,然后接下来在继续两两相加、第四个时钟周期便计算出了16字节的对应绝对值差的和值;
同时由于我们的FPGA的并行处理能力,在我们资源足够的情况下我们的取数据操作可以跟后面的滑动值计算并行存在;
故操作上所需要的时间也仅仅为取捆绑的多字节的数据字节所耗费的时间。
(3)一次滑动窗口搜索结束我们记录并比较结果进行下一个跨块的搜索,直到所有跨块以16字节块封装的数据滑动搜索结束。
(4)由图2可知跨块搜索结束我们需要进行块内部数据的搜索,故我们需要读出RAM中的数据进行块数据的重新封装;
由图3可知,我们读出的数据从新封装的格式如图3中的F1、F2、Fk-1,即我们需要依次移位出我们每一块的高字节然后用后面块的高字节补充,然后从新将移位后的数据写进搜索RAM;再进行步骤(2)的滑动窗口搜索,一共进行15次这样的循环操作结束,记录的最小值和脱靶量即为我们需要的最终跟踪偏移坐标。
所述步骤S5中的输出匹配的最终坐标为记录的最小值和脱靶量。
所述记录的最小值为Smin,脱靶量为[Xmin;Ymin]。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种基于FPGA的模板匹配加速方法,其特征在于,所述基于FPGA的模板匹配加速方法包括以下步骤:
S1:初始化参数:获取跟踪图像的模板数据和搜索框数据,并存入FPGA的内部RAM;
S2:启动一次滑动窗口搜索,记录模板匹配统计值与坐标信息,并将当前模板匹配统计值与上一次当前模板匹配统计值进行比较,具体步骤为:令当前坐标信息为[Xmin;Ymin],将当前搜索值Smin与上一次搜索值Last-Smin相比较,若Smin小于Last-Smin,则将当前Smin赋值给S,将Xmin赋值给X,同时将Ymin赋值给Y;若Smin不小于Last-Smin,则将上一次的搜索值Last-Smin赋值给S,将Last-Xmin赋值给X,将Last-Ymin赋值给Y;
S3:判断跨块搜索是否结束:若是,则跳转至S4;若否,则切换行列块地址并跳转至S2;
S4:判断块内部搜索是否结束:若是,则跳转至S5;若否,则将移位后的数据写入搜索框RAM,并跳转至S2;
S5:输出匹配的最终坐标,并将最终坐标存入模板RAM;
S6:将脱靶量输出给装置,更新装置跟踪位置。
2.如权利要求1所述的一种基于FPGA的模板匹配加速方法,其特征在于,所述步骤S4中,将移位后的数据写入搜索框RAM还包括以下子步骤:
S41:依次移位出每一块的高字节并用后面块的高字节补充;
S42:将移位后的数据重新写入搜索框RAM;
S43:跳转至S2,进行滑动窗口搜索。
3.如权利要求1所述的一种基于FPGA的模板匹配加速方法,其特征在于,所述步骤S1还包括以下子步骤:
S11:将指定个数的数据捆绑在一起封装在一个地址单元。
4.如权利要求1所述的一种基于FPGA的模板匹配加速方法,其特征在于,所述步骤S1中的内部RAM包括搜索框RAM和模板RAM。
5.如权利要求1所述的一种基于FPGA的模板匹配加速方法,其特征在于,所述步骤S5中的输出匹配的最终坐标为记录的最小值和脱靶量。
6.如权利要求5所述的一种基于FPGA的模板匹配加速方法,其特征在于,所述记录的最小值为Smin',脱靶量为[Xmin';Ymin']。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110166968.1A CN112967310B (zh) | 2021-02-04 | 2021-02-04 | 一种基于fpga的模板匹配加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110166968.1A CN112967310B (zh) | 2021-02-04 | 2021-02-04 | 一种基于fpga的模板匹配加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112967310A CN112967310A (zh) | 2021-06-15 |
CN112967310B true CN112967310B (zh) | 2023-07-14 |
Family
ID=76274916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110166968.1A Active CN112967310B (zh) | 2021-02-04 | 2021-02-04 | 一种基于fpga的模板匹配加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112967310B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1456783A1 (en) * | 2001-11-21 | 2004-09-15 | FTL Systems Inc. | Method for semi-automatic generation and behavioral comparison of models |
CN102096925A (zh) * | 2010-11-26 | 2011-06-15 | 中国科学院上海技术物理研究所 | 一种机动目标的实时闭环预测跟踪方法 |
CN102349087A (zh) * | 2009-03-12 | 2012-02-08 | 谷歌公司 | 自动提供与捕获的信息例如实时捕获的信息关联的内容 |
CN103065131A (zh) * | 2012-12-28 | 2013-04-24 | 中国航天时代电子公司 | 一种复杂场景下自动目标识别跟踪方法及系统 |
CN104424634A (zh) * | 2013-08-23 | 2015-03-18 | 株式会社理光 | 对象跟踪方法和装置 |
CN104915969A (zh) * | 2015-05-21 | 2015-09-16 | 云南大学 | 一种基于粒子群优化的模版匹配跟踪方法 |
CN107180056A (zh) * | 2016-03-11 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 视频中片段的匹配方法和装置 |
CN107516296A (zh) * | 2017-07-10 | 2017-12-26 | 昆明理工大学 | 一种基于fpga的运动目标检测跟踪系统及方法 |
CN107590502A (zh) * | 2017-09-18 | 2018-01-16 | 西安交通大学 | 一种全场稠密点快速匹配方法 |
CN110084829A (zh) * | 2019-03-12 | 2019-08-02 | 上海阅面网络科技有限公司 | 目标跟踪方法、装置、电子设备及计算机可读存储介质 |
CN110210346A (zh) * | 2019-05-21 | 2019-09-06 | 西安电子科技大学 | 一种视频模板匹配实时处理的优化方法 |
CN110807483A (zh) * | 2019-10-30 | 2020-02-18 | 易思维(杭州)科技有限公司 | 基于fpga的模板匹配实现装置及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139743B2 (en) * | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
CN103226834B (zh) * | 2013-03-26 | 2015-10-21 | 长安大学 | 一种图像运动目标特征点快速搜索方法 |
CN107679117B (zh) * | 2017-09-18 | 2020-04-28 | 西安石油大学 | 一种全场稠密点快速匹配系统 |
CN110634154B (zh) * | 2019-09-20 | 2023-04-18 | 湖南科技大学 | 一种面向速度大范围变化目标跟踪的模板匹配方法 |
-
2021
- 2021-02-04 CN CN202110166968.1A patent/CN112967310B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1456783A1 (en) * | 2001-11-21 | 2004-09-15 | FTL Systems Inc. | Method for semi-automatic generation and behavioral comparison of models |
CN102349087A (zh) * | 2009-03-12 | 2012-02-08 | 谷歌公司 | 自动提供与捕获的信息例如实时捕获的信息关联的内容 |
CN102096925A (zh) * | 2010-11-26 | 2011-06-15 | 中国科学院上海技术物理研究所 | 一种机动目标的实时闭环预测跟踪方法 |
CN103065131A (zh) * | 2012-12-28 | 2013-04-24 | 中国航天时代电子公司 | 一种复杂场景下自动目标识别跟踪方法及系统 |
CN104424634A (zh) * | 2013-08-23 | 2015-03-18 | 株式会社理光 | 对象跟踪方法和装置 |
CN104915969A (zh) * | 2015-05-21 | 2015-09-16 | 云南大学 | 一种基于粒子群优化的模版匹配跟踪方法 |
CN107180056A (zh) * | 2016-03-11 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 视频中片段的匹配方法和装置 |
CN107516296A (zh) * | 2017-07-10 | 2017-12-26 | 昆明理工大学 | 一种基于fpga的运动目标检测跟踪系统及方法 |
CN107590502A (zh) * | 2017-09-18 | 2018-01-16 | 西安交通大学 | 一种全场稠密点快速匹配方法 |
CN110084829A (zh) * | 2019-03-12 | 2019-08-02 | 上海阅面网络科技有限公司 | 目标跟踪方法、装置、电子设备及计算机可读存储介质 |
CN110210346A (zh) * | 2019-05-21 | 2019-09-06 | 西安电子科技大学 | 一种视频模板匹配实时处理的优化方法 |
CN110807483A (zh) * | 2019-10-30 | 2020-02-18 | 易思维(杭州)科技有限公司 | 基于fpga的模板匹配实现装置及方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的实时模板匹配系统设计;侯一凡等;《信息工程大学学报》;第42-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112967310A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9292767B2 (en) | Decision tree computation in hardware utilizing a physically distinct integrated circuit with on-chip memory and a reordering of data to be grouped | |
CN107273042B (zh) | 重复删除dram系统算法架构的存储器模块及方法 | |
CN112767983B (zh) | 刷新控制电路及存储器 | |
CN109416636B (zh) | 共享的机器学习数据结构 | |
CN109034183B (zh) | 一种目标检测方法、装置及设备 | |
EP3398075B1 (en) | Transfer descriptor for memory access commands | |
CN105843775A (zh) | 片上数据划分读写方法、系统及其装置 | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
US20110271038A1 (en) | Indexed register access for memory device | |
EP3649574A1 (en) | Object detection based on deep neural network | |
US10795606B2 (en) | Buffer-based update of state data | |
US9501395B2 (en) | Re-aligning a compressed data array | |
CN112967310B (zh) | 一种基于fpga的模板匹配加速方法 | |
CN116822657B (zh) | 一种模型训练加速的方法、装置、存储介质及电子设备 | |
CN106708749A (zh) | 一种数据查找方法 | |
CN116010299B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN115840654B (zh) | 消息的处理方法、系统、计算设备及可读存储介质 | |
CN111464882B (zh) | 视频摘要生成方法及装置、设备、介质 | |
US8112588B2 (en) | Sorting cache objects based on access counters reset upon garbage collection | |
US20220398442A1 (en) | Deep learning computational storage drive | |
KR102032892B1 (ko) | 반도체 장치 및 그 동작 방법 | |
US11334571B2 (en) | Artificial intelligence-enabled search for a storage system | |
CN112445810A (zh) | 一种数据仓库数据更新方法、设备、电子设备及存储介质 | |
US8756193B2 (en) | System and method for persisting object pointers | |
CN102184521B (zh) | 高性能图像处理系统及图像数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |