CN114359683A - 一种面向文本定位的单内核hog高效异构加速方法 - Google Patents
一种面向文本定位的单内核hog高效异构加速方法 Download PDFInfo
- Publication number
- CN114359683A CN114359683A CN202111671159.2A CN202111671159A CN114359683A CN 114359683 A CN114359683 A CN 114359683A CN 202111671159 A CN202111671159 A CN 202111671159A CN 114359683 A CN114359683 A CN 114359683A
- Authority
- CN
- China
- Prior art keywords
- pixels
- hog
- pixel
- gradient
- work item
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000001133 acceleration Effects 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 12
- 238000010606 normalization Methods 0.000 claims description 7
- 230000004807 localization Effects 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种面向文本定位的单内核HOG高效异构加速方法,其包括为每个像素分配一个工作项,并对每个像素周围的像素进行卷积,对卷积后的像素进行幅度和相位计算,通过双线性插值算法计算得到像素的离散梯度方向,并保存在硬件的局部内存中,释放为像素分配的工作项;为每个cell单元分配一个工作项,并进行硬件的全局索引;计算离散梯度方向的投票结果,完成每行像素的统计;对统计的像素进行归一化以及求和,组合成一个HOG特征向量,得到图像的特征向量;在异构平台对该方法加以实现,完成异构加速。本发明满足了文本定位实时性以及低能耗的需求,能够进一步提高场景字符识别技术的可靠性。
Description
技术领域
本发明涉及场景字符识别领域,具体涉及一种面向文本定位的单内核HOG高效异构加速方法。
背景技术
随着智能手持设备的广泛普及与人工智能高速发展,图像和视频成为主要的媒体信息传递方式。媒体信息中包含了大量的自然场景,其中的文字信息具有重要的应用价值。从自然场景中精确且快速的提取出文字信息有着重要的意义,在这其中,文本定位技术成为一大重点。
由于文本定位面临着高复杂度的实现算法和持续增长的数据等问题,文本定位算法的实时性受到了挑战。HOG(Histogram of Oriented Gradient,方向梯度直方图)算法是文本定位计算中最常用的算法。现有的多内核HOG加速方案是在设备端通过多个内核进行全局同步,实现HOG特征的像素梯度计算、cell梯度统计和block归一化。但是会产生高代价的循环运算,带来的全局同步和全局内存的访存开销也很大。在异构***的实现中,多内核加速方案会带来较严重的能耗问题。
发明内容
针对现有技术中的上述不足,本发明提供的一种面向文本定位的单内核HOG高效异构加速方法解决了现有技术访存开销大和运算量大的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种面向文本定位的单内核HOG高效异构加速方法,其包括以下步骤:
S1、获取灰度图像的像素,并为每个像素分配一个工作项;其中Cx×Cy个大小统一的连通像素区域组成一个cell单元;
S2、在各个工作项中,利用差分模板及其转置对每个像素周围的像素进行行卷积与列卷积;
S3、对卷积后的像素进行幅度和相位计算;
S4、利用得到的幅度和相位,通过双线性插值算法计算得到像素的离散梯度方向,并保存在硬件的局部内存中,释放为像素分配的工作项;
S5、为每个cell单元分配一个工作项,并进行硬件的全局索引;
S6、创建用于统计像素离散梯度方向的统计变量,将每个像素所处的离散梯度方向直接并行加到统计变量中,并用一组变量对应计算一个cell单元中每行像素的离散梯度方向的投票结果,完成每行像素的统计,得到每个cell单元中不同离散梯度方向的个数;
S7、进行硬件的局部内存同步,基于投票结果,利用每个工作项统计cell中一行的像素,并进行并行规约得到所有cell单元的梯度统计,将梯度统计的离散梯度结果保存在硬件的局部内存中,释放为cell单元分配的工作项;
S8、利用一个工作项计算一个cell单元梯度统计后的离散梯度的归一化,将每个cell单元归一化后的结果求和,得到与每个cell单元对应的和值,将属于同一个block中的每个cell单元对应的和值缓存至硬件的局部内存中,并进行硬件的局部同步,得到每个block的局部方向梯度;其中一个图像包含若干个block;
S9、将每个block的局部方向梯度组合成一个HOG特征向量,得到图像的特征向量;
S10、将上述步骤加载到异构平台上,实现异构加速。
进一步地,步骤S1中工作项为OpenCL中最小的工作单元;cell单元为图像最小划分单元;其中每个cell包括Cx×Cy个大小统一的连通像素区域,窗口图像总像素大小为Wx×Wy,生成的二维索引为(Wx,Wy)。
进一步地,步骤S2中的差分模板为[-1,0,1]。
进一步地,步骤S5中全局索引的大小为(Wx/Cx,Wy/Cy)。
进一步地,步骤S7中并行规约时全局索引的大小为(Wx/Cx,Wy),总共使用Wx×Wy/Cx个工作项。
进一步地,步骤S7中第一次并行规约总共使用Cy/2个工作项统计两列梯度;第二次并行规约总共使用Cy/4个工作项统计两列梯度,后续依次使用前一次的1/2个工作项进行梯度统计,直到完成梯度统计。
本发明的有益效果为:
1、在梯度统计过程中为每个cell分配一个工作项,而不是给每个像素创建一个工作项,解决了访问冲突的问题;
2、对应步骤S7中每个工作项统计一行的像素,保证了工作项的连续性访问,并且提高了Cy倍的并行度,提高了GPU资源利用率,充分发挥GPU并行处理数据的能力,降低开销;
3、在梯度统计过程,GPU通过高代价的原子函数来避免局部内存的访存冲突;FPGA通过多片物理内存的交替访存来避免局部内存的访问冲突;
4、步骤S8中将求和结果缓存至硬件的局部内存中,减少全局内存的访问,减少规约时间,节约计算时间;
5、通过局部内存同步,用一个设备内核完成相应的计算任务,资源消耗减少50%以上,与CPU相比,该方案在GPU和FPGA平台上的能效比分别为22.8和42.5,能够有效降低设备能耗;
6、采用投票的方式,避免了传统的统计方法中复杂的规约运算,算法计算时间减少50%以上,与CPU相比,该方案在GPU和FPGA平台上的加速比分别为28和6.9,能够有效减少计算时间;
7、HOG算法在GPU和FPGA平台上的计算时间分别为25ms和102ms,能耗分别为4J和2.14J,满足了文本定位实时性以及低能耗的需求,能够进一步提高场景(包括图像和视频)字符识别的可靠性。
附图说明
图1为本发明的流程图;
图2为本发明的设计框图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1和图2所示,该面向文本定位的单内核HOG高效异构加速方法,包括以下步骤:
S1、获取灰度图像的像素,并为每个像素分配一个工作项;其中Cx×Cy个大小统一的连通像素区域组成一个cell单元;
S2、在各个工作项中,利用差分模板及其转置对每个像素周围的像素进行行卷积与列卷积;
S3、对卷积后的像素进行幅度和相位计算;
S4、利用得到的幅度和相位,通过双线性插值算法计算得到像素的离散梯度方向,并保存在硬件的局部内存中,释放为像素分配的工作项;
S5、为每个cell单元分配一个工作项,并进行硬件的全局索引;
S6、创建用于统计像素离散梯度方向的统计变量,将每个像素所处的离散梯度方向直接并行加到统计变量中,并用一组变量对应计算一个cell单元中每行像素的离散梯度方向的投票结果,完成每行像素的统计,得到每个cell单元中不同离散梯度方向的个数;
S7、进行硬件的局部内存同步,基于投票结果,利用每个工作项统计cell中一行的像素,并进行并行规约得到所有cell单元的梯度统计,将梯度统计的离散梯度结果保存在硬件的局部内存中,释放为cell单元分配的工作项;
S8、利用一个工作项计算一个cell单元梯度统计后的离散梯度的归一化,将每个cell单元归一化后的结果求和,得到与每个cell单元对应的和值,将属于同一个block中的每个cell单元对应的和值缓存至硬件的局部内存中,并进行硬件的局部同步,得到每个block的局部方向梯度;其中一个图像包含若干个block;
S9、将每个block的局部方向梯度组合成一个HOG特征向量,得到图像的特征向量;
S10、将上述步骤加载到异构平台上,实现异构加速。
步骤S1中工作项为OpenCL中最小的工作单元;cell单元为图像最小划分单元;其中每个cell包括Cx×Cy个大小统一的连通像素区域,窗口图像总像素大小为Wx×Wy,生成的二维索引为(Wx,Wy)。
步骤S2中的差分模板为[-1,0,1]。
步骤S5中全局索引的大小为(Wx/Cx,Wy/Cy)。
步骤S7中并行规约时全局索引的大小为(Wx/Cx,Wy),总共使用Wx×Wy/Cx个工作项。
步骤S7中第一次并行规约总共使用Cy/2个工作项统计两列梯度;第二次并行规约总共使用Cy/4个工作项统计两列梯度,后续依次使用前一次的1/2个工作项进行梯度统计,直到完成梯度统计。
步骤S3中的各个工作项之间无数据交互,即无全局同步或局部同步。
通过AOCL将步骤S1到步骤S9的OpenCL的高层描述转换为硬件语言,并生成具体的硬件电路。
将本方案在CPU+GPU和CPU+FPGA异构平台上分别加以实现。将CPU作为主机,执行***调度,GPU和FPGA分别作为设备。首先对平台和设备进行初始化和一系列的配置。然后控制启动设备,进行其他操作。当得到结果后,在主机端完成最后的分类计算。通过相关实验,该方案满足了文本定位实时性以及低能耗的需求,能够进一步提高场景字符识别技术的可靠性。
本发明在梯度统计过程中为每个cell分配一个工作项,而不是给每个像素创建一个工作项,解决了访问冲突的问题;
对应步骤S7中每个工作项统计一行的像素,保证了工作项的连续性访问,并且提高了Cy倍的并行度,提高了GPU资源利用率,充分发挥GPU并行处理数据的能力,降低开销;
在梯度统计过程,GPU通过高代价的原子函数来避免局部内存的访存冲突;OpenCL原子函数可以对全局获局部内存的32位有符号和无符号整数进行原子操作;通过原子函数可以保证在一个工作项访问内存时,其他工作项不能访问该内存,在步骤S6中,当cell中多个像素离散梯度一致时,可能导致并行写到同一内存,将导致竞态条件,数据会丢失,原子函数便可以解决该问题;
在梯度统计过程,FPGA通过多片物理内存的交替访存来避免局部内存的访问冲突;FPGA多个片上M9K作为局部内存,支持同一工作组的各个工作项交替访问,避免局部内存的访存冲突;步骤在S6中,通过合理划分工作组,将像素投票计算结果保存至局部内存,FPGA就可以避免高代价的浮点数相加的原子操作;
步骤S8中将求和结果缓存至硬件的局部内存中,减少全局内存的访问,减少规约时间,节约计算时间;
通过局部内存同步,用一个设备内核完成相应的计算任务,资源消耗减少50%以上,与CPU相比,该方案在GPU和FPGA平台上的能效比分别为22.8和42.5,能够有效降低设备能耗;
采用投票的方式,避免了传统的统计方法中复杂的规约运算,算法计算时间减少50%以上,与CPU相比,该方案在GPU和FPGA平台上的加速比分别为28和6.9,能够有效减少计算时间;
HOG算法在GPU和FPGA平台上的计算时间分别为25ms和102ms,能耗分别为4J和2.14J,满足了文本定位实时性以及低能耗的需求,能够进一步提高场景(包括图像和视频)字符识别的可靠性。
Claims (6)
1.一种面向文本定位的单内核HOG高效异构加速方法,其特征在于,包括以下步骤:
S1、获取灰度图像的像素,并为每个像素分配一个工作项;其中Cx×Cy个大小统一的连通像素区域组成一个cell单元;
S2、在各个工作项中,利用差分模板及其转置对每个像素周围的像素进行行卷积与列卷积;
S3、对卷积后的像素进行幅度和相位计算;
S4、利用得到的幅度和相位,通过双线性插值算法计算得到像素的离散梯度方向,并保存在硬件的局部内存中,释放为像素分配的工作项;
S5、为每个cell单元分配一个工作项,并进行硬件的全局索引;
S6、创建用于统计像素离散梯度方向的统计变量,将每个像素所处的离散梯度方向直接并行加到统计变量中,并用一组变量对应计算一个cell单元中每行像素的离散梯度方向的投票结果,完成每行像素的统计,得到每个cell单元中不同离散梯度方向的个数;
S7、进行硬件的局部内存同步,基于投票结果,利用每个工作项统计cell中一行的像素,并进行并行规约得到所有cell单元的梯度统计,将梯度统计的离散梯度结果保存在硬件的局部内存中,释放为cell单元分配的工作项;
S8、利用一个工作项计算一个cell单元梯度统计后的离散梯度的归一化,将每个cell单元归一化后的结果求和,得到与每个cell单元对应的和值,将属于同一个block中的每个cell单元对应的和值缓存至硬件的局部内存中,并进行硬件的局部同步,得到每个block的局部方向梯度;其中一个图像包含若干个block;
S9、将每个block的局部方向梯度组合成一个HOG特征向量,得到图像的特征向量;
S10、将上述步骤加载到异构平台上,实现异构加速。
2.根据权利要求1所述的面向文本定位的单内核HOG高效异构加速方法,其特征在于,步骤S1中工作项为OpenCL中最小的工作单元;cell单元为图像最小划分单元;其中每个cell包括Cx×Cy个大小统一的连通像素区域,窗口图像总像素大小为Wx×Wy,生成的二维索引为(Wx,Wy)。
3.根据权利要求1所述的面向文本定位的单内核HOG高效异构加速方法,其特征在于,步骤S2中的差分模板为[-1,0,1]。
4.根据权利要求2所述的面向文本定位的单内核HOG高效异构加速方法,其特征在于,步骤S5中全局索引的大小为(Wx/Cx,Wy/Cy)。
5.根据权利要求4所述的面向文本定位的单内核HOG高效异构加速方法,其特征在于,步骤S7中并行规约时全局索引的大小为(Wx/Cx,Wy),总共使用Wx×Wy/Cx个工作项。
6.根据权利要求5所述的面向文本定位的单内核HOG高效异构加速方法,其特征在于,步骤S7中第一次并行规约总共使用Cy/2个工作项统计两列梯度;第二次并行规约总共使用Cy/4个工作项统计两列梯度,后续依次使用前一次的1/2个工作项进行梯度统计,直到完成梯度统计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111671159.2A CN114359683B (zh) | 2021-12-31 | 2021-12-31 | 一种面向文本定位的单内核hog高效异构加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111671159.2A CN114359683B (zh) | 2021-12-31 | 2021-12-31 | 一种面向文本定位的单内核hog高效异构加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114359683A true CN114359683A (zh) | 2022-04-15 |
CN114359683B CN114359683B (zh) | 2023-10-20 |
Family
ID=81104866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111671159.2A Active CN114359683B (zh) | 2021-12-31 | 2021-12-31 | 一种面向文本定位的单内核hog高效异构加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114359683B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750131A (zh) * | 2012-06-07 | 2012-10-24 | 中国科学院计算机网络信息中心 | 一种面向gpu的双调归并排序方法 |
US20130336538A1 (en) * | 2012-06-19 | 2013-12-19 | Xerox Corporation | Occupancy detection for managed lane enforcement based on localization and classification of windshield images |
CN104598929A (zh) * | 2015-02-03 | 2015-05-06 | 南京邮电大学 | 一种hog特征快速提取方法 |
CN106095583A (zh) * | 2016-06-20 | 2016-11-09 | 国家***第海洋研究所 | 基于新神威处理器的主从核协同计算编程框架 |
CN106780360A (zh) * | 2016-11-10 | 2017-05-31 | 西安电子科技大学 | 基于OpenCL标准的快速全变分图像去噪方法 |
US20180300881A1 (en) * | 2017-04-18 | 2018-10-18 | Texas Instruments Incorporated | Hardware Accelerator for Histogram of Oriented Gradients Computation |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN109767637A (zh) * | 2019-02-28 | 2019-05-17 | 杭州飞步科技有限公司 | 倒计时信号灯识别及处理的方法和装置 |
CN112232372A (zh) * | 2020-09-18 | 2021-01-15 | 南京理工大学 | 一种基于opencl的单目立体匹配及加速的方法 |
-
2021
- 2021-12-31 CN CN202111671159.2A patent/CN114359683B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750131A (zh) * | 2012-06-07 | 2012-10-24 | 中国科学院计算机网络信息中心 | 一种面向gpu的双调归并排序方法 |
US20130336538A1 (en) * | 2012-06-19 | 2013-12-19 | Xerox Corporation | Occupancy detection for managed lane enforcement based on localization and classification of windshield images |
CN104598929A (zh) * | 2015-02-03 | 2015-05-06 | 南京邮电大学 | 一种hog特征快速提取方法 |
CN106095583A (zh) * | 2016-06-20 | 2016-11-09 | 国家***第海洋研究所 | 基于新神威处理器的主从核协同计算编程框架 |
CN106780360A (zh) * | 2016-11-10 | 2017-05-31 | 西安电子科技大学 | 基于OpenCL标准的快速全变分图像去噪方法 |
US20180300881A1 (en) * | 2017-04-18 | 2018-10-18 | Texas Instruments Incorporated | Hardware Accelerator for Histogram of Oriented Gradients Computation |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN109767637A (zh) * | 2019-02-28 | 2019-05-17 | 杭州飞步科技有限公司 | 倒计时信号灯识别及处理的方法和装置 |
CN112232372A (zh) * | 2020-09-18 | 2021-01-15 | 南京理工大学 | 一种基于opencl的单目立体匹配及加速的方法 |
Non-Patent Citations (5)
Title |
---|
GUONING ZHANG 等: "Efficient Heterogeneous Acceleration Using Single-core Histograms of Oriented Gradients", pages 209 - 214 * |
ZHENWEN DAI 等: "Gaussian Process Models with Parallelization and GPU acceleration", pages 1 - 5, Retrieved from the Internet <URL:https://doi.org/10.48550/arXiv.1410.4984> * |
刘毅飞 等: "形状模型分割中形状对齐GPU加速的OpenCL实现", 信息技术, no. 03, pages 28 - 30 * |
胡辉 等: "基于多处理机平台并行扩维DFT算法的实现研究", 遥测遥控, no. 02, pages 44 - 50 * |
贺江: "面向场景字符识别关键算法的多平台异构加速研究", no. 2018, pages 138 - 1511 * |
Also Published As
Publication number | Publication date |
---|---|
CN114359683B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108765247B (zh) | 图像处理方法、装置、存储介质及设备 | |
CN109902804B (zh) | 一种池化运算方法及装置 | |
CN107341127B (zh) | 基于OpenCL标准的卷积神经网络加速方法 | |
CN102665049B (zh) | 基于可编程视觉芯片的视觉图像处理*** | |
CN108388537B (zh) | 一种卷积神经网络加速装置和方法 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN103049241B (zh) | 一种提高cpu+gpu异构装置计算性能的方法 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN117785480B (zh) | 处理器、归约计算方法及电子设备 | |
Poostchi et al. | Efficient GPU implementation of the integral histogram | |
Chang et al. | VSCNN: Convolution neural network accelerator with vector sparsity | |
CN109615061B (zh) | 一种卷积运算方法及装置 | |
CN114359683B (zh) | 一种面向文本定位的单内核hog高效异构加速方法 | |
CN110796244B (zh) | 用于人工智能设备的核心计算单元处理器及加速处理方法 | |
CN106934757A (zh) | 基于cuda的监控视频前景提取加速方法 | |
CN214586992U (zh) | 神经网络加速电路、图像处理器及三维成像电子设备 | |
Zhang et al. | FPGA-based implementation of hand gesture recognition using convolutional neural network | |
Zhao et al. | HDSuper: High-Quality and High Computational Utilization Edge Super-Resolution Accelerator With Hardware-Algorithm Co-Design Techniques | |
CN114595813A (zh) | 异构加速处理器及数据计算方法 | |
CN116266274A (zh) | 一种神经网络的调整方法及相应装置 | |
CN110765413B (zh) | 矩阵求和结构及神经网络计算平台 | |
Kim et al. | A configurable heterogeneous multicore architecture with cellular neural network for real-time object recognition | |
CN114600128A (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 |