基于改进YOLOv3多尺度的藏族服饰识别研究
2022-11-25曾晓莉
谭 锐,曾晓莉
(西藏大学信息科学技术学院,拉萨 850011)
0 引言
服装销售在电子商务销售中占有很大比重,各种材质、风格、价位的服装在各大电商平台每天以指数级的量在增加,对终端用户来说,怎样在琳琅满目的商品中快速选择到合心意的服装,需要依赖关键字搜索或者平台的推荐系统,而这两种操作都需要首先完成对服装的标签分类。人工标签的工作量繁重而且标记不准确。
在研究当前电商的分类系统的基础上,本文提出开发一个快速藏民族识别模型,对西藏社会的维稳安全具有重要意义。中国是一个多民族国家,各民族各具特色,在服装、饰品、装扮上更是特色分明。怎样自动通过服装识别民族,对我们来说具有重要意义。藏族主要聚集生活在西藏自治区,对于这个中国边疆地区,结合行为检测等技术快速识别藏族服装,从而识别藏族人民,对推进西藏边疆地区的长治久安更是意义重大。
近几年来,深度学习在图像识别领域的应用越来越广,越来越深入,基于深度学习的图像识别技术的效率远远高于传统图像检测识别效率。
传统的图像检测方法,首先需要人工进行大量逻辑特征处理和特征设定,然后根据人工设定好的逻辑以及模板进行对应的数据匹配,这种图像检测方式虽然能起到一定的效果,但是由于特征和逻辑均为人为设定,导致最终的检测和分类效果受到了极大的限制,检测的结果无法跳出人为设定的框架以及本身的准确率一直不高[1]。这也是神经网络兴起之前图像识别领域远远没有现在这般关注度的主要原因,但神经网络算法的出现,使得图像识别在短短几年内兴起。神经网络本身在进行图像识别的时候,相对于传统图像识别就省去了繁重而又复杂的逻辑设定和特征标注,仅仅只需要将图片归类,然后将该类别的特征提取出来传输给神经网络,让其自行学习,并在学习的过程中不断调整每一层神经网络的权值,使模型在识别和检测方面的准确率越来越高,这个权重调整的过程即为模型训练的过程,模型最终调整完成的结果的好坏决定了最终识别和检测的准确率的高低[2]。
服装检测本身属于目标识别的一种。为了在神经网络算法中实现检测和识别的目的,早期的神经网络主要以faster R-CNN、FPN、MSCNN、OHEM等为主,这些网络均为two-stage目标检测算法,在目标检测和识别的时候分为两步,第一步先生成Region Proposal,在生成了Region Proposal之后,进行第二步,也就是送入分类器进行最终的识别和分类,而这两步通常由不同的神经网络算法来完成。两步识别的方式使得在检测和识别目标时准确率相对较高,但两步识别通常也伴随着另一个问题,那就是识别速度的大幅度下降,即便R-CNN后续推出了fast R-CNN以及faster R-CNN,都只能在一定程度上缓解该问题,其检测速度仍然不够理想。
由上可以得到一个结论,即two-stage目标检测算法因为在速度方面不占优势,所以其在即时识别这样需要速度的场景中并不适用。为了解决在该场合下的目标检测识别问题,业界提出并完成了另一类目标检测识别算法:one-stage,该算法直接省去生成Region Proposal的这一步骤,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此该算法比two-stage快得多,能够达到即时目标检测的效果[3],YOLO作为one-stage中的代表算法,在经过了不断的改进之后,形成了YOLOv3,已成为即时目标检测方面的首选算法[4]。
1 实验对象及方法
1.1 YOLOv3算法
YOLOv3算法是Redmon等[5]完成的最后一版基于Darknet53网络的算法(后续的YOLOv4和YOLOv5由Alexey编写),作为一个one_stage目标检测算法,YOLOv3与RetinaNet和SSD检测效果相当,但速度却比后两者快了好几倍。相比于其上一代YOLOv2,作者对Darknet进行了改进,将网络深度扩展到了53层,并在imagenet上进行了预训练,因此该主干网络也叫做Darknet-53。
Darknet53的网络结构如图1所示,每个残差块由一个残差层、一个1×1的卷积核和一个3×3的卷积核构成,在3×3卷积核进行还原操作之前,先用1×1卷积核进行通道收缩,通过矩阵分解的思路来减少参数量。
此外,Redmon等[5]还借鉴了DSSD的做法,加入了跳跃连接和上采样,实现了高层特征和底层特征融合。和DSSD一样,使用多尺度的特征图来预测结果。这带来两个变化:①新的网络结构预测更多的anchor框;②由于使用了更底层的特征,YOLOv3对小物体的效果更好。在使用416×416输出的情况下,YOLOv2预测输出845(13×13×5)个anchor框。同样的图片输入情况下,每个cell预测3个anchor框,共有10647(13×13×3+26×26×3+52×52×3)个,是原来的12.6倍。
在多尺度预测方面,YOLOv3采用多个scale融合的方式,相比于YOLOv2,YOLOv3设定的是每个网格单元预测3个box,所以每个box需要 有(x,y,w,h,confidence)五 个 基 本 参 数。YOLOv3输出了3个不同尺度的feature map,y1,y2和y3的 深 度 都 是255,边 长 的 规 律 是13∶26∶52[5]。
YOLOv3用上采样的方法来实现这种多尺度的特征图。共进行三次预测,第一次预测比较简单,在Darknet-53得到的特征图上,再通过六个DBL结构以及一个卷积层的加工,就可以得到一个新的特征图谱,在这个特征图谱上进行预测就可以得到第一次预测结果。上采样部分主要是在第二次和第三次预测,总的来说都是先从卷积层输出结果,经过一个DBL处理之后,再进行一次(2,2)上采样,然后将上采样特征与一个Res8结构输出的特征进行张量链接,之后再通过六个DBL处理以及一个卷积层,在这个结果之上进行预测,得到第二、第三次预测结果。
1.2 YOLOv3改进
为了使YOLOv3对中小目标的识别准确率进一步提升,在原有的三个YOLO层上额外新增一个YOLO层,即把104×104那一层加入输出,这个多出来的YOLO层能够更加有效地提取藏族服饰的中小目标,例如发饰等的特征。将52×52层的输出结果进行一次上采样连接到104×104层完成多尺度特征融合,但因为多了一个输出,所以需要根据数据集重新计算anchors。改进后的YOLOv3预测框数量为43095(13×13×3+26×26×3+52×52×3+104×104×3),是改进前的4倍。具体改进结构如图2所示。
1.3 数据集构成与预处理
由于本文数据集的特殊性,在互联网上难以找到现有的数据集,因此采用网上以及外出两种方式搜集图片。同时使用藏族服饰数据以及非藏族服饰数据,非藏族服饰数据集来自github上的开源数据集(https://github.com/bearpaw/clothing-co-parsing),一共1977张图像,两种类别各占一半的数量,每一张图像都提供了完整的藏族服饰信息。由于藏族服饰构成的数据集是通过技术手段进行收集,所以需要进行人工二次筛选,将未包含完整服饰特征,以及特征细节过于模糊的图片剔除。
1.4 藏族服饰特征分析以及数据集标注
本文使用Labelimg标注工具对数据集进行了标注(在标注时切换模式至YOLO就可以直接得到txt格式的标签文件),在开始标注前将Labelimg的默认标签文件修改为自己的标签类别,以防止标签序号的错误。
标注工作前的软件准备已经完成,接下来再开始标注前的最后一步,也是最重要的一步,那就是分析藏族服饰的特征部位,只有标注在特征部位上才能够有效地起到识别藏族服饰的作用。藏装的构成分衣领、衣襟、后身、腰带等,衣领有两种,最常见的是交领,点惊领直接连左右襟,衣襟在胸前相交,领子也就相交;另一种是直领,即在衣服上垂直安领,从颈后绕到颈前[6]。通过这些特征就可以对拉萨地区的藏族服饰进行初步识别,但是对于细小饰品繁多的其他地区的藏族服饰则显得有所欠缺[7],所以需要通过改进算法结构来有针对性地提升这些细小目标信息的提取能力。
最后将已经标注好的藏族服饰数据集划分为90%的训练集和10%的测试集,也就是使用788张图片来进行训练,87张图片来测试准确率。
1.5 YOLOv3模型的训练与模型的选取
首先从该网址(http://pjreddie.com/media/files/darknet53.conv.74)下载Darknet-53的的预训练模型参数,预训练模型能有效提高训练出来的最终模型的识别成功率,然后对模型参数进行适当的调整,具体如图3所示。
2 模型对比
2.1 评价指标
本文采用mAP这种常用于目标检测的识别的参数作为模型好坏的总评价指标,在mAP之前 应 先 说 明IoU、precision、recall、F1-Score、PR曲线以及AP的意义。
IoU的全称为交并比,即预测边框与真实边框的交集与并集的比值。在目标检测中,IoU大于设定的阈值时即为正样本,改变阈值会直接影响检测结果。而这个机制又引出了TP、FP、FN、TN这几个参数,TP即为IoU>阈值的检测结果数量;FP即为IoU<阈值的检测结果数量;FN即为存在目标但是未检测到目标的结果数量;TN即为样本错误并且未出现检测框的结果的数量。precision为查准率,即TP/(TP+FP);recall为召回率,即TP/(TP+FN)。F1-Score又称F1分数,是分类问题的一个衡量指标,它是精度和召回率的调和平均数。PR曲线是一条分别以Precision和Recall为横纵坐标的曲线,而AP是PR曲线下的面积,mAP则是各类别AP的平均值。
2.2 改进前后模型对比
采用两个模型分别对数据集进行测试,得到的结果见表1。从表1可以看出,改进的YOLOv3对应的AP相较于YOLOv3有所提高,FP相较于改进之前明显减少,从这几项数据可以看出,改进后的模型在识别的精确度方面有所提高,尤其大幅度地减少了将错误目标识别为藏族服饰的概率,因此precision相较于改进前上升了0.08。同时以recall下降换取了AP的提高。
表1 模型测试结果
3 结语
本文在YOLOv3的三层YOLO层输出的基础上,再添加了一层YOLO层,对藏族服饰中的小目标有着更好的感受力,使其对藏族服饰的整体特征提取效果变得更好。
由于本文数据集的不足,以及只是对模型进行了初步改进,导致模型识别的指标提升不够明显,但其指明了在识别藏族服饰方面所遇到的问题以及应该去修改的方向,本文结果能够为进一步提高藏族服饰识别准确率提供一个初步的参考。