CN113033661A - 一种基于嵌入式平台特点改进的目标检测方法 - Google Patents
一种基于嵌入式平台特点改进的目标检测方法 Download PDFInfo
- Publication number
- CN113033661A CN113033661A CN202110319663.XA CN202110319663A CN113033661A CN 113033661 A CN113033661 A CN 113033661A CN 202110319663 A CN202110319663 A CN 202110319663A CN 113033661 A CN113033661 A CN 113033661A
- Authority
- CN
- China
- Prior art keywords
- feature
- layer
- embedded platform
- target detection
- detection method
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 59
- 230000006872 improvement Effects 0.000 title claims description 6
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 238000010606 normalization Methods 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 22
- 230000000007 visual effect Effects 0.000 claims description 17
- 238000007667 floating Methods 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 9
- 230000002708 enhancing effect Effects 0.000 claims description 5
- 210000005036 nerve Anatomy 0.000 claims description 3
- 238000013139 quantization Methods 0.000 description 23
- 238000012549 training Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000001965 increasing effect Effects 0.000 description 5
- IXKSXJFAGXLQOQ-XISFHERQSA-N WHWLQLKPGQPMY Chemical compound C([C@@H](C(=O)N[C@@H](CC=1C2=CC=CC=C2NC=1)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(C)C)C(=O)N1CCC[C@H]1C(=O)NCC(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(O)=O)C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CC=1C=CC(O)=CC=1)C(O)=O)NC(=O)[C@@H](N)CC=1C2=CC=CC=C2NC=1)C1=CNC=N1 IXKSXJFAGXLQOQ-XISFHERQSA-N 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 3
- 101150041570 TOP1 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 235000004257 Cordia myxa Nutrition 0.000 description 1
- 244000157795 Cordia myxa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 102000030938 small GTPase Human genes 0.000 description 1
- 108060007624 small GTPase Proteins 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/042—Backward inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于嵌入式平台特点改进的目标检测方法,通过选择yolo作为整体结构构建目标检测模型,以CSPDarknet53作为骨干网络BackBone提取图像特征,利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组,在所述Neck层只选取P3,P4,P5进行计算,结合内存访问速度、内存带宽、DRAM速度的影响,提出更适合嵌入式平台轻量型模型,结合实际嵌入式平台的运算资源设计一个结构更简单,检测速度也更快的检测方法。
Description
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种基于嵌入式平台特点改进的目标检测方法。
背景技术
随着深度学习的发展,卷积神经网络不断与一些传统的算法相融合,并引入迁移学习方法,2006年,Hinton等人在《Science》上发文,要点是多隐层的人工神经网络特征学习能力优秀,学习到的特征更能反映数据的本质关联性:“逐层预训练”可有效克服深层神经网络在训练上的困难。2014年Girshick设计了R-CNN模型,该模型在PASCAL VOC上进行目标检测,相较于传统的目标检测方法,检测准确度评估指标平均准确率均值(mean AveragePrecision,mAP)提高约20%,达到了62.4%。目前已经出现了很多算法(或者训练技巧,tricks)来提升神经网络的准确率。
Yolo-V4的主要目的在于设计一个能够应用于实际工作环境中的快速目标检测系统,且能够被并行优化,并没有很刻意的去追求理论上的低计算量,所带来的数据量也是成指数级的增长,并且没有考虑到方法的复杂性和计算效率,以致需要依赖高功耗的计算平台,卷积神经网络参数量大,完成一次目标检测任务需要做大量的数据存取以及至少上亿次的迭代运算,在嵌入式平台的实时应用领域,存储空间和计算开销成为卷积神经网络发展的阻碍。
发明内容
本发明的目的在于提供一种基于嵌入式平台特点改进的目标检测方法,旨在结合实际嵌入式平台的的运算资源设计一个结构更简单,检测速度也更快的检测方法。
为实现上述目的,本发明采用的一种基于嵌入式平台特点改进的目标检测方法,包括下列步骤:
构建目标检测模型;
选择检测目标,输入所述目标检测模型,提取浅层视觉特征;
增强所述浅层视觉特征,获得特征组,优化计算;
量化权重,输出检测结果。
其中,所述目标检测模型包括由输入端,BackBone层,Neck层和Pridiction层,所述输入端,所述BackBone层,所述Neck层和所述Pridiction层依次连接设置。
其中,在选择检测目标,输入所述目标检测模型,提取浅层视觉特征的过程中,所述浅层视觉特征在所述BackBone层进行提取,所述BackBone层使用CSPDarknet53作为骨干网络。
其中,在增强所述浅层视觉特征,获得特征组,优化计算的过程中,使用了BatchGroup Normalization作为归一化方式,利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量。
其中,在利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量的过程中,包括下列步骤:
以特征组的形式划分特征图;
计算每个特征组的均值和方差统计;
用计算出的统计量归一化每个特征组;
重新缩放并重新移动归一化特征图,保持深度卷积神经的表示能力。
其中,所述Neck层使用PAnet,只选取P3,P4,P5进行计算。
其中,在量化权重,输出检测结果的过程中,权重和计算过程中的激活值从32位浮点型运算推理成8位整形数据。
本发明的一种基于嵌入式平台特点改进的目标检测方法,通过选择yolo作为整体结构构建目标检测模型,以CSPDarknet53作为骨干网络BackBone提取图像特征,利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组,在所述Neck层只选取P3,P4,P5进行计算,结合内存访问速度、内存带宽、DRAM速度的影响,提出更适合嵌入式平台轻量型模型,结合实际嵌入式平台的的运算资源设计一个结构更简单,检测速度也更快的检测方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种基于嵌入式平台特点改进的目标检测方法的流程示意图。
图2是本发明的目标检测模型的结构示意图。
图3是本发明Batch Group Normalization与其它归化方式的训练时准确率比较图。
图4是本发明的FPGA实现正则化流程图。
图5是密集模块(Dense Block)的特征图。
图6是DenseNet的结构示意图。
图7是CSPNet的密集模块的输入特征图。
图8是DenseNet和CSPNet的结构示意图。
图9是本发明的CSPDarknet53的网络结构图。
图10是本发明的各层结构细化示意图。
图11是PAnet的结构示意图。
图12是本发明的PAnet轻量型模型简化图。
图13是本发明的32bit-8bit量化推理范围比较图。
图14是本发明的32bit-8bit带乘累加防溢出条件中浮动因子a的量化值范围图。
图15是本发明的32bit-8bit量化溢出量计算步骤图。
图16是本发明的32bit-8bit带乘累加防溢出量化训练示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
请参阅图1至图14,本发明提出了一种基于嵌入式平台特点改进的目标检测方法,包括下列步骤:
S1:构建目标检测模型;
S2:选择检测目标,输入所述目标检测模型,提取浅层视觉特征;
S3:增强所述浅层视觉特征,获得特征组,优化计算;
S4:量化权重,输出检测结果。
所述目标检测模型包括由输入端,BackBone层,Neck层和Pridiction层,所述输入端,所述BackBone层,所述Neck层和所述Pridiction层依次连接设置。
在选择检测目标,输入所述目标检测模型,提取浅层视觉特征的过程中,所述浅层视觉特征在所述BackBone层进行提取,所述BackBone层使用CSPDarknet53作为骨干网络。
在增强所述浅层视觉特征,获得特征组,优化计算的过程中,使用了Batch GroupNormalization作为归一化方式,利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量。
在利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量的过程中,包括下列步骤:
以特征组的形式划分特征图;
计算每个特征组的均值和方差统计;
用计算出的统计量归一化每个特征组;
重新缩放并重新移动归一化特征图,保持深度卷积神经的表示能力。
所述Neck层使用PAnet,只选取P3,P4,P5进行计算。
在量化权重,输出检测结果的过程中,权重和计算过程中的激活值从32位浮点型运算推理成8位整形数据。
请参阅图2,所述输入端负责数据的输入,包括整个图像,一个patch,或者是imagepyramid,所述BackBone层为提取图像特征的部分,所述Neck层为特征增强模块,对所述BackBone层提取到的浅层视觉特征进行加工增强,从而使得模型学到需要的特征。所述Pridiction层用于输出想要的结果。
深度卷积神经结构需要占用的大量的资源和时间去进行训练,归一化是一种很有效的方式,先前大多数归一化方式,BN表现出很很好的性能在大中目标的视觉检测任务中,但是在小目标的检测上性能下降了许多。同时FCOS系列在检测头上使用了Batch GroupNormalization(BGN)作为归一化方式,在超大Batch下BN会出现饱和(比如,Batch为128),并提出在小/超大Batch下BN的退化/饱和是由噪声/混淆的统计计算引起的。因此,在不增加新训练参数和引入额外计算的情况下,通过引入通道、高度和宽度维度来补偿,解决了BGN在小/超大Batch下BN的噪声/混淆统计计算问题。利用GN中的组方法和超参数G来控制统计计算所使用的特征实例的数量,从而对不同批量提供既无噪声也不混淆的统计量。实验结果证明BGN优于BN、IN、LN、GN以及PN,参阅图3,在图像分类、神经结构搜索(NAS),对抗的学习,小样本学习以及无监督学习领域适应(UDA)都有很好的性能、鲁棒性。例如,在ImageNet上训练设置Batch=2进行训练ResNet-50,BN的Top1准确率为66.512%,BGN的Top1准确率为76.096%,精度有显著的提高。
在具有在具有L层的DCNN中,输入特征图Γι,ι∈[1,L],通常有四个参数(N,C,H,W),其中N,C,H,W分别是批次,通道,高度和宽度尺寸,为了简化,n∈[1,N],c∈[1,C],h∈[1,H],w∈[1,W],相应的批次,通道,高度和宽度索引,在以下用法中将不再重复定义。第(l+1)层的特征图计算公式为:
Γι+1=ψ(θ(Γι,ωι,bι),γι,βl) (1)
ωι,bι是卷积层中可训练的权重和偏差参数,γι,βl是归一化层中可训练的重新缩放和重新移位参数,Ψ(·)是激活函数,θ(·)是归一化函数,ψ(·)是卷积函数。
在归一化层包括以下4个步骤
1.以特征组的形式划分特征图
2.计算每个特征组的均值和方差统计
3.用计算出的统计量归一化每个特征组
然后特征图标准化为:
ε为保持分割稳定性而添加的常数。同时为了保持深度卷积神经表示能力,为每个特征通道添加了额外的可训练参数:
但是,在ImageNet实验中,小批量处理时,BN性能急剧下降,即>10%为了解决这一不足,GN将分组渠道维度纳入了统计计算。
g∈[1,G],G是一个超参数-组编号,M=C/G是层分区。GN对于不同批次大小都具有良好的稳定性但是,在中等和较大的批次大小下,性能略低于BN,实验表明,BN在大批处理量下会饱和如图3,通用性也不是很好。我认为小批量/特大型批量中BN的降解/饱和是由嘈杂/混淆的统计计算引起的。在小批量训练中也存在类似的指示,在这种情况下,单次/全批训练通常比小批量训练更糟糕,因为会计算出嘈杂/混淆的梯度。因此提出BGN这种归一化方式,其中用于统计算的特征实例的数量使用GN的中的分组技术去控制。先将通道,高度和宽度尺寸合并为一个新的尺寸并实现Γ1 N×D,D=C×H×W.沿批次和新维度去计算均值μg和方差可以推理出以下公式:
G是新维被划分的组数,它是一个超参数,S=M/G是每个划分的特征组内的实例数。当批量较小时,小G用于合并将整个新维度纳入统计计算以避免统计信息混乱,而在批量较大时,使用较大的G将新维度拆分为小块以进行统计计算,以免混淆统计信息。其中均值μc和方差是取训练阶段的移动移动平均值,具体计算过程参考以上公式。
受此启发,归一化统计计算中的特征实例数量也应该适中,由于统计计算的噪声/混乱造成的BN在小批/超大批上的性能下降/饱和的情况使用BGN中的Group技术来提升Batch Size在BN在小/极端大的性能。这里BGN将通道、高度和宽度三个维度合并为一个新维度,将新维度划分为特征组,计算整个小批和特征组的统计量。
把算法中每个卷积层都链接一个BGN层,BGN层对提取到的特征进行正则化。图像的正则化需要FPGA求出图像的均值mean、图像的方差var,然后带入正则化公式:
FPGA处理图像数据是以像素点为单位,求解均值mean,方差var时需要用到图像缓存模块,在这个过程中,需要对均值结果延时一帧图像输出,对得到的特征图像进行连续缓存两帧输出,FPGA实现正则化流程如图4所示。
进一步可选的,在所述BackBone层和所述Neck层的技术手段,主要由以下两部分组成,在所述BackBone层为CSPDarknet53,在所述Neck层为SPP+PAN。
为了提升准确度,可通过提高网络深度来扩展感受野和增大模型复杂度。同时,为了降低训练难度,还可应用跳过连接。还可以进一步延伸这一概念,即使用高度互连的层。密集模块(Dense Block)包含多个卷积层,其中每一层H_i都由批组归一化、ReLU与之后的卷积构成。H_i的输入不仅包含前一层的输出,还包含之前所有层的输出以及原始输入,即x_0,x_1,…,x_{i-1}。参阅图5中每个H_i都输出4个特征图。因此,在每一层,特征图的数量都增加4倍增长率。
然后,通过组合多个密集模块与其间的过渡层(由卷积和池化构成),可以构建出DenseNet,结构具体请参阅图6。
交叉阶段部分连接后,CSPNet将密集模块的输入特征图分为了两部分。第一部分x_0’会绕过密集模块,成为下个过渡层的输入的一部分。第二部分x_0”则会通过密集模块,如图7所示。
通过将输入分为两部分而降低了计算复杂度——此时仅有一部分输入会经过密集模块,参阅图8,可以比较出DenseNet和CSPNet的部分差异。
检测器MAP指标的提升,都会考虑选择一个图像特征提取能力较强的BackBone,,且不能太大,以免影响检测的速度。综合以上的分析,最终选由CSPDarknet53作为骨干网络BackBone,图9为CSPDarknet53的网络结构图。
而在嵌入式平台上计算资源和存储空间有限,在Neck部分的设计应尽量精简,选用PAnet,加强特征提取网络,对应图像上的SPP和PANet,预测网络yoloHead,利用获取的特征进行预测,请参阅图10,利用主干特征提取网络获得的三个有效特征用PAnet进行加强特征金字塔的构建,同时PAnet用Fully-connectedFusion,对原有的的分割支路引入了一个前景二分类的全连接支路,通过这两条之路的输出得到更加精确的结果。如图11所示,FPN是自顶向下,将高层的语义特征传递下来,每个proposal根据其大小分配不同的层,其中P3-P5的proposal聚合了多层的信息,对分类及定位的影响程度最大也更有利,同时在嵌入式平台上计算资源和存储空间有限,在Neck部分的设计应尽量精简,故舍去对整个预测精度影响不大的部分,只保留P3,P4,P5,如图11。注意N3和P5表示同一个特征图。但N3,N4,N5和P3,P4,P5不一样,实际上N3,N4,N5是P3,P4,P5融合后的结果。获得的N3,N4,N5特征层左ROI Align操作,这样就提取到3个不同的特征图,然后将3个不同的特征融合到一起去预测出最终的特征,后续的回归和再分类都是基于此进行。
从P5至P2是从上向下(Top-down),从N2至N5是(Bottom-up),同时把backbone与FPN合并称为FPN backbone。而在实际写代码中,从上向下和从下向上这两条路径合并称为FAN。因为使用嵌入式平台,轻量型模型可以简化为图12,PAN简单理解就是FPN多了一条Bottom-up path augmentation,FPN是从上向下,PAN包含了从上向下和从下向上的路径。
进一步可选的,量化权重时,卷积神经网络算法在CPU和GPU上是基于32位浮点型运算时,这对嵌入式在浮点型数据存储和计算方面造成很大压力。一般Zynq可用于卷积神经网络加速的PL端只有5.6MB的存储空间和220个DSP单元,每个DSP单元一个时钟周期内只能完成一次18×25位数据的乘加运算,若采用32位浮点型数据运算,一次乘加运算需要2个DSP单元。若想在Zynq上运用YOLO卷积神经网络,最好把权重和计算过程中的激活值量化为8位整型数据,减少数据传输次数,降低了数据传输的延迟。
32bit-8bit量化推理
针对量化算法的评估主要取决于两个方面——计算/存储效率以及准确率损失。这二者间存在一定的制约关系:量化位数低时,同等操作数量下消耗的计算/存储资源少,相对效率高,但网络的数值多样性降低,表达能力下降,导致准确率损失高;量化位数高时则反之,准确率损失小但计算效率低。需要通过实验的方法在可接受的准确率损失下选取低位量化结果。其实把原来的float32bit的卷积操作(乘加指令)转换为int8的卷积操作,这样计算就变为原来的1/4,但是访存并没有变少。
请参阅图13,把layer的激活值范围的给圈出来,然后按照绝对值最大值作为阀值。因当正负分布不均匀的时候,是有一部分是空缺的,也就是一部分值域被浪费了,假如全是正的,没有负值,就需要把这个范围直接按比例给映射到正负128的范围内来,可描述如下:
FP32 Tensor(T)=scale_factor(sf)*16-bit Tensor(t)+FP32_bias FP32Tensor
32bit-8bit量化推理方案的设计
当数据分布很不均匀的时候,如图左边比右边多,把原始信息在影射之前就截断一部分,然后构成对称且分布良好的截断信息,再把这个信息映射到int16上去,就不会有动态范围资源被浪费。分析量化前后两个分布的差异程度,找出转换为求相对熵的最小值。
当然对不同的量化位数进行测试之前,还需要优先考虑量化算法本身的计算与存储效率。量化后的权重取值公式:
式中r0的分母和分子都为基数,量化后的分母是固定系数,才可融入批量标准化系数参数中一并进行乘法。这其中也带来资源的浪费,因为控制权重的离散的分子数值不适合直接存储为定点数。另外r0取值范围在[-1,1],要表示数值1的话还需要定点数除k位小数外还需要1位的整数位。所以我们需要量化间距,避免上下限取值为1,同时为了取值范围的对称,去掉了其对称值-1,同时对神经网络的自归一化,提出了Selu激活函数来满足目标。需要注意的一点是,Swish和Mish都是连续可微激活函数,同时其余卷积层使用ReLU激活函数,特征值为负数,为了减少准确率损失的精度在最后一层不进行量化,量化获取得到的特征值进而可以用无符号定点数去表示,把最终对特征值的量化采用截断方式,截断方式的推理公式如下:
上述公式的推理情况要把取值为1的情况去掉以减少整数位的占用。整个量化方案用32位浮点型定点算法进行训练获取权重,按层将卷积神经网络权重参数从32位浮点型量化为8位整型。模型的的训练过程主要包括两大训练过程:一、在前向推理的过程中把权重和激活函数量化为8位的整形数据并计算Loss函数,二、在反向推理的过程中使用浮点型数据去计算权重参数的导数。
但是这也引出一个问题,用32位累加器替换8位累加器会同时导致四倍的乘法加法运算。为了解决这个问题在TF-Lite的非对称量化训练算法,提出乘累加防抑制条件:本质上是为了保证整数的乘累积结果不能溢出INT16范围,同时引入可调整的alpha因子,提出了整数量化范围的自适应调整机制和在S上应用比例调整因子:
量化值缩小到
同时引入了一个浮动因子a来调整实际范围与量化范围之间的仿射关系,例如,增大a来缩小量化值范围,如图14所示。
接着在量化训练期间,通过对比INT32乘累加结果,判断INT16计算是否溢出;并统计溢出数量No,进而自适应的调整alpha因子;之后将Quant节点插入计算图的每一层,以计算算术溢出量。
如果图15中No大于0,则适当增加alpha因子,以压缩整数量化范围,降低INT16溢出风险,此时量化分辨率下降:
α+=min(lri*log(N0),lc)
如果N0等于0,说明INT16无溢出,则适当减小alpha因子,确保量化分辨率:
α-=lrd
32位浮点型书到8位整型带乘累加防溢出量化训练方案的示意图如图16所示。
本发明将深度学习目标检测方法从硬件平台计算资源、存储资源和带宽三个限制因素,采用一定的算法优化技术完成FPGA+双核ARM硬件加速器的设计与实现,同时BGN被提出,通过Group技术来提升Batch Size在BN在小/极端大的性能。这里BGN将通道、高度和宽度三个维度合并为一个新维度,将新维度划分为特征组,计算整个小批和特征组的统计量。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (7)
1.一种基于嵌入式平台特点改进的目标检测方法,其特征在于,包括下列步骤:
构建目标检测模型;
选择检测目标,输入所述目标检测模型,提取浅层视觉特征;
增强所述浅层视觉特征,获得特征组,优化计算;
量化权重,输出检测结果。
2.如权利要求1所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,所述目标检测模型包括由输入端,BackBone层,Neck层和Pridiction层,所述输入端,所述BackBone层,所述Neck层和所述Pridiction层依次连接设置。
3.如权利要求2所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,在选择检测目标,输入所述目标检测模型,提取浅层视觉特征的过程中,所述浅层视觉特征在所述BackBone层进行提取,所述BackBone层使用CSPDarknet53作为骨干网络。
4.如权利要求3所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,在增强所述浅层视觉特征,获得特征组,优化计算的过程中,使用了Batch Group Normalization作为归一化方式,利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量。
5.如权利要求4所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,在利用所述Batch Group Normalization将新维度划分为特征组,计算整个小批和特征组的统计量的过程中,包括下列步骤:
以特征组的形式划分特征图;
计算每个特征组的均值和方差统计;
用计算出的统计量归一化每个特征组;
重新缩放并重新移动归一化特征图,保持深度卷积神经的表示能力。
6.如权利要求5所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,所述Neck层使用PAnet,只选取P3,P4,P5进行计算。
7.如权利要求5所述的基于嵌入式平台特点改进的目标检测方法,其特征在于,在量化权重,输出检测结果的过程中,权重和计算过程中的激活值从32位浮点型运算推理成8位整形数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319663.XA CN113033661A (zh) | 2021-03-25 | 2021-03-25 | 一种基于嵌入式平台特点改进的目标检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319663.XA CN113033661A (zh) | 2021-03-25 | 2021-03-25 | 一种基于嵌入式平台特点改进的目标检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113033661A true CN113033661A (zh) | 2021-06-25 |
Family
ID=76473766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110319663.XA Pending CN113033661A (zh) | 2021-03-25 | 2021-03-25 | 一种基于嵌入式平台特点改进的目标检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113033661A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690545A (zh) * | 2021-12-03 | 2023-02-03 | 北京百度网讯科技有限公司 | 训练目标跟踪模型和目标跟踪的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709522A (zh) * | 2020-05-21 | 2020-09-25 | 哈尔滨工业大学 | 一种基于服务器-嵌入式协同的深度学习目标检测系统 |
CN112232411A (zh) * | 2020-10-15 | 2021-01-15 | 浙江凌图科技有限公司 | HarDNet-Lite在嵌入式平台的优化方法 |
-
2021
- 2021-03-25 CN CN202110319663.XA patent/CN113033661A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709522A (zh) * | 2020-05-21 | 2020-09-25 | 哈尔滨工业大学 | 一种基于服务器-嵌入式协同的深度学习目标检测系统 |
CN112232411A (zh) * | 2020-10-15 | 2021-01-15 | 浙江凌图科技有限公司 | HarDNet-Lite在嵌入式平台的优化方法 |
Non-Patent Citations (2)
Title |
---|
ALEXEY BOCHKOVSKIY等: "YOLOv4: Optimal Speed and Accuracy of Object Detection", 《网页在线公开:HTTPS://ARXIV.ORG/ABS/2004.10934V1》 * |
XIAO-YUN ZHOU等: "Batch Group Normalization", 《网页在线公开:HTTPS://ARXIV.ORG/ABS/2012.02782V2》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690545A (zh) * | 2021-12-03 | 2023-02-03 | 北京百度网讯科技有限公司 | 训练目标跟踪模型和目标跟踪的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
US11580719B2 (en) | Dynamic quantization for deep neural network inference system and method | |
CN107451659B (zh) | 用于位宽分区的神经网络加速器及其实现方法 | |
CN110533022B (zh) | 一种目标检测方法、系统、装置及存储介质 | |
CN111459877A (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN110880038A (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
CN110969251A (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN105488563A (zh) | 面向深度学习的稀疏自适应神经网络、算法及实现装置 | |
CN113361695B (zh) | 卷积神经网络加速器 | |
CN111696149A (zh) | 针对基于cnn的立体匹配算法的量化方法 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN113283587A (zh) | 一种Winograd卷积运算加速方法及加速模块 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN113660113A (zh) | 面向分布式机器学习的自适应稀疏参数模型设计与量化传输方法 | |
CN113792621A (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN111091183B (zh) | 一种神经网络加速系统和方法 | |
CN114418089A (zh) | 模型压缩方法、系统、部署方法、设备及存储介质 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN113033661A (zh) | 一种基于嵌入式平台特点改进的目标检测方法 | |
CN114239799A (zh) | 一种高效目标检测方法、设备、介质和系统 | |
CN114462591A (zh) | 一种动态量化神经网络的推理方法 | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
WO2022247368A1 (en) | Methods, systems, and mediafor low-bit neural networks using bit shift operations | |
KR102657904B1 (ko) | 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 | |
Chin et al. | A high-performance adaptive quantization approach for edge CNN applications |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210625 |