时间:2024-05-04
胡正委, 朱 明
(中国科学技术大学 信息科学技术学院, 合肥 230031)
对象检测方法, 从图像分类和定位扩展而来. 近年来受到许多研究者的关注, 如人脸识别, 车辆检测等。对象检测是针对图像中包含多个物体时, 对其进行识别和定位. 而图像分类和定位针对图像中仅包含单个物体的情况. 在深度学习广泛应用之前, 对象检测效果最好的方法是可变形组件模型[1]. 而近年来最成功的方法主要包括:两级方法和单级方法. 其中单级方法有YOLO[2]和SSD[3]. 两级方法包括基于区域的快速卷积神经网络(Faster RCNN)[4]和其扩展方法. 其中类似Faster RCNN 的两级方法具有较高的准确率.
通过迁移学习, 卷积神经网络可以被应用在很多领域. 可以理解为, 通过某一任务学习到的知识可以被迁移到另外一个任务[5]. 迁移学习不仅节约了数据训练的时间, 也能有效防止深度学习网络的过拟合. 本文使用Mask RCNN[6]网络来进行商品检测. 在ImageNet数据集训练的全卷积网络(FCN), 被用来解决分割问题[7].在ImageNet上训练的VGG[8]模型被用来进行人脸识别. 所有这些方法, 都需要在新的数据上重新调整模型.但是, 在实际场景中, 数据的标定是非常难的工作, 需要消耗很大的财力物力和人力[9]. 对于物体检测任务的迁移学习方法, 研究者需要进行边框标定来训练边框回归任务.
本文提出的方法,可以不需要边框标定来进行物体的检测. 我们基于Faster RCNN框架提出一种不需边框的标定的分类任务训练方法. 并通过在分类任务和边框回归任务之间添加关系层, 来学习二者之间的关联, 并在COCO[10]数据集上进行关系层的训练. 在商品数据集的分类任务训练完成之后, 可以通过训练完成的关系层直接推断边框回归, 并无需进行边框回归的训练. 除此之外, 我们构建了一个商品数据集, 并且解决了可旋转商品的检测问题.
Faster RCNN是一个两级物体检测方法, 包括区域候选网络(RPN)和头网络(Network Head), 如图1所示. 其中区域候选网络为头网络生成区域候选集和特征. 分类层和回归层是特征提取之后的两个并行的分支. 通常利用Faster RCNN进行物体检测的迁移学习,至少需要对分类层的全连接层(FC layer)和回归层的全连接层进行在训练. 如果需要, 前面的卷积层也要训练. 但是, 在实际应用中对物体边框的标定需要很大的工作量. 本文提出一种方法, 可以学习分类层与回归层之间关系, 从而根据分类层可以直接推导出回归层, 而且不需要边框标定数据的训练.
我们在公开的COCO数据集上进行预训练工作,其中包含80种常见物体类别. 并具有2 500 000个标签示例和328 000张图像. 我们还在本地数据集进行了验证, 具体描述在第3章实验部分.
和传统的机器学习一样, 训练数据和测试数据应该服从相同的分布. 若将关联层从COCO数据集迁移到本地商品数据集上,就需要COCO数据的分类层参数和商品数据的分类层参数满足相同分布. 即分类层应该在COCO数据集和本地商品数据集联合训练.
图1 Faster RCNN 框架
Faster RCNN的分类层是根据真实的边框选择的ROI(兴趣候选)区域来训练的. 训练得到的RPN网络用来判断一个候选区域是物体还是背景, 是一个二分类模块.
通过利用COCO数据集训练Faster RCNN之后,我们发现其中的RPN网络可以在我们的本地数据集上用来生成候选. 当输入图片只包含一个物体时, 最大概率的候选框基本上包含真实的物体. 所以在没有边框标定的情况下, 我们用这个候选框作为真实的候选框来训练分类层. 即使选出来的候选框含有噪声, 也不影响分类层的训练[11,12].
我们构建的商品数据集较小, 但是在应用样本扩展方法之后, 边框的标定将会是一个巨大的工作量. 所以候选选择方法非常重要.
我们发现, 由于我们构建的商品数据集的特殊性.其中的商品对象是可旋转的, 这点和COCO数据集不同. 只训练分类层的全连接层不能使网络正确的识别图像.
为了使整个网络具有旋转不变性, 我们利用样本扩展之后的数据训练了全连接层之前的卷积层. 样本扩展方法包括随机旋转、平移、放缩. 训练之后的网络可以正确的分类出几乎所有的图片.
为了确保两个数据集的分类层参数服从同一分布,需要对两个数据集进行分类层的联合训练. 因此,首先在本地商品数据集上训练网络的分类全连接层和之前的两个卷积层. 然后保持卷积层参数不变, 在COCO数据集和本地商品数据集上同时训练分类全连接层.
在完成分类全连接层的训练之后, 需要对分类层和回归层之间的关系层进行训练.
通常的想法是在分类输出之后添加一层全连接层,其输出作为回归输出. 但是分类层的输出是特征降维的结果, 损失了一部分信息. 而且不同数据集的类别数会有不同的输出维度. 所以不能直接在分类输出后直接添加全连接层.
所以我们在分类层的参数后添加一个全连接层来生成回归层的参数.
如图2所示, 分类层和回归层之前的特征维度为L(1024). 分类类别数为C, 回归层的输出维度为4C. 所以Faster RCNN的分类层参数和回归层参数大小分别为L×C和L×4C. 公式 (1)中wcls表示分类层参数, 参数大小为L×C, 公式1中wreg是回归层参数, 参数大小为L×4C. 我们的目的是通过L×C大小的分类层参数生成回归层参数. 其中L是常量,C是数据集中类别数目,是可变的. 关系层模型可以定义为:
我们构建了名为关系层的全连接层, 在公式(1)中用wrel表示, 其参数大小为L×4L. 其接受输入为C×L的数据, 生成C×4L大小的输出. 因此, 分类层的参数需要变换为C×L大小.C可以看做输入样本数量,L是输入特征维度, 4L是输出特征维度. 其输出需要通过r函数变为L×4C大小. 即使类别数C改变, 关系层的网络结构也不需要改变. 公式(2)定义了回归结果:
图2 关系层模型
N×4C大小的边框回归结果是通过直接将L×4C大小的参数wreg与N×L大小的特征fv相乘. 其中N表示ROI区域的数量. 我们只需要在COCO数据集上进行关系层的训练.
本文在构建的商品数据集和已经公开的货架商品数据集[13]上验证了提出了方法. 货架商品数据集是关于香烟包装的货架. 本文提出的数据集如图3所示. 利用本文的方法. 我们不需要在商品数据集上训练边框回归. 所以本文构建的商品数据集训练图像仅包含类别信息. 数据集中共包含3200张训练图像和1600张测试图像,共计40个商品类别. 训练图像通过2个摄像头在4个不同的视角下拍摄的, 测试图像通过另一个摄像头在同样的4个视角下拍摄的. 每张图像只有一个商品对象, 用来进行分类任务的训练. COCO数据集共80个类别, 并包括非常多的图片以及边框和类别标注.
本文构建的商品数据集和COCO数据集主要的区别在于, 本文商品数据集中的物体时可旋转的, 且训练数据远远少于COCO数据集. 这无疑增加了分类任务的难度.
图3 本文构建的商品数据集训练图片示例
在实验中, 我们使用Faster RCNN的扩展版Mask RCNN, 其除Faster RCNN方法外利用了特征金字塔网络(FPN)和兴趣区域对其(ROIAlign)方法[6]. 实验中不需要进行分割, 因此我们移除了Mask RCNN中的分割分支, 只使用其分类和回归分支, 并用本文提出的关系层将二者关联起来, 并学习二者的关系. 而且回归层参数不需训练, 只利用分类层参数和关系层参数即可推导出来. 实验中,Mask RCNN使用Python语言并基于Keras和Tensorflow[14]深度学习框架实现.硬件使用 Intel Core i7-7800x CPU与2个NVIDIA TITANX GPU上进行, 每个GPU拥有12 GB显存. GPU用过将内存中的数据读入显存进行运算, 由于GPU具有很高的数据带宽和众多可以并行计算处理单元, 在矩阵数值计算方面的速度远远由于CPU, 因此研究者们更青睐使用GPU进行深度神经网络的计算任务。 初始的学习率为0.001, 并在训练时手动调整. 动量参数Momentum为0.9.
因为训练图片较少, 所以我们进行了样本增强. 生成了数百万张图片, 并利用了提出的候选选择方法来进行分类层的训练. 图4为部分训练图片和其对应的被选择的候选边框. 图中的黑色边界是由于Mask RCNN方法中的零填充(Zero Padding)导致的.
图4 候选选择方法的结果
为了保证Mask RCNN网络能够具有识别商品数据的旋转不变性, 我们首先在本地的商品数据集上训练其分类层. 然后对COCO数据集和本地商品数据集进行分类层的联合训练, 在测试数据上达到了86.6%的准确率. 因为训练图片中有些视角没有出现在测试图片中, 所以准确率相对较高. 然后只在COCO数据集上训练关系层, 迁移到本地商品数据集上不需再训练. 如图5所示, 其中虚线表示前4个候选区域, 实线表示回归之后的边框位置, 商品对象候选区域的回归边框趋向于同一位置, 可见关系层可以有效地迁移到商品数据上而无需边框标注数据的再训练.
然后我们在含有多个物体的图片上验证我们的方法. 图6 表示在本文构建的商品数据集和香烟包装数据集上经过非极大值抑制(NMS)之后的商品对象检测结果. 可以看出, 很少有物体被漏检或者误检. 我们在没有进行边框回归训练的情况下验证了我们的方法,并与Varol[13]所提出的方法进行了比较, 如表1所示.本文对mAP[15]指标也进行了计算. 从结果可以看出,本文提出的方法的检测效果超过其他方法. 而且本文提出的数据集难度高于香烟包装商品数据集. 主要因为我们的数据集具有物体可旋转、多个视角和对象遮挡等情况.
图5 候选区域和对应的边框回归结果
图6 非极大值抑制之后的检测结果
表1 在两种数据集上的方法对比
本文提出了一种无需边框标定的分类训练方法,并且解决了可旋转物体的分类问题. 此外, 本文构建了一个关系层模型来学习分类层与回归层之间的关系, 来实现商品检测定位, 并迁移到跨域的商品数据集上. 本文的方法很容易训练并迁移到其它数据集. 未来, 我们将致力于研究如何提高物体检测的精度和可解释性,并将其扩展到分割领域并应用到自动化零售系统中.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!