一种基于深度强化学习的危险行为识别方法与流程

文档序号:30607691发布日期:2022-07-01 22:49阅读:495来源:国知局
一种基于深度强化学习的危险行为识别方法与流程

1.本发明属于目标检测和图像识别领域,具体的说是一种基于深度强化学习的危险行为识别方法。


背景技术:

2.近年来,随着经济取得的巨大发展,人民的生活水平发生了翻天覆地的变化,人们在享受经济带来的现代化生活之外,也追求着自己的兴趣爱好。其中,钓鱼就是比较受欢迎的运动之一。最早的钓鱼是狩猎的一种形式,骨钓鱼据历史考证距今有六千多年的历史,而现今成为一项活动。但是,在许多池塘等钓鱼环境中往往伴随着高压电线,因此钓鱼活动也就伴随着一定的危险性。所以,如何提醒钓鱼者身处危险具有重要意义。针对危险提醒,首先就需要判断有人在高压附近钓鱼,因此需要一种方法能够检测钓鱼行为这种具有潜在危险的行为动作,即主要是对鱼竿进行目标检测和人体姿态行为检测。
3.目标检测领域的研究最早可以追溯到1991年提出的人脸检测算法。随着近些年硬件算力的提高、深度学习的发展和高质量数据集的公开,研究者们提出越来越多的目标检测算法。目标检测算法大致分为两个阶段:传统的目标检测算法和基于深度学习的目标检测算法。第一阶段在2000年前后,这期间所提出的方法大多基于滑动窗口和人工特征提取,存在计算复杂度高以及复杂场景下鲁棒性差的缺陷。第二阶段是2014年至今,以2014年提出的r-cnn算法为开端。这些算法利用深度学习技术自动的抽取输入图像中的隐藏特征,对样本进行更高精度的分类和预测。在r-cnn之后,有涌现出fast r-cnn、faster r-cnn、sppnet、yolo系列等众多基于深度学习的图像目标检测算法。但是针对鱼竿这种细长物的目标检测,现有算法仍存在不足,并不能十分准确的定位出物体的位置。也有算法提出了针对车道线这种细长结构的目标检测,通过直接预测参数得到车道线位置,并达到了比较好的结果,但是并不适用于钓鱼时这种特定场景中鱼竿特征不明显、位置不固定的情况。所以,设计一种针对危险行为管控的方法,如钓鱼时能够准确且快速的鱼竿检测和动作识别方法就具有重要意义。


技术实现要素:

4.本发明是为了解决上述现有技术存在的不足之处,提出一种基于深度强化学习的危险行为识别方法,以期能实时监测危险行为人员,得到危险行为者动作,从而能避免危险行为人员发生危险,并能够对危险情况及时反馈。
5.本发明为达到上述发明目的,采用如下技术方案:
6.本发明一种基于深度强化学习的危险行为识别方法的特点在于,包括如下步骤:
7.步骤1、获取危险行为视频并进行预处理,得到危险行为图像数据集,按预设的比例将所述危险行为图像数据集划分为用于鱼竿检测的图像数据集和用于鱼竿定位的图像数据集;
8.对所述用于鱼竿检测的图像数据集进行人工标注后,按一定比例划分为鱼竿检测
训练集和鱼竿检测验证集;
9.步骤2、建立用于检测鱼竿的鱼竿检测器、用于鱼竿定位的鱼竿定位器、用于检测人体姿态的姿态检测器;
10.所述鱼竿检测器的组成包括:resnet-101主干网络、多尺度可形变自注意力模块、编码器、解码器;
11.所述鱼竿定位器的组成包括:一个actor网络、两个critic网络、一个目标actor网络、两个目标critic网络、空间卷积神经网络;
12.所述空间卷积神经网络包括:卷积层、空间信息传递模块和全连接层;
13.所述空间信息传递模块包括:从上到下的特征提取层scnn_d、从下到上的特征提取层scnn_u、从左到右的特征提取层scnn_r和从右到左的特征提取层scnn_l;
14.所述姿态检测器是由尺度感知的高分辨网络构成,并包括:resnet主干网络和高分辨率网络;
15.所述高分辨网络是由并行连接的若干个多分辨子网构成,且若干个多分辨子网的分辨率由高到低排序;
16.步骤3、将所述鱼竿检测训练集送入所述鱼竿检测器中进行训练,并通过鱼竿检测验证集进行验证,从而得到训练好的鱼竿检测器;
17.步骤4、将所述用于鱼竿定位的图像数据集送入所述训练好的鱼竿检测器中进行鱼竿目标检测,得到每个图像的鱼竿预测包围框并构成定位数据集,再对所述定位数据集进行人工标注后,按照一定比例划分为定位训练集和定位验证集;
18.步骤5、将所述定位训练集送入鱼竿定位器中进行训练,并通过定位验证集进行验证,从而得到训练好的鱼竿定位器;
19.步骤6、鱼竿检测和人体动作识别;
20.步骤6.1、定义危险行为动作种类,包括:无危险行为、潜在危险行为、收杆动作和甩杆动作;定义缓存队列queue,并用于存放连续t帧的姿态信息;
21.步骤6.2、将待检测的危险行为视频中的一帧图像送入训练好的鱼竿检测器进行检测,得到当前帧图像的鱼竿目标包围框;
22.步骤6.3、将当前帧图像的鱼竿目标包围框送入训练好的鱼竿定位器进行定位,得到定位后的鱼竿参数,并作为鱼竿目标;
23.步骤6.5、将当前帧图像送入姿态检测器中进行姿态检测,得到人体姿态关键点:
24.所述当前帧图像经过resnet主干网络进行特征提取,得到高分辨率特征图;所述高分辨率特征图输入所述高分辨率网络中,并经过并行连接的若干个多分辨率子网络的多尺度特征融合处理,得到高分辨率表示的估计关键点信息,并作为人体姿态关键点;
25.步骤6.6、获取人体姿态关键点中手臂上的关键点信息,从而利用式(1)计算得到当前帧图像的手臂的状态cosθ,并作为姿态信息保存在缓存队列queue中:
[0026][0027]
式(1)中,θ表示手臂中小臂与大臂之间的夹角,d1、d2小臂与大臂的长度,d3表示对边长度;
[0028]
步骤6.7、按照步骤6.2-步骤6.5的过程获取缓存队列queue中连续t帧的姿态信
息,并通过反余弦函数求出危险行为者的手臂夹角θ的变化范围,从而利用式(2)计算危险行为者手臂的动作a:
[0029][0030]
式(2)中,当a=0表示无明显动作,当a=1表示有明显动作,且θ的变化从大到小表示抬手动作,否则表示甩手动作;
[0031]
步骤6.8、若检测到所述鱼竿目标且伴随抬手动作或者甩手动作,则判定为抬杆动作或者甩杆动作,发出高压危险警报;否则,判定为潜在危险行为;若未检测所述鱼竿目标,则判定为未无危险行为。
[0032]
本发明所述的一种基于深度强化学习的危险行为识别方法的特点也在于,所述步骤3包括:
[0033]
步骤3.1、所述鱼竿检测训练集送入鱼竿检测器中,先经过resnet-101主干网络进行多尺度特征提取,得到多尺度特征图;
[0034]
步骤3.2、所述多尺度特征图输入所述多尺度可形变自注意力模块中进行聚合处理,得到聚合多尺度特征图;对所述多尺度特征图进行位置编码后,再与聚合多尺度特征图相加并输入所述编码器中进行编码处理,得到编码后的候选特征向量;
[0035]
步骤3.3、所述候选特征向量输入所述解码器中进行解码处理,得到鱼竿预测目标的包围框;
[0036]
步骤3.4、采用焦点损失函数计算损失,并通过匈牙利匹配算法对所述焦点损失函数进行监督求解,从而得到训练后的鱼竿检测器;
[0037]
步骤3.5、将所述鱼竿检测验证集输入所述训练后的鱼竿检测器中进行预测,得到预测结果,并计算其准确率后与预设的正确率阈值进行对比,若达到正确率阈值或者达到训练迭代次数,则表示得到训练好的鱼竿检测器,并保存模型参数;否则,返回步骤3.1继续对训练后的鱼竿检测器进行训练。
[0038]
所述步骤5包括:
[0039]
步骤5.1、定义动作空间的动作类型包括,旋转动作、平移动作和终止动作;
[0040]
所述旋转动作包括:顺时针方向和逆时针方向旋转;
[0041]
所述平移动作包括:向上平移和向下平移;
[0042]
所述终止动作表示目标经过旋转和平移后的当前位置与期望位置达到所设阈值;
[0043]
步骤5.2、使用随机参数φ初始化actor网络π
φ
,使用随机参数θ1、θ2初始化两critic网络v
θ1
、v
θ2
,再使用随机参数φ

初始化目标actor网络π
φ

、使用随机参数θ1′
、θ2′
初始化两个目标critic网络v
θ1

、v
θ2

,并使φ

=φ、θ1′
=θ1、θ2′
=θ2;
[0044]
步骤5.3、定义当前训练迭代次数为lim,并初始化lim=1;
[0045]
步骤5.4、初始化鱼竿参数为g、动作历史向量为空;
[0046]
步骤5.5、定义当前回合数为lun,并初始化lun=1;
[0047]
步骤5.6、在第lim次迭代的第lun回合下,将所述定位数据集送入鱼竿检测器中,并经过空间卷积神经网络进行图像特征提取,得到编码后的图像特征向量:
[0048]
所述卷积层对所述定位数据集进行特征提取,得到定位特征图;所述上到下的特征提取层scnn_d对定位特征图进行切片,得到特征图d;所述从下到上的特征提取层scnn_u
对特征图d进行切片,得到特征图u;所述从左到右的特征提取层scnn_r对特征图u进行切片,得到特征图r;所述从右到左的特征提取层scnn_l对特征图r进行切片,得到特征图l;所述特征图l经过所述全连接层的处理后,得到编码后的图像特征向量;
[0049]
步骤5.7、将所述鱼竿参数g、动作历史向量和图像编码后的特征向量相加,得到当前环境状态s;
[0050]
步骤5.8、将所述当前环境状态s送入actor网络π
φ
中进行动作选择,得到当前动作a,并将当前动作a保存在动作历史向量中,再通过当前动作a计算得到鱼竿参数的变化,用于更新鱼竿参数g;
[0051]
步骤5.9、将所述当前动作a分别送入critic网络v
θ1
、v
θ2
中进行评价,得到两个动作值q1、q2;
[0052]
步骤5.10、将所述当前环境状态s通过当前动作a进行状态转移得到下一状态s

,记录奖励r,再将状态s

送入目标actor网络π
φ

,得到下一动作a

并分别送入目标critic网络v
θ1

、v
θ2

中进行评价,得到两个目标动作值q
1a

、q
2a

并选取最小值,作为状态s

的目标动作值y


[0053]
步骤5.11、通过式(3)计算当前环境状态s的目标动作值y,并通过均方误差损失函数分别计算与动作值q1、q2之间的损失,从而更新critic网络v
θ1
、v
θ2
的参数θ1、θ2:
[0054]
y=r+γmin(q
1a

,q
2a

)
ꢀꢀꢀ
(3)
[0055]
式(3)中,γ表示学习率;
[0056]
步骤5.12、若连续两次更新critic网络,则通过梯度上升法更新actor网络π
φ
的参数φ,否则,不更新actor网络π
φ

[0057]
步骤5.13、通过式(4)进行软更新,更新目标actor网络π
φ

和目标critic网络v
θ1

、v
θ2


[0058][0059]
式(4)中,

表示赋值,τ表示更新比例;
[0060]
步骤5.14、若当前动作a为终止动作或者达到预设的回合次数阈值,结束当前迭代并继续执行步骤5.12;否则,将下一状态s

作为当前环境状态s,并将lun+1赋值给lun后返回步骤5.7顺序执行;
[0061]
步骤5.15、将所述定位验证集送入定位器中进行验证,得到定位精度和定位速度,如果满足预设标准或者达到最大训练迭代次数,则表示得到训练好的鱼竿定位器,并保存最优模型参数;否则,将lim+1赋值给lim后返回步骤5.4顺序执行。
[0062]
与现有技术相比,本发明的有益效果在于:
[0063]
1、本发明采用目标检测和图像识别算法使用摄像头对危险行为者进行实时监测,实现了对危险行为者危险动作及时警告,从而避免了发生危险;
[0064]
2、本发明通过深度强化学习的方法,解决了鱼竿这种细长物体难以精准定位的问题,实现了鱼竿的精准定位,从而使检测结果更加可靠;
[0065]
3、本发明通过空间卷积神经网络进行空间特征提取,以获取细长物体这种具有空
间沿伸的特征,解决了细长结构特征难以提取的问题,从而有利于提高定位的精度;
[0066]
4、本发明通过尺度感知的高分辨网络构建的人体姿态识别方法,实现了对人体姿态的检测并通过定义的先验规则得到人体动作,从而对危险行为者危险动作进行准确判断。
附图说明
[0067]
图1为本发明危险行为识别方法流程图;
[0068]
图2为本发明强化学习基本架构示意图;
[0069]
图3为鱼竿定位流程图。
具体实施方式
[0070]
本实施例中,参照图1所示,一种基于深度强化学习的危险行为识别方法,其特征在于,包括如下步骤:
[0071]
步骤1、获取危险行为视频并进行预处理,得到危险行为图像数据集,按预设的比例将危险行为图像数据集划分为用于鱼竿检测的图像数据集和用于鱼竿定位的图像数据集;
[0072]
对用于鱼竿检测的图像数据集进行人工标注后,按一定比例划分为鱼竿检测训练集和鱼竿检测验证集;本实施例中,训练集和验证集的比例为9:1;
[0073]
步骤2、建立用于检测鱼竿的鱼竿检测器、用于鱼竿定位的鱼竿定位器、用于检测人体姿态的姿态检测器;
[0074]
鱼竿检测器的组成包括:resnet-101主干网络、多尺度可形变自注意力模块、编码器、解码器;
[0075]
鱼竿定位器的组成包括:一个actor网络、两个critic网络、一个目标actor网络、两个目标critic网络、空间卷积神经网络;
[0076]
空间卷积神经网络包括:卷积层、空间信息传递模块和全连接层;
[0077]
空间信息传递模块包括:从上到下的特征提取层scnn_d、从下到上的特征提取层scnn_u、从左到右的特征提取层scnn_r和从右到左的特征提取层scnn_l;
[0078]
姿态检测器是由尺度感知的高分辨网络构成,并包括:resnet主干网络和高分辨率网络;
[0079]
高分辨网络是由并行连接的若干个多分辨子网构成,且若干个多分辨子网的分辨率由高到低排序;
[0080]
步骤3、将鱼竿检测训练集送入鱼竿检测器中进行训练,并通过鱼竿检测验证集进行验证,从而得到训练好的鱼竿检测器;
[0081]
步骤3.1、鱼竿检测训练集送入鱼竿检测器中,先经过resnet-101主干网络进行多尺度特征提取,得到多尺度特征图;
[0082]
步骤3.2、多尺度特征图输入多尺度可形变自注意力模块中进行聚合处理,得到聚合多尺度特征图;对多尺度特征图进行位置编码后,再与聚合多尺度特征图相加并输入编码器中进行编码处理,得到编码后的候选特征向量;
[0083]
步骤3.3、候选特征向量输入解码器中进行解码处理,得到鱼竿预测目标的包围
框;
[0084]
步骤3.4、采用焦点损失函数计算损失,并通过匈牙利匹配算法对焦点损失函数进行监督求解,从而得到训练后的鱼竿检测器;
[0085]
步骤3.5、将鱼竿检测验证集输入训练后的鱼竿检测器中进行预测,得到预测结果,并计算其准确率后与预设的正确率阈值进行对比,若达到正确率阈值或者达到训练迭代次数,则表示得到训练好的鱼竿检测器,并保存模型参数;否则,返回步骤3.1继续对训练后的鱼竿检测器进行训练。
[0086]
步骤4、将用于鱼竿定位的图像数据集送入训练好的鱼竿检测器中进行鱼竿目标检测,得到每个图像的鱼竿预测包围框并构成定位数据集,再对定位数据集进行人工标注后,按照一定比例划分为定位训练集和定位验证集;本实施例中,训练集和验证集的比例为9:1;
[0087]
步骤5、将定位训练集送入鱼竿定位器中进行训练,并通过定位验证集进行验证,从而得到训练好的鱼竿定位器;本实施例中,参照图3所示,
[0088]
步骤5.1、定义动作空间的动作类型包括,旋转动作、平移动作和终止动作;
[0089]
旋转动作包括:顺时针方向和逆时针方向旋转;
[0090]
平移动作包括:向上平移和向下平移;
[0091]
终止动作表示目标经过旋转和平移后的当前位置与期望位置达到所设阈值;
[0092]
步骤5.2、使用随机参数φ初始化actor网络π
φ
,使用随机参数θ1、θ2初始化两critic网络v
θ1
、v
θ2
,再使用随机参数φ

初始化目标actor网络π
φ

、使用随机参数θ1′
、θ2′
初始化两个目标critic网络v
θ1

、v
θ2

,并使φ

=φ、θ1′
=θ1、θ2′
=θ2;
[0093]
步骤5.3、定义当前训练迭代次数为lim,并初始化lim=1;
[0094]
步骤5.4、初始化鱼竿参数为g、动作历史向量为空;本实施例中,获取定位数据集中每张图像的对角线位置,作为初始化鱼竿位置,计算斜率及中点位置坐标作为初始化鱼竿参数;
[0095]
步骤5.5、定义当前回合数为lun,并初始化lun=1;
[0096]
步骤5.6、在第lim次迭代的第lun回合下,将定位数据集送入鱼竿检测器中,并经过空间卷积神经网络进行图像特征提取,得到编码后的图像特征向量:
[0097]
卷积层对定位数据集进行特征提取,得到定位特征图;上到下的特征提取层scnn_d对定位特征图进行切片,得到特征图d;从下到上的特征提取层scnn_u对特征图d进行切片,得到特征图u;从左到右的特征提取层scnn_r对特征图u进行切片,得到特征图r;从右到左的特征提取层scnn_l对特征图r进行切片,得到特征图l;特征图l经过全连接层的处理后,得到编码后的图像特征向量;
[0098]
步骤5.7、将鱼竿参数g、动作历史向量和图像编码后的特征向量相加,得到当前环境状态s;
[0099]
步骤5.8、将当前环境状态s送入actor网络π
φ
中进行动作选择,得到当前动作a,并将当前动作a保存在动作历史向量中,并通过当前动作计算得到鱼竿参数的变化,用于更新鱼竿参数g;
[0100]
步骤5.9、将当前动作a分别送入critic网络v
θ1
、v
θ2
中进行评价,得到两个动作值q1、q2;
[0101]
步骤5.10、如图2所示;将当前环境状态s通过当前动作a进行状态转移得到下一状态s

,记录奖励r,再将状态s

送入目标actor网络π
φ

,得到下一动作a

并分别送入目标critic网络v
θ1

、v
θ2

中进行评价,得到两个目标动作值q
1a

、q
2a

并选取最小值,作为状态s

的目标动作值y


[0102]
步骤5.11、通过式(3)计算当前环境状态s的目标动作值y,并通过均方误差损失函数分别计算与动作值q1、q2之间的损失,从而更新critic网络v
θ1
、v
θ2
的参数θ1、θ2:
[0103]
y=r+γmin(q
1a

,q
2a

)
ꢀꢀꢀ
(3)
[0104]
式(3)中,γ表示学习率;
[0105]
步骤5.12、若连续两次更新critic网络后,则通过梯度上升法更新actor网络π
φ
的参数φ,否则,不更新actor网络π
φ

[0106]
步骤5.13、通过式(4)进行软更新,更新目标actor网络π
φ

和目标critic网络v
θ1

、v
θ2


[0107][0108]
式(4)中,

表示赋值,τ表示更新比例;
[0109]
步骤5.14、若当前动作a为终止动作或者达到预设的回合次数阈值,结束当前迭代并继续执行步骤5.12;否则,将下一状态s

作为当前环境状态s,并将lun+1赋值给lun后返回步骤5.7顺序执行;
[0110]
步骤5.15、将定位验证集送入定位器中进行验证,得到定位精度和定位速度,如果满足预设标准或者达到最大训练迭代次数,则表示得到训练好的鱼竿定位器,并保存最优模型参数;否则,将lim+1赋值给lim后返回步骤5.4顺序执行。
[0111]
步骤6、鱼竿检测和人体动作识别;
[0112]
步骤6.1、定义危险行为动作种类,包括:无危险行为、潜在危险行为、收杆动作和甩杆动作;定义缓存队列queue,并用于存放连续t帧的姿态信息;本实施例中,设置t=7,储存连续7帧的姿态信息;
[0113]
步骤6.2、将待检测的危险行为视频中的一帧图像送入训练好的鱼竿检测器进行检测,得到当前帧图像的鱼竿目标包围框;
[0114]
步骤6.3、将当前帧图像的鱼竿目标包围框送入训练好的鱼竿定位器进行定位,得到定位后的鱼竿参数,并作为鱼竿目标;
[0115]
步骤6.5、将当前帧图像送入姿态检测器中进行姿态检测,得到人体姿态关键点:
[0116]
当前帧图像经过resnet主干网络进行特征提取,得到高分辨率特征图;高分辨率特征图输入高分辨率网络中,并经过并行连接的若干个多分辨率子网络的多尺度特征融合处理,得到高分辨率表示的估计关键点信息,并作为人体姿态关键点;
[0117]
步骤6.6、获取人体姿态关键点中手臂上的关键点信息,从而利用式(1)计算得到当前帧图像的手臂的状态cosθ,并作为姿态信息保存在缓存队列queue中:
[0118]
[0119]
式(1)中,θ表示手臂中小臂与大臂之间的夹角,d1、d2小臂与大臂的长度,d3表示对边长度;
[0120]
步骤6.7、按照步骤6.2-步骤6.5的过程获取缓存队列queue中连续t帧的姿态信息,并通过反余弦函数求出危险行为者的手臂夹角θ的变化范围,从而利用式(2)计算危险行为者手臂的动作a:
[0121][0122]
式(2)中,当a=0表示无明显动作,当a=1表示有明显动作,且θ的变化从大到小表示抬手动作,否则表示甩手动作;
[0123]
步骤6.8、若检测到鱼竿目标且伴随抬手动作或者甩手动作,则判定为抬杆动作或者甩杆动作,发出高压危险警报;否则,判定为潜在危险行为;若未检测鱼竿目标,则判定为无危险行为。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1