CN110910434A - 基于fpga高能效实现深度学习视差估计算法的方法 - Google Patents

基于fpga高能效实现深度学习视差估计算法的方法 Download PDF

Info

Publication number
CN110910434A
CN110910434A CN201911069381.8A CN201911069381A CN110910434A CN 110910434 A CN110910434 A CN 110910434A CN 201911069381 A CN201911069381 A CN 201911069381A CN 110910434 A CN110910434 A CN 110910434A
Authority
CN
China
Prior art keywords
data
calculation
convolution
feature
fpga
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
Application number
CN201911069381.8A
Other languages
English (en)
Other versions
CN110910434B (zh
Inventor
齐志
侯国睿
邢佳斌
董纪莹
蔡家璇
史旭龙
刘昊
时龙兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201911069381.8A priority Critical patent/CN110910434B/zh
Publication of CN110910434A publication Critical patent/CN110910434A/zh
Application granted granted Critical
Publication of CN110910434B publication Critical patent/CN110910434B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于FPGA高能效实现深度学习视差估计的方法,包括以下步骤:从FPGA片上内存上读取当前卷积计算子单元所需的、以低位宽数据格式存储的权值数据,并对该权值数据进行数据还原,降低访存代价;S200:对上一个卷积计算子单元输出的特征数据和经过数据还原的权值数据依次进行跳零卷积计算、池化计算和通道混洗计算,输出下一个卷积计算子单元所需的特征图,跳零卷积以及通道混洗进一步减少计算以及访存能耗开销;S300:循环执行S100和S200,直至最后一个卷积计算单元完成计算,输出特征图;S400:对S300输出的特征图中的特征数据进行反卷积计算得到深度信息。

Description

基于FPGA高能效实现深度学习视差估计算法的方法
技术领域
本发明公开一种基于FPGA快速实现深度学习视差估计算法的方法及加速器,属于计算机视觉硬件加速技术领域。
背景技术
深度估计算法是指计算图像中指定区域或指定特征的空间深度信息,传统计算机视觉通过双目匹配算法进行求解,通过进行特征提取和特征匹配,求解图像中指定像素位置的深度信息,随着深度学习的发展,基于深度学习的图像深度估计算法成为可以替代的方案。
需要一种新的FPGA技术方案来填补如何基于深度学习的算法进行高效快速的推理,求解出图像中更为全面的深度信息的空缺。
发明内容
本发明的目:针对目前需求深度信息的应用场景,如三维重建、SLAM等,提供了一种基于FPGA快速实现深度学习视差估计算法的方法及加速器,高效精准的解决视差估计。
技术方案:一种基于FPGA高效能实现深度学习视差估计算法的方法,包括以下步骤:
S100:从FPGA片上内存上读取当前卷积计算子单元所需的、以低位宽数据格式存储的权值数据,并对该权值数据进行数据还原;
S200:对上一个卷积计算子单元输出的特征数据和经过数据还原的权值数据依次进行跳零卷积计算、池化计算和通道混洗计算,输出下一个卷积计算子单元所需的特征图;
S300:循环执行S100和S200,直至最后一个卷积计算单元完成计算,输出特征图;
S400:对S300输出的特征图中的特征数据进行反卷积计算,反卷积过程中可继续使用S100对权值数据进行低位宽量化、存储、以及数据还原,继续使用S200进行跳零卷积,最终得到深度信息;
其中:所述跳零卷积计算减少计算量以及能耗开销,包括以下步骤:
S210:采用稠密向量的方式保存特征图中的特征数据;
S211:以卷积核为单位,逐个判断卷积核对应的特征图中的特征数据是否为零,若不为零,则保留该特征数据和其对应的权值数据,非零数据索引加1,否则,跳过该特征数据;
S212:FPGA的状态控制根据非零数据索引,仅对非零特征数据进行向量点乘。
进一步的,在执行S100之前还包括以下步骤:
S000:将同一隐藏层的权值数据根据最大最小值进行归一化;
S010:将归一化后的权值数据转换为8位或4位定点的低位宽数据格式的权值数据;
在所述S100中对权值数据进行数据还原的步骤包括:
根据保留的低位宽数据格式的权值数据和同一隐藏层的权值最大最小值,采用反归一化操作进行权值数据还原。
进一步的,所述S200中的通道混洗计算包括以下步骤:包括通道内卷积计算和通道间混洗计算;
所述通道内卷积计算由逐点群卷积组成,每个卷积核仅与一层输入通道进行卷积计算,比常规卷积减少计算量;
所述通道间混洗计算将通道内卷积结果直接存入依据混洗规律安排的混洗后内存地址,不必通过传统先转置再重塑的混洗方法,实现跨通道信息组合,并进一步节省存储开销,降低能耗,该通道间混洗计算包括以下步骤:
S220:采用二维数据表示通道内卷积计算输出的特征图,数据宽度为单一通道特征图中的特征数据数目,数据高度为通道数目;
S221:基于混洗计算规律,由地址控制计算通道内卷积输出的特征图中的每一位特征数据的混洗后内存地址;
S222:将经过通道内卷积计算后的特征数据置入S221得到的内存地址中,完成混洗计算。
进一步的,所述S221得到混洗后的内存地址的步骤包括:为每一行首个特征数据生成连续的初始地址;逐行将输出特征图中连续的特征数据从对应行初始地址开始生成以通道数目为间隔的混洗后内存地址,直至最后一行的最后一个特征数据生成混洗后内存地址,结束。
本发明还公开了一种快速实现深度学习视差估计算法的加速器,包括
数据缓存区,用于存储计算图像深度信息所需的权值数据,该权值数据采用低位宽数据格式进行存储;
N个卷积计算子单元,用于对上一个卷积计算子单元输出的特征数据和经过数据还原的权值数据依次进行跳零卷积计算、池化计算和通道混洗计算,输出下一个卷积计算子单元计算所需的特征数据;
反卷积区,用于对最后一个卷积计算子单元输出的特征数据进行反卷积计算,输出深度信息。
有益效果:本发明具有以下优点:
1、本发明采用了基于深度学习的视差估计算法模型提高深度计算的鲁棒性;
2、本发明对网络权值实施低位宽量化,减少权值读取开销;
3、本发明在FPGA的状态控制中利用特征值的稀疏性实现跳零卷积计算,以减少计算量;并通过地址控制优化通道混洗模块中的通道混洗计算,进一步减少FPGA计算与访存代价。
4、本发明的针对深度学习图像视差估计算法的FPGA加速器,可克服图像特征稀少的场景、原始深度学习模型内存空间占用大等困难状况,保证深度学习图像视差估计高精度的同时也能获得FPGA加速器较好的能效。
附图说明
图1为本发明的示意图;
图2为状态控制稀疏特征值的跳零计算;
图3传统卷积计算(上)与混洗模块的卷积计算(下);
图4混洗模块中的卷积计算;
图5深度学习视差估计算法案例。
具体实施方式
现结合附图和实施例进一步阐述本发明的技术方案。
本发明的基本思想:在深度学习视差估计算法的推理阶段,为减少计算量,对训练后的模型权值实施低位宽权值量化,减少权值读取开销;使用通道混洗的卷积计算,减小计算量同时恢复量化之后损失的精度;FPGA的状态控制中利用特征值的稀疏性实现跳零,以减少计算量;通过地址控制优化通道混洗模块中的卷积计算和通道混洗计算,进一步减少FPGA计算与访存代价。
通常基于深度学习视差估计算法得到的模型权值数据为float型,占用的位宽达到32位。本发明对该权值数据进行量化,采用8位/4位定点的方式保留低位宽权值数据,实现内存优化并减少权值读取开销。具体实现步骤如下:
将深度学习视差估计算法模型中同一隐藏层的权值数据根据最大最小值进行归一化,得到归一化后的权值数据,归一化后的数据范围为[0,1];
将归一化后的权值数据转换为8位/4位定点的低位宽数据格式的权值数据,在数据存储上实现内存优化;
在推理阶段,根据保留的低位宽权值数据,以及同一隐藏层的最大最小值,通过反归一化操作还原权值数据参与推理计算。
基于深度学习视差估计算法在激活层后特征值出现大量为零的情况,在FPGA综合设计实现过程中,本发明利用特征值的稀疏性实现跳零,去掉传统卷积中的冗余计算,节省内存以及功耗开销,具体实现步骤如下:
采用稠密向量的方式保存上一层卷积产生的特征数据,其中,以卷积核为单位,从此特征向量提取并保留非零数据以及非零数据对应的卷积核权值数据,同时记录该卷积核对应的非零特征向量个数,记为非零数据索引。提取过程:如图1所示,在提取每一个卷积核对应特征图数据时,非零数据索引初始化为0,并逐个判断特征图中特征数据是否为0,如果不为0,则保留特征数据以及对应的权值数据,同时非零数据索引加1,反之,如果特征数据为零则跳过。
在FPGA的状态控制中根据非零数据索引判断,只计算非零数据的向量点乘,从而实现卷积计算过程的跳零操作。
在FPGA综合设计实现过程中,优化设计通道混洗模块中的卷积计算。在通道混洗模块中,卷积计算由逐点群卷积组成,如图3(下)所示,每一个卷积核只和一个输入通道进行卷积计算操作,因此与传统卷积相比,将卷积计算量减少为原来的1/T,其中T=M/K,M为输入通道数,K为卷积核通道数。本发明利用逐点群卷积的性质,对卷积计算中的输入数据和权值数据进行分块计算。
在FPGA的实现过程中,完成在通道混洗模块的卷积计算后,输出特征图各通道只与一个输入通道有关,如图3(下)所示,需要通过通道之间的混洗计算来实现输出特征图的跨通道信息组合,提高模型效果。
本发明优化设计通道混洗模块中输出特征图的通道混洗计算,当采用原数据存储方式在执行通道混洗计算时,会有不连续的DRAM数据访存,产生额外的时间和带宽开销。本发明为克服通道混洗计算中数据的额外的时间和带宽开销,根据混洗计算规律计算数据地址,将上一层的输出特征图数据按照混洗后的数据地址存储,保证数据存储的连续性,实现访存优化。具体实现方法为:
利用混洗计算规律,即混洗计算中矩阵转置和矩阵重塑后数地址据唯一性的性质,如图4所示,用二维数据表示通道内卷积计算输出的特征图,数据宽度为单一通道特征图中的特征数据数目,数据高度为通道数目,当固定卷积核尺寸、输入通道数、输出通道数等信息时,基于混洗计算规律,由地址控制计算通道卷积输出的特征图中的每一位特征数据的混洗后内存地址。具体计算方式为:不失一般性,通道内卷积计算输出的特征图是二维数据,数据宽度为单一通道特征图中的特征数目,数据高度为通道数目C,为每一行首个特征数据生成连续的初始地址;逐行将输出特征图中连续的特征数据从对应行初始地址开始生成以通道数目为间隔的混洗后内存地址,直至最后一行的最后一个特征数据生成混洗后内存地址,结束。具体伪代码如下:
Figure BDA0002260464780000041
Figure BDA0002260464780000051
其中,H,W为混洗模块中通道内卷积计算后的输出特征图的长宽,C为混洗模块中通道内卷积计算后的输出特征图的通道数目,addr为数据原始输出地址,init_addr为输出特征图每一个通道的首位数据的地址,Addr为输出特征图每一位数据的先验内存地址。如图4所示,未优化前计算操作的数据访存是不连续的,优化后计算操作的数据访存是连续的。
在卷积计算后,根据地址控制的方法将特征图中特征数据置入先验内存地址,即相当于直接完成了对卷积计算后的特征图结果的混洗计算操作。
在FPGA中实现必要的卷积计算、池化计算、通道混洗计算、反卷积计算等操作,完成高效的地址控制、状态控制以及权值量化,最终实现高能效、低访存代价的深度学习视差估计算法的FPGA加速器。
实施例:
如图5所示,基于实现视差估计的深度学习算法包括卷积计算、池化计算、通道混洗计算、反卷积计算等操作,通过模型训练后可以得到有效的权值参数,在FPGA上实现模型推理的过程中,可以应用本发明提到的优化方法,实现高能效、低访存代价的算法硬件方案。

Claims (6)

1.一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:包括以下步骤:
S100:从FPGA片上内存上读取当前卷积计算子单元所需的、以低位宽数据格式存储的权值数据,并对该权值数据进行数据还原;
S200:对上一个卷积计算子单元输出的特征数据和经过数据还原的权值数据依次进行跳零卷积计算、池化计算和通道混洗计算,输出下一个卷积计算子单元所需的特征图;
S300:循环执行S100和S200,直至最后一个卷积计算单元完成计算,输出特征图;
S400:对S300输出的特征图中的特征数据进行反卷积计算,反卷积过程中可继续使用S100对权值数据进行低位宽量化、存储、以及数据还原,继续使用S200进行跳零卷积,最终得到深度信息。
2.根据权利要求1所述的一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:所述跳零卷积计算包括以下步骤:
S210:采用稠密向量的方式保存上一个卷积计算子单元输出的特征数据;
S211:以卷积核为单位,逐个判断卷积核对应的特征图中的特征数据是否为零,若不为零,则保留该特征数据和其对应的权值数据,非零数据索引加1,否则,跳过该特征数据;
S212:FPGA的状态控制根据非零数据索引,仅对非零特征数据进行向量点乘。
3.根据权利要求1所述的一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:在执行S100之前还包括以下步骤:
S000:将同一隐藏层的权值数据根据最大最小值进行归一化;
S010:将归一化后的权值数据转换为8位或4位定点的低位宽数据格式的权值数据;
在所述S100中对权值数据进行数据还原的步骤包括:
根据保留的低位宽数据格式的权值数据和同一隐藏层的权值最大最小值,采用反归一化操作进行权值数据还原。
4.根据权利要求1所述的一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:所述S200中的通道混洗计算包括以下步骤:通道内卷积计算和通道间混洗计算;
所述通道内卷积计算由逐点群卷积组成,每个卷积核仅与一层输入通道进行卷积计算;
所述通道间混洗计算包括以下步骤:
S220:采用二维数据表示通道内卷积计算输出的特征图,数据宽度为单一通道特征图中的特征数据数目,数据高度为通道数目;
S221:基于混洗计算规律,由地址控制计算通道内卷积输出的特征图中的每一位特征数据的混洗后内存地址;
S222:将经过通道内卷积计算后的特征数据置入S221得到的内存地址中,完成混洗计算。
5.根据权利要求4所述的一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:所述S221得到混洗后的内存地址的步骤包括:为每一行首个特征数据生成连续的初始地址;逐行将输出特征图中连续的特征数据从对应行初始地址开始生成以通道数目为间隔的混洗后内存地址,直至最后一行的最后一个特征数据生成混洗后内存地址,结束。
6.采用权利要求1至5任意一项所述的一种基于FPGA高能效实现深度学习视差估计算法的方法,其特征在于:包括
数据缓存区,用于存储计算图像深度信息所需的权值数据,该权值数据采用低位宽数据格式进行存储;
N个卷积计算子单元,用于对上一个卷积计算子单元输出的特征数据和经过数据还原的权值数据依次进行跳零卷积计算、池化计算和通道混洗计算,输出下一个卷积计算子单元计算所需的特征数据;
反卷积区,用于对最后一个卷积计算子单元输出的特征数据进行反卷积计算,输出深度信息。
CN201911069381.8A 2019-11-05 2019-11-05 基于fpga高能效实现深度学习视差估计算法的方法 Active CN110910434B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911069381.8A CN110910434B (zh) 2019-11-05 2019-11-05 基于fpga高能效实现深度学习视差估计算法的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911069381.8A CN110910434B (zh) 2019-11-05 2019-11-05 基于fpga高能效实现深度学习视差估计算法的方法

Publications (2)

Publication Number Publication Date
CN110910434A true CN110910434A (zh) 2020-03-24
CN110910434B CN110910434B (zh) 2023-05-12

Family

ID=69814776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911069381.8A Active CN110910434B (zh) 2019-11-05 2019-11-05 基于fpga高能效实现深度学习视差估计算法的方法

Country Status (1)

Country Link
CN (1) CN110910434B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111445019A (zh) * 2020-04-30 2020-07-24 南京大学 一种分组卷积中通道混洗操作的实现装置及方法
CN112153347A (zh) * 2020-09-27 2020-12-29 北京天地玛珂电液控制系统有限公司 煤矿井下智能视觉感知终端、感知方法、存储介质及电子设备
CN112418248A (zh) * 2020-11-19 2021-02-26 江苏禹空间科技有限公司 基于fpga加速器的目标检测方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN109299722A (zh) * 2018-08-16 2019-02-01 北京旷视科技有限公司 用于神经网络的特征图处理方法、装置和系统及存储介质
CN109598338A (zh) * 2018-12-07 2019-04-09 东南大学 一种基于fpga的计算优化的卷积神经网络加速器
CN110245748A (zh) * 2018-03-09 2019-09-17 北京深鉴智能科技有限公司 卷积神经网络实现方法、装置、硬件加速器、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN110245748A (zh) * 2018-03-09 2019-09-17 北京深鉴智能科技有限公司 卷积神经网络实现方法、装置、硬件加速器、存储介质
CN109299722A (zh) * 2018-08-16 2019-02-01 北京旷视科技有限公司 用于神经网络的特征图处理方法、装置和系统及存储介质
CN109598338A (zh) * 2018-12-07 2019-04-09 东南大学 一种基于fpga的计算优化的卷积神经网络加速器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111445019A (zh) * 2020-04-30 2020-07-24 南京大学 一种分组卷积中通道混洗操作的实现装置及方法
CN111445019B (zh) * 2020-04-30 2023-04-18 南京大学 一种分组卷积中通道混洗操作的实现装置及方法
CN112153347A (zh) * 2020-09-27 2020-12-29 北京天地玛珂电液控制系统有限公司 煤矿井下智能视觉感知终端、感知方法、存储介质及电子设备
CN115550607A (zh) * 2020-09-27 2022-12-30 北京天玛智控科技股份有限公司 基于fpga实现的模型推理加速器及智能视觉感知终端
CN112418248A (zh) * 2020-11-19 2021-02-26 江苏禹空间科技有限公司 基于fpga加速器的目标检测方法及系统
CN112418248B (zh) * 2020-11-19 2024-02-09 无锡禹空间智能科技有限公司 基于fpga加速器的目标检测方法及系统

Also Published As

Publication number Publication date
CN110910434B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN109241972B (zh) 基于深度学习的图像语义分割方法
CN110910434A (zh) 基于fpga高能效实现深度学习视差估计算法的方法
CN112396645B (zh) 一种基于卷积残差学习的单目图像深度估计方法和系统
US20180218518A1 (en) Data compaction and memory bandwidth reduction for sparse neural networks
CN111915660B (zh) 基于共享特征和注意力上采样的双目视差匹配方法及系统
CN110780923B (zh) 应用于二值化卷积神经网络的硬件加速器及其数据处理方法
WO2020074989A1 (en) Data representation for dynamic precision in neural network cores
CN107395211B (zh) 一种基于卷积神经网络模型的数据处理方法及装置
CN109447897B (zh) 一种真实场景图像合成方法及系统
CN110807513A (zh) 一种基于Winograd稀疏算法的卷积神经网络加速器
US11481994B2 (en) Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium
CN113066089B (zh) 一种基于注意力引导机制的实时图像语义分割方法
CN115345866B (zh) 一种遥感影像中建筑物提取方法、电子设备及存储介质
CN116612288B (zh) 一种多尺度轻量级实时语义分割方法、系统
CN113344869A (zh) 一种基于候选视差的行车环境实时立体匹配方法及装置
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN114821058A (zh) 一种图像语义分割方法、装置、电子设备及存储介质
CN113313171A (zh) 基于fpga实现图像识别的方法、装置、设备及存储介质
CN108154522B (zh) 目标追踪系统
CN113705803A (zh) 基于卷积神经网络的图像硬件识别系统及部署方法
CN110782396B (zh) 一种轻量化的图像超分辨率重建网络和重建方法
CN111882028A (zh) 用于卷积神经网络的卷积运算装置
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN112561050A (zh) 一种神经网络模型训练方法及装置
CN113379667B (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