文章目录
- 题目:REQ-YOLO: A Resource-Aware, Efficient Quantization Framework for Object Detection on FPGAs
- 时间:2019
- 会议:FPGA
- 研究机构:美国东北大学/北大
- GitHub:https://github.com/Anonymous788/YOLO_BlockCir
1 缩写 & 引用
- ADMM: alternating direction method of multiplier
- IOU: intersection over union
2 abstract & introduction
开始先总结,最重要的两点就是网络模型压缩和高效的硬件实现。
之前有人用BNN来进行量化计算,过于激进了,会导致精度下降比较大,很多DSP没有能充分利用起来。所以他这里提出一个resource aware的系统权重量化的框架
本篇论文的主要贡献:
- 引入块循环矩阵,可以节省存储空间;计算通过FFT和IFFT来降低复杂度
- 提出了一种异构的权重量化方法,包括了equal-distance和mixed powers-of-two方法
- 基于HLS的资源空间探索
目标检测主要有两种方法:region proposal based和proposal free方法
YOLO是proposal free的方法,好处是不需要对每个区域再做一次分类操作,可以有更快的速度,缺点是:
- 和Fast RCNN相比有比较多的localization error
- 和proposal-based方法相比recall比较低
为了解决这些问题,于是又提出了YOLOv2
PASCAL2007数据集的输入尺寸是416x416,一共化成SxS的小照片,每个小照片预测B个框框和置信概率。
3 REQ-YOLO框架
3.1 异构权重量化方法
两种量化方法:
- equal-distance量化:
- power-of-two量化:
其中power-of-two可以通过移位来操作,这就不需要DSP了
3.2 ADMM来实现权重量化
因为循环矩阵是用FFT来实现的,可以直接存储权重的FFT结果,但是FFT结果量化多少位宽呢?这里把它转化成两个优化子问题,第一个优化问题可以用随机梯度下降,第二个优化问题可以用ADMM
4 硬件实现
权重可以全部存在片上BRAM,因为:
- 循环矩阵存第一行就够了
- 量化可以降低位宽
思想就是equal-distance量化需要用DSP,power-of-two量化只用LUT不用DSP,那全用power-of-two量化的话精度会下降太多,DSP资源也浪费了,不如说二者混着用,尽量把资源都用满。
4.1 PE设计
权重不需要做FFT,权重直接存FFT的结果就好了,需要权重decoder来对两种不同的模式解码
4.2 设计优化
- FFT过程利用对称性可以节省一些操作
- 数据位宽减少之后,同一个DSP48E1可以同时计算6个8bit以下的数据的计算