当前位置:首页 期刊杂志

基于二元卷积神经网络的快速目标检测法

时间:2024-05-04

孙盛婷 贺盼博 马远浩

(中国联通(上海)产业互联网有限公司 上海市 200050)

1 引言

深度神经网络已经在语音识别,图像分类,目标检测,语义图像分割和机器翻译等领域取得了广泛的应用。然而基于Faster RCNN[1]和SSD[2]等目标检测方法是一件计算成本很高的任务,这些方法的网络参数多,计算量大,在便携式设备中部署是不可行的,因此使用轻量级和加速网络非常重要。

目前,轻量级网络可归纳为三类:

知识提炼方法:这些方法将深度网络中的知识提取为更小的网络,这些方法首先在文献[3]中引入,他们将这种方法与散列码相结合,进一步压缩神经网络,目前该方法已经广泛应用于各种领域。

张量分解压缩方法:该方法通过逼近低阶张量分解的权值来解决空间冗余问题。文献[4]在无梯度下降的情况下逼近多层非线性响应,并确定加速度和性能之间的折中。文献[5]给出了求解非凸问题时张量分解的数据无关解。

低比特宽度权重分配方法:低比特权量化可以节省更多的内存,但精度略有下降,在典型工程[6]中,算法将权值限制在定点量化上,此外Rastegar[7]等人在网络中使用了一位激活和权重,并取得了可观的性能。Lin[8]等人建议通过使用更多的权重参数来增强性能。Rastegari 等人建议使用二进制权重和激活进行图像分类。Wen[9]等人提出用低比特宽度权值加速神经网络的分段任务。Duan[10]等人引入多级量化的二值描述子进行图像匹配。Yan[11]等提出一种人脸亲缘关系验证的可分辨压缩二值人脸描述子。Duan[12]等人提出了一种用于人脸识别的上下文感知局部二值描述子。

本文提出了一种简单的低比特宽度权值分配方法来压缩检测网络;首先将模型权重裁剪到[-b,b],其中b 是层权重的最大值,且不超过1。在前向传递过程中,本文使用了M 位量化权值,它可以将卷积转换为加法和减法运算。在反向传播过程中,使用实值权重来更新参数。但是在低比特宽度权重不能包含较小梯度中的信息,并且忽略了参数的变化,降低了量化检测网络的性能。在本文实验中发现如果同时量化所有的权值,检测网络就很难收敛,性能也会降低很多了,所有本文使用贪婪的分层训练方法,实验结果显示具有较好的结果。

2 模型介绍

在本节中,本文将介绍如何使用低比特宽度权值量化算法,然后使用贪心层式算法来训练二进制侦测网络模型,以及在各个数据集上的结果与其它模型的对比。

2.1 权重量化

图1:基于VGG16 的Faster RCNN 两阶段贪婪分层方案的实例

本文将权重量化算法扩展到文献[13]形式上。在一个L 层的网络中,其中L 代表是网络中的层数的数量,在L(L=1,2,...,L)层中,用表示第L 层精度权重。nl和kl表示特征映射的个数和核大小。为了获得一个稳定的范围,本文首先将权重裁剪为[-b,b],其中b 是层权重中的最大绝对值,且不超过1,如果权值的绝对值大于1,则误差会累积,网络很难收敛。因此,它也会增加量化误差,降低性能。相关计算函数如下:

注意,步长(分辨率)将随着m 的增加以指数级的速率减小。量化权重集是本文将裁剪后的权重近似为这里 和Q 分别表示标度因子和量化权重张量,如果把重量张量展平,和Q 可以被重塑为一个相等的向量然后本文可以将量化优化问题模拟如下:

可以使用以下公式获得比例因子:

2.2 贪婪方法的引入

在文献[14]中,网络的所有权值在前进步骤中同时被训练。本文尝试采用同样的方法来训练BDNN,观察到它的性能会下降。当本文对整个网络进行二值化时,网络中的检测错误会累积,改良后的网络将只能以次优方式收敛。

相反,本文引入一种贪婪的逐层方法来训练BDNN。为了加快训练过程,稳定训练过程,对检测网络的权值进行了逐级二值化。本文对预先训练好的VGG16 模型进行微调,以完成检测任务。然后,本文量化底层的权值,使用二进制权值,并对网络进行微调,直到收敛。在下一阶段,本文冻结这些底层,继续量化下一层中的权重,除了卷积网络中的分类和定位层,贪婪的分层训练过程如图1所示。

2.3 改良后的BDNN训练

在本文的实验中,本文在Image Net 上对预先训练好的VGG16模型进行微调以进行检测。在前向传播过程中,本文将重量限制在范围[-b,b],使用二进制量化权重并获得标度因子α。在向后传播过程中,需要全精度的权重来计算通过ADAM[15]或随机梯度下降的小梯度,本文使用贪婪的分层方法对深层网络进行二值化,而不是同时对所有权重进行二值化。

2.4 离散化后向传播

Floor 函数不是连续的,大多数梯度都是零,通过层的量化权重使用反向传播是不可行的,文献[16]中给出了梯度法的一个直接快速估算方法:

2.5 改良损失函数

在本文的实验中,本文结合了分类和检测任务两大功能。多任务的损失函数如下:

其中x,y,w 和h 是边界框的中心坐标、宽度和高度。x,x*和是预测边界框、锚和地面真实性的相应变量。

3 实验结果

3.1 实验数据

本文在PASCAL VOC 2007 和2012 检测数据集上评估了本文的算法。PASCAL VOC 2007 包含了5000 个训练样本和验证图像,以及5000 个测试图像,涵盖了21 个类别。PASCAL VOC 2012 包含了10000 个测试图像,本文使用平均精度(mAP)来展示分割测试结果的性能,使用mxnet 来实现本文的算法。

3.2 两种二值化方法的比较

在第2.2 节中,本文探讨了两种用于BDNN 的二进制方法。在本文的实验中,本文使用Faster RCNN 和VGG16 作为基础模型。全卷积网络VGG16 是从原始分类网络[17]投射而来的。将原分类网络中的内积层fc6 和fc7 转化为卷积层。fc6 的卷积运算是在conv5-3 之后用步长为1 来实现×7 滤波器,fc7 的卷积运算是用步长1 转换成1×1 滤波器。

采用随机梯度下降(SGD)方法训练Faster RCNN,每个小批量包含两个随机图像。每个image 有64 个候选区域。如果具有地面真实度的IOU 大于0.5,则选择候选作为前景对象。

在PASCAL VOC 2007 数据集中,本文的BDNN 的结果与mAP 58.6%相当,比32 位网络低8.3%。在PASCAL VOC 2012 上,本文的BDNN 获得的mAP 为58.0%,比32 位网络低7.7%。贪婪分层方法在PASCAL VOC 2007 上实现了58.6%的映射,比整体量化方法提高了18.1%。验证了如果同时对整个网络的权值进行二值化。这些误差会逐层累积,难以收敛。分类和定位损失如图2所示。结果表明,贪婪分层方法的分类损失和定位损失都比整体量化方法小,收敛速度快。

3.3 Faster RCNN

Faster RCNN 生成候选区域和检测过程选择候选区域并同时检测对象。候选区域和检测网络共享bottom 层和底层特征。突破了区域方案生成需要大量计算的瓶颈。在实验中,本文还采用贪婪分层的方法对底层的权重进行二值化。对于候选区域,候选区域网络充当检测任务的注意力机制。共享层上的候选区域网络保持完全精确。对于检测网络,考虑到网络的输出是连续变量,不需要对位置层和分类层进行二值化。与Faster RCNN 相比,该算法在区域规划和检测方面的性能下降较小,并且具有二进制权值进行端到端的训练。

在本文的实验中,使用256 小批量。对于λ,本文将默认值设置为1 以平衡这两个损失。其他实现细节与[18]相同。结构如表2所示。与全精度相比,Faster RCNN 降低了7.3%的mAP。此外,与全精度Faster RCNN 相比,该方法在CPU 上可达到10 倍。

3.4 SSD

SSD 以Faster RCNN 删除候选对象。它以多尺度和每个要素地图的方面预测边界框。与具有竞争性能的区域定位方法相比,它是一个更快的检测网络。本文采用同样的方法对SSD 中的权重进行二值化。

在本文的实验中,除了第一层、分类层和定位层之外,本文对所有层的权重进行了二值化,二值化检测网络比全精度网络降低了8.8%的mAP。实验证明了该算法的有效性。此外,与全精度相比,本文的方法在SSD 上的速度可以达到9.86 倍。

表1:不同模型中的尺寸比较

表2:不同方法的结果比较

图2:在SSD 模型中应用结果

图3:在Faster RCNN 中的应用结果

3.5 压缩

与全精度检测网络相比,BDNN 可以节省大量的存储空间,同时具有可比的性能。如表1所示,本文的BDNN 显著地节省了内存。Tiny YOLO[19]是一个比普通YOLO 网络更小更快的网络。与Tiny YOLO 相比,本文的BDNN 有更好的效果和更小的尺寸。在PASCAL VOC 2007 测试中,本文的二值化SSD 比Tiny YOLO 的性能好6.1%。

3.6 与其他方法比较

本文将BDNN 与全精度网络进行了比较。有必要将本文的方法与其他二进制网络进行比较,以证明本文的方法有效性。这里本文用两种方法进行了另一种消融实验:BinaryNet[20]和XNORNet[21]。本文使用mxnet[22]来实现它们的方法并压缩SSD,结果如表2所示。

3.7 可视化结果

本文在PASCAL VOC 2007 数据集上运用BDNN 执行我们的结果。预测的边界框用分数标记。图2 显示SSD 的结果,图3 显示Faster RCNN 的结果。即使检测网络的权值是二值化的,BDNN 仍然可以检测不同尺度和类别的目标。可视化结果表明了BDNN 和贪婪分层训练方案的有效性。如表1 和表2所示。

4 结论

本文介绍了一种快速目标检测的二值化方法。经研究发现,如果同时对检测网络的所有权值进行二值化,则BDNN 的检测性能会大大降低,所以本文通过引入贪婪分层approach 算法进行训练,而且经过改良后的BDNN 可以节省大约95%的内存,使检测网络能够部署在便携设备上。实验结果表明,本文中的BDNN 方案可以有效的压缩深层神经网络,在接下来的工作中,可以扩展更好的权重量化方法来进一步提高性能。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!