韦泰丞 刘雁兵 陈浩 赵弘胤
摘要:为解决采集的卷烟图像数据类别分布不均衡、样本数量少带来的识别率低的问题,提出了一种基于加权分类损失和样本合成的卷烟图像精细识别模型。针对类别数量长尾分布问题,设计了一种新型的加权分类损失函数,用于增强对不同卷烟类别的学习能力;针对部分卷烟类别样本数量少,在不增加采集成本情况下提出了一种高质量卷烟虚拟样本生成方法,极大地缓解了某些卷烟数据量不足、识别精度低下的问题。模型在大规模真实测试集上进行测试,卷烟的识别平均精确率达到95%。证明对于不同的复杂场景,模型的鲁棒性强,可以在图像翻转、倒置的情况下准确识别出不同卷烟类别,能够满足零售终端卷烟自动化识别的需求,为建设终端评价系统提供了算法与模型支持。
关鍵词:深度学习;神经网络;目标检测;卷烟识别;数据扩增;长尾分布
中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2022)23-65-8
零售终端是零售产业链的重要组成部分,是零售商品实现最终销售的关键环节。零售终端对于零售商品的品牌培育、产品销售的作用愈发凸显,了解自主品牌和其他工业公司品牌在零售终端的陈列状况,根据零售终端总体情况针对性实施营销策略,对促进品牌培育、扩大品牌销售和影响力十分重要。
近年来,人工智能技术在零售行业发展迅速,以图像识别为代表的人工智能技术,给零售行业带来了巨大的变动与机遇。生鲜超市、智能便利店、无人货架、自助售货机等新概念遍地开花,这些都离不开以图像识别为基础的技术支撑,通过店铺内安装摄像头设备,实现客流统计、客流分析,同时准确地把握顾客的年龄、性别和喜好,识别新老顾客,实现精准的营销推广活动;通过店铺陈列与客流停留时长的分析,优化店铺布局和产品陈列方式,实现店铺销售额的提升。
在烟草零售行业中,传统人工方式进行在销商品统计时面临统计效率低、识别误差大、人工成本高等问题,每次统计需要较长的统计周期,往往没有办法即时得到销售信息等关键内容,而通过人工智能等前沿技术对卷烟零售店中在销的卷烟信息进行采集和分析,可以帮助烟草工商企业更高效、及时地获取卷烟在销品类、规格以及不同卷烟的销售情况。本文针对卷烟零售终端统计在销商品时所面临的统计效率低、数据长尾分布、识别误差大、人工成本高等问题,通过计算机视觉和人工智能技术,构建了一种加权分类和样本合成的精细识别模型,主要贡献有以下3点:
①为了更好地提取图像中物体的特征信息,对网络结构的Backbone部分进行了修改,使用分组级联的结构替换了网络中的残差模块,增大了模型的感受野,帮助更好地提取物体的细节特征。
②提出一种针对样本分布不均衡的分类损失函数,在训练过程中动态地根据分类器对不同类别的正负梯度和得分调节损失的权重,有效提升数量稀少类别的识别精度。
③针对训练中样本数量少的类别,提出高质量虚拟样本生成技术,在数据预处理阶段生成大量多样化的稀少类别虚拟样本,缓解了样本不均衡问题。
1.1相关背景
目标检测任务是计算机视觉领域的一个基础任务,其目的是对输入的图像或视频中出现的物体进行分类和定位。目标检测作为场景理解的重要组成部分,广泛应用于现代生活的许多领域,如安全领域、军事领域、交通领域、医疗领域和生活领域。当前的目标检测方法可以划分为三大类:基于传统方法的目标检测方法、基于深度学习的双阶段目标检测方法和基于深度学习的单阶段目标检测方法。
传统目标检测算法主要基于手工方式提取特征,该方法用于从指定区域中提取特征,再把得到的特征输入线性SVM分类器进行检测。由于传统方法需要通过滑动窗口来获取候选区域,且特征提取算法往往需要通过手工设计,这类方法存在识别效果不佳、准确率不高、计算量较大、运算速度慢等缺陷,所以一直没有很好地应用。
以YOLO[1-3]系列为代表的单阶段目标检测算法不需要区域候选框生成,而是将检测任务视为一个回归问题,直接通过卷积神经网络预测物体的类别和位置坐标值,并对检测的性能进行了优化[4]。随后提出的RetinaNet[5],SSD[6]等模型,加入了多尺度融合机制,提升了不同尺度下的物体和小目标的检测精度。这类方法的特点是检测速度快、模型参数量小,但是受限于输入尺寸无法在卷烟密集场景下取得很好的检测效果。
而双阶段模型近年来大部分基于Faster-RCNN[7],Cascade-RCNN[8]等,双阶段目标检测器主要由以下2个阶段构成:从图中生成候选区域,对候选区域提取特征经过分类和回归层得到最终的分类和回归结果。这类方法利用滑动窗口和锚框生成手段,对图像中密集出现的卷烟目标可以有很好的检测效果,但是面对长尾分布的数据,会由于不均衡的数据分布导致对样本数量少的类别检测效果不佳,影响整体性能表现。
1.2卷烟图像识别的技术现状
近年来,人工智能技术[9]在烟草行业发展迅速。其中,洪金华等[10]使用YOLOv3模型对烟虫进行检测;高震宇等[11]使用卷积神经网络检测烟丝物质组成;肖雷雨等[12]利用深度学习技术检测烟梗形态;邓超等[13]利用深度学习构建卷烟投放预测模型。在卷烟零售端,也有利用深度学习方法进行场景文本识别[14-15],梁冬等[16]提出了基于图像识别技术的卷烟零售数据采集方法;单宇翔等[17]提出了基于深度学习的复杂场景中卷烟烟盒检测与识别方法,这些方法利用关键点检测与分割方法进行了探索并取得了一定的效果,但对于大规模多类别的卷烟识别效果仍有待提高。在国外,卷烟识别任务主要关注于吸烟行为的检测[18],对于卷烟种类识别任务还处于探索阶段。
卷烟识别任务需要对零售店铺中出现的卷烟烟盒进行定位和识别,该任务目前仍面临许多挑战。由于零售终端行业在各个城市发展各不相同,卷烟零售店铺可能包含了超市、便利店、直营店铺等各种类型,店铺条件的差异导致采集的烟盒图像差异巨大。同时,由于没有统一的行业采集标准,采集图片受到采集人员、采集设备、光照等因素的影响,使得采集图像规格各异,其中出现的遮挡、过曝、过暗、拍摄角度不同等都会使得同一个类别卷烟烟盒的外在特征产生很大差异。另外,由于卷烟品牌数量众多,新品迭代更新快,部分品牌的卷烟外观差异非常小,对检测器性能提出了更高的要求。如何在密集出现、相邻摆放的场景中很好地区分不同品种的卷烟是一个很大的挑战。此外,由于卷烟种类繁多,在采集时很难均衡地对每个类别进行采样,而受限于人工标注的成本,如何在数据量不充分且存在不均衡卷烟种类分布的情况下,得到对所有类别良好的检测性能是该任务面临的第二个挑战。
2.1整体模型架构
由于卷烟识别需要在复杂多样的环境下对多种类别的卷烟进行识别,对于网络的特征提取能力有很大的要求,传统Faster-RCNN网络使用的特征提取模块的卷积核感受野较小,对图像中某些细节特征提取能力不足,因此本文利用分组级联的Res2net[19]模块替换了原始网络中的卷积模块,增强了网络的特征提取能力。针对卷烟数据类别存在的样本不均衡问题,从数据与模型2个角度出发,设计了可以根据梯度自适应调节损失权重的类别自适应加权损失,以提升稀少类别的分类性能;同时提出卷烟虚拟样本生成技术,对稀少的数据类别进行扩增,有效改善了样本分布不均衡的问题。模型的整体架构如图1所示。
首先使用虚拟样本生成技术,抽取样本数量少的类别,经过随机数据增强后得到多样化的样本,通过一定的排列规则与背景场景构造虚拟样本,并和原始数据一起送入模型进行训练。随后模型会将输入图片经过卷积神经网络得到特征图,特征图通过区域候选网络得到大量可能包含目标的候选框,并经过RoI池化层进一步压缩特征得到候选框的特征图。最后在得到的特征图后连接2个全连接层对物体类别和位置进行预测。模型在训练过程中使用类别自适应加权损失动态调节各个类别的正负梯度,使得每个类别都可以得到较好的训练,经过多个轮次的训练后,得到最终的卷烟精细识别模型。
2.2分组级联特征提取模块
为了使Faster-RCNN模型更好地契合卷烟检测场景,解决对于多种不同卷烟类别的精确识别,需要更好地提取图像中卷烟烟盒的外在特征信息。针对上述问题,本文使用分组级联的方式重新设计了网络Backbone模块中的残差模块。图2展示了Backbone网络结构,图像依次经过几个卷积模块,得到包含目标特征的特征图,其中每个卷积模块由若干个BottleNeck残差模块堆叠而成。通过引入残差结构,解决了随着网络深度增加,而性能下降的“退化”问题;另一方面,利用2个1×1卷积进行降维与升维操作,有效降低了卷积操作的计算量。
为了进一步增强网络对于图像中物体细节特征的提取能力,使用Res2net模块替换了Conv1,Conv2_x,Conv3_x,Conv4_x,Conv5_x中所有的BottleNeck结构。将通过原有的3×3卷积替换为了更细粒度的按照通道维度分组的3×3卷积核结构,通道的不同组之间会进行信息的交互,4的输出中包含了2,3,4维度的所有信息,同时由于经过了多个3×3卷积核,使得网络输出相较于原始的BottleNeck结构拥有更大的感受野,从而能够更好地提取图像中丰富的细节特征信息。
2.3类别自适应加权损失
由于不同品牌、规格卷烟的上架率不同,采集到的数据集存在严重的类别不均衡问题。不同類别样本数目的不均衡会影响模型对于该类别的识别效果,进而影响模型整体精度。经过对数据集的分析,发现卷烟图像样本的数据分布符合长尾分布,如图3所示。这是一种数据分布不均衡的问题,少数的几个卷烟类别占据数据集中很大的比重,而许多类别只有很少的数据量,导致训练过程中大量来自头部类别的负向梯度淹没尾部类别的正向梯度,从而导致检测模型在尾部类别上的精度下降严重。
为了解决这一问题,本文设计了类别自适应加权损失来解决卷烟数据集中的类别不均衡问题。类别自适应加权损失通过保留网络对于容易混淆类别之间的抑制梯度来保留网络对于易混淆类别的判别力,同时在训练过程中减小头部类别对于尾部类别过多的负向抑制梯度。损失函数通过动态加权的方式在训练中自适应地调节权重的大小,使得网络可以在训练过程中根据不同类别的学习状况自适应地进行调整。
2.4高质量卷烟虚拟样本生成
由于采集的卷烟种类繁多,部分卷烟类别由于上柜率较低,在采集到的图像中涵盖这些类别的图像数量较少,导致在模型训练时该类别无法得到充分的训练,影响到模型检测的效果。为缓解该问题,加入了卷烟虚拟样本生成技术,对采集数量较少的卷烟类别图像进行数据扩增。由于在销卷烟图像排列有规律、场景固定,基于以上特点,利用Copy-and-Paste方法,将卷烟样本依照类别间关系粘贴到背景图像上,得到人工生成的虚拟样本,并将其加入到数据集中训练模型,从而提高对于真实图像中数量少的卷烟类别的识别能力和性能,如图4所示。
考虑到人工收集的数据远少于真实数据集中的数据,为了增强虚拟样本方法生成图像的多样性,在每一次扩充过程中加入了图像尺度随机抖动、基于HSV颜色空间的数据增强、随机翻转等图像增强手段,增加图像的丰富度:①尺度随机抖动,将收集到的待扩增的图像大小随机在0.5~1.5的倍率选择一个系数进行放缩变化。②基于HSV空间的数据增强,将图像从RGB空间转为HSV空间,随后从色相、饱和度、亮度这3个维度值对图像进行微调,调节范围保持在0.8~1.2,模仿不同光照下的采集图像,为了不生成过于失真的图像,在较小的范围内进行调节,从而进一步增强了扩增图像的多样性,RGB到HSV转换如式(11)~式(14)所示,其中R,G,B代表红绿蓝3个颜色通道,每种亮度各分为256阶亮度。H代表色相,用角度度量取值为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°,转换如式(11)和式(12)所示;S代表饱和度,表示颜色接近光谱色的程度,取值为0%~100%,值越大代表颜色越饱和,其转换如式(13)所示;V代表亮度,表示颜色的明亮程度,通常取值为0%(黑),100%(白),其转换如式(14)所示。③随机翻转,随机对扩增卷烟的实例进行水平翻转操作,增强模型的鲁棒性。以上所有增强操作都取=0.5的概率,随机对图像进行扩增组合,使每一次生成的图像都是不同数据增强方法的随机组合。因此,即使仅通过少量采集图像,也能扩增出大量多样化的虚拟样本,有效解决某些类别样本数量少的问题。
3.1实验数据
实验数据使用山东泰安卷烟零售终端采集到的前柜、背柜图像。图像中包含店铺在销的不同品牌卷烟烟盒陈列图像,其中包含的卷烟种类共计207。对1 200家店铺进行了数据采样,通过手机、相机等设备对经营店铺的前柜、背柜进行拍摄采样。采样时采取正面俯拍的角度进行拍摄,减少大角度倾斜的拍摄情况,对每家店铺不重复地采集前柜数据2~3张,背柜数据2~3张。按要求汇总后经过数据清洗,去除部分拍摄质量低(模糊、过曝、过暗)的图像,最终得到用于训练与测试的卷烟图像共计5 000张。
3.2实验方法
实验使用采集到的店铺前柜、背柜图像共5 000张,将其划分为训练集和测试集,训练集包含图像4 500张,测试集包含图像500张。训练集作为训练数据用于训练卷烟精细识别模型。测试集用于评估模型的精确率以及各类别的识别效果。本文基于目标检测双阶段模型Faster R-CNN,以原始Faster R-CNN训练结果作为基线,通过实验对比验证了分组级联特征提取模块的有效性,对本文提出的类别自适应加权损失、高质量虚拟样本在长尾分布下尾部类别数据的作用进行了验证。
3.3实验评价指标
针对卷烟图像识别效果的评价,需要根据模型对卷烟的类别信息和位置信息进行综合评价。为了更好地评价模型性能,依据单类别识别平均精确率(AveragePrecision,AP)和全部类别平均精确率(mean Average Precision,mAP)对烟盒识别模型进行评估,计算如下:
4.1实验设计
实验采用Faster-RCNN模型为基础,加入特征金字塔结构从而更好地提取图像中的语义信息,采用2.3节的类别自适应加权损失函数和2.4节中高质量卷烟虚拟样本生成方法增强后的数据集进行模型的训练。为了增强模型的鲁棒性,在训练中加入了多尺度训练和随机旋转的数据增强,模型共经过72个训练周期的迭代,使用随机梯度下降法对模型进行优化,初始学习率设置为0.01,在第44和第60个训练周期时将学习率缩放为原来的1/10。实验运行使用的显卡为4块GeForce GTX 1080 Ti。模型训练的损失曲线如图5所示。可以看出,当迭代轮次为70 000时,损失值趋于稳定收敛。
4.2测试结果分析
选取原始Faster-RCNN模型作为基准进行对比测试,结果如表1所示。由表1可以看出,在相同的模型骨架和不使用数据扩增的情况下,相对比基准网络与分类层微调训练的方法,加入类别自适应加权损失后,模型取得了最优的效果,可以在原始模型上提高平均识别精确率2.1个百分点。而使用数据扩增后数据集进行训练的方式可以使模型性能进一步提升,相对于原始数据训练,取得了7.2个百分点的提升。最终,加入替换模型骨架为具有更强特征提取能力的Res2net网络结构,综合使用数据扩增和类别自适应加权损失取得了最优效果,可以在200余类卷烟种类下,达到95%的模型识别精度,同时具有较强的泛化性,可以应对密集场景和旋转、颠倒图像的卷烟识别。