一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于YOLOv3-SPP的人体行为识别方法及系统与流程

2021-10-23 02:06:00 来源:中国专利 TAG:识别 人体 方法 系统 深度

一种基于yolov3

spp的人体行为识别方法及系统
技术领域
1.本发明属于深度学习中的行为检测领域,具体涉及一种基于yolov3

spp的人体行为识别方法及系统。


背景技术:

2.传统视频分析技术由于采用人工选择特征,存在准确率低、浅层学习无法解析大数据等问题,而深度学习可以很好地克服这些问题,使视频分析过程中识别准确率更高、鲁棒性更好、识别种类更丰富。
3.现在大多数视频分析采用的是帧与帧之间比对实现异常行为分类,本设计是将人体目标的提取放到神经网络中,直接实现端到端的异常行为分类,从而实现对具体应用场景的异常行为检测。
4.在智能视频分析通常采用时域差分法和光流法提取图像的运动目标,时域差分运动检测方法对于动态环境具有较强的的自适应性,但不能完全提取出所有相关的特征像素点,识别精度较相对较低且容易产生空洞现象。而大多数的光流法计算相当的复杂,且抗噪声性能差,如果没有特别的硬件装置则不能被应用于全帧的视频流实时处理使得操作成本高。


技术实现要素:

5.本发明的目的是提供一种基于yolov3

spp的人体行为识别方法及系统,以解决上述问题。
6.为实现上述目的,本发明采用以下技术方案:
7.一种基于yolov3

spp的人体行为识别方法,包括以下步骤:
8.步骤1,在yolov3网络中引入空间金字塔池化spp模块,构建基于yolov3

spp目标检测模型;
9.步骤2,对stanford40(斯坦福人类行为数据集)预处理:从stanford40(斯坦福人类行为数据集)标注文件中面部动作、通过物体操纵进行面部动作、全身动作、与物体互动的身体动作以及与人体互动的身体动作这五类人体行为目标的标注信息,并将这五类标注信息转换为darknet(yolo的特征提取网络)框架下支持的格式;
10.步骤3,依据stanford40(斯坦福人类行为数据集)人类活动数据集中训练集图像分辨率,利用kmean算法对步骤2中转换为darknet(yolo的特征提取网络)框架下支持的格式的标注信息框重新聚类,得到新的初始anchor box(锚框),并按照alexey bochkovskiy(yolo系列作者)设定的anchor box(锚框)分配规则,为yolov3

spp目标检测模型中的每个检测尺度分配相应个数的anchor box(锚框);
11.步骤4,将stanford40(斯坦福人类行为数据集)中的训练集和验证集分别输入到yolov3

spp目标检测模型中进行检测模型的训练与评估;
12.步骤5,利用步骤4训练后的yolov3

spp目标检测模型对测试视频进行检测,在视
频的每一帧进行动作的识别,最后将检测结果重新拼接成视频。
13.进一步的,步骤1具体包括如下步骤:
14.步骤1.1,其中ssp模块由kernel size(卷积核)分别为1
×
1,5
×
5,9
×
9,13
×
13的四个并行池化层组成,将ssp模块集成在yolov3网络中第一个检测尺度的第5和第6个卷积之间;
15.步骤1.2,完成构建基于yolov3

spp目标检测模型,实现不同尺度特征的融合。
16.进一步的,步骤2具体包括如下步骤:
17.步骤2.1,从stanford40(斯坦福人类行为数据集)标注文件中提取面部动作,通过物体操纵进行面部动作,全身动作,与物体互动的身体动作,与人体互动的身体动作这五类人体行为目标的标注信息
18.步骤2.2,将步骤2.1中的五类行为标注信息写入以图片命名的xml文件中;
19.步骤2.3,将stanford40(斯坦福人类行为数据集)数据集文件目录结构转化为形如pascal voc数据集文件目录结构。
20.进一步的,步骤2.2具体包括如下步骤:
21.步骤2.21,将步骤2.1中的五类行为标注信息写入以图片命名的xml文件中;
22.步骤2.22设计代码按照如下公式:
23.x
center
=(box
xmin
box
xmax
)/(2
×
picture—width)
24.y
center
=(box
ymin
box
ymax
)/(2
×
picture_height)
25.width=(box
xmax

box
xmin
)/picture_width
26.hight=(box
ymax

box
ymin
)/picture_height
27.其中:x
center
为锚框x轴中心点坐标,y
center
为锚框的y轴中心点坐标;box
xmin
为锚框x轴坐标最小值;box
max
为锚框x轴坐标最大值;picture_width为原始图像的宽度;picture_height为原始图像的高度;width为锚框宽度;hight为锚框高度
28.将标注信息转换成darknet(yolo的特征提取网络)框架下的格式;
29.步骤2.23,检查转换后每个图片的txt标注框格式需为:
30.<object

class><x_center><y_center><width><height>。
31.其中:object

class为类别,x_center为锚框x轴中心点坐标,y_center为锚框的y轴中心点坐标;width为锚框宽度;hight为锚框高度
32.进一步的,步骤3具体包括如下步骤:
33.步骤3.1,观察stanford40(斯坦福人类行为数据集)中训练集标注框坐标信息分布,随机选取选择k个簇中心(ω
i
,h
i
),i∈{1,2
……
,k},其中,w
i
和h
i
为框的宽和高;
34.步骤3.2,分别计算每个标注框和每个簇中心的距离d,计算公式如下:
35.步骤3.3,重新计算k个簇中心所属的标注框宽和高的平均值,作为新的簇中心;
36.步骤3.4,重复步骤3.2和3.3,当聚类中心不再改变时,输出聚类结果;
37.步骤3.5,输出最后聚类结果;
38.步骤3.6,分别为yolov3

spp目标检测模型中三个检测尺度分配2个、1个和6个anchor box(锚框);
39.步骤3.6具体包括如下步骤:
40.步骤3.6.1,调整yolov3

spp网络结构中所有yolo层filter数量;
41.步骤3.6.2,更改配置文件中对应mask。
42.进一步的,步骤4具体包括如下步骤:
43.步骤4.1,采用imagenet数据集上预先训练好的模型参数darknet53.conv.74作为初始化权重以减少训练时间;
44.步骤4.2,设置网络模型的训练超参数,得到基于yolov3

spp的行为目标检测模型;
45.步骤4.3,将stanford40(斯坦福人类行为数据集)验证集中行车道路图片输入到基于yolov3

spp的行为目标检测模型中,得到基于yolov3

spp网络的行为目标检测模型的评估指标。
46.进一步的,步骤4.2具体包括如下步骤:
47.步骤4.21,设置网络模型的训练超参数;
48.步骤4.22,将stanford40(斯坦福人类行为数据集)数据集中的图片作为训练输入;
49.步骤4.23,进一步的利用darknet

53深度学习框架进行网络训练,当训练平均损失达到稳定值并且不再降低时得到基于yolov3

spp的行为目标检测模型。
50.进一步的,步骤5具体包括如下步骤:
51.步骤5.1,调整测试数据集图片分辨率为1280x720,然后输入到步骤4训练后的yolov3

spp目标检测模型中,进一步的,经过32倍下采样特征提取,最终网络输出三个尺度的特征图;
52.步骤5.2,为每个尺度的每个网格分配不同anchor box(锚框)进行检测;
53.步骤5.3,针对重叠的检测框,通过nms算法抑制置信度较低和重叠率高于设定阈值的检测边框,得到最优检测框;
54.步骤5.4,在待检测行为图片中用矩形框框出目标位置并标注所属类别。
55.进一步的,步骤5.2具体包括如下步骤:
56.步骤5.21,为每个尺度的每个网格分配2、1、6个不同anchor box(锚框)进行检测,每个anchor box(锚框)预测包括4个边界框偏移量、1个置信度t0和c个检测目标类别,4个边界偏移量包括t
x
,t
y
,t
w
,t
h

57.其中置信度定义如下:pr(object)表示该anchor box(锚框)中存在目标的概率,如果不包含目标,其值为0,表示预测边界框与真实边界框ground truth box的交并比:
58.每一个网格都会预测c个类别概率,pr(class
i
|object)表示网格在包含目标条件下属于某个类别的概率,则预测bounding box属于类别的概率表示为:
[0059][0060]
步骤5.22,根据预测的anchor box(锚框)相对于标注框的偏移值,得到所预测的边界框的位置信息,计算公式如下:
[0061]
b
x
=σ(t
x
) c
x
[0062]
b
y
=σ(t
y
) c
y
[0063][0064][0065]
σ(t0)=pr(object)*iou(b,object)
[0066]
其中,为预测定位框对应的置信度,是t
x
,t
y
经过sigmoid函数归一化值表示网格中心相对于网格左上角的横纵坐标b
x
,b
y
,b
w
,b
h
是最终输出的边界框。
[0067]
进一步的,一种基于yolov3

spp的人体行为识别系统,包括:
[0068]
目标检测模型构建模块用于在yolov3网络中引入空间金字塔池化spp模块,构建基于yolov3

spp目标检测模型;
[0069]
stanford40(斯坦福人类行为数据集)预处理模块用于对stanford40(斯坦福人类行为数据集)预处理:从stanford40(斯坦福人类行为数据集)标注文件中面部动作、通过物体操纵进行面部动作、全身动作、与物体互动的身体动作以及与人体互动的身体动作这五类人体行为目标的标注信息,并将这五类标注信息转换为darknet(yolo的特征提取网络)框架下支持的格式;
[0070]
检测尺度分配模块用于依据stanford40(斯坦福人类行为数据集)人类活动数据集中训练集图像分辨率,利用kmean算法对步骤2中转换为darknet(yolo的特征提取网络)框架下支持的格式的标注信息框重新聚类,得到新的初始anchor box(锚框),并按照alexey bochkovskiy(yolo系列作者)设定的anchor box(锚框)分配规则,为yolov3

spp目标检测模型中的每个检测尺度分配相应个数的anchor box(锚框);
[0071]
检测模型的训练与评估用于将stanford40(斯坦福人类行为数据集)中的训练集和验证集分别输入到yolov3

spp目标检测模型中进行检测模型的训练与评估;
[0072]
动作识别模块利用步骤4训练后的yolov3

spp目标检测模型对测试视频进行检测,在视频的每一帧进行动作的识别,最后将检测结果重新拼接成视频。
[0073]
与现有技术相比,本发明有以下技术效果:
[0074]
本技术方案的方法在yolov3网络中引入了spp模块,根据训练集图像大小相应调整了网络分辨率,重新聚类初始anchor box(锚框),同时调整网络检测类别个数,将多类别检测分类问题转化为在一定场景下针对一般的面部动作,通过物体操纵进行面部动作,全身动作,与物体互动的身体动作,与人体互动的身体动作这五类人体行为目标检测分类问题,并通过融合不同尺度特征,实现了对高密度下以及细粒度下人体行为具有较好的检测效果,漏检行为较少。
[0075]
这种方法提高了检测效果和检测速度,降低了漏检行为。与现有技术相比,本发明具有以下有益的技术效果:
[0076]
首先本发明提出了一种实时的检测、定位和识别感兴趣动作的方法。在指定的时间段后接受从监控摄像机捕获的连续视频数据流中获得的帧,并且基于单个帧给出动作标签。其次经实验验证yolov3是一种有效的方法,在人类活动数据集中识别和定位速度较快,在该发明中模型中仅需要视频中的一小组帧甚至一帧就足以进行精确识别,且在优化过程中采用的yolov3算法复杂度低,可移植性高这在实际使用中也是非常重要的。进一步在训练前采用k

means聚类对数据集进行聚类分析,得到针对本数据集的先验况大小,使训练检
测精度速度得到提升。进一步本发明在训练时采用冻结层训练法,并进行学习率的迭代,达到最优的训练效果。
[0077]
本设计提供了一种基于yolov3的人体体态识别方法,不对视频采用传统的帧与帧之间比对实现异常行为分类,而是将人体目标的提取放到神经网络中,直接实现端到端的异常行为分类,能够提高识别的精度和速度,降低了姿态识别算法的复杂度。
附图说明
[0078]
图1为实施例的流程图;
[0079]
图2为实施例中yolov3网络的结构图;
[0080]
图3为实施例中spp模块示意图;
[0081]
图4为实施例与现有模型训练时损失值

迭代次数曲线对比图;
[0082]
图5为实施例与现有模型精确度

召回率即pr曲线对比图;
[0083]
图6为实施例的检测结果示意图。
具体实施方式
[0084]
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
[0085]
本实施例基于pytorch深度学习框架下完成的,硬件配置如下:intel(r)core(tm)i7

7800x cpu@3.50ghz 8核cpu,16g内存,显存,nvidia geforce rtx 2080ti,10gb。软件配置:linux系统,python 3.6
[0086]
评价指标为map mean average precision,即平均ap值,是对多个验证集个体求平均ap值。
[0087]
本发明系统基础流程框图如图1所示,本发明所述的一种基于yolov3

spp的人体体态识别方法,包括如下步骤:
[0088]
步骤1,在yolov3网络中引入空间金字塔池化(spatial pyramid pooling,简称spp)模块,构建基于yolov3

spp目标检测模型,具体步骤如下:
[0089]
步骤1.1,其中spp模块由kernel size(卷积核)分别为1
×
1,5
×
5,9
×
9,13
×
13的四个并行池化层组成,将spp模块集成在yolov3网络中第一个检测尺度的第5和第6个卷积之间。
[0090]
步骤1.2,完成构建基于yolov3

spp目标检测模型,用于实现不同尺度特征的融合,丰富最终特征图的表达能力,提高环境中行为目标尺度差异较大时的检测效果。
[0091]
步骤2,对stanford40(斯坦福人类行为数据集)预处理,即从stanford40(斯坦福人类行为数据集)标注文件中一般的面部动作(微笑、大笑、咀嚼、交谈等),通过物体操纵进行面部动作(吸烟、进食、饮水等),全身动作(拍手、攀爬、爬楼梯、潜水等),与物体互动的身体动作(刷牙、拔剑、运球、打高尔夫球等)与人体互动的身体动作(击剑,拥抱,踢人,亲吻,拳打,握手等),这五类人体行为目标的标注信息,并将这五类标注信息转换为darknet(yolo的特征提取网络)框架下支持的格式,具体步骤如下:
[0092]
步骤2.1,从stanford40(斯坦福人类行为数据集)标注文件中提取一般的面部动作,通过物体操纵进行面部动作,全身动作,与物体互动的身体动作,与人体互动的身体动
作这五类人体行为目标的标注信息
[0093]
步骤2.2,将步骤2.1中的五类行为标注信息写入以图片命名的xml文件中,
[0094]
其中,stanford40(斯坦福人类行为数据集)的json文件中目标位置是以框左上角坐标(box
xmin
,box
ymin
),和右下角坐标(box
xmax
,box
ymax
)确定的,设计代码按照以下公式将标注信息转换成darknet(yolo的特征提取网络)框架下的格式:
[0095]
x
center
=(box
xmin
box
xmax
)/(2
×
picture_width)
[0096]
y
center
=(box
ymin
box
ymax
)/(2
×
picture_height)
[0097]
width=(box
xmax

box
xmin
)/picture_width
[0098]
hight=(box
ymax

box
ymin
)/picture_height
[0099]
进一步的,(x
center
,y
center
)表示标注框中心点坐标,width表示标注框的宽,height表示标注框的高,转换后每个图片的txt标注框格式变为:
[0100]
<object

class><x_center><y_center><width><height>,
[0101]
其中:object

class为类别,x_center为锚框x轴中心点坐标,y_center为锚框的y轴中心点坐标;width为锚框宽度;hight为锚框高度
[0102]
步骤2.3将stanford40(斯坦福人类行为数据集)数据集文件目录结构转化为形如pascal voc数据集文件目录结构,
[0103]
进一步,将带有标注信息的txt文件放入labels文件夹,将生成xml文件放入annotation文件夹中,stanford40(斯坦福人类行为数据集)数据集中的图片放入jpegimages文件夹中,用于模型训练和验证图片的名字分别写入imagesets目录下main文件夹中train.txt和val.txt中。
[0104]
步骤3,重新聚类并分配,依据stanford40(斯坦福人类行为数据集)数据集中训练集图像分辨率1280x720,利用k

means算法对步骤2中转换为darknet(yolo的特征提取网络)框架下支持的格式的标注信息框重新聚类,得到新的初始anchor box(锚框),并按照alexey bochkovskiy(yolo系列作者)设定的anchor box(锚框)分配规则,为yolov3

spp目标检测模型中的每个检测尺度分配相应个数的anchor box(锚框),具体步骤如下:
[0105]
步骤3.1,观察stanford40(斯坦福人类行为数据集)中训练集标注框坐标信息分布,随机选取选择k个簇中心(ω
i
,h
i
),i∈{1,2
……
,k},其中,w
i
和h
i
为框的宽和高;
[0106]
步骤3.2,分别计算每个标注框和每个簇中心的距离d,计算公式如下:
[0107][0108]
其中,分子表示锚框和标注框相交的面积大小,分母表示锚框和标注框相并的面积大小,进一步的,当iou值最大时,即标注框和锚框匹配得最好,此时d最小,将标注框分别分到与之最近即d最小的簇中;
[0109]
步骤3.3,重新计算k个簇中心所属的标注框宽和高的平均值,作为新的簇中心;
[0110]
步骤3.4,重复步骤3.2和3.3,当聚类中心不再改变时,输出聚类结果;
[0111]
步骤3.5,最后输出聚类结果:10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326;
[0112]
步骤3.6,分别为yolov3

spp目标检测模型中三个检测尺度分配2个、1个和6个anchor box(锚框),即调整yolov3

spp网络结构中所有yolo层filter数量为(n 5)
×
3=135,其中n为分配anchor box(锚框)个数,并进一步将配置文件中对应nask改为7,8;6;0,
1,2,3,5,6。
[0113]
步骤4,对实例模型训练与评估,将stanford40(斯坦福人类行为数据集)数据集中的训练集和验证集分别输入到yolov3

spp目标检测模型中进行检测模型的训练与评估,具体步骤如下:
[0114]
步骤4.1,采用imagenet数据集上预先训练好的模型参数darknet(yolo的特征提取网络)53.conv.74作为初始化权重以减少训练时间;
[0115]
步骤4.2,设置实例训练超参数,即网络分辨率、动量、权值衰减、base_lr、批次、最大迭代次数、学习率调整策略,将stanford40(斯坦福人类行为数据集)数据集中的图片作为训练输入,利用darknet

53深度学习框架进行网络训练,当训练平均损失达到稳定值并且不再降低时得到基于yolov3

spp的行为目标检测模型,训练超参数设置如下表1所示:
[0116]
表1网络训练超参数设置表
[0117][0118]
学习率调整策略policy设置为epoch,当迭代次数为100,120时,学习率lr缩减10倍,设置score_thresh=0.25,iou_thresh=0.2,配置好训练参数后利用nvidia geforce rtx2080ti,10gb训练网络,yolov3

spp、yolov3和yolov3

tiny三组网络结构训练过程中函数损失值

迭代次数曲线对比图如图4所示;
[0119]
当迭代到60个epoch时,yolov3

spp网络的loss值收敛到0.5左右,yolov3网络收敛到0.8左右,tiny yolov3网络训练loss值上下波动幅度较大,网络不稳定,因此,在相同学习率下,yolov3

spp网络相对于yolov3、tiny yolov3可以更快地收敛,具有更好的特征学习能力且具有更低的loss值;
[0120]
步骤4.3,将stanford40(斯坦福人类行为数据集)验证集中人体行为图片输入到基于yolov3

spp的行为目标检测模型中;
[0121]
步骤4.3.1,经过网络逐层计算,将网络预测结果记录在txt文件,通过代码,得到基于yolov3

spp网络的行为目标检测模型的精确率、召回率、f1值、检测速率(fps)和p

r曲线评估指标。
[0122]
步骤4.3.2,本例为了更全面分析模型检测性能,将训练完成的yolov3

spp、yolov3和yolov3

tiny这三种模型基于验证集图片上进行性能评估,gpu采用rtx 2080ti,
具体指标如表2所示:
[0123]
表2不同模型评估指标对比
[0124][0125]
yolov3

spp网络模型检测效果最好,精确度、召回率和f1值高达78.90%、92.20%和0.853,且各指标与yolov3网络相比分别提高了14.7%、11.4和0.16,yolov3

tiny网络层次浅,结构简单各项评估指标都比较低,难以满足人群环境中背景复杂、目标尺度差异大检测需求,yolov3

spp网络由于存在大量卷积运算,使得检测速率相对较慢,但是已经基本满足实时性需求;
[0126]
步骤4.3.3,为了综合衡量模型检测性能,绘制如图5所示为精确度—召回率即pr曲线图,该曲线下的面积就是平均精确率ap,ap越高,模型检测性能越好;
[0127]
其中红色表示yolov3

spp网络pr曲线,绿色表示yolov3网络pr曲线,蓝色表示yolov3

tiny网络pr曲线,由图5可知,
[0128]
yolov3

spp平均精确率达到了78.90%,明显优于yolov3网络,人体互动的身体动作,由于不同个体之间动作有较大的差异,所以map相对较低,但仍优于yolo其他模型。
[0129]
步骤5,利用步骤4训练后的yolov3

spp目标检测模型对stanford40(斯坦福人类行为数据集)中的人群行为进行目标检测,具体检测过程步骤如下:
[0130]
步骤5.1,调整测试视频数据集中截取视频帧图片分辨率为1280x720,然后输入到步骤4训练后的yolov3

spp目标检测模型中,经过32倍下采样特征提取,最终网络输出三个尺度的特征图;
[0131]
步骤5.2,为每个尺度的每个网格分配2、1、6个不同anchor box(锚框)进行检测,每个anchor box(锚框)预测包括4个边界框偏移量、1个置信度t0和c个检测目标类别,4个边界偏移量包括t
x
,t
y
,t
w
,t
h
,置信度定义如下:
[0132][0133]
其中pr(object)表示该anchor box(锚框)中存在目标的概率,如果不包含目标,其值为0,表示预测边界框与真实边界框(ground truth box)的交并比:
[0134][0135]
进一步的,每一个网格都会预测c个类别概率,pr(class
i
|object)表示网格在包含目标条件下属于某个类别的概率,则预测bounding box属于类别i的概率表示为:
[0136][0137]
根据预测的anchor box(锚框)相对于标注框的偏移值,得到所预测的边界框的位置信息,计算公式如下:
[0138]
b
x
=σ(t
x
) c
x
[0139]
b
y
=σ(t
y
) c
y
[0140][0141][0142]
σ(t0)=pr(object)*iou(b,object)
[0143]
其中,为预测定位框对应的置信度,是t
x
,t
y
经过sigmoid函数归一化值表示网格中心相对于网格左上角的横纵坐标,b
x
,b
y
,b
w
,b
h
是最终输出的边界框;
[0144]
步骤5.3,针对重叠的检测框,通过nms算法抑制置信度较低和重叠率高于设定阈值的检测边框,得到最优检测框;
[0145]
步骤5.4,在人体行为图片中用矩形框框出目标位置并标注所属类别。
[0146]
检测结果如图6所示,通过观察检测结果,可以得出本例方法在yolov3网络中引入了spp模块,通过融合不同尺度特征,根据训练集图像大小相应调整了网络分辨率,重新聚类初始anchor box(锚框),同时调整网络检测类别个数,将多类别检测分类问题转化为在一定场景下针对一般的面部动作,通过物体操纵进行面部动作,全身动作,与物体互动的身体动作,与人体互动的身体动作这五类人体行为目标检测分类问题,并通过融合不同尺度特征,实现了对高密度下以及细粒度下人体行为具有较好的检测效果,漏检行为较少。
[0147]
本设计提供了一种基于yolov3的人体体态识别方法,不对视频采用传统的帧与帧之间比对实现异常行为分类,而是将人体目标的提取放到神经网络中,直接实现端到端的异常行为分类,在同等条件下性能相较于已有算法有较大的提高,能够提高识别的精度和速度,降低姿态识别算法的复杂度。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜