基于深度学习的红外热人体姿态识别方法
技术领域
本发明为红外热人体姿态估计识别方法,具体涉及一种基于深度学习的红外热人体姿态识别方法设计,属于人工智能和机器学习
技术领域
。背景技术
随着近年来人工智能领域的飞速发展,模式识别、机器学习、深度学习等相关技术也日益成熟,并且开始被广泛地应用于人们生产生活各个领域、开始逐步影响和改变人类的生产生活方式。
人体姿态能表达非常丰富的含义,人体姿态估计是指还原给定图片或者视频中人体关节点位置的过程,其对于描述人体姿态,预测人体行为起到至关重要的作用。近年来,随着深度学习技术的发展,人体姿态估计越来越广泛地运用到计算机视觉的各个领域之中,例如人机交互、行为识别以及智能监控等等。
随着市场应用需求的凸显,可见光图片身份识别技术已渐渐无法满足日益复杂的应用环境。与可见光图像相比,红外图像对于解决光照变化、阴影和夜间可视性等影响传统计算机视觉的问题提供了有力的支持。基于可见光图像视频的姿态识别系统仅能在光线充足、视物清晰的条件下正常工作,在亮度不佳以及遭遇恶劣天气环境的情况下便失去作用,难以实现系统不间断的用户需求。基于深度学习的红外热成像人体姿态识别系统不仅能排除烟、尘、雾和雨雪等可见度低的恶劣天气干扰,更能实现昼夜连续工作,其在民用及军事领域的应用会越来越广泛,具有重要的研究价值。
综上所述,设计一种在可见光条件下人体姿态识别技术无法满足需求的情况下,具有识别速度快、抗干扰能力强、有优异识别性能等优点的新的人体姿态识别技术,也就成为了本领域内技术人员所期望解决的一项技术问题。
发明内容
鉴于现有可见光条件下的人体姿态识别技术存在上述缺陷,本发明的目的是提出一种基于深度学习的红外热人体姿态识别方法,具体如下。
一种基于深度学习的红外热人体姿态识别方法,包括如下步骤:
S1、数据集建立步骤,基于机器人视觉感知与控制技术国家工程实验室,采用FLIRA6702sc热像仪拍摄单人或多人红外热人体姿态图像及视频数据集并将其按数据量比例8:1:1随机划分为训练集、验证集以及测试集,采用图片标注工具对以上数据集进行标注,得到数据集的标签xml格式文件,再转换为txt格式进而转换为coco数据格式;
S2、模型建立步骤,采用基于darknet53网络的yolov3目标检测模型作为训练网络模型,设置上述网络模型的超参数并采用基于voc2012数据集的yolov3模型权重作为预训练权重进行迁移学习,随后利用所述网络模型对训练集、验证集内的数据进行反复训练与验证,得到基于红外热人体姿态识别的yolov3模型训练权重,将权重导入预测与评估MAP程序,根据预测及评估结果不断调整网络参数,建立基于深度学习pytorch框架的红外热人体姿态识别模型;
S3、模型使用步骤,使用所述yolov3模型对所述红外热人体姿态数据集内的静态图像及动态视频进行处理,最终得到静态识别以及动态识别结果。
优选地,S1所述数据集建立步骤具体包括:
S11、基于机器人视觉感知与控制技术国家工程实验室,采用FLIR A6702sc热像仪拍摄单人或多人红外热人体姿态图像及视频数据集,姿态识别数据集包括单人姿态识别与多人姿态识别,动作种类包括单人动作“行走”、“站立”、“跳跃”、“出拳”、“踢腿”或“捡东西”,多人动作“行走”、“站立”、“挥手”、“握手”、“拥抱”或“击掌”等人体姿态动作。每种行为采集自不同的志愿者和/或不同的角度,包括前、后、左、右,数据集通过动态行为数据集中的视频抽帧或者通过平移或者水平翻转等数据增强方法扩充按以上动作分类,保证每个类别的样本数量基本一致。每个所述红外热人体姿态图像样本采用图片标注工具labelimg进行人工标注标签,将全部样本及其对应标签进行汇总得到数据处理后的红外热人体姿态数据集;
S12、按照数据量划分比例训练集∶验证集∶测试集=8:1:1对所述数据集中的红外热人体姿态图像样本进行随机划分,分别得到训练集、验证集以及测试集三个子数据集,在每个子数据集中每个类别的样本数量基本一致;
S13、利用python中的pytorch框架下的图像预处理模块torchvision对所述训练集内的红外热人体姿态样本进行图像归一化和数据增强处理,对图像样本进行旋转、翻转、色域变换、调整大小等操作以增加所述训练集内的数据量,随后通过voc2yolo3程序将人体姿态图像样本标签打乱并将标签xml文件转化为标准的voc数据格式生成txt文件,再通过voc_annotation.py将上述txt文件转化为coco数据格式,实现对所述训练集、验证集以及测试集的数据处理。
优选地,S2所述模型建立步骤具体包括:
S21、首先使用基于voc2012数据集上训练的yolov3网络模型权重作为模型预训练权重进行特征迁移,设置所述yolov3模型的超参数,通过主干特征提取网络darknet53对输入图像进行特征提取,在特征利用部分一共提取三个特征层,三个特征层进行5次卷积处理,处理完后一部分用于输出该特征层对应的预测结果,一部分用于进行反卷积UmSampling2d后与其它特征层进行结合。然后对所述训练集、验证集内的红外热人体姿态数据进行反复训练、验证,得到红外热人体姿态识别yolov3模型;
S22、将经过S21处理后得到的即训练好的网络模型权重进行筛选,选择totalloss与valloss最低的作为该网络模型权重,然后将该权重导入评估程序,即可得到该模型的MAP以及各类别的召回率、准确率和精度,根据以上指标所需要求可相应修改网络参数重新训练直至满足需求;使用tensorflow框架下的TensorBoard可视化工具模块绘制trainloss、valloss曲线,TensorBoard是TensorFlow提供的实用工具。
S23、利用S21所述测试集内的数据包括静态图像和动态视频对所述预训练数据集处理模型进行测试,得到完善的数据集处理模型。
优选地,S21特征提取部分具体包括:yolov3目标检测模型采用Darknet-53作为主干特征提取网络结构,Darknet-53由DarknetConv2D与残差网络Residual模块组成,大量使用残差的跳层连接,进行五次下采样,步长为2,卷积核大小为3,特征维度分别为64、128、256、512与1024,不使用平均池化层与全连接层,每一次卷积的时候进行L2正则化,完成卷积后进行BatchNormalization标准化与LeakyReLU激活函数。
优选地,S21特征利用部分具体包括:所述yolov3目标检测模型特征利用部分提取多特征层进行目标检测,一共提取三个特征层,三个特征层位于主干部分darknet53的不同位置,分别位于中间层,中下层,底层,三个特征层的shape分别为(52,52,256)、(26,26,512)、(13,13,1024)。三个特征层进行5次卷积处理,处理完后一部分用于输出该特征层对应的预测结果,一部分用于进行反卷积UmSampling2d后与其它特征层进行结合。
优选地,S2所述超参数至少包括要输入的数据集中图像样本的尺寸、batch大小、学习率大小、迭代次数以及类别数。
优选地,S22具体包括:采用编译函数对所述yolov3目标检测模型模型进行编译处理,预训练权重采取基于VOC2012数据集的yolov3模型权重,损失函数选用交叉熵损失函数、优化器选用Adam损失函数优化器,冻结网络参数训练50个epoch后、在解冻所有参数训练50个epoch。结合优化更新后的所述训练集、验证集内的数据对所述初步数据集处理模型进行反复训练、验证,不断调节网络参数得到效果更好的预训练数据集处理模型。调节网络参数规则主要依据trainloss、valloss曲线,根据曲线趋势以及损失数值适当调节学习率大小、迭代次数与batch大小。
优选地,S23具体包括:利用所述测试集内的数据对所述yolov3目标检测模型进行测试,使用tensorflow框架下的TensorBoard可视化工具模块绘制trainloss、valloss曲线,通过绘制MAP程序对测试集数据进行测试得到人体姿态各类别的精度AP值,准确率值、召回率值以及平均精度MAP值,最终得到完善的数据集处理模型。
优选地,S3具体包括:通过调用predicit.py程序可以对指定文件夹内的所有图像进行红外热人体姿态识别,输出图像的路径、所属类别、概率以及目标检测结果图像。通过调用yolo_video.py程序可以对人任意格式avi/mp4视频首先以指定帧数进行抽帧图像处理,然后将上述图像导入训练好的yolo预测程序并输出画框贴标图像,最终将以上输出图像以相同帧率自动合成视频即完成识别视频。
本发明的优点主要体现在以下几个方面:
本发明所提出的一种基于深度学习的红外热人体姿态识别方法,通过将机器视觉与深度学习技术相融合的手段,实现了对于基于红外热图像的条件下人体姿态估计,极大程度的弥补了现有的可见光图像识别技术的缺陷。本发明的方法不仅显著地提升了黑暗环境或者恶劣天气条件下的识别率与准确率,而且基于热成像深度学习的方法可以适应黑暗环境等复杂应用场景,具有实际应用前景。
此外,本发明的方法也为同领域内的其他相关问题提供了参考,可以以此为依据进行拓展延伸和深入研究,将类似的思路和操作应用于其他的操作平台,应用于民用及军事领域的应用中,具有十分广阔的应用前景和很高的实际应用价值。
以下便结合实施例附图,对本发明的
具体实施方式
作进一步的详述,以使本发明技术方案更易于理解、掌握。
附图说明
图1为本发明方法的整体流程示意图;
图2为本发明方法的红外热成像人体姿态数据集示意图;
图3为本发明方法的红外热成像人体姿态数据集标注工具示意图;
图4为本发明在训练数据集时训练集trainloss曲线图;
图5为本发明在训练数据集时验证集valloss曲线图;
图6为本发明在测试数据集时测试集各种姿态的平均准确率Precision及平均精度MAP图;
图7~16为本发明在测试数据集时测试集各种姿态的识别结果图;
具体实施方式
本发明揭示了一种基于深度学习的红外热人体姿态识别方法,方案细节如下。
如图1所示,一种基于深度学习的红外热人体姿态识别方法,包括如下步骤:
S1、数据集建立步骤,基于机器人视觉感知与控制技术国家工程实验室,采用FLIRA6702sc热像仪拍摄单人或多人红外热人体姿态图像及视频数据集并将其按数据量比例8:1:1划分为训练集、验证集以及测试集,当统一拍摄的所有图片的分辨率都是一样大小,按图片的数目划分即可,采用图片标注工具对以上数据集进行标注,得到数据集的标签xml格式文件,再转换为txt格式进而转换为coco数据格式;
S2、模型建立步骤,采用基于darknet53网络的yolov3目标检测模型作为训练网络模型,设置上述网络模型的超参数并采用基于voc2012数据集的yolov3模型权重作为预训练权重进行迁移学习,随后利用所述网络模型对训练集、验证集内的数据进行反复训练与验证,得到基于红外热人体姿态识别的yolov3模型训练权重,将权重导入预测与评估程序,即S23中描述的MAP程序,根据预测及评估结果不断调整网络参数,建立基于深度学习pytorch框架的红外热人体姿态识别模型;
S3、模型使用步骤,使用所述yolov3模型对所述红外热人体姿态数据集内的静态图像及动态视频进行处理,最终得到静态识别以及动态识别结果。
S1所述数据集建立步骤具体包括:
S11、基于机器人视觉感知与控制技术国家工程实验室,采用FLIR A6702sc热像仪拍摄单人或多人红外热人体姿态图像及视频数据集,姿态识别数据集包括单人姿态识别与多人姿态识别,动作种类包括单人动作“行走”、“站立”、“跳跃”、“出拳”、“踢腿”、“捡东西”,多人动作“行走”、“站立”、“挥手”、“握手”、“拥抱”、“击掌”等人体姿态动作。每种行为采集自不同的志愿者和/或不同的角度,包括前、后、左、右,数据集通过动态行为数据集中的视频抽帧或者通过平移或者水平翻转等数据增强方法扩充按以上动作分类,保证每个类别的样本数量基本一致。每个所述红外热人体姿态图像样本采用图片标注工具labelimg进行人工标注标签,将全部样本及其对应标签进行汇总得到数据处理后的红外热人体姿态数据集;
S12、按照划分比例训练集∶验证集∶测试集=8:1:1对所述数据集中的红外热人体姿态图像样本进行随机划分,分别得到训练集、验证集以及测试集三个子数据集,在每个子数据集中每个类别的样本数量基本一致。训练集:验证集:测试集=8:1:1,在训练集,验证集,测试集三个子数据集里每种姿态的图像数目也要基本保持一致。例如假设训练集1000照片,共十种姿态,即优选情况下每种姿态一百张即可;
在本发明的实施例中训练数据人体姿态种类为“行走”、“站立”、“跳跃”、“出拳”、“踢腿”、“捡东西”、“挥手”、“握手”、“拥抱”、“击掌”的红外热成像人体姿态样本,每类采集300个,共300*10=3000个,并将每一类的样本按照比例8:1:1随机划分成训练集(2400个)、验证集(300个)和测试集(300个)。同时通过图片标注工具labelimg标注工具分别对数据集进行标签的标注。
S13、利用python中的pytorch框架下的图像预处理模块torchvision对所述训练集内的红外热人体姿态样本进行图像归一化和数据增强处理,对图像样本进行旋转、翻转、色域变换、调整大小等操作以增加所述训练集内的数据量,随后通过voc2yolo3程序将人体姿态图像样本标签打乱并将标签xml文件转化为标准的voc数据格式生成txt文件,再通过voc_annotation.py将上述txt文件转化为coco数据格式,实现对所述训练集、验证集以及测试集的数据处理。
S2所述模型建立步骤具体包括:
S21、首先使用基于voc2012数据集上训练的yolov3网络模型权重作为模型预训练权重进行特征迁移学习,设置所述yolov3模型的超参数,通过主干特征提取网络darknet53对输入图像进行特征提取,在特征利用部分一共提取三个特征层,三个特征层进行5次卷积处理,处理完后一部分用于输出该特征层对应的预测结果,一部分用于进行反卷积UmSampling2d后与其它特征层进行结合。然后对所述训练集、验证集内的红外热人体姿态数据进行反复训练、验证,得到红外热人体姿态识别yolov3模型;
上述操作可以具体为,所述yolov3目标检测模型采用Darknet-53作为主干特征提取网络结构,Darknet-53由DarknetConv2D与残差网络Residual模块组成,darknet53中的残差卷积就是进行一次3*3、步长为2的卷积,然后保存该卷积layer,再进行一次1*1的卷积和一次3*3的卷积,并把这个结果加上layer作为最后的结果。然后大量使用残差的跳层连接,进行五次下采样,步长为2,卷积核大小为3,特征维度分别为64、128、256、512与1024,不使用平均池化层与全连接层,每一次卷积的时候进行L2正则化,完成卷积后进行BatchNormalization标准化与LeakyReLU激活函数。ReLU是将所有的负值都设为零,相反,LeakyReLU是给所有负值赋予一个非零斜率。Leaky ReLU激活函数以数学的方式我们可以表示为如下公式:
所述yolov3目标检测模型特征利用部分提取多特征层进行目标检测,一共提取三个特征层,三个特征层位于主干部分darknet53的不同位置,分别位于中间层,中下层,底层,三个特征层的shape分别为(52,52,256)、(26,26,512)、(13,13,1024)。三个特征层进行5次卷积处理,处理完后一部分用于输出该特征层对应的预测结果,一部分用于进行反卷积UmSampling2d后与其它特征层进行结合。
所述超参数至少包括要输入的数据集中图像样本的尺寸(input_shape)、batch大小(batch_size)、迭代次数(epochs)、学习率(lr)以及类别数(num_classes)。在本发明的实施例中,设置要输入的数据集中图像样本的尺寸input_shape=416*416*3;设定batch大小Freeze-batch_size=8,UnFreeze-batch_size=4;通常为2^N,如32、64、128...;设定类别数num_classes=10;设定迭代次数Freeze_epochs=50,UnFreeze_epochs=100;设定学习率Freeze_lr=1e-3,UnFreeze_lr=1e-4。
所述迁移学习是指一种机器学习方法,就是把针对数据A训练的模型作为初始点,用于针对数据B的模型的开发和设计过程中。本发明对VOC2012数据集上预训练的yolov3模型进行迁移学习。
S22、将经过S21处理后得到的即训练好的网络模型权重进行筛选,选择totalloss与valloss最低的作为该网络模型权重,然后将该权重导入评估程序,即可得到该模型的MAP以及各类别的召回率、准确率和精度,根据以上指标所需要求可相应修改网络参数重新训练直至满足需求;使用tensorflow框架下的TensorBoard可视化工具模块绘制trainloss、valloss曲线。
上述操作可以具体为,采用编译函数对所述yolov3目标检测模型模型进行编译处理,预训练权重采取基于VOC2012数据集的yolov3模型权重,损失函数选用交叉熵损失函数、优化器选用Adam损失函数优化器,冻结网络参数训练50个epoch后、在解冻所有参数训练50个epoch。结合优化更新后的所述训练集、验证集内的数据对所述初步数据集处理模型进行反复训练、验证,得到预训练数据集处理模型。
所述交叉熵损失函数是一个平滑函数,其本质是信息理论中的交叉熵在分类问题中的应用,其公式为
Adam损失函数优化器是一种计算能每个参数的自适应学习率的优化方法。即存储了过去梯度的平方vt的指数衰减平均值,又保持了过去梯度mt的指数衰减平均值:
其中,mt为指数移动均值,vt为平方梯度,gt为时间步序列上梯度
如果mt和vt被初始化为0向量,那它们就会向0偏置,所以做了偏差校正,通过计算偏差校正后的mt和vt来抵消这些偏差:
梯度更新规则为:
超参数设定值为:
β1=0.9,β2=0.999,ε=10e-8。
S23、利用S21所述测试集内的数据包括静态图像和动态视频对所述预训练数据集处理模型进行测试,得到完善的数据集处理模型。
上述操作可以具体为,利用所述测试集内的数据对所述yolov3目标检测模型进行测试,使用tensorflow框架下的TensorBoard可视化工具模块绘制trainloss、valloss曲线,通过绘制预测与评估程序MAP程序对测试集数据进行测试得到人体姿态各类别的精度AP值,准确率值、召回率值以及平均精度MAP值,最终得到完善的数据集处理模型。
S3、模型使用步骤,使用所述yolov3模型对所述红外热人体姿态数据集内的静态图像及动态视频进行处理,最终得到静态识别以及动态识别结果。
上述操作可以具体为,通过调用predicit.py程序可以对指定文件夹内的所有图像进行红外热人体姿态识别,输出图像的路径、所属类别、概率以及目标检测结果图像。通过调用yolo_video.py程序可以对人任意格式avi/mp4视频首先以指定帧数进行抽帧图像处理,然后将上述图像导入训练好的yolo预测程序并输出画框贴标图像,最终将以上输出图像以相同帧率自动合成视频即完成识别视频。
本发明所提出的一种基于深度学习的红外热人体姿态识别方法,通过将机器视觉与深度学习技术相融合的手段,实现了对于基于红外热图像的条件下人体姿态估计,极大程度的弥补了现有的可见光图像识别技术的缺陷。本发明的方法不仅显著地提升了黑暗环境或者恶劣天气条件下的识别率与准确率,而且基于热成像深度学习的方法可以适应黑暗环境等复杂应用场景,具有实际应用前景。
具体而言,本发明的方法以基于VOC2012数据集的预训练的yolov3网络作为基础网络,通过pytorch平台实现算法流程。
通过评估本发明的方法在处理不同类型的图像数据集时的实际表现可以得知,本发明的方法在不同数据集上均具有较好的泛化性能,在单人图像、多人图像以及单多人混合图像上的平均精度MAP分别达到了90.64%、84.01%、87.48%。可以说,本发明的方法为可见光条件下的人体姿态识别在黑暗环境或者恶劣天气条件下存在的缺陷提供了强有力的技术支持。
此外,本发明的方法也为同领域内的其他相关问题提供了参考,可以以此为依据进行拓展延伸和深入研究,将类似的思路和操作应用于其他的操作平台,应用于民用及军事领域的应用中,具有十分广阔的应用前景和很高的实际应用价值。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神和基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
最后,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种适用于地面目标温度的高精度估算方法