当前位置: 首页 > 专利查询>苏州大学专利>正文

一种基于FPGA的AdaBoost算法加速器及控制方法技术

技术编号:16427541 阅读:64 留言:0更新日期:2017-10-21 21:55
本发明专利技术公开了一种基于FPGA的AdaBoost算法加速器及控制方法,基于FPGA的AdaBoost算法加速器包括FPGA和微控制单元,FPGA包括分别与微控制单元相连接的参数RAM和图像RAM、与参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在图像RAM数据中的位置的地址产生模块、与图像RAM相连接且用于累加计算的多个运算累加模块、与微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。在足够资源的情况下,可以例化多个不同的运算累加模块以加快运算的速度。

An accelerator and control method of AdaBoost algorithm based on FPGA

The invention discloses a FPGA accelerator and control method based on AdaBoost algorithm, AdaBoost algorithm including FPGA FPGA accelerator and micro control unit based on FPGA, including the micro control unit is connected respectively with the parameters of RAM and RAM, and RAM image parameters connected for converting parameters for simplified parameter conversion complete the parameter feature parameters and parameter conversion module, conversion module is connected with the image of the RAM are respectively connected and used to calculate the required value in the image of RAM data in the location address generation module, and image RAM is connected and used to calculate the cumulative multiple operation and accumulation module, micro control unit and a plurality of operation accumulation module connected and used for the entire accelerator cycle control and finally calculate the output of the loop control module. In the case of sufficient resources, a number of different arithmetic accumulation modules can be instantiated to speed up the operation.

【技术实现步骤摘要】
一种基于FPGA的AdaBoost算法加速器及控制方法
本专利技术涉及FPGA和AdaBoost算法领域,尤其涉及一种基于FPGA的AdaBoost算法加速器及控制方法。
技术介绍
FPGA(FieldProgrammableGateArray,可编辑逻辑门阵列)广泛的应用于各种电子和控制领域,FPGA的主要功能就是灵活的实现高速计算和控制。Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。为了实现AdaBoost算法加速的功能,使用FPGA来实现。使用FPGA进行并行计算和加速是当下较为常见的解决方案。然而现有技术中,AdaBoost算法在中央处理器(CPU)和其他处理器上实现速度较慢,目前为止还没有很好的解决方法。
技术实现思路
为了解决上述的技术问题,本专利技术的目的在于提出一种基于FPGA的AdaBoost算法加速器及控制方法,能够实现计算的并行化,极大地加快运算速度。为了达到上述目的,本专利技术提供了一种技术方案:一种基于FPGA的AdaBoost算法加速器,包括FPGA和微控制单元,FPGA包括分别与微控制单元相连接的参数RAM和图像RAM、与参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在图像RAM数据中的位置的地址产生模块、与图像RAM相连接且用于累加计算的多个运算累加模块、与微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。进一步地,循环控制模块包括控制整个加速器循环过程的状态机。进一步地,参数转换模块和地址产生模块分别具有定制的逻辑电路。进一步地,运算累加模块为仅受到一根信号线控制的乘加计算模块。进一步地,循环控制单元通过AXI总线与微控制单元相连接。进一步地,微控制单元为MCU或ARM。进一步地,参数RAM和图像RAM均为32位宽度的存储阵列。本专利技术还提供了另一种技术方案:一种利用上述的基于FPGA的AdaBoost算法加速器的控制方法,包括以下步骤:步骤1:图像由微控制单元存入图像RAM;步骤2:参数由微控制单元存入参数RAM;步骤2与步骤1同时进行;步骤3:参数经由特征转换模块和地址产生模块,生成对应于图像的特征索引值;步骤4:图像RAM输出图像值进入运算累加模块;步骤5:运算累加模块计算出结果,输送至循环控制模块;步骤6:循环控制模块经过判断和状态机的控制,将数据输出给微控制单元;循环步骤1至步骤6。通过采用上述技术方案,本专利技术所提出的基于FPGA的AdaBoost算法加速器及控制方法,例化了多个运算累加模块同时进行计算,然后计算出的结果会由循环控制模块进行最后的输出;会根据外部修改RAM中的参数来实现不同的识别目标;FPGA外部的微控制单元可以利用AXI总线修改参数RAM中的值,以应用于不同的AdaBoost识别场景;整个加速器例化有多个运算累加模块用于实现计算的并行化,在足够资源的情况下,可以例化多个不同的运算累加模块以加快运算的速度。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1为本专利技术基于FPGA的AdaBoost算法加速器的结构示意图;图2为本专利技术利用本专利技术基于FPGA的AdaBoost算法加速器的控制方法的步骤流程图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。参照附图1,本实施例中的一种基于FPGA的AdaBoost算法加速器,一种基于FPGA的AdaBoost算法加速器,包括FPGA和微控制单元。FPGA包括分别与微控制单元相连接的参数RAM和图像RAM、与参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在图像RAM数据中的位置的地址产生模块、与图像RAM相连接且用于累加计算的多个运算累加模块、与微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。参数RAM和图像RAM均为多端口的RAM,在一种更为优选的实施方案中,参数RAM和图像RAM均为32位宽度的存储阵列。缓存RAM是用来存储待测窗口的缓存数据的,因为在数据输出进行计算的同时,需要从外部输入数据,这时候就要有另外数列用于缓存下一个计算周期的新数据。同理,也会多出一行数据进行下一个周期的缓存。这样可以保证在计算的同时,RAM也同时在输入数据,这样可以使得加速器流水线工作,提高效率。循环控制模块是这个加速器的主要控制单元,它包括控制整个加速器循环过程的状态机。循环控制模块与ARM通过AXI-Lite总线连接,用来接收代码里配置的参数,例如强分类器的数量和弱分类器的数量,还有图像的大小尺度。同时,特征索引的值也会被传输到参数RAM中,这样特征参数就会被提取。循环控制模块也会给加速器中不同的模块分发参数和控制信号,所以循环控制模块是整个加速器的核心单元。特征转换模块用于转换参数使参数变成完整的参数特征。由于后面的运算累加模块需要的是完整的特征数据,所以使用特征转换模块将被简化过的特征转换为完整的特征。地址产生模块则是用来计算所需要的值在缓存的数据中的位置。根据地址产生模块生成的地址,运算累加模块会从存储图像数据的图像RAM中获得相应的数据,所获得的图像数据和对应的分类器参数将会被送进运算累加模块进行计算。参数转换模块和地址产生模块分别具有定制的逻辑电路以使各自的功能得以实现。运算累加模块用于输入图像数值的计算和与阈值进行比较的计算。具体地,是用来进行探测窗的累加计算,并且用于累加每一个分类器的值,这个值与参数中的阈值进行比较最后会来进行结果的判断。优选地,运算累加模块为仅受到一根信号线控制的乘加计算模块,用于输入数据的计算和累加。微控制单元为MCU或ARM。参照附图2,本实施例还提供了一种利用上述的基于FPGA的AdaBoost算法加速器的控制方法,包括以下步骤:步骤1:图像由微控制单元存入图像RAM;步骤2:参数由微控制单元存入参数RAM;步骤2与步骤1同时进行;步骤3:参数经由特征转换模块和地址产生模块,生成对应于图像的特征索引值;步骤4:图像RAM输出图像值进入运算累加模块;步骤5:运算累加模块计算出结果,输送至循环控制模块;步骤6:循环控制模块经过判断和状态机的控制,将数据输出给微控制单元;循环步骤1至步骤6。以上所述仅是本专利技术的优选实施方式,并不用于限制本专利技术,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本专利技术的保护范围。本文档来自技高网
...
一种基于FPGA的AdaBoost算法加速器及控制方法

【技术保护点】
一种基于FPGA的AdaBoost算法加速器,其特征在于:包括FPGA和微控制单元,所述的FPGA包括分别与所述微控制单元相连接的参数RAM和图像RAM、与所述参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与所述参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在所述图像RAM数据中的位置的地址产生模块、与所述图像RAM相连接且用于累加计算的多个运算累加模块、与所述微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。

【技术特征摘要】
1.一种基于FPGA的AdaBoost算法加速器,其特征在于:包括FPGA和微控制单元,所述的FPGA包括分别与所述微控制单元相连接的参数RAM和图像RAM、与所述参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与所述参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在所述图像RAM数据中的位置的地址产生模块、与所述图像RAM相连接且用于累加计算的多个运算累加模块、与所述微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。2.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的循环控制模块包括控制整个加速器循环过程的状态机。3.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的参数转换模块和地址产生模块分别具有定制的逻辑电路。4.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的运算累加模块为仅受到一根信号线控制的乘加...

【专利技术属性】
技术研发人员:吴晨健徐政
申请(专利权)人:苏州大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1