CN107273099A - 一种基于FPGA的AdaBoost算法加速器及控制方法 - Google Patents
一种基于FPGA的AdaBoost算法加速器及控制方法 Download PDFInfo
- Publication number
- CN107273099A CN107273099A CN201710324485.3A CN201710324485A CN107273099A CN 107273099 A CN107273099 A CN 107273099A CN 201710324485 A CN201710324485 A CN 201710324485A CN 107273099 A CN107273099 A CN 107273099A
- Authority
- CN
- China
- Prior art keywords
- parameter
- fpga
- module
- ram
- control unit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000006243 chemical reaction Methods 0.000 claims abstract description 11
- 238000009825 accumulation Methods 0.000 claims abstract description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 206010016256 fatigue Diseases 0.000 claims 1
- 238000000465 moulding Methods 0.000 claims 1
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于FPGA的AdaBoost算法加速器及控制方法,基于FPGA的AdaBoost算法加速器包括FPGA和微控制单元,FPGA包括分别与微控制单元相连接的参数RAM和图像RAM、与参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在图像RAM数据中的位置的地址产生模块、与图像RAM相连接且用于累加计算的多个运算累加模块、与微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。在足够资源的情况下,可以例化多个不同的运算累加模块以加快运算的速度。
Description
技术领域
本发明涉及FPGA和AdaBoost算法领域,尤其涉及一种基于FPGA的AdaBoost算法加速器及控制方法。
背景技术
FPGA(Field Programmable Gate Array,可编辑逻辑门阵列)广泛的应用于各种电子和控制领域,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。
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (8)
1.一种基于FPGA的AdaBoost算法加速器,其特征在于:包括FPGA和微控制单元,所述的FPGA包括分别与所述微控制单元相连接的参数RAM和图像RAM、与所述参数RAM相连接且用于转换参数使被简化的参数转换为完整的参数特征的参数转换模块、与所述参数转换模块相连接和图像RAM分别相连接且用于计算所需要的值在所述图像RAM数据中的位置的地址产生模块、与所述图像RAM相连接且用于累加计算的多个运算累加模块、与所述微控制单元和多个运算累加模块分别相连接且用于整个加速器的循环控制和最后计算的输出的循环控制模块。
2.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的循环控制模块包括控制整个加速器循环过程的状态机。
3.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的参数转换模块和地址产生模块分别具有定制的逻辑电路。
4.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的运算累加模块为仅受到一根信号线控制的乘加计算模块。
5.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的循环控制单元通过AXI总线与微控制单元相连接。
6.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的微控制单元为MCU或ARM。
7.根据权利要求1所述的基于FPGA的AdaBoost算法加速器,其特征在于:所述的参数RAM和图像RAM均为32位宽度的存储阵列。
8.一种利用权利要求1所述的基于FPGA的AdaBoost算法加速器的控制方法,其特征在于:包括以下步骤:
步骤1:图像由所述微控制单元存入所述图像RAM;
步骤2:参数由所述微控制单元存入所述参数RAM;所述的步骤2与步骤1同时进行;
步骤3:参数经由所述特征转换模块和所述地址产生模块,生成对应于图像的特征索引值;
步骤4:图像RAM输出图像值进入所述运算累加模块;
步骤5:所述运算累加模块计算出结果,输送至所述循环控制模块;
步骤6:所述循环控制模块经过判断和状态机的控制,将数据输出给所述微控制单元;循环步骤1至步骤6。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710324485.3A CN107273099A (zh) | 2017-05-10 | 2017-05-10 | 一种基于FPGA的AdaBoost算法加速器及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710324485.3A CN107273099A (zh) | 2017-05-10 | 2017-05-10 | 一种基于FPGA的AdaBoost算法加速器及控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273099A true CN107273099A (zh) | 2017-10-20 |
Family
ID=60073890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710324485.3A Pending CN107273099A (zh) | 2017-05-10 | 2017-05-10 | 一种基于FPGA的AdaBoost算法加速器及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273099A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928693A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种计算设备及资源分配方法 |
CN112418248A (zh) * | 2020-11-19 | 2021-02-26 | 江苏禹空间科技有限公司 | 基于fpga加速器的目标检测方法及系统 |
US11706076B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Computer system with computing devices, communication device, task processing device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103247019A (zh) * | 2013-04-17 | 2013-08-14 | 清华大学 | 用于物体检测的基于AdaBoost算法的可重构装置 |
CN103390152A (zh) * | 2013-07-02 | 2013-11-13 | 华南理工大学 | 基于sopc的适合人机交互的视线跟踪系统 |
CN104572011A (zh) * | 2014-12-22 | 2015-04-29 | 上海交通大学 | 基于fpga的通用矩阵定点乘法器及其计算方法 |
-
2017
- 2017-05-10 CN CN201710324485.3A patent/CN107273099A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103247019A (zh) * | 2013-04-17 | 2013-08-14 | 清华大学 | 用于物体检测的基于AdaBoost算法的可重构装置 |
CN103390152A (zh) * | 2013-07-02 | 2013-11-13 | 华南理工大学 | 基于sopc的适合人机交互的视线跟踪系统 |
CN104572011A (zh) * | 2014-12-22 | 2015-04-29 | 上海交通大学 | 基于fpga的通用矩阵定点乘法器及其计算方法 |
Non-Patent Citations (1)
Title |
---|
XU Z, SHI R, SUN Z, ET AL.: "《2016 IEEE 18th International Conference on High Performance Computing and Communications (HPCC/SmartCity/DSS)》", 26 January 2017 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928693A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种计算设备及资源分配方法 |
CN110928693B (zh) * | 2020-01-23 | 2021-01-15 | 飞诺门阵(北京)科技有限公司 | 一种计算设备及资源分配方法 |
US11706076B2 (en) | 2020-01-23 | 2023-07-18 | Novnet Computing System Tech Co., Ltd. | Computer system with computing devices, communication device, task processing device |
CN112418248A (zh) * | 2020-11-19 | 2021-02-26 | 江苏禹空间科技有限公司 | 基于fpga加速器的目标检测方法及系统 |
CN112418248B (zh) * | 2020-11-19 | 2024-02-09 | 无锡禹空间智能科技有限公司 | 基于fpga加速器的目标检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180164866A1 (en) | Low-power architecture for sparse neural network | |
CN108416327B (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
Moini et al. | A resource-limited hardware accelerator for convolutional neural networks in embedded vision applications | |
US10379816B2 (en) | Data accumulation apparatus and method, and digital signal processing device | |
Pestana et al. | A full featured configurable accelerator for object detection with YOLO | |
CN107273099A (zh) | 一种基于FPGA的AdaBoost算法加速器及控制方法 | |
CN104899182A (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN108122027A (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
CN104915322A (zh) | 一种卷积神经网络硬件加速方法及其axi总线ip核 | |
CN110163357A (zh) | 一种计算装置及方法 | |
EP4145345A1 (en) | Data annotation method and device, and fine granularity identification method and device | |
JP2020027616A (ja) | コマンド実行方法及び装置 | |
Bai et al. | Pointnet on fpga for real-time lidar point cloud processing | |
CN112528108B (zh) | 一种模型训练系统、模型训练中梯度聚合的方法及装置 | |
Zhang et al. | Discrete time convolution for fast event-based stereo | |
CN114676522B (zh) | 融合gan和迁移学习的气动形状优化设计方法及系统及设备 | |
Huang et al. | Mobile phone component object detection algorithm based on improved SSD | |
CN109919826B (zh) | 一种用于图计算加速器的图数据压缩方法及图计算加速器 | |
CN113111201B (zh) | 一种数字孪生模型轻量化方法和系统 | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和系统 | |
CN109685208A (zh) | 一种用于神经网络处理器数据稀梳化加速的方法及装置 | |
CN108764182A (zh) | 一种优化的用于人工智能的加速方法和装置 | |
CN116012657A (zh) | 一种基于神经网络的3d点云数据处理方法及加速器 | |
CN109472735B (zh) | 实现织物疵点检测神经网络的加速器、方法和加速系统 | |
CN105425662A (zh) | 基于fpga的集散控制系统中的主处理器及其控制方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |
|
RJ01 | Rejection of invention patent application after publication |