基于深度神经网络与相似性分析的视频行人识别检测
2018-01-22云南省大理州公安局科技信息化处副处长
(云南省大理州公安局科技信息化处副处长)
在过去的几年中,大数据采集与深度神经网络技术应用极大地推动了计算机视觉领域的发展,并广泛应用于公安安防行业。行人识别是安防行业视频结构化的重要环节,主要应用于嫌疑人员布控搜查,通过对大量已有监控视频进行分析,可以从中快速检索出疑似的人员,相比传统的人工查看监控录像,行人识别系统能极大提高效率,意义重大。本文设计了一种行人识别深度神经网络,并进行了相关实验验证,结果表明所提出的方法能够快速准确地提取视频图像中的行人特征,满足真实场景公共安防需求。
一、引言
随着人工智能技术的飞速发展,视频分析技术得到了极大提升,并广泛应用于智能安防、自动驾驶、生物医疗、语义分割等多个领域。其中智能视频分析在公共安全领域的作用尤为突出。
行人识别是安防行业视频结构化的重要环节,主要应用于嫌疑人员布控搜查。传统的嫌疑人员布控缉拿需要对作案嫌疑人的相关身份及活动进行调查,安置于城市各个角落的高清摄像机能够提供很好的帮助,通过对大量已有监控视频进行分析,可以从中检索出嫌疑人员的活动信息,对安防管理意义重大。但传统的人工查看监控录像搜集有效信息不仅人力成本过高,而且效率低下,已经无法满足当前安防的需求,因此行人识别系统就变得尤为重要。目前已有不少国内外学者进入到行人识别这一领域。
本文主要对视频图像中行人的相似性进行了研究,旨在利用深度神经网络等技术,分析不同视频帧中出现的行人图像的相似性,判断不同行人图像是否为同一行人,并给出相似概率。该方法可以很好地解决视频录像资料的检索问题,实时场景行人跟踪等安防问题。
二、行人识别网络模型
本文采用 ResNet50 做为基础网络,并对其进行改进以适用于特征提取。ResNet最早在 2015年被提出,其基本思想为:在网络的多层卷积中引入一层或多层残差连接,将前层卷积信息引入后层,通过残差映射校正过深网络存在的准确率下降问题。ResNet 解决了随着网络的加深,训练集准确率下降的问题,并在当年的ImageNet 分类任务上取得了最佳的准确率,之后逐渐出现很多基于 ResNet残差的深度网络。本为采用 ResNet50作为基础网络,主要考虑到行人识别需要很高的初始检测率,此外为了兼顾计算效率,未采用更深的网络。
ResNet50 由5个主要部分组成 :conv_1,conv_2,conv_3,conv_4,conv_5。其中 conv_5 结构最后一层输出为 1x1x2048维向量,倒数第二层为 3x3x512 维向量,倒数第三层为 1x1x512 维向量。这里我们将倒数第三层网络结构改为 3x3x512,这样就丰富了网络层特征,使提取到的信息更完整,同时将倒数第二层网络改为 1x1x4096,这样降低了计算参数的复杂性,有利于提升计算速度,且修正过的网络层能够将上层网络传递的信息进行提前编码,经过两次特征编码:1x1x4096 和 1x1x2048 后,得到的图像特征可更好地适应分类任务。
需要注意的是,若某一帧图像中包含多个行人,经过行人识别神经网络后我们会得到多个 1x1000 的特征向量,这里我们仅保留预测概率大于80%的特征向量,预测概率过低的特征向量视为非行人特征,同时丢弃对应的预测 box。
三、实验分析
实验分为几个主要部分,包括样本数据集处理,行人识别网络模型搭建,深度网络结构调参,网络性能及分析,行人特征提取和判别。
3.1 样本数据集处理
本文采用业内标准行人数据集:Market-1501 and Mars数据集作为实验样本数据,Market-1501数据集包含1501个行人共计32217张人工标注图像。该数据训练样本集包含12936张图像,测试样本集包含19281张图像。MARS 数据集包含1261个行人共计1191003张裁剪图像,训练样本集包含 509914 张图像,测试样本集包含681089 张图像。
深度网络模型数据集构建方案为:从行人数据集 Market-1501中选取共计 30000张行人标注图像作为正样本集,从正样本集中选取 25000张图像作为训练正样本集,剩余5000张图像作为测试正样本集。从ImageNet数据集和 coco 数据集中筛选非行人图像共计 30000 张作为负样本数据集,从负样本数据集中选择 25000 张图像作为训练负样本集,剩余 5000 张图像作为测试负样本集。
识别测试数据集构建方案为:从Mars数据集中挑选 20 个行人共计80张图像作为校验数据集,用于测试行人识别精确度。由于系统应用场景满足一张图像中出现的行人数少于 20人,因此并不涉及大规模行人检测问题,随机任选 20 人对做测试足够再现真实场景中最为严苛的情况。此外,可选取 20★20 个行人共计 80★20 张图像进行 20次重复实验,取均值作为最终准确度,本文中给出单次实验计算结果,同类实验可复现,不再描述。
3.2 模型训练及调参
近几年出现了许多性能优秀的深度网络平台,最为流行的包括 caffe,mxnet,pytorch,tensorflow等。虽然tensorflow 设计灵活且兼容numpy,scikit-learn等优秀计算库,适合算法快速开发,但在图像计算方面 caffe 具有速度优势,考虑到系统检测速度的实时性要求,本文选择caffe平台设计搭建对应网络结构。
软件环境为centos7,opencv3.2,cuda8.0,cudnn5.1,boost1.55 等。
硬件设备环境为CPU∶ i7-6800k;双路英伟达 gtx1080ti 计算卡。
训练过程中设置每个批大小 batch尺寸为 64,测试 batch尺寸为 64,基础学习率learning rate初始设置为0.01,对应 caffe模型的 gamma值设置为 0.1,动量 momentum 设置为 0.9,权值衰减 0.0001,每完成 2000 次 batch运算进行一次测试,总迭代次数为10万轮。最终的模型精度达到 94%左右。值得注意的是网络最后2层的特征抽取层导致模型精度未继续提升,但结合后续的相似度判定,仍能得到非常不错的识别精度。由于batch设置较大,经过 4000轮迭代训练后,损失降低为1.119910,迭代训练图片数量为256000张,模型精度提高较快。后续迭代至10万轮,最终损失降低至e-2数量级,模型精度基本稳定,达到训练要求。
模型训练过程采用分布式训练,硬件设备为两张gtx1080ti,训练时间约为15小时,包括一次预训练和一次继承训练。实际检测过程采用图像放缩等方式,运算速度满足每秒 25帧要求,且部署多个模型可实现更大规模的图像并发处理能力,本文实际部署2个网络模型,性能可以达到每秒50帧以上,已经能够完全适用系统性能要求,且系统可拓展至服务器端图像识别。通过搭建多模型,可实现服务运算速度的线性提高。
3.3 特征提取与检测结果
本文根据加权准则编写了对应的功能及逻辑模块,用于分析行人再次识别判定,具体流程为:拷贝 caffe最后一层layer的行人特征至内存,根据加权准则计算请求识别的行人特征相似性,通过网络模块返回检测Dataset Identities Images Label method Crop size Multi-shot SequencesMarket-1501 1501 32217 Hand+DPM 128★64 Y NMars 1261 1191003 DPM+GMMCP 256★128 YY结果。由于视频为1920★1080分辨率,为提高运算速度,将图像尺寸放缩为 960★540分辨率,为保证良好的识别率,建议行人目标区域满足80★160及以上大小。我们选择MARS识别测试数据集做测试,测试方法为计算出20 个行人共 80 张图像的特征向量,然后任选一向量,根据加权准则查找与其最相似的特征向量,判断查找到的最相似行人与目标行人是否为同一行人,依次不重复遍历80个向量,检测结果如下:行人目标总数 80,漏检行人目标数 0,最相似查找正确数 80,最相似查找错误数 0。
需要注意的是虽然目标行人全部识别正确,但最低的相似度阈值只有0.4左右,对于通用性检测,应设置相似度阈值 0.7至0.8之间,此时虽然导致漏检正确识别,但可以保证查找的高准确性,满足实际使用,且该阈值在实际应用中具有很好的效果和通用性。
此外,实际应用中,由于不同场景中实际视频图像受拍摄角度、光照影响,同时会有部分行人遮挡,精确度可能有所降低,排除上述扰动因素,在视频环境良好且分辨率足够的情况下,行人检测实际效果良好,在保证实时检测的同时满足精确度。
四、总结
这种行人识别深度神经网络,能高效准确提取视频中出现的行人特征,并设计了新的相似性检测方法,用于分析不同行人之间的相似度。该系统适用于公安安检行业的嫌疑人员检索布控,检索解析视频中出现的疑似嫌疑人员。最后通过真实数据验证了该算法的快速性和有效性,在视频分析领域有较强使用价值。