CN106920264B - 一种基于可形变部件模型算法的目标检测硬件结构 - Google Patents
一种基于可形变部件模型算法的目标检测硬件结构 Download PDFInfo
- Publication number
- CN106920264B CN106920264B CN201710118342.7A CN201710118342A CN106920264B CN 106920264 B CN106920264 B CN 106920264B CN 201710118342 A CN201710118342 A CN 201710118342A CN 106920264 B CN106920264 B CN 106920264B
- Authority
- CN
- China
- Prior art keywords
- module
- convolution
- data
- unit
- interpolation
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000000605 extraction Methods 0.000 claims abstract description 38
- 230000009466 transformation Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 49
- 238000006243 chemical reaction Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 24
- 238000005096 rolling process Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 abstract description 5
- 239000011159 matrix material Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种基于可形变部件模型算法的目标检测硬件结构,包括:图片解码模块,与图片解码模块相连接的双线性插值模块,与双线性插值模块相连接的外部缓存结构模块,与外部缓存结构模块相连接的HOG特征提取模块,与HOG特征提取模块相连接的主卷积模块和次卷积模块,与次卷积模块相连接的距离变换模块,与主卷积模块和距离变换模块相连接的得分值计算模块,以及与外部缓存结构模块相连接的控制整个计算流程的图片调度控制模块。本申请充分利用了数据带宽采用硬件流水线处理和并行计算处理,从而大大提高了数据处理的并行度,最终实现对输入测试图片的目标识别,有效提高了数据的吞吐率,使得目标检测速度获得了大幅度的提升。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种基于可形变部件模型算法的目标检测硬件结构。
背景技术
图像处理是最近非常热门的一个领域,涉及军事,工业以及生活的方方面面。而目标检测作为图像处理领域中的子领域,在行人检测和自动驾驶、安保安防等领域具有广泛的应用。可形变部件模型(DPM,deformable part models)是近年来最为流行的图像中物体检测模型,由于其能准确地检测出目标而受到欢迎,是公认的较好的目标检测算法。DPM算法是由Pedro F.Felzenszwalb等人提出,该算法在视觉对象的分类识别和检测的一个基准测试PASCAL VOC挑战赛中连续三年获得检测冠军。
DPM算法采用广泛用于目标检测的方向梯度直方图(HOG,Histogram of OrientedGradient)特征,HOG特征是图片的一种统计梯度直方图,这种特征对光照不敏感,能够很好地描绘图片中目标的轮廓信息。DPM算法采用一种多层次建模的方法,对目标的整体形象建立一个主模型,对由目标整体细分的多个组成部分建立若干次模型,并且对主模型和次模型的位置关系进行建模。这种建模方法使得DPM算法在检测柔性目标或者具有多种动作特征的目标方面显著优于其他算法。DPM算法同时引入多组件的概念,一个组件可代表目标的一种可视化形态,每个组件包括一个主模型和若干个次模型,多组件方法也提高了目标检测的准确率。
然而,在目标检测的硬件实现中,关注的是在满足准确率和召回率要求的情况下达到一定的检测速度。现有DPM目标检测算法采用软件编程方式实现,其流程主要为先将待检测的图片按照一定的缩小比例进行不断地缩小,形成一个图片的金字塔;对图片金子塔中的每一张图片提取HOG特征,得到相应的图片特征图金子塔;利用训练得到的主模型和次模型的参数矩阵分别与图片特征金子塔中的对应特征图进行卷积得到相应响应矩阵;次模型参数矩阵与特征图的卷积响应矩阵再进行一次距离变换操作得到变换矩阵;最后将主模型响应矩阵和所有变换矩阵对应位置相减,如果某个位置的值大于阈值则可判断目标存在于该点。现有软件实现存在以下缺点:保存所有的图片金子塔和特征金字塔浪费了大量的内存资源,而且必须在保存完所有图片金子塔和特征金字塔计算完成后才开始进行后续的检测操作,不利于流水的实现。另外,目标检测算法在实际应用中为了达到更好的效果,往往同时处理多个组件的模型,更加减慢了其检测速度。
发明内容
本申请实施例旨在提供一种基于可形变部件模型算法的目标检测硬件结构,用以解决现有技术采用软件编程存在的浪费大量的内存资源、检测速度慢的问题。
本申请的一个方面提供了一种基于可形变部件模型算法的目标检测硬件结构,包括:
图片解码模块,用于依次接收外部输入的编码图片数据,将接收到的数据解码成红绿蓝RGB格式数据输出;
双线性插值模块,与所述图片解码模块连接,用于接收所述图片解码模块的RGB三通道数据,并对其进行插值计算,输出插值后的数据;
外部缓存结构模块,与所述双线性插值模块连接,用于将经过双线性插值模块插值得到的图片数据依次轮流存放在乒乓存储区域;
图片调度控制模块,与所述外部缓存结构模块连接,用于读取外部缓存结构模块中对应区域的图片数据,并将其传递给后续模块使用;
HOG特征提取模块,与所述外部缓存结构模块连接,用于从所述外部缓存结构模块中提取图片数据,并求出图片数据的梯度信息和统计直方图信息;
卷积模块,包括主卷积模块和次卷积模块,与所述HOG特征提取模块连接,用于在所述HOG特征提取模块产生的HOG特征图上滑动,求得卷积值,输出卷积响应;
距离变换模块,与所述次卷积模块连接,用于接收所述次卷积模块输出的卷积响应,并对其进行行与列方向的距离变换;
得分值计算模块,与所述主卷积模块和距离变换模块连接,用于读取经过距离变换模块的次卷积模块的卷积响应,并与未经过距离变换模块的主卷积模块的卷积响应相减,待所有次卷积模块的卷积响应都读取完毕,得分计算结束,若得分值大于阈值的位置,则该位置为目标出现的位置。
进一步的,还包括:
主模型乒乓缓存模块,与所述主卷积模块连接,用于存储来自主卷积模块输出的卷积响应;
次模型乒乓缓存模块,与所述次卷积模块连接,用于存储来自次卷积模块输出的卷积响应。
进一步的,所述外部缓存结构模块,包括6个依次被标为A1、A2、B1、B2、C1、C2的乒乓存储区域。
进一步的,所述双线性插值模块包括:
第一双线性插值模块,与所述图片解码模块和外部缓存结构模块连接,用于接收所述图片解码模块的RGB三通道数据,并对其进行插值计算,输出插值后的数据存放在外部缓存结构模块的A1、A2区域;
第二双线性插值模块,与所述外部缓存结构模块连接,接收外部缓存结构模块A1、A2区域的数据,并对其进行插值计算,将插值后的图片依次轮流存放在B1、B2区域;
第三双线性插值模块,与所述外部缓存结构模块连接,接收外部缓存结构模块A1、A2、B1、B2区域的数据,并对其进行插值计算,将插值后的图片依次轮流存放在C1、C2区域。
进一步的,所述双线性插值模块包括:
缓存单元,用于将行与列的插值参数预先存储;
行插值单元,用于根据进入的图片数据和存储在存储单元中的行参数信息进行线性插值并将数据传送给列插值单元进行处理;
列插值单元,用于接收来自行插值的结果和存储单元中的列参数信息进行列插值,输出插值后的数据。
进一步的,所述第一双线性插值模块的插值系数为0.4。
进一步的,所述第二双线性插值模块的插值系数为0.933。
进一步的,所述第三双线性插值模块的插值系数为0.5。
进一步的,所述HOG特征提取模块,包括:
梯度计算单元,用于求出图片中每个像素点的梯度幅度和方向;
统计直方图单元,用于根据梯度方向统计每个区域块的梯度直方图信息。
进一步的,所述HOG特征提取模块的块大小为4x4,每个块提取的特征维度为31。
进一步的,所述卷积模块,包括:
计算单元,用于在所述HOG特征提取模块产生的HOG特征图上滑动,求得卷积值;
分布式存储单元,用于存储HOG特征提取模块输出的参数数据和特征图的数据。
进一步的,所述计算单元,包括:
乘累加单元阵列,用于形成卷积窗口,在HOG特征提取模块输出的特征图中滑动,并同时读取分布式存储单元的参数数据和特征图的数据进行乘累加运算。
进一步的,所述距离变换模块,包括:
行距离变换单元,用于按行接收所述次卷积模块的卷积响应,并对其进行行距离变换;待行距离变换完成后,将结果按列传递给列距离变换单元;
列距离变换单元,用于对行距离变换完成后,传递给的结果进行列距离变换。
进一步的,所述每一个行距离变换单元和列距离变换单元,包括:
级联运算单元,用于从前一级原始数据缓存单元和中间数据缓存单元中读取原始数据和中间数据,并将两者输入级联运算单元;
原始数据缓存单元,用于存储原始数据;
中间数据缓存单元,用于存储中间数据;
输出控制单元,用于将通过级联运算单元得到的输出缓存至下一级的原始数据缓存单元和中间数据缓存单元中。
进一步的,所述得分值计算模块,包括:
状态机,用于控制读写次序;
得分缓存结构单元,用于存储依次读取的经过距离变换模块的次卷积模块的卷积响应;
得分计算单元,用于将读取的主卷积模块的卷积响应和得分缓存结构单元中的次卷积模块的卷积响应相减,若得分值大于阈值的位置,则该位置为目标出现的位置。
进一步的,基于可形变部件模型算法的目标检测硬件结构采用现场可编程门阵列FPGA芯片实现。
与现有技术相比,本申请实施例包括图片解码模块,与所述图片解码模块相连接的双线性插值模块,与所述双线性插值模块相连接的外部缓存结构模块,与所述外部缓存结构模块相连接的HOG特征提取模块,与所述HOG特征提取模块相连接的主卷积模块和次卷积模块,与所述次卷积模块相连接的距离变换模块,与所述主卷积模块和所述距离变换模块相连接的得分值计算模块;还包括与主卷积模块相连的主模型乒乓缓存模块;与次卷积模块相连的次模型乒乓缓存模块,以及与外部缓存结构模块相连接的控制整个计算流程的图片调度控制模块。本申请的硬件架构连续接收编码后的图片,并且对图片进行特定尺度的缩放,同时对每次缩放的图片求HOG特征,将所求的HOG特征矩阵与参数矩阵进行卷积操作,然后对次模型卷积结果矩阵进行距离变换,最后通过将主模型卷积结果矩阵与进行距离变换的次模型卷积结果矩阵对应相减得到得分矩阵,通过获取得分矩阵大于阈值的点,得到目标所在的坐标,实现目标检测的功能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种基于可形变部件模型算法的目标检测硬件结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面结合说明书附图对本申请实施例作进一步详细描述。
如图1所示,根据本申请的一个方面提供了一种基于可形变部件模型算法的目标检测硬件结构,该硬件结构可采用现场可编程门阵列FPGA芯片实现,具体包括:
图片解码模块,用于依次接收外部输入的编码图片数据,将接收到的数据解码成红绿蓝RGB格式数据输出。本申请实施例图片解码模块,其被配置为:依次接收外部输入的经过压缩的图片数据,经过解压缩处理后输出对应像素点的R,G,B三通道像素值。
双线性插值模块,与所述图片解码模块连接,用于接收所述图片解码模块的RGB三通道数据,并对其进行插值计算,输出插值后的数据。具体的,本申请实施例双线性插值模块不断接受来自所述图片解码模块的R,G,B三通道数据,并对其进行行插值计算,行插值运算得到的结果传递给列插值模块进行列插值,直到所有行列插值完毕。
进一步的,所述双线性插值模块包括:
缓存单元,用于将行与列的插值参数预先存储;
行插值单元,用于根据进入的图片数据和存储在存储单元中的行参数信息进行线性插值并将数据传送给列插值单元进行处理;
列插值单元,用于接收来自行插值的结果和存储单元中的列参数信息进行列插值,输出插值后的数据。
本申请实施例双线性插值模块包括缓存单元,行插值单元和列插值单元。该双线性插值模块被配置为:将行与列的插值参数预先存储在缓存单元中,行插值单元利用按行读取的方式,每个周期从图片解码模块解码出来的数据中读取一个RGB三通道像素数据,同时从缓存单元中读取插值参数,然后根据读取的像素数据和插值参数数据进行行插值,插值后的数据按照同样的方式输入到列插值模块进行相应的列插值。列插值单元接受来自行插值的结果和缓存单元中的列参数进行列插值,最后该模块输出插值后的数据进入下一个模块。
外部缓存结构模块,与所述双线性插值模块连接,用于将经过双线性插值模块插值得到的图片数据依次轮流存放在乒乓存储区。进一步的,本申请实施例外部缓存结构模块,包括6个依次被标为A1、A2、B1、B2、C1、C2的乒乓存储区域,经过双线性插值模块插值得到的图片依次轮流存放在上述区域中。本申请利用外部缓存结构模块可以节省大量片上资源,并且也保持高性能。
进一步的,所述双线性插值模块包括:
第一双线性插值模块,与所述图片解码模块和外部缓存结构模块连接,其包括一个行插值单元,一个列插值单元以及预先存储插值系数的缓存单元。进一步的,该第一双线性插值模块的插值系数被配置为0.4。实施中,第一双线性插值模块不断接受来着所述图片解码模块的R,G,B三通道数据,并对其进行行插值计算,行插值运算得到的结果传递给列插值模块进行列插值,直到所有行列插值完毕,最后输出插值后的数据存放在外部缓存结构模块的A1、A2区域。
第二双线性插值模块,与所述外部缓存结构模块连接,其包括一个行插值单元,一个列插值单元以及预先存储插值系数的缓存单元。进一步的,该第二双线性插值模块的插值系数被配置为0.933。实施中,第二双线性插值模块轮流接受来自外部缓存结构模块A1,A2区域的数据,并对其进行行插值计算,行插值运算得到的结果传递给列插值模块进行列插值,并将插值后的图片依次轮流存放在B1,B2区域。
第三双线性插值模块,与所述外部缓存结构模块连接,其包括一个行插值单元,一个列插值单元以及预先存储插值系数的缓存单元。进一步的,该第三双线性插值模块的插值系数被配置为0.5。实施中,第三双线性插值模块轮流接受来自外部缓存结构模块A1,A2,B1,B2区域的数据,并对其进行行插值计算,行插值运算得到的结果传递给列插值模块进行列插值,并将插值后的图片依次轮流存放在C1,C2区域。
本申请实施例,为了适应流水线的架构,第一双线性插值模块将插值后的图片数据先存储在A1区域,存完一张图片后,后续模块开始读取A1区域数据并且同时第一双线性插值模块把插值的图片存储到A2区域,与外部缓存结构模块相连的另外两个第二双线性插值模块和第三双线性插值模块各自利用兵乓缓存的方式把插值之后的图片数据存储到B1,B2,C1,C2中。
图片调度控制模块,与所述外部缓存结构模块连接,用于读取外部缓存结构模块中对应区域的图片数据,并将其传递给后续模块使用。本申请实施例图片调度控制模块被配置为:按照一定的顺序依次读取外部缓存结构模块中对应区域的图片数据,并将其传递给后续模块使用。本申请实施例第一幅图片存放在A1区域,当第一幅图片存储完成后,同时可以开始存放第二幅图片到A2区域,与此同时图片调度控制模块会读取A1区域的图片给HOG特征提取模块进行特征提取,同时图片调度控制模块读取出来的图片会经过第二双线性插值模块和第三双线性插值模块进行插值,并且把图片依次存放在B1,B2区域和C1,C2区域。
本申请实施例图片调度控制模块,其包括一个嵌套的状态机,该图片调度控制模块被配置为:总共10轮的主状态,每个主状态包含若干次状态,次状态的数目由原始图片大小决定。
实施中,在第一轮调度过程中,先从A1区域读取图片,并且把读出的图片分别进行两次双线性插值(由第二双线性插值模块和第三双线性插值模块执行),分别存放在B1,C1区域,直到B1,C1区域图片存储完成,开始读取C1区域的图片并且对其进行双线性插值,放入C2区域,轮流在C1区域和C2区域读取图片并进行双线性插值直到第一轮结束。
实施中,第二轮调度先读取B1区域图片,并且把读出的图片分别进行两次双线性插值(由第二双线性插值模块和第三双线性插值模块执行),分别存放在B2,C1区域,然后轮流从C1,C2区域读取图片并进行双线性插值直到第二轮结束。
实施中,第三至第十轮调度过程中先按照乒乓的规则读取B1、B2区域中一个图片的数据,并且把读出的图片分别进行两次双线性插值,分别存放B1、B2区域中另一个区域,然后轮流从C1,C2区域读取图片直到该轮结束;这样就完成了整个十轮的检测,每一轮包含若干次检测。
HOG特征提取模块,与所述外部缓存结构模块连接,用于从所述外部缓存结构模块中提取图片数据,并求出图片数据的梯度信息和统计直方图信息。进一步的,本申请实施例HOG特征提取模块,包括:梯度计算单元和统计直方图单元,该HOG特征提取模块被配置为:接受来自所述外部缓存结构模块的图片像素数据,由梯度计算单元求出图片中每个像素点的梯度幅度和方向,统计直方图单元根据梯度方向统计每个区域块的梯度直方图信息,输出的直方图信息到后续模块;
进一步的,本申请实施例HOG特征提取模块的块大小为4x4,每个块提取的特征维度为31。本申请实施例在所述图片调度控制模块给第二双线性插值模块和第三双线性插值模块调度图片时,该数据同时会传递到HOG特征提取模块进行特征提取操作。HOG特征提取模块将提取图片数据分成4x4的块,每个块提取的特征的维度为31,通过梯度计算单元求出图片数据的梯度信息,利用滑动窗口在梯度信息矩阵中滑动求得每个块的梯度统计直方图信息,滑动的步长为4。
卷积模块,包括主卷积模块和次卷积模块,与所述HOG特征提取模块连接,用于在所述HOG特征提取模块产生的HOG特征图上滑动,求得卷积值,输出卷积响应。进一步的,本申请卷积模块,包括:计算单元和分布式存储单元。所述计算单元,由乘累加单元阵列构成。优选的,本申请实施例卷积模块包括14个并行计算单元,主卷积模块包含2个计算单元,次卷积模块包括12个计算单元,大量的乘累加单元组成一个计算单元,每个计算单元在所述HOG特征提取模块产生的HOG特征图上滑动,滑动的步长是1,通过滑动方法求得一个响应矩阵。
本申请实施例卷积模块被配置为:与所述HOG特征提取模块相连接的主卷积模块和次卷积模块,其包括14个由大量的乘累加单元构成的计算单元和大量的分布式存储单元。所述乘累加单元构成的阵列形成一个卷积窗口,这个窗口在HOG特征提取模块输出的特征图中滑动,与此同时按顺序读取分布式存储单元的参数数据和特征图的数据进行乘累加运算,每滑动一次求得一个卷积值,卷积模块的输出称为卷积响应。
本申请实施例在卷积运算过程中,利用14个计算单元构成主模型和次模型卷积模块,让14个卷积模块并行执行,各个计算单元中乘累加运算阵列并行执行,大大地提高了数据的吞吐率,提升了卷积的性能。
主模型乒乓缓存模块,与所述主卷积模块连接,用于存储来自主卷积模块输出的卷积响应;
次模型乒乓缓存模块,与所述次卷积模块连接,用于存储来自次卷积模块输出的卷积响应。
本申请实施例,与主卷积模块和次卷积模块连接的缓存单元,被配置为:主卷积模块输出的卷积响应轮流存放在主模型乒乓缓存模块1A、1B,次卷积模块输出的卷积响应轮流存放在次模型乒乓缓存模块2A、2B,等到该轮该次的卷积结束,开始从缓存模块1A、1B、2A、2B中依次读取14个模型卷积响应矩阵,达到并行存入,串行读出。
距离变换模块,与所述次卷积模块连接,用于接收所述次卷积模块输出的卷积响应,并对其进行行与列方向的距离变换。具体实施中,本申请距离变换模块与所述次模型乒乓缓存模块2A、2B连接,其包括行距离变换单元和列距离变换单元。所述行距离变换单元按行依次接受所述次模型乒乓缓存模块中存储的次卷积模块输出的卷积响应,对其进行行距离变换,输出结果缓存在乒乓存储结构中,列距离变换模块根据乒乓缓存结构中的数据,进行列方向的距离变换。
进一步的,所述每一个行距离变换单元和列距离变换单元,包括:级联运算单元,原始数据缓存单元、中间数据缓存单元以及输出控制单元。本申请实施例行距离变换模块和列距离变换模块分别包括8个级联的运算单元、14个乒乓原始数据缓存单元用来存储原始数据、28个乒乓中间数据缓存单元用来存储中间结果和输入控制单元。所述级联运算单元被进一步配置为:从前一级乒乓的原始数据缓存单元读取原始数据,以及从前一级的中间数据缓存单元读取中间数据,将这两者输入级联运算单元,得到的输出缓存到下一级的中间数据缓存单元,并且把原始数据也缓存到下一级原始数据缓存单元。本申请距离变换模块采用多级缓存,8级运算单元级联方法,能够达到1.5个时钟周期处理1个数据,相对软件编程方式实现了巨大的加速比。
得分值计算模块,与所述主卷积模块和距离变换模块连接,用于读取经过距离变换模块的次卷积模块的卷积响应,并与未经过距离变换模块的主卷积模块的卷积响应相减,待所有次卷积模块的卷积响应都读取完毕,得分计算结束,若得分值大于阈值的位置,则该位置为目标出现的位置。
进一步的,本申请实施例得分值计算模块,包括:控制读写次序的状态机、得分缓存结构单元和得分计算单元。所述得分缓存结构单元为乒乓缓存结构。所述得分计算单元被配置为:按照状态机约定的顺序依次从得分缓存结构单元中读取经过距离变换的次模型乒乓缓存模块中存储的次卷积模块输出的卷积响应,并与未经过距离变换的主模型乒乓缓存模块中存储的主卷积模块输出的卷积响应对应相减,待所有经过距离变换的次模型卷积响应都读取完毕,得分计算结束,判断得分值大于阈值的位置,该位置即为目标出现的地方。本申请在得分值计算模块也采用乒乓缓存结构,让计算能够完成流水,实现较大的数据吞吐率。
具体实施中,如存在多个主模型乒乓缓存模块的卷积响应和多个次模型乒乓缓存模块的卷积响应,则首先依次读取次模型1乒乓缓存模块中卷积响应经过距离变换的矩阵,并且将其存入得分缓存结构单元中,再读取次模型2卷积经过距离变换的矩阵,并且从得分缓存结构单元中读取相应的值,两者相加,再次存入得分缓存结构单元,然后依次读取次模型3,4,5,6,…的卷积距离变换矩阵,按照如前所述操作,最终将N个次模型卷积变换相加完毕,并且存入到得分缓存结构单元中;其次分别读取主模型乒乓缓存模块中卷积模块的值和得分缓存结构单元中的值,将两者相减并且加上偏移值,判断得分值如果大于阈值,将其对应的坐标信息和对应值输出,即完成目标检测。
本申请实施例包括图片解码模块,与所述图片解码模块相连接的双线性插值模块,与所述双线性插值模块相连接的外部缓存结构模块,与所述外部缓存结构模块相连接的HOG特征提取模块,与所述HOG特征提取模块相连接的主卷积模块和次卷积模块,与所述次卷积模块相连接的距离变换模块,与所述主卷积模块和所述距离变换模块相连接的得分值计算模块;还包括与主卷积模块相连的主模型乒乓缓存模块;与次卷积模块相连的次模型乒乓缓存模块,以及与外部缓存结构模块相连接的控制整个计算流程的图片调度控制模块。本申请通过采用图片解码模块在不断解码图片并存入外存,同时从外存中读取图片给HOG特征提取模块进行特征提取,然后将提取的特征输出给卷积模块进行卷积运算,并且对次模型的卷积结果进行一次距离变换操作,最后得分值计算模块读取主模型卷积结果和经过变换的次模型卷积的结果进行得分计算,找出得分大于阈值点,判断目标的具***置。本申请充分利用了数据带宽采用硬件流水线处理和并行计算处理,从而大大提高了数据处理的并行度,最终实现对输入测试图片的目标识别,有效提高了数据的吞吐率,使得目标检测速度获得了大幅度的提升。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的硬件结构。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令硬件结构的制造品,该指令硬件结构实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种基于可形变部件模型算法的目标检测硬件结构,其特征在于,包括:
图片解码模块,用于依次接收外部输入的编码图片数据,将接收到的数据解码成红绿蓝RGB格式数据输出;
双线性插值模块,与所述图片解码模块连接,用于接收所述图片解码模块的RGB三通道数据,并对其进行插值计算,输出插值后的数据;
外部缓存结构模块,与所述双线性插值模块连接,用于将经过双线性插值模块插值得到的图片数据依次轮流存放在乒乓存储区域;
图片调度控制模块,与所述外部缓存结构模块连接,用于读取外部缓存结构模块中对应区域的图片数据,并将其传递给后续模块使用;
HOG特征提取模块,与所述外部缓存结构模块连接,用于从所述外部缓存结构模块中提取图片数据,并求出图片数据的梯度信息和统计直方图信息;
卷积模块,包括主卷积模块和次卷积模块,与所述HOG特征提取模块连接,用于在所述HOG特征提取模块产生的HOG特征图上滑动,求得卷积值,输出卷积响应;
距离变换模块,与所述次卷积模块连接,用于接收所述次卷积模块输出的卷积响应,并对其进行行与列方向的距离变换,所述距离变换模块包括行距离变换单元和列距离变换单元,其中,所述行距离变换单元用于按行接收所述次卷积模块的卷积响应,并对其进行行距离变换,待行距离变换完成后,将结果按列传递给列距离变换单元,所述列距离变换单元,用于对行距离变换完成后,传递给的结果进行列距离变换;
得分值计算模块,与所述主卷积模块和距离变换模块连接,用于读取经过距离变换模块的次卷积模块的卷积响应,并与未经过距离变换模块的主卷积模块的卷积响应相减,待所有次卷积模块的卷积响应都读取完毕,得分计算结束,若得分值大于阈值的位置,则该位置为目标出现的位置。
2.根据权利要求1所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,还包括:
主模型乒乓缓存模块,与所述主卷积模块连接,用于存储来自主卷积模块输出的卷积响应;
次模型乒乓缓存模块,与所述次卷积模块连接,用于存储来自次卷积模块输出的卷积响应。
3.根据权利要求1或2所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述外部缓存结构模块,包括6个依次被标为A1、A2、B1、B2、C1、C2的乒乓存储区域。
4.根据权利要求3所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述双线性插值模块包括:
第一双线性插值模块,与所述图片解码模块和外部缓存结构模块连接,用于接收所述图片解码模块的RGB三通道数据,并对其进行插值计算,输出插值后的数据存放在外部缓存结构模块的A1、A2区域;
第二双线性插值模块,与所述外部缓存结构模块连接,接收外部缓存结构模块A1、A2区域的数据,并对其进行插值计算,将插值后的图片依次轮流存放在B1、B2区域;
第三双线性插值模块,与所述外部缓存结构模块连接,接收外部缓存结构模块A1、A2、B1、B2区域的数据,并对其进行插值计算,将插值后的图片依次轮流存放在C1、C2区域。
5.根据权利要求1或2或4所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述双线性插值模块包括:
缓存单元,用于将行与列的插值参数预先存储;
行插值单元,用于根据进入的图片数据和存储在存储单元中的行参数信息进行线性插值并将数据传送给列插值单元进行处理;
列插值单元,用于接收来自行插值的结果和存储单元中的列参数信息进行列插值,输出插值后的数据。
6.根据权利要求4所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述第一双线性插值模块的插值系数为0.4。
7.根据权利要求4所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述第二双线性插值模块的插值系数为0.933。
8.根据权利要求4所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述第三双线性插值模块的插值系数为0.5。
9.根据权利要求1或2所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述HOG特征提取模块,包括:
梯度计算单元,用于求出图片中每个像素点的梯度幅度和方向;
统计直方图单元,用于根据梯度方向统计每个区域块的梯度直方图信息。
10.根据权利要求9所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述HOG特征提取模块的块大小为4x4,每个块提取的特征维度为31。
11.根据权利要求1所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述卷积模块,包括:
计算单元,用于在所述HOG特征提取模块产生的HOG特征图上滑动,求得卷积值;
分布式存储单元,用于存储HOG特征提取模块输出的参数数据和特征图的数据。
12.根据权利要求11所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述计算单元,包括:
乘累加单元阵列,用于形成卷积窗口,在HOG特征提取模块输出的特征图中滑动,并同时读取分布式存储单元的参数数据和特征图的数据进行乘累加运算。
13.根据权利要求1所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述行距离变换单元和列距离变换单元,包括:
级联运算单元,用于从前一级原始数据缓存单元和中间数据缓存单元中读取原始数据和中间数据,并将两者输入级联运算单元;
原始数据缓存单元,用于存储原始数据;
中间数据缓存单元,用于存储中间数据;
输出控制单元,用于将通过级联运算单元得到的输出缓存至下一级的原始数据缓存单元和中间数据缓存单元中。
14.根据权利要求1或2所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,所述得分值计算模块,包括:
状态机,用于控制读写次序;
得分缓存结构单元,用于存储依次读取的经过距离变换模块的次卷积模块的卷积响应;
得分计算单元,用于将读取的主卷积模块的卷积响应和得分缓存结构单元中的次卷积模块的卷积响应相减,若得分值大于阈值的位置,则该位置为目标出现的位置。
15.根据权利要求1或2所述的基于可形变部件模型算法的目标检测硬件结构,其特征在于,该硬件结构采用现场可编程门阵列FPGA芯片实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710118342.7A CN106920264B (zh) | 2017-03-01 | 2017-03-01 | 一种基于可形变部件模型算法的目标检测硬件结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710118342.7A CN106920264B (zh) | 2017-03-01 | 2017-03-01 | 一种基于可形变部件模型算法的目标检测硬件结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106920264A CN106920264A (zh) | 2017-07-04 |
CN106920264B true CN106920264B (zh) | 2020-07-24 |
Family
ID=59454379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710118342.7A Active CN106920264B (zh) | 2017-03-01 | 2017-03-01 | 一种基于可形变部件模型算法的目标检测硬件结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106920264B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107909113B (zh) * | 2017-11-29 | 2021-11-16 | 北京小米移动软件有限公司 | 交通事故图像处理方法、装置及存储介质 |
CN108154130B (zh) * | 2017-12-29 | 2022-04-15 | 深圳市神州云海智能科技有限公司 | 一种目标图像的检测方法、装置及存储介质、机器人 |
CN111260536B (zh) * | 2018-12-03 | 2022-03-08 | 中国科学院沈阳自动化研究所 | 可变参数的数字图像多尺度卷积处理器及其实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200236A (zh) * | 2014-08-22 | 2014-12-10 | 浙江生辉照明有限公司 | 基于dpm的快速目标检测方法 |
CN105225226A (zh) * | 2015-09-02 | 2016-01-06 | 电子科技大学 | 一种基于图像分割的级联可变形部件模型目标检测方法 |
CN106326891A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(天津)有限公司 | 移动终端及其目标检测方法及装置 |
CN106874873A (zh) * | 2017-02-16 | 2017-06-20 | 上海建炜信息技术有限公司 | 基于dpm的快速行人检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9042601B2 (en) * | 2013-03-14 | 2015-05-26 | Nec Laboratories America, Inc. | Selective max-pooling for object detection |
-
2017
- 2017-03-01 CN CN201710118342.7A patent/CN106920264B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200236A (zh) * | 2014-08-22 | 2014-12-10 | 浙江生辉照明有限公司 | 基于dpm的快速目标检测方法 |
CN106326891A (zh) * | 2015-06-30 | 2017-01-11 | 展讯通信(天津)有限公司 | 移动终端及其目标检测方法及装置 |
CN105225226A (zh) * | 2015-09-02 | 2016-01-06 | 电子科技大学 | 一种基于图像分割的级联可变形部件模型目标检测方法 |
CN106874873A (zh) * | 2017-02-16 | 2017-06-20 | 上海建炜信息技术有限公司 | 基于dpm的快速行人检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106920264A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110050267B (zh) | 用于数据管理的***和方法 | |
CN107609641B (zh) | 稀疏神经网络架构及其实现方法 | |
US10210419B2 (en) | Convolution operation apparatus | |
JP6771018B2 (ja) | 二次元配列プロセッサの性能向上 | |
CN110598558B (zh) | 人群密度估计方法、装置、电子设备及介质 | |
CN108154105B (zh) | 水下生物检测与识别方法、装置、服务器及终端设备 | |
Liu et al. | Fg-net: A fast and accurate framework for large-scale lidar point cloud understanding | |
Liu et al. | Real-time object tracking system on FPGAs | |
KR101991763B1 (ko) | 조밀 탐색 방법 및 화상 처리 장치 | |
CN106920264B (zh) | 一种基于可形变部件模型算法的目标检测硬件结构 | |
CN111079507B (zh) | 一种行为识别方法及装置、计算机装置及可读存储介质 | |
Bose et al. | A camera that CNNs: Towards embedded neural networks on pixel processor arrays | |
CN108875482B (zh) | 物体检测方法和装置、神经网络训练方法和装置 | |
CN111860398A (zh) | 遥感图像目标检测方法、***及终端设备 | |
Solovyev et al. | Fixed-point convolutional neural network for real-time video processing in FPGA | |
CN112085056B (zh) | 目标检测模型生成方法、装置、设备及存储介质 | |
JP2012511756A (ja) | 検出窓走査により画像内の物体を認識および位置特定するためのデータストリームパイプラインアーキテクチャを有する装置 | |
CN112541459A (zh) | 基于多尺度感知注意力网络的人群计数方法及*** | |
US20200090023A1 (en) | System and method for cascaded max pooling in neural networks | |
CN110837786A (zh) | 基于空间通道的密度图产生方法、装置、电子终端及介质 | |
CN113807361A (zh) | 神经网络、目标检测方法、神经网络训练方法及相关产品 | |
CN112115801A (zh) | 动态手势识别方法、装置、存储介质及终端设备 | |
Shi et al. | An FPGA-based hardware accelerator for traffic sign detection | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和*** | |
CN115935238A (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 |