一种基于定点数量化的目标检测方法技术

技术编号:34820853 阅读:12 留言:0更新日期:2022-09-03 20:31
一种基于定点数量化的目标检测方法,由于目标检测模型权重和激活值的取值范围较小,适合定点数量化,相比于传统整型数量化,可以增加量化精度。另外,本专利对不同层的权重和激活值,采用了不同的小数位位数,具体小数位位数是由权重或激活值数据分布计算得到。第三,本专利通过最小化均方误差优化得到每层的激活值量化因子。通过上述方法,可以提高模型量化的精度和速度,提高模型量化效果。另外,为了降低模型功耗,将目标检测推理模型运行在MCU开发板,利用开发板的DSP计算定点数。利用开发板的DSP计算定点数。利用开发板的DSP计算定点数。

【技术实现步骤摘要】
一种基于定点数量化的目标检测方法


[0001]本专利技术涉及目标检测
,具体涉及一种基于定点数量化的目标检测方法。

技术介绍

[0002]近年来,神经网络模型被广泛应用在许多领域,并取得了非常好的效果,尤其是在目标检测领域。但是,目标检测神经网络模型由于模型复杂度高、模型大,导致推理时效率较低,推理时间较长,尤其是运行在性能较低的移动设备以及低功耗设备。因此,如何设计低资源消耗的,可以实时预测的、同时保证预测精度的模型成为一个现实问题。在类似于MCU的低功耗设备上,需要低资源消耗的模型,另外,很多MCU不支持浮点数运算,限制了模型的应用。模型量化在应对这些问题取得了较好的效果,将模型从浮点类型量化成定点类型可以有效降低模型大小,同时提高模型推理速度,增加支持的嵌入式设备类型。

技术实现思路

[0003]本专利技术为了克服以上技术的不足,提供了一种降低模型功耗的基于定点数量化的目标检测方法。
[0004]本专利技术克服其技术问题所采用的技术方案是:
[0005]一种基于定点数量化的目标检测方法,包括如下步骤:
[0006]a)获取训练数据,使用训练数据训练目标检测模型;
[0007]b)通过公式计算得到预估模型权重的小数位长度FL
w
,式中round(
·
)为round函数,σ
w
为模型权重的标准差;
[0008]c)通过公式计算得到经过Relu激活函数的预估激活值的小数位长度FL
a
通过公式计算得到不经过Relu激活函数的预估激活值的小数位长度FL
a
,σ
a
为激活值的标准差;
[0009]d)通过公式计算得到权重量化因子s
w
,式中r
w
为模型权重绝对值的最大值,通过公式q
w
=round(s
w
*clip(w,

r
w
,r
w
))计算得到模型权重w量化后的值q
w
,式中clip(
·
)为clip函数;
[0010]e)通过公式或公式计算得到激活值量化因子s
a
,r
a
为激活值的剪裁值,通过公式a^=round(clip(a,

r
a
,r
a
)*s
a
)/s
a
计算得到量化并逆量化后的值a^,式中a为激活值,通过公式计算得到均方误差值MSE,n为模型该层中激活值元素的个数,a
i
为第i个激活值a中的元素,i={1,2,...,n},为第i个量化并逆量化后的值a^的元素;
[0011]f)激活值a中的最大值为a
max
,r
a
的约束取值空间为a
max
*0.9≤r
a
≤a
max
,通过线性搜索得到最优的裁剪值r
a
_best,将r
a
_best替代步骤e)中的r
a
,计算得到最优的激活值量化因子s
a
_best;
[0012]g)按照Conv2d层加Batchnorm层加Relu层对目标检测模型进行分层,通过公式计算得到模型第l层激活值量化后的结果式中为模型第l层激活值量化因子,为模型第l

1层激活值量化因子,为模型第l

1层权重量化因子,为模型第l

1层的权重x量化后的值,为模型l

1层模型权重w量化后的值,b
l
‑1为第l

1层偏置,完成模型后处理,模型最后一层的输出激活值为其余中间层的输出量化后激活值用于后面层的计算;
[0013]h)通过阈值筛选出候选框,通过非极大值抑制删除重复框,得到目标检测结果;i)将目标检测模型部署到MCU设备,在MCU设备中运行目标检测模型;j)将摄像头抓取的图像数据预处理后出入到MCU设备中的目标检测模型,将目标检测结果通过后串口及HDMI输出到外围设备
[0014]优选的,步骤a)中目标检测模型为MobileNetV1

SSD模型。
[0015]进一步的,步骤g)中目标检测模型第一次量化后激活值为图像输入,其取值范围为[0.255][0016]本专利技术的有益效果是:由于目标检测模型权重和激活值的取值范围较小,适合定点数量化,相比于传统整型数量化,可以增加量化精度。另外,本专利对不同层的权重和激活值,采用了不同的小数位位数,具体小数位位数是由权重或激活值数据分布计算得到。第三,本专利通过最小化均方误差优化得到每层的激活值量化因子。通过上述方法,可以提高模型量化的精度和速度,提高模型量化效果。另外,为了降低模型功耗,将目标检测推理模型运行在MCU开发板,利用开发板的DSP计算定点数。
附图说明
[0017]图1为本专利技术的方法流程图。
具体实施方式
[0018]下面结合附图1对本专利技术做进一步说明。
[0019]本专利技术用于将计算密集的目标检测模型运行到低功耗嵌入式设备上。采用基于RISC

V架构的边缘端深度学习设备,以Xilinx的MCU开发板为硬件平台,以平头哥wujian100开源IP为MCU核心,板载串口、HDMI接口和OV5640摄像头,可通过摄像头实现实时图像数据的抓取,通过MCU上运行目标检测推理模型,将检测结果通过后串口及HDMI输出到外围设备。
[0020]具体的,一种基于定点数量化的目标检测方法,包括如下步骤:
[0021]a)获取训练数据,使用训练数据训练目标检测模型。
[0022]b)通过公式计算得到预估模型权重的小数位长度FL
w
,式中round(
·
)为round函数,σ
w
为每层模型权重的标准差。
[0023]c)通过公式计算得到经过Relu激活函数的预估激活值的小数位长度FL
a
,通过公式计算得到不经过Relu激活函数的预估激活值的小数位长度FL
a
,σ
a
为激活值的标准差。
[0024]d)通过公式计算得到权重量化因子s
w
,式中r
w
为模型权重绝对值的最大值,通过公式q
w
=round(s
w
*clip(w,

r
w
,r
w
))计算得到模型权重w量化后的值q
w
,式中clip(
·
)为clip函数。
[0025]e)通过最小化均方误差计算得到各层激活值的裁剪值r
a
以及激活值量化因子s<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于定点数量化的目标检测方法,其特征在于,包括如下步骤:a)获取训练数据,使用训练数据训练目标检测模型;b)通过公式计算得到预估模型权重的小数位长度FL
w
,式中round(
·
)为round函数,σ
w
为模型权重的标准差;c)通过公式计算得到经过Relu激活函数的预估激活值的小数位长度FL
a
,通过公式计算得到不经过Relu激活函数的预估激活值的小数位长度FL
a
,σ
a
为激活值的标准差;d)通过公式计算得到权重量化因子s
w
,式中r
w
为模型权重绝对值的最大值,通过公式q
w
=round(s
w
*clip(w,

r
w
,r
w
))计算得到模型权重w量化后的值q
w
,式中clip(
·
)为clip函数;e)通过公式或公式计算得到激活值量化因子s
a
,r
a
为激活值的剪裁值,通过公式a^=round(clip(a,

r
a
,r
a
)*s
a
)/s
a
计算得到量化并逆量化后的值a^,式中a为激活值,通过公式计算得到均方误差值MSE,n为模型该层中激活值元素的个数,a
i
为第i个激活值a中的元素,i={1,2,...,n},为第i个量化并逆量化后的值a^的元素;f)激活值a中的最大...

【专利技术属性】
技术研发人员:陈其宾李锐张晖
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1