时间:2024-05-04
雷明焕 何高明
(梧州学院 广西壮族自治区梧州市 543002)
根据第六次全国人口普查我国总人口数,推算2010年末我国残疾人总人数8502万人。其中听力残疾2054万人;言语残疾130万人[1]。面对如此巨大的残疾人基数,我国积极推出政策以帮助残疾人更快更好融入正常生活,其中科技部着力推进助残、惠残产品研发,通过“主动健康和老龄化科技应对”和“生物医用材料研发与组织器官修复替代”重点专项,部署开展康复辅助器具、人工组织器官修复材料等研发[2]。积极响应国家号召,研究为辅助残疾人与正常人群之间的简便手语交流,基于深度学习技术开发设计用于聋哑人辅助的中国标准手语视频分类方法,构建手语使用者与正常人群体的简便日常交流方案,意义非凡。手语“你好”语句例图如图1所示。
图1:手语“你好”语句例图[3]
手语识别分类问题可归类为连续动作的识别问题,国内外学者对此展开有较多的研究,其中多以穿戴设备方法为主。例如刘闯闯等[4],依靠2个肌电信号采集传感器和1个六轴陀螺仪传感器构建姿态数据采集装置,最终结果为单词(字)平均识别率97.6%。曹书敏[5],提出了一种基于IMU惯性传感器的可穿戴设备的手势识别系统,通过手部动作加速度量识别动作,其实测数据平均识别率为91.75%。Zin Thi Thi等[6],运用深度相机从UV视差图中提取帧深度信息来定位人,通过DMA(Depth motion appearance)信息来训练SVM分类器,最终可在120帧的视频中对单帧动作识别平均识别率为98.3%。梁鹏[7]使用微软Kinect智能摄像机设备捕获提取人体骨骼特征,将连续动作序列切割为单帧静态动作,基于静态K均值算法对这些特征进行聚类,选择隐马尔可夫模型进行姿态识别,最终对四类特定动作的平均识别率为93.75%。闵亚荣等[8],使用多个Kinect构成多角度识别系统,基于人体骨骼特征定位,利用卡尔曼滤波算法对多角度的数据进行融合,结合动态时间规划算法匹配人物的动作序列。
分析基于硬件的方法,由于其不便捷且高成本的特点,在日常生活中经常难以运用,出于轻量化的需求,研究使用深度学习结合机器视觉方案设计手语动作视频分类方法。深度学习是新兴的机器学习方法,可从有限样例中,通过算法总结出一般性的规律,并可以应用到新的未知数据上[9]。研究基于tensorflow 2.4开发软件[10]构建适用于手语视频分类问题的神经网络模型,使用经过正确标识的手语视频数据集对模型进行训练,训练后的模型可用于分类特定范围的手语视频。
手语视频数据从中国科学技术大学公开提供的标准中国手语数据集[11]中获取,选取10种手语语句类别,每类200个样本构成训练数据集。该数据集动作标准、拍摄参数设置合理科学,适合于作为手语视频识别分类问题的训练集。
1.1.1 数据增强
数据集样本量偏小,难以满足模型训练的需求,需要进行数据增强,让有限的数据通过人工处理以产生更多的等价数据来扩充训练数据集。研究在模型训练数据集中添加了经过尺寸放大及随机裁剪后的人工数据,这种数据增强方式一方面可以增加样本量,另一方面又免于产生过多的人为数据噪声。数据增强例图如图2所示。
图2:数据增强例图
1.1.2 视频关键帧提取
保证模型需要的固定长度10帧的输入序列,必要的一步预处理是关键帧提取,算法设定一个滑动窗口置于视频帧序列首,对窗口内的所有帧做帧间差值并提取变化最大的一帧,帧间差值计算效果如图4所示,然后窗口滑动到下一批次图像序列,直到整个视频遍历完毕,得到关键帧序列,通过递归调用关键帧提取算法,可以得到固定长度10的图像输入序列。完整关键帧提取算法流程如图3所示。
图3:提取关键帧流程图
图4:帧间差值计算例图
深度学习视频分类有多种实现方案,例如:3DCNN网络、CNN-RNN融合网络、双流网络等。基于轻量化和实时性的需求,选择较为广泛运用的CNN-RNN融合网络方案用以设计手语视频分类模型。
研究基于MobileNetV2[12]和GRU[13]网络结构实现融合网络方案,使用MobileNetV2模块作为二维图像特征提取器,使用GRU模块作为帧序列间特征提取器,在提取到每一帧的信息后用GRU进行连续图像序列的前后线性和非线性关系串联分析。
1.2.1 MobileNetV2网络结构
MobileNetV2是谷歌针对于移动和嵌入式深度学习部署而专门开发的新型CNN网络,具体结构如表1所示。其提出的新型层结构:具有线性瓶颈的反向残差(the inverted residual with linear bottleneck),特点是更轻量级和更快速的前向传播,与其他分类网络的性能对比如表2所示。
表1:MobileNet模型主体结构
表2:不同主流分类网络在ImageNet数据集上的图像分类性能对比
融合网络使用预训练过的MobileNetV2,通过tensorflow model zoo获取在ImageNet(ILSVRC-2012-CLS)数据集上经过预训练的MobileNetV2网络,减少原始模型滤波器数至35%,并删去最后的Softmax层。
1.2.2 GRU网络结构
GRU是一种用于解决时间序列上前后关键点长期依赖问题而提出的RNN网络,相比一般RNN增加了细胞状态(cell state)和门机制。细胞状态用来在相距很远的时间步中记忆权重参数,使得一些特征能够跨越极长的时间步产生联系,选择GRU可以满足对手语视频的时间特征提取需求。GRU节点结构如图5所示。
图5:GRU节点结构
1.2.3 MobileNetV2-GRU融合网络结构
融合网络结构以固定长度10张的关键帧序列作为输入数据,视频分类标签作为输出。将MobileNetV2置于每一个时间步上作为特征提取器,每次输入一组10帧的关键帧序列,对每一帧进行特征提取得到10个输出,这10个输出在每个时间步中分别输入给双向GRU网络,10个时间步过后双向GRU网络各输出一次结果,这个结果经过输出层得到模型输出。
softmax多分类输出层前添加BN(Batch normalization)归一化层和Dropout层,并在全连接层中使用L2正则化激活函数防止严重过拟合问题。融合网络结构如图6所示。
图6:MobileNetV2-GRU融合网络结构图
研究采用迁移学习方法对模型进行训练。第一次训练锁定MobileNetV2网络,开放剩余其余层参数,模型冻结可以有效保存原网络参数在大数据集上的训练成果,防止底层通用特征被覆盖学习造成重复学习。第二次训练则开放全部参数,对模型整体参数进行微调。迁移学习方法可以有效缩小训练的时间花费,且使得模型具有更好的泛化能力,不易引起过拟合问题。训练流程如图7所示。
图7:MobileNetV2-GRU融合模型迁移学习流程图
超参数设定:第一次训练学习率为0.01、训练批次为20。第二次训练学习率为0.0001、训练批次为60。动态学习率(EarlyStopping)设定为5个批次内精度没有上升则学习率减少50%,在训练前期保持较高的学习率从而跳过loss局部最优值,在训练后期则可以减少学习率得到较小的loss下降步长从而能够得到整体最优值。两次训练中模型的精度以及loss值变化趋势如图8和图9所示。
图8:MobileNetV2-GRU模型精度
图9:MobileNetV2-GRU模型loss
使用测试数据集对模型识别分类效果进行验证,包括10种语句类别,每种样本量为25,单个视频时长约为10-13s,使用RGB色域,由11个不同的拍摄者参与制作。验证结果如表3所示。
表3:MobileNetV2-GRU模型测试集验证结果
验证结果显示模型最低识别精度为0.60,最高识别精度为0.95,平均精度为0.856,说明模型具有一定条件下较好的识别准确率。
对比其他已知相关研究:如王鹏程[14],利用OpenPose进行姿态识别,基于CNN-LSTM融合网络,构建的舞蹈视频分类模型,平均精度为0.6859,丁小雪[15]对视频提取光流信息,利用CNNRNN双路光流模型对视频手势进行识别,平均精度为0.925,周传[16]提出的基于双流改进C3D网络的视频人物行为分类方法,在UCF101数据集上的平均精度为0.8923。对比结果显示,双路GRU-MobileNet融合模型对手语动作视频有较好的识别精度。
算法精度不仅与模型的精度相关,还依赖于关键帧的正确提取。研究采用了基于帧间差值计算的关键帧提取算法,该算法可以较为快速准确地识别像素大范围变动的帧,在识别手语动作变换关键帧的问题上该算法可以获得较准确的结果。
对于时间特征信息的提取采用双向GRU网络,双向GRU网络将对视频进行正向和反向的特征识别,从而更易于学习动作变换的前后联系,应用在手语识别问题上可以得到较为准确的结果。
分析测试数据集的验证结果表明模型平均精度较好,但是不同类别之间的精度变化区间较大。初步判断是模型输入序列过短导致,10帧的关键帧序列长度并不能完全提供不同类别视频之间的差异信息,下一步研究将围绕调整模型输入序列角度开展。
(1)研究采用中国科学技术大学公开提供的标准中国手语数据集构建训练集,对训练样本进行关键帧提取等预处理步骤,构建MobileNetV2-GRU融合网络模型进行训练,获得了通过视频进行手语语句分类的手语视频识别分类模型。
(2)选取由11个不同人员分别拍摄,共计10种别的250个手语语句视频构建测试集。模型在测试集上的验证结果为:模型平均精度0.856,平均loss 0.578。结果显示模型具有较好的检测精度。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!