一种基于神经网络特征提取的硬件加速方法及系统
- 国知局
- 2024-11-18 18:15:34
本发明属于图像处理相关,更具体地,涉及一种基于神经网络特征提取的硬件加速方法及系统。
背景技术:
1、superpoint算法是一种基于神经网络特征提取算法,可以解决两幅图像因发生平移、旋转、仿射变换等情况带来的匹配问题。superpoint算法可以将一幅图片转换为一个具有大量局部特征向量(描述符)的集合。相较于现有的特征提取算法如lift、sift和orb,superpoint拥有最高的最近邻平均精度、最高的匹配分数以及综合最优的单应性指标,展现出了强大的图像特征提取效果。该算法在图像发生仿射变化、3d视角变化、比例缩放、曝光度变化和噪声等条件下仍然能够获得较为可靠的匹配结果。因此,superpoint算法被广泛应用于智能自主移动机器人及自动驾驶的建图定位、匹配重建、运动分割跟踪、图像全景融合等需要图像识别匹配的场景。
2、现有实现superpoint算法的硬件加速系统能效低、资源开销大。2020年,清华大学的zhilin xu等人使用xilinx通用ai加速ip核dpu(deep learning processing unit)实现superpoint网络的卷积运算,随后重点对卷积后处理运算进行了减少运算量的处理。2022年,电子科技大学的ye liu等人同样使用dpu实现卷积运算,但对卷积网络进行了缩减与调整,使两个并行模块中的特征点检测模块先于描述符产生模块完成运算。上述的两个实现superpoint特征提取算法的硬件加速系统设计,相比于原算法的软件实现方案均加快了处理速度,但上述已有的硬件加速系统设计仍然存在以下不足之处:
3、现有的superpoint硬件加速系统不仅需要嵌入cpu来处理频繁的dpu ip卷积指令和层间卷积操作所引起的频繁的片外存储器访问,还需要通过cpu进行后处理操作,这导致了硬件加速系统能耗高、能效低。
4、现有的superpoint硬件加速系统存在冗余的后处理运算,nms模块中相邻像素点间的数据比较存在冗余的重复比较,进一步限制了能效的提升。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本发明提供了一种基于神经网络特征提取的硬件加速方法及系统,其目的在于提高特征提取的能效。
2、为实现上述目的,按照本发明的一个方面,提供了一种基于神经网络特征提取的硬件加速系统,其包括按流水线方式运行的编码卷积处理器、特征点卷积处理器、softmax&nms模块、特征图像素点选择器、选择性描述符卷积处理器、插值和归一化模块:
3、所述编码卷积处理器用于对输入图像进行特征提取得到共享特征图;
4、所述特征点卷积处理器用于对所述共享特征图进行卷积得到置信度特征图;
5、所述softmax&nms模块用于从所述置信度特征图中提取候选特征点;
6、所述特征图像素点选择器用于根据当前有效的特征点位置信息选择性地生成特征点所处的像素区域;
7、所述选择性描述符卷积处理器用于从所述共享特征图中读取位于所述像素区域的特征数据并进行描述符卷积,生成所述有效特征点的描述符;
8、所述插值与归一化结构用于对所述有效特征点的描述符进行插值和总体归一化,得到描述符特征图;
9、其中,所述编码卷积处理器、所述特征点卷积处理器和所述softmax&nms模块均在m个周期内完成对应的流水线任务,所述选择性描述符卷积处理器在n*m个周期内完成一个有效特征点描述符的生成,n>1。
10、在其中一些实施例中,所述编码卷积处理器计算得到一个输出像素特征所需的时间为m个周期,所述流水线方式包括:
11、所述编码卷积处理器在每m个周期内依次得到输出像素特征;
12、所述特征点卷积处理器在每m个周期内完成对一个输出像素特征的计算,得到第一计算结果;
13、所述softmax&nms模块在每m个周期内完成对一个第一计算结果的计算,得到第二计算结果;
14、所述选择性描述符卷积处理器在每n*m个周期内完成对一个第二计算结果的计算,得到对应特征点的描述符;
15、其中,n等于或近似于所有特征点区域面积之和与整体共享特征图的总面积之比。
16、在其中一些实施例中,所述编码卷积处理器包含按流水线运行的中间缓存存储器、卷积模块和最大池化模块,每个所述卷积模块包含数据选择器、乒乓窗口寄存器、权重存储器和偏置寄存器、乘法器、乘积寄存器、加法数、解复用器和累积寄存器;
17、所述权重存储器用于存储各乘法器进行乘法运算的权重;
18、所述偏置寄存器用于存储加法树进行累加的偏置;
19、所述数据选择器用于获取所述共享特征图中待计算的特征点并存入乒乓窗口寄存器;
20、所述多路选择器用于从所述乒乓窗口寄存器中提取待计算的特征点并行输入多个乘法器;
21、每个乘法器用于从所述权重存储器获取权重并与待计算的特征点进行乘积运算,乘积结果存入所述乘积寄存器;
22、所述加法树用于从所述乘积寄存器中获取乘积结果以及从所述偏置寄存器中获取偏置并进行累加;
23、所述解复用器用于将部分累加结果存入所述累积寄存器、将部分累加结果送回所述加法树进行下一轮的加法运算;
24、所述累积寄存器的结果存入后面所连接的中间缓存存储器。
25、在其中一些实施例中,所述特征图像素点选择器生成特征点所处的像素区域的过程包括:
26、确定当前有效特征点在所述置信度特征图中的坐标(i,j);
27、对坐标(i,j)分别除以k,得到坐标(x,y),k为置信度特征图边长与共享特征图边长之比;
28、对除法结果取整,得到中心像素点(x1,y1),根据除法结果的余数确定3个插值像素点:
29、若i÷k有余数,且j÷k有余数,则3个插值像素点分别为(x1,y1-1)、(x1-1,y1)和(x1-1,y1-1);
30、若i÷k有余数,且j÷k为整数,则3个插值像素点分别为(x1,y1+1)、(x1-1,y1)和(x1-1,y1+1);
31、若i÷k为整数,且j÷k有余数,则3个插值像素点分别为(x1,y1-1)、(x1+1,y1)和(x1+1,y1-1);
32、若i÷k为整数,且j÷k为整数,则3个插值像素点分别为(x1,y1+1)、(x1+1,y1)和(x1+1,y1+1);
33、确定当前有效特征点的像素区域,所述中心像素点和三个插值像素点位于所述像素区域的中心区域。
34、在其中一些实施例中,所述硬件加速系统还包含共享特征图缓存,用于存储所述共享特征图;
35、所述特征图像素点选择器包括fifo模块、重排序模块、插值模块、首地址产生模块、间隔产生模块以及特征点地址合成模块;
36、所述fifo模块用于缓存有效特征点的坐标;
37、所述重排序器模块用于从所述fifo模块中获取当前有效特征点的行坐标,并基于所述行坐标确定有效特征点在所述共享特征图缓存中的行索引,得到重排数;
38、所述插值模块用于从所述fifo模块中获取当前有效特征点的坐标并确定当前有效特征点的像素区域;
39、所述首地址产生模块用于根据所述重排数和所述像素区域的第一个像素点的位置生成所述像素区域在所述共享特征图缓存中的首地址;
40、所述间隔产生模块用于根据所述像素区域内各像素点的相对位置确定各像素的地址差;
41、所述特征点地址合成模块用于根据所述首地址和地址差确定所述像素区域内各像素点在所述共享特征图缓存中的地址。
42、在其中一些实施例中,所述softmax&nms模块包括:
43、softmax子模块,其包括子区域划分模块、近似计算模块、累加寄存器、第一比较与控制器、位置信息寄存器和除法器;所述子区域划分模块用于将所述置信度特征图划分为多个子区域,所述近似计算模块用于对同一子区域的各个像素点的特征数据α进行指数运算得到运算结果2α,所述累加寄存器用于将同一子区域的所有运算结果进行累加得到累加结果∑2α;所述第一比较与控制器用于确定同一子区域中指数运算结果最大的特征数据αmax,所述位置信息寄存器用于存储αmax的位置信息εmax;所述除法器用于执行除法运算αmax÷∑2α,得到对应子区域位于位置信息εmax的有效值;
44、nms子模块,用于依次获取有效值未被置为0的子区域并作为中心区域,比较当前中心区域以及与当前中心区域有效值距离设定范围内的且未与当前中心区域有效值比较过的相邻有效值,若中心区域有效值均大于相邻有效值,则认定当前中心区域有效值所在位置处的像素点为特征点并将相邻有效值置0,否则,当前中心区域不存在特征点且维持相邻有效值不变。
45、在其中一些实施例中,所述softmax子模块还包括最大值索引寄存器和最大值寄存器,所述最大值索引寄存器用于存储指数运算结果最大的像素点的索引,所述最大值寄存器用于存储最大的指数运算结果;
46、所述第一比较与控制器用于每当所述近似计算模块输出一个指数运算结果时,将当前指数运算结果与所述最大值寄存器中的指数运算结果进行比较,当前者大于后者,则将当前指数运算结果存入所述最大值寄存器,作为更新后的最大的指数运算结果,并将当前像素点的索引存入所述最大值索引寄存器,作为更新后的指数运算结果最大的像素点的索引;
47、当完成当前子区域所有像素点的比较后,根据最大值索引寄存器中的像素点的索引将对应像素点的位置信息存入位置信息寄存器。
48、在其中一些实施例中,所述nms子模块包含第一选择器、第二选择器、第二比较与控制器;
49、所述第一选择器用于获取当前中心区域有效值的位置信息以及未与当前中心区域有效值进行比较过的相邻子区域有效值的位置信息并送入所述第二比较与控制器;
50、所述第二比较与控制器用于先计算当前中心区域有效值和相邻子区域有效值的位置距离并判断两有效值之间的位置距离是否处于所述设定范围内,若是,则认为该相邻子区域为有效子区域;
51、所述第二选择器用于获取当前中心区域有效值以及有效子区域的有效值并送入所述第二比较与控制器;
52、所述第二比较与控制器还用于再比较当前中心区域有效值和各有效子区域的有效值的大小,若当前中心区域有效值大于各有效子区域的有效值,则输出当前中心区域有效值所在位置处的像素点为特征点并将相邻有效值置0并将有效子区域的有效值置0,否则,认为当前中心区域不存在特征点且维持各有效值不变。
53、在其中一些实施例中,所述设定范围为以当前中心区域有效值所处位置为中心的矩形窗口所覆盖的区域范围,所述矩形窗口的长宽尺寸均大于子区域的长宽尺寸且均小于子区域的长宽尺寸的2倍。
54、按照本发明的另一个方面,提供了一种基于如上硬件加速系统的硬件加速方法,其包括:
55、步骤s1:在流水线的第一级,输入图像进入编码卷积处理器进行特征提取,得到共享特征图并存入共享特征图缓存;
56、步骤s2:在流水线的第二级,共享特征图缓存中的特征数据送入特征点卷积处理器进行卷积,得到置信度特征图并存入流水线寄存器,此时进行描述符卷积之前,系统已经得到了特征点信息;
57、步骤s3:在流水线的第三级,流水线寄存器中的置信度特征图送入softmax&nms模块,计算每个像素点的特征置信度并进行非极大值抑制,得到特征点;
58、步骤s4:在流水线的第四级前半部分,通过特征图像素点选择器根据当前有效的特征点位置信息选择性地生成特征点所处的像素区域;
59、步骤s5:在流水线的第四级后半部分,通过选择性描述符卷积处理器从所述共享特征图中读取位于所述像素区域的特征数据并进行描述符卷积,生成所述有效特征点的描述符;
60、步骤s6:在流水线的第五级,通过插值与归一化结构对所述有效特征点的描述符进行插值和总体归一化,得到描述符特征图;
61、其中,所述编码卷积处理器、所述特征点卷积处理器和所述softmax&nms模块均在m个周期内完成对应的流水线任务,所述选择性描述符卷积处理器在n*m个周期内完成一个有效特征点描述符的生成,n>1。
62、总体而言,通过本发明所构思的以上技术方案与现有技术相比,本发明主要具有以下有益效果:
63、1.本发明提供的基于神经网络特征提取的硬件加速系统,通过设计专用的端到端硬件加速系统实现superpoint算法,可以避免嵌入cpu来处理频繁的dpu ip卷积指令和层间卷积操作所引起的频繁的片外存储器访问,还避免了通过cpu进行后处理操作,通过专用加速设计,避免了片外存储器访问消耗,显著提高了能量效率。
64、2.本发明提供的基于神经网络特征提取的硬件加速系统,所述编码卷积处理器、特征点卷积处理器、softmax&nms模块、选择性描述符卷积处理器、插值和归一化模块按流水线的方式运行,可以进一步提高整体结构的运行效率。
65、3.本发明提供的基于神经网络特征提取的硬件加速系统,由于采用流水线运行方式,可以提前确定有效特征点,在确定有效特征点后,特征图像素点选择器可以根据特征点的位置选择所处的像素区域,在第四级流水线生成描述符时,只需要对像素区域中的特征数据进行卷积处理,规避了所有非特征点的冗余描述符卷积,进一步提高计算能效。
66、4.本发明提供的基于神经网络特征提取的硬件加速系统,考虑到特征点在共享特征图中的分布是稀疏的,如果特征点卷积处理器和描述符卷积处理器分配相对网路同等规格的计算资源,描述符卷积处理其的计算资源会长时间处于空闲状态,它的空闲时间和工作时间的比值接近于特征点区域面积之和与整体共享特征图的总面积之比。在本发明中,选择性描述符卷积处理器的处理时长更长,可以使描述符卷积处理器的乘法器等运算硬件资源减少,具体可以让n等于所有特征点所在区域的占共享特征图面积之和与共享特征图的总面积之比,减少了硬件开销,因此可以在不降低系统运行速度的情况下,减少描述符卷积模块的运算资源开销。
67、5.本发明设计的全流水端到端加速器支持只对特征图的一部分区域进行卷积,而目前的工作主要调用dpu进行卷积加速处理,dpu通用计算结果无法对共享特征图的某一段区域进行卷积,只能对共享特征图进行整体卷积;而且,本发明在流水线的过程中,特征点卷积所在的流水线等级高于描述符卷积所在的流水线等级,因此在描述符卷积之前就可以得到特征点的位置信息,从而选择特征点为中心的一部分区域进行描述符卷积,因此,得益于流水线设计,在计算描述符之前可以得到特征点位置,描述符卷积处理不需要对全部共享特征图进行卷积,只需要对特征点及其附近的像素区域进行卷积便可得到描述符,规避了所有的冗余描述符卷积过程,如此可以减小运算资源开销。
68、6.具体的实施例中,softmax子模块设计中,划分多个子区域,基于softmax函数输出的最大值最有可能在nms运算后被保留的特性,只保留子区域最大值进行运算,由此可以简化运算过程,并且减少了softmax子模块输出数量,降低了nms子模块的数据比较次数,而且,考虑到softmax运算结果的绝对值不关键,在保证softmax运算结果相对大小保持不变的情况下,本发明创新性地以2为底的指数运算作为近似运算,可以进一步简化运算。在nms子模块设计时,在比较时通过置0的方式避免再次比较,由此可以重复比较。通过对softmax&nms模块进行改进,可以简化softmax&nms运算过程,大量减少电路资源开销与系统能耗。
本文地址:https://www.jishuxx.com/zhuanli/20241118/327843.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
上一篇
一种事件隐式关系抽取方法
下一篇
返回列表