基于改进SSD模型的缝纫手势图像检测方法 下载: 1062次
1 引言
人机协作缝纫融合机器人技术与熟练工人技术的优势,可以完成复杂的缝纫任务[1-2]。机器人对工人缝纫手势的识别理解是实现人与机器人交流互动的关键。现阶段手势识别技术[3]主要包括基于穿戴式数据设备和基于视觉的手势识别方法[4-5]。早期研究阶段,Grimes等[6]设计出了数据手套,通过数据手套内部的传感器采集手势的状态,达到手势识别的目的。该方式的缺点是必须依赖外部设备,便携性差,具有一定局限性。
基于视觉的方式主要分为传统人工提取方法和深度学习的手势识别方法[7-8]。Asaari等[9]通过手工设计特征方式将手部几何特征与掌纹、手部静脉等特征融合来表示手势,该方法难以适应不同手势,在复杂背景下手势识别的识别率和鲁棒性差。Sangi等[10]通过方向梯度直方图(HOG)提取手势特征,并通过神经网络进行手势识别,当图像中存在光照和阴影时,算法精度显著下降。
相比于传统的基于人工特征方法,采用深度学习模型能够更好地获取高层次、多维度的特征表示[11-12],在手势检测方面具有良好的应用前景。主流的深度学习手势检测方法主要分为基于区域的目标检测算法和基于回归的目标算法[13]。前者的代表算法有R-CNN[14]、Mask R-CNN[15]等。此类算法具有较高检测精度,但应用在协作机器人上时计算量太大,检测速度慢,不适合实时应用。
另一类为基于回归思想的目标检测算法,Redmon等[16]提出YOLO(You Only Look Once)算法,这一算法将目标网格化,使每个网格负责物体的预测,并对目标类别和位置信息合并进行回归处理,其在检测速度方面提升明显。Peng等[17]把YOLO算法应用于手势检测,检测效率较高,可实现端到端的检测,适合协作机器人实时检测缝纫手势,但分类决策层输入的特征尺度单一,对物体的尺度敏感,泛化能力较差。单发检测(SSD)算法借鉴YOLO的回归思路和Faster R-CNN的anchor box的机制[16],相比YOLO针对某一位置提取全局特征的方法更合理、有效,采用多尺度的目标特征提取方式提升了检测不同尺度目标的鲁棒性,检测精度更好。Fu等[18]提出的反卷积单发检测(DSSD)采用特征金字塔(FPN)的思想,替换SSD的基准网络为残差网络,增强了特征提取能力,最终提升了目标检测精度,但由于模型结构的加深,检测速度下降。同时YOLO算法缺乏区域候选网络(RPN)机制[19],检测精度不高。Chen等[20]基于SSD网络对小目标特征区域进行放大提取,提取了多个额外的深层特征层的语义信息,提高了中等尺度特征的表征能力,优化了中等尺度物体的检测结果,但实时检测速度受到较大影响。上述SSD改进算法在简单场景下虽具有较好的检测效果,但在复杂车间环境下缝纫手势检测的精度与速度还有一定的提升空间。
纺织车间中,工人作业环境复杂,日夜生产光照变化大,工人手部动作速度变化不一,尤其是内包缝、卷边缝、裁剪布料、抽褶缝等手势相似度大,同时部分小目标手势区域检测效果不佳。针对上述问题,本文构建了缝纫手势数据集,通过引入更深的Resnet50残差网络替换原始SSD模型中的VGG16基础网络[21-22],改善了网络特征的提取能力。然后采用基于FPN的网络结构对高低层特征进行融合,利用低层目标位置信息准确、高层特征语义信息丰富等特点,改善了小目标检测性能,并在模型训练时采用迁移学习的方法解决了小样本不足的问题,提高了整体检测效果。
2 SSD目标检测算法
SSD网络是一种结合YOLO的回归思想和Faster R-CNN的先验框机制的单次检测深度神经网络。网络采用回归的思想简化了网络计算的复杂度,提高了算法的实时性。SSD使用多尺度目标特征提取,提升了不同尺度目标的鲁棒性。
SSD网络可用数学表达式表示为
式中:θl是第l层中的特征图;fl(·)表示第l-1层中的特征图转换为第l层时对应的非线性映射,由卷积层、ReLU层和池化层等组成;f(X)是将输入样本图像X传输到第1层特征图的第1个非线性块;τl(·)是将第l层的特征图转换为特定尺度的检测结果,最后将所有的n个中间结果结合完成最终检测;T(·)是最终检测过程;D是最终检测结果。
SSD若想取得较好表现必须保证每个θl足够复杂。复杂化意味着θl要有足够的分辨率来表示特定对象尺度的细节,并且包含高级的上下文信息。但当n较大时,θl比θl-n深得多,使得τl-n(·)通常无法检测到小尺度的物体。
3 SSD改进模型
3.1 SSD网络结构改进
更深的网络层数可以改善特征能力受梯度消失/爆炸等梯度不稳定制约的问题,而仅仅以VGG16为基础的SSD模型仅单一地加深了网络深度,出现了网络退化现象。在深度残差网络(ResNet)中引入残差连接,将特征层间乘性传递改善为加性传递,在一定程度上规避了梯度不稳定的问题,同时捷径连接也不会增加模型的参数和复杂程度,进一步改善了SSD检测性能。
在缝纫作业中,由于工人的缝纫任务不同,缝纫手势区域的尺度不同。在过小的手势目标区域中,原始的SSD方法没有用到足够的低层特征,小目标检测的难度加大,存在漏检误检现象。低层特征图包含丰富的语义信息,利于小目标检测,同时位置信息较为粗略,高层的特征图具有较强的语义信息,利于大目标检测。通过采用不同特征层独立的FPN结构自顶向下进行高低特征融合,可获取高分、强语义的特征信息,加强了小目标的检测能力。
改进后的 SSD 深层网络模型流程如
3.2 特征金字塔网络融合模块
FPN主网络结构分为自下而上、自顶而下、横向连接三部分。自下而上结构中,网络传播方向由下网络至上网络,自顶向下结构部分为对自下而上骨干网络的上采样,需输入任意大小的特征图,横向连接对上采样和自下而上获取的相同大小的特征图进行融合。高层与低层采样的特征图通过通道间加法运算进行通道融合。FPN网络结构如
FPN网络结构通过把卷积神经网络中不同层次的特征图,按照由深层到浅层的顺序,把较深层特征图的长和宽依次通过反卷积操作,放大至原来的2倍大小,并与相应较浅一层的特征图进行加法运算,实现了高低层特征的融合。 融合模块中卷积操作可在不改变特征图尺寸的前提下减少特征图个数,用于整合不同维度信息。其中三个3×3 Conv结合批归一化(BN)层的结构具有一定的缓冲作用,用于保证网络的稳定性。
3.3 SSD损失函数
损失函数是评估模型性能的一个标准参数。本研究通过对位置和目标类别进行回归,利用反向传播机制不断地更新模型,优化损失函数,使得损失不断减少。网络中损失函数定义为
式中:z为默认框与不同类别的真实物体框的匹配值;c为预测物体框的置信度;l为预测物体框的位置信息;g为标注框的位置信息;α为权衡置信损失和位置损失取默认值为1的权重因子;N是与物体框匹配的先验框数量; Lconf(·) 表征位置损失,是真实框与预测框采用Smooth L1的损失函数,在多类别置信度c上的损失判定;Lloc(·)表征交叉熵损失函数。
4 模型训练与调整
4.1 缝纫手势数据集采集与扩充
丰富的数据样本会带来更好的模型训练效果。本研究采用的缝纫手势数据集主要来源于自制衣厂,包含内包缝、卷边缝、裁剪布料、抽褶缝4个缝纫手势类别,每种类别分别涉及20位缝纫工。
车间生产环境下,采集的样本图像颜色与真实样本颜色之间存在偏差,首先利用灰色世界算法(Gray World)消除了光照对显色性的影响。24 h的生产过程中,光照环境变化大,通过图像亮度变换模拟不同时刻光照变化,可消除因同一时刻采集样本缺乏全天侯光照环境产生的噪声,进而提升模型在光照影响下的检测效果。同时过高或过低的亮度值变换会影响手动标注边界框的精度,因此选择对构建的数据集样本亮度的变换范围进行控制,将亮度值控制在0.6~1.5范围内进行随机变换。对原始图像进行随机旋转以及镜像操作,增强了模型对不同成像角度的鲁棒性。考虑到相机调焦以及移动等情况导致的模糊问题会影响检测结果,可通过随机模糊图像进一步增强模型对模糊图片的检测能力。扩增后的数据集数量如
表 1. 扩增数据集大小
Table 1. Number of images in amplification dataset
|
缝纫手势数据集的目标类别和边框数据信息通过Lambel软件保存为PASCAL VOC 数据集的格式,具体格式分别包含目标标注边框右下角坐标和边框左上角坐标,通过判断标注目标框与输出目标框的重合度分数,最终用于位置目标的计算。
4.2 迁移学习下的模型预训练
在大量数据样本下,深度学习在检测方面取得不错的效果,但在缝纫手势小数据集样本下,训练的模型只能刻画局部,信息可靠性不高,容易出现过拟合和陷入局部最优解现象。本文通过迁移学习的思想,将网络在大规模数据集ImageNet上学习到的特征提取能力,应用到小样本数据并对其进行微调,以进一步提升检测效果。
迁移流程首先训练基于ImageNet超大图像数据集预训练好的ResNet50分类网络模型,去掉分类网络后的全连接层接,添加卷积检测模块构成目标检测的网络。然后将ResNet50网络中卷积模型和参数迁移过来,冻结模型中间各层参数,得到一个基于ResNet50深度迁移的训练模型,并进行模型类别预测和位置回归部分的训练和微调。
4.3 模型的训练
实验的训练和测试均在深度学习工作站进行,工作站的硬件配置为i7-6800k CPU、12 GB的GPU GTX 1080TI和128 GB的运行内存。实验在ubuntu16.04系统下,采用Keras框架编写代码并调用 CUDA、Cudnn、OPENCV等库运行。
为验证本文算法的泛化能力和鲁棒性,首先在Pascal VOC公共数据集和复杂背景的NUS-II数据集上进行实验验证,并同其他算法进行平均精度均值(mAP)对比,实验结果如
Pascal VOC 数据集是 Pascal VOC 挑战赛的重要基础,促进了图像分类和对象检测的发展。本文使用的数据集来自 Pascal VOC 2007 和 2012 挑战赛,数据集一共包含20个物体类别,图片数量分别为 9963张和11125张图片。
NUS-II数据集包含2750张彩色图片,数据集分为2个子集,分别包含各种自然背景和更复杂的人脸、身体等人体背景。样本包含不同种族、性别、年龄的人,具有背景复杂、手势肤色变化差异大等特点。
表 2. 4种算法检测精度对比
Table 2. Recognition results comparison of 4 algorithms
|
采用构建的缝纫手势数据集对模型进行训练,为减轻显卡压力,寻求内存效率和内存容量之间的最佳平衡,训练时采用64个样本数量作为一批样本数量,每批样本更新一次参数,并将每批样本数量分割8次,分批送入训练器。梯度下降动量的设置为0.9,其可在一定程度上增加稳定性,有摆脱局部最优的能力,加快学习。学习率采用动态调整策略,初始学习率为0.001,当模型迭代到8000次和9000次时学习率至0.0001。真实框和默认框匹配策略采用交并比最大策略,若交并比大于阈值0.5则进行匹配。
最终模型一共训练12000次,耗时10 h,训练使用了5800幅图像,随机抽取并重复使用。在训练过程中,通过绘制损失(loss)曲线观察训练动态过程,其对应的损失值变化曲线如
从实验结果可以看出,本文方法在两种公共数据集上取得的mAP值的准确度最高,实际检测效果均优于原始YOLO和SSD方法。进一步证明,本文算法对于各种背景的干扰,都能取得更优的检测效果,方法的鲁棒性和普适性强。
从曲线中可以看出,模型在前期迭代中损失值快速缩减,模型快速拟合,当迭代训练4000次后,模型损失下降趋势变缓,当迭代约8000次后时,模型基本收敛。
5 实验结果分析
5.1 模型评估指标
实验采用mAP和F1-score客观评价标准来评估模型的泛化能力。F1-score是基于精确率与召回率的调和平均,常用于评估模型的性能。mAP为平均精度均值,是对多个验证集个体求平均精度(AP)均值,作为目标检测中衡量检测精度的指标。F1-score和mAP定义为
式中:P和R分别为准确率和召回率;C为类别的数量;n为引用阈值数量;k为阈值,P(k)和R(k)分别为k阈值下的准确率与召回率。
5.2 模型检测分析
实际车缝环节中,工人工作时长几乎覆盖全天,考虑到生产车间会存在有光照变化的情况,研究模型对光照变化鲁棒性具有一定的应用意义。对未使用亮度变化增强的数据集与使用模拟全天候亮度变化的数据集进行实验对比,如
表 3. 不同光照条件下实验结果
Table 3. Experimental results under different lighting conditions
|
由
从检测效果中可以看出,4种缝纫手势在早晨光照均匀时两者检测效果相差不大,但在是在亮度较高的中午和亮度不均匀的灯光环境下,手势区域部分纹理特征丢失,检测难度增大。采用亮度变换后的数据集检测效果更好。实验结果表明,本文通过亮度变换训练的算法模型在不同光照环境下有更好的适应性。
图 4. 不同光照条件下的检测效果。(a)内包缝;(b)卷边缝;(c)裁剪布料;(d)抽褶缝
Fig. 4. Detection effect under different illumination conditions. (a) Cladding sewing; (b) crimp sewing; (c) fabric cutting; (d) knots-making sewing
同时为验证数据集增强处理的方式、残差骨干网络替换和引入特征层融合的有效性,实验采用消融实验方式,采用原始SSD模型,分别针对是否采用本文增强后的数据集、骨干网络选取、特征层融合进行对比测试,对比结果见
表 4. 消融实验mAP结果对比
Table 4. Comparison of mAP results in ablation experiments%
|
如
5.3 不同算法的对比
为了进一步验证本文算法模型的性能,将所提模型与F-CNN、YOLO和SSD算法在实际采集的缝纫手势数据集上进行对比实验。对比实验测试结果对比如
表 5. 4种算法识别结果对比
Table 5. Comparison of recognition results under 4 algorithms
|
图 5. 不同算法实验检测效果。(a)内包缝;(b)卷边缝;(c)裁剪布料;(d)抽褶缝
Fig. 5. Experimental detection effect under different algorithms. (a) Cladding sewing; (b) crimp sewing; (c) fabric utting; (d) knots-making sewing
对比不同算法模型基于4个手势类别(内包缝、卷边缝裁、剪布料、抽褶缝)检测时的(平均精度)AP值、mAP值和平均检测时间。本文改进的SSD算法与基于其他算法相比,各类目标的检测AP值、mAP和检测速度均不同程度高于其他算法。其中mAP比原始SSD提升了3.04%。
在存在小目标区域裁剪布料手势的检测中,未采用FPN的YOLO及SSD-VGG16网络出现了不同程度的误检、漏检现象。实验结果如
6 结论
在人机协作领域,针对环境复杂背景下传统算法手势识别率低、小目标手势检测效果差的问题,提出一种基于改进SSD深度卷积神经网络检测识别缝纫手势的方法。该模型利用残差网络替换原始SSD骨干网络,采用特征金字塔的思想,增强了特征表征能力。通过传统的图像增强方法在颜色、亮度、旋转和图像模糊方面对采集的缝纫手势图像进行预处理,构建并扩充了数据集。通过实验验证,在构建的缝纫手势数据集中,改进后的模型获得了88.69%的平均精度。残差捷径连接的引入规避了梯度不稳定问题,同时不增加模型的参数和复杂程度,每幅图片平均实时检测速度为52 frame/s,满足人机协作中对工人缝纫手势动作检测的准确性和实时性需求。
[1] . The National Natural Science Foundation of China's major research project "Research on the basic theory, key technologies of communicative robots,[J]. Pattern Recognition and Artificial Intelligence, 2019, 32(3): 193-203.
[2] 齐静, 徐坤, 丁希仑. 机器人视觉手势交互技术研究进展[J]. 机器人, 2017, 39(4): 565-584.
Qi J, Xu K, Ding X L. Vision-based hand gesture recognition for human-robot interaction: a review[J]. Robot, 2017, 39(4): 565-584.
[3] Mitra S, Acharya T. Gesture recognition: a survey[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2007, 37(3): 311-324.
[4] Berman S, Stern H. Sensors for gesture recognition systems[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2012, 42(3): 277-290.
[6] Grimes G J. Digital data entry glove interface device: US4414537[P].1983-11-08.
[7] 苏本跃, 郑丹丹, 盛敏. 基于函数型数据时间序列建模的单传感器日常行为识别[J]. 模式识别与人工智能, 2018, 31(7): 653-661.
Su B Y, Zheng D D, Sheng M. Daily behavior recognition with single sensor based on functional time series data modeling[J]. Pattern Recognition and Artificial Intelligence, 2018, 31(7): 653-661.
[8] Oyedotun O K, Khashman A. Deep learning in vision-based static hand gesture recognition[J]. Neural Computing and Applications, 2017, 28(12): 3941-3951.
[10] SangiP, MatilainenM, SilvénO. Rotation tolerant hand pose recognition using aggregation of gradient orientations[M] ∥Lecture Notes in Computer Science. Cham: Springer International Publishing, 2016: 257- 267.
[11] MohantyA, Rambhatla SS, Sahay RR. Deep gesture: static hand gesture recognition using CNN[M] ∥Advances in Intelligent Systems and Computing. Singapore: Springer Singapore, 2016: 449- 461.
[12] Fang B, Sun F C, Liu H P, et al. 3D human gesture capturing and recognition by the IMMU-based data glove[J]. Neurocomputing, 2018, 277: 198-207.
[13] 孟勃, 刘雪君, 王晓霖. 基于四元数时空卷积神经网络的人体行为识别[J]. 仪器仪表学报, 2017, 38(11): 2643-2650.
Meng B, Liu X J, Wang X L. Human body action recognition based on quaternion spatial-temporal convolutional neural network[J]. Chinese Journal of Scientific Instrument, 2017, 38(11): 2643-2650.
[14] Wu X F, Zhang J X, Xu X C. Hand gesture recognition algorithm based on faster R-CNN[J]. Journal of Computer-Aided Design & Computer Graphics, 2018, 30(3): 468-476.
[15] He KM, GkioxariG, DollárP, et al.Mask R-CNN[C]∥2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice, Italy.New York: IEEE Press, 2017: 2980- 2988.
[16] RedmonJ, DivvalaS, GirshickR, et al.You only look once: unified, real-time object detection[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE Press, 2016: 779- 788.
[17] Peng Y Q, Zhao X S, Tao H F, et al. Hand gesture recognition against complex background based on deep learning[J]. Robot, 2019, 41(4): 534-542.
[18] Fu CY, LiuW, RangaA, et al.( 2018-12-14)[2019-12-12]. https:∥arxiv.org/abs/1701.06659.htm.
[19] Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
[20] 陈幻杰, 王琦琦, 杨国威, 等. 多尺度卷积特征融合的SSD目标检测算法[J]. 计算机科学与探索, 2019, 13(6): 1049-1061.
Chen H J, Wang Q Q, Yang G W, et al. SSD object detection algorithm with multi-scale convolution feature fusion[J]. Journal of Frontiers of Computer Science and Technology, 2019, 13(6): 1049-1061.
[21] He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[J]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 770-778.
[22] SimonyanK, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. ( 2015-04-10)[2019-12-12]. https:∥arxiv.org/abs/1409. 1556.
Article Outline
姚炜铭, 王晓华, 吴楠. 基于改进SSD模型的缝纫手势图像检测方法[J]. 激光与光电子学进展, 2020, 57(18): 181017. Weiming Yao, Xiaohua Wang, Nan Wu. Sewing Gesture Image Detection Method Based on Improved SSD Model[J]. Laser & Optoelectronics Progress, 2020, 57(18): 181017.