CN112686088A - 基于行人重识别的跨镜头的行人检索方法 - Google Patents

基于行人重识别的跨镜头的行人检索方法 Download PDF

Info

Publication number
CN112686088A
CN112686088A CN201910997126.3A CN201910997126A CN112686088A CN 112686088 A CN112686088 A CN 112686088A CN 201910997126 A CN201910997126 A CN 201910997126A CN 112686088 A CN112686088 A CN 112686088A
Authority
CN
China
Prior art keywords
pedestrian
resnet
identification
pedestrians
retrieval method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910997126.3A
Other languages
English (en)
Inventor
余捷全
常伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Yuxiu Technology Co ltd
Original Assignee
Guangdong Yuxiu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Yuxiu Technology Co ltd filed Critical Guangdong Yuxiu Technology Co ltd
Priority to CN201910997126.3A priority Critical patent/CN112686088A/zh
Publication of CN112686088A publication Critical patent/CN112686088A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本方法涉及行人检索方法,尤其是基于行人重识别的跨镜头的行人检索方法;它包括,采用resnet‑50作为基础网络构建网络结构;训练;对各监控设备采集的监控视频中的行人进行检测、跟踪,分割出行人图片并进行存储;根据分割的行人图片计算行人特征;根据各个行人的行人特征之间的相似度对行人进行分类,并将各行人的行人特征以及行人信息记录在对应的分类下,构成行人特征数据库;计算待检索行人的行人特征,将待检索行人的行人特征与行人特征数据库中的参照特征进行对比得出待检索行人所属类别;实现了通过现有的resnet‑50神经网络快速检索行人,通过eigenlayer减少欧式距离进行相似性度量的误差。

Description

基于行人重识别的跨镜头的行人检索方法
技术领域
本方法涉及行人检索方法,尤其是基于行人重识别的跨镜头的行人检索方法。
背景技术
目前,摄像机已经得到广泛的应用,带来了视频信息的爆炸式增长,无论是政府管理部门、还是公共场所,都依托于视频监测系统对辖区进行管理。但是,视频采集的数据为非结构化信息,在视频信息检索与应用上,技术手段仍然低下、原始,难以满足应用的需求。例如,在商场或火车站旁寻找一个走失的孩子,只能通过人工的方式去查看辖区内的所有摄像机采集的录像,其非常耗时耗力。在视频侦查应用上,一个案件涉及的视频可能有几百T大小,通过人工方式看可能要一两个月;通过视频摘要工具进行分析,再人工观看,假设浓缩比为20:1,其工作量仍不可小觑;而人脸识别技术虽然准确率高,但是对视频场景、人脸大小要求严格,对于大部分普通视频难以满足人脸识别的要求,其应用效果以及效率都不甚理想。
发明内容
针对现有技术的不足,本方法提供一种高效的行人检索方法。
本方法的技术方案为:
基于行人重识别的跨镜头的行人检索方法,其特征在于:它包括以下步骤:
步骤一,采用resnet-50作为基础网络构建网络结构;
步骤二,训练;
步骤三,获取各个监控设备采集的监控视频;
步骤四,对各监控设备采集的监控视频中的行人进行检测、跟踪,分割出行人图片并进行存储;
步骤五,根据分割的行人图片计算行人特征;
步骤六,根据各个行人的行人特征之间的相似度对行人进行分类,并将各行人的行人特征以及行人信息记录在对应的分类下,构成行人特征数据库;
步骤七,计算待检索行人的行人特征,将待检索行人的行人特征与行人特征数据库中的参照特征进行对比得出待检索行人所属类别,该类别下的行人信息作为跨镜头行人检索的结果。
具体的,所述步骤一中构建网络结构的方法:将resnet-50作为基础网络,在最后一个全连接层的前面加入一个Eigenlayer,全连接层是以向量内积形式进行特征的相似性度量或者说分类,全连接层的权重之间存在相关性的,学出来的特征也是有相关性的,而在Person Re-ID的普遍测试中是以欧式距离进行相似性度量的,因此存在一定的误差。
具体的,所述步骤二中训练方法为:
首先,用加了全连接层的resnet-50在之前训好的resnet-50上进行fine-tune直至收敛;然后进行约束和松弛迭代和重复约束和松弛迭代。经过去相关和约束处理后,权重向量是正交的,但是这时候不一定收敛的很好,因此需要松弛步骤,然后不断重复次过程。
具体的,约束和松弛迭代的方法包括:去相关:将新加的全连接层的权重进行SVD分解,W=USVTW=USVT,用US代替W,然后用WWTWWT的特征向量代替权重;约束:固定本层参数继续fine-tune直至收敛;松弛:不固定本层参数继续fine-tune直至收敛。SVD分解的奇异特征向量的符号是不确定的,因此特征投影到权重上后的方向是不确定的,因此用WWTWWT特征向量来代替权重。
具体的,欧式距离的计算:
Figure BDA0002240122400000021
由于V为酉矩阵,因此USUS来替换W之后的相似性度量是不变的,即
Figure BDA0002240122400000022
在一个较优实施例中,采用TensorFlow调用预训练模型来精调神经网络resnet-50。
本方法的有益效果为:通过图像输入、主干模型分层、特征层输入特征、eigenlayer、特征层输出特征和数据输出,实现了通过现有的resnet-50神经网络快速检索行人,通过eigenlayer减少欧式距离进行相似性度量的误差。
附图说明
图1为本方法的流程示意图。
具体实施方式
下面结合附图对本方法的具体实施方式作进一步说明:
实施例1
如图1所示,将resnet-50作为基础网络,在最后一个全连接层的前面加入一个Eigenlayer,全连接层是以向量内积形式进行特征的相似性度量或者说分类,全连接层的权重之间存在相关性的,学出来的特征也是有相关性的,而在Person Re-ID的普遍测试中是以欧式距离进行相似性度量的,因此存在一定的误差。
用加了全连接层的resnet-50在之前训好的resnet-50上进行fine-tune直至收敛;然后进行约束和松弛迭代和重复约束和松弛迭代。经过去相关和约束处理后,权重向量是正交的,但是这时候不一定收敛的很好,因此需要松弛步骤,然后不断重复次过程。
约束和松弛迭代的方法包括:去相关:将新加的全连接层的权重进行SVD分解,W=USVTW=USVT,用US代替W,然后用WWTWWT的特征向量代替权重;约束:固定本层参数继续fine-tune直至收敛;松弛:不固定本层参数继续fine-tune直至收敛。SVD分解的奇异特征向量的符号是不确定的,因此特征投影到权重上后的方向是不确定的,因此用WWTWWT特征向量来代替权重。
欧式距离的计算:
Figure BDA0002240122400000031
由于V为酉矩阵,因此USUS来替换W之后的相似性度量是不变的,即
Figure BDA0002240122400000032
获取某一区域内各个监控设备采集的监控视频,所述区域可以为小区、商场等固定区域,监控视频可以采用实时获取的方式,获取之后可以对监控视频进行实时地分析。
对各个监控设备采集的监控视频独立地进行分析,对每个监控设备采集的监控视频中的行人进行检测、跟踪,分割出行人图片并进行存储的方法具体包括:
对监控设备采集的监控视频的每个视频帧进行分析,如果帧数高,可以采用间隔取帧的方式,对视频帧通过目标检测方法检测出行人的位置信息,具体可采用目标检测模型yolo v3模型进行检测,检测的位置信息包括行人在视频帧中的坐标以及行人的边界框,再利用近邻匹配算法对行人进行跟踪,得出行人进入和离开该监控设备监控范围内的时间,然后按照检测出的行人边界框位置将行人图片从视频帧中分割出来,保存分割后的行人图片。对于在同一监控设备采集的监控视频中出现的每个行人,在该行人刚出现的若干帧内随机的保存多张该行人的图片,同时保存该行人出现的位置和时间信息。
该步骤主要是对单个监控设备拍摄的监控视频进行本地的行人追踪,可以得出行人出现和离开的时间,以及采集行人的不同姿态的图片。
所述根据分割的行人图片计算行人特征具体包括:
对行人图片通过深度学习模型抽取出行人的特征向量,可以采用ResNet50作为基础网络,并根据训练样本修改最后的输出层的大小,对该模型进行训练,再利用训练好的ResNet50模型进行行人特征向量的抽取,在推断过程中将average pool层的输出2048维的特征向量正则化后作为图片的特征,即每张图片可以获得2048维的特征。
实施例2
采用TensorFlow调用预训练模型来精调神经网络resnet-50。
使用TensorFlow调用预训练模型来精调神经网络。为了简单起见,以调用预训练的ResNet-50用于图像分类为例,使用的模块是tf.contrib.slim。
TensorFlow的所有用于图像分类的预训练模型的下载地址为models/research/slim,包含常用的VGG,Inception,ResNet,MobileNet以及最新的NasNet模型等。要使用这些预训练模型的关键是将这些预训练的参数正确的导入到定义好的神经网络,这可以通过函数slim.assign_from_checkpoint_fn来方便的实现。
一、Fine tuning模型定义
前已提及,TensorFlow所有预训练模型均在GitHub项目models/research/slim,而其对应的神经网络实现则在其子文件夹nets。我们以调用ResNet-50为例(其它模型类似),首先来定义网络结构:
Figure BDA0002240122400000041
Figure BDA0002240122400000051
我们假设要分类的图像有self.num_classes个类,随机选择一个批量的图像,对这些图像进行预处理后,把它们作为参数传入predict函数,此时直接调用TensorFlow-slim封装好的nets.resnet_v1.resnet_v1_50神经网络得到图像特征,因为ResNet-50是用于1000个类的分类的,所以需要设置参数num_classes=None禁用它的最后一个输出层。我们假设输入的图像批量形状为[None,224,224,3],则resnet_v1_50函数返回的形状为[None,1,1,2048],为了输入到全连接层,需要用函数tf.squeeze去掉形状为1的第1,2个索引维度。最后,连接再一个全连接层得到self.num_classes个类的预测输出。
可以看到,使用tf.contrib.slim模块,调用ResNet-50等神经网络变得异常简单。而接下来的关键问题是怎么导入预训练的参数,进而使用我们自己的数据来对预训练模型进行精调。在阐述怎么解决这个问题之前,先将整个模型定义的文件model.py列出以方便阅读:
Figure BDA0002240122400000061
Figure BDA0002240122400000071
Figure BDA0002240122400000081
Figure BDA0002240122400000091
Figure BDA0002240122400000101
要将预训练模型ResNet-50的参数导入到前面定义好的模型,需要继续借助tf.contrib.slim模块,而且方法很简单,只需要在训练函数slim.learning.train中指定初始化参数来源函数init_fn即可,而这可以通过函数
slim.assign_from_checkpoint_fn(model_path,var_list,
ignore_missing_vars=False,
reshape_variables=False)
很方便的实现。其中,第一个参数model_path指定预训练模型xxx.ckpt文件的路径,第二个参数var_list指定需要导入对应预训练参数的所有变量,通过函数
slim.get_variables_to_restore(include=None,
exclude=None)
可以快速指定,如果需要排除一些变量,也就是如果想让某些变量随机初始化而不是直接使用预训练模型来初始化,则直接在参数exclude中指定即可。第三个参数ignore_missing_vars非常重要,一定要将其设置为True,也就是说,一定要忽略那些在定义的模型结构中可能存在的而在预训练模型中没有的变量,因为如果自己定义的模型结构中存在一个参数,而这些参数在预训练模型文件xxx.ckpt中没有,那么如果不忽略的话,就会导入失败(这样的变量很多,比如卷积层的偏置项bias,一般预训练模型中没有,所以需要忽略,即使用默认的零初始化)。最后一个参数reshape_variabels指定对某些变量进行变形,这个一般用不到,使用默认的False即可。
有了以上的基础,而且你还阅读过上一篇文章TensorFlow-slim训练CNN分类模型(续)的话,那么整个使用预训练模型的训练文件train.py就很容易写出了,如下(重点在函数get_init_fn):
Figure BDA0002240122400000111
Figure BDA0002240122400000121
Figure BDA0002240122400000131
Figure BDA0002240122400000141
Figure BDA0002240122400000151
Figure BDA0002240122400000161
Figure BDA0002240122400000171
Figure BDA0002240122400000181
Figure BDA0002240122400000191
函数get_init_fn从指定路径下读取预训练模型。如果没有指定预训练模型路径(FLAGS.checkpoint_path),则返回None(表示随机初始化参数)。如果在训练路径下(FLAGS.logdir)已经保存过训练后的模型,也返回None(即忽略预训练模型参数,而使用最后训练保存下来的模型初始化参数)。如果你只想导入部分层的预训练参数,而忽略其它层的预训练参数,则可以设置checkpoint_exclude_scopes这个参数,用来指定你要排除掉(即不需要导入预训练参数)的那些层的名字,比如你要禁用第一卷积层,以及第一个block1,只需要指定:
checkpoint_exclude_scopes='resnet_v1_50/conv1,resnet_v1_50/block1'
init_fn=get_init_fn(checkpoint_exclude_scopes)
函数get_trainable_variables的作用是获取需要训练的变量,它默认返回所有可训练的变量。当你需要冻结一些层,让这些层的参数不更新时,通过参数checkpoint_exclude_scopes指定,比如我想让ResNet-50的block1和block2/unit_1冻结时,通过:
scopes_to_freeze='resnet_v1_50/block1,resnet_v1_50/block2/unit_1'
vars_to_train=get_trainable_variables(scopes_to_freeze)
调用即可。
选择数据集,下载好数据集之后,执行如下指令:
Figure BDA0002240122400000192
Figure BDA0002240122400000201
将训练集图像写入到train.record文件中。之后,执行:
$python3train.py\
--record_path Path/to/train.record\
--checkpoint_path Path/to/pretrained_ResNet-50_model/resnet_v1_50.ckpt
开始训练。训练开始之后,会在当前train.py路径下生成一个文件夹training用来保存训练模型。需要额外说明的是,训练过程不会在终端输出准确率、损失等数据,需要在终端执行:
$tensorboard--logdir Path/to/training
之后,打开返回的http链接在浏览器查看准确率、损失等训练曲线(训练过程中,训练结束后都可查看)。训练正常启动后,每10分钟会保存一次模型到training文件夹(诸如model.ckpt-xxx之类的文件),你可以选择使用其中的model.ckpt-xxx模型来直接进行预测,也可以选择将model.ckpt-xxx转化为.pb文件之后再进行预测,如果选择转化,执行:
$python3export_inference_graph.py\
--trained_checkpoint_prefix Path/to/model.ckpt-xxx\
--output_directory Path/to/exported_pb_file_directory
之后,在指定的输出路径下(Path/to/exported_pb_file_directory)会生成一个文件夹,该文件内的frozen_inference_graph.pb即是转化成的固化模型文件(固化指的是所有参数都转化成了常数)。之后就可以使用evaluate.py或者predict.py进行验证或预测了。
上述实施例和说明书中描述的只是说明本方法的原理和最佳实施例,在不脱离本方法精神和范围的前提下,本方法还会有各种变化和改进,这些变化和改进都落入要求保护的本方法范围内。

Claims (6)

1.基于行人重识别的跨镜头的行人检索方法,其特征在于:它包括以下步骤:
步骤一,采用resnet-50作为基础网络构建网络结构;
步骤二,训练;
步骤三,获取各个监控设备采集的监控视频;
步骤四,对各监控设备采集的监控视频中的行人进行检测、跟踪,分割出行人图片并进行存储;
步骤五,根据分割的行人图片计算行人特征;
步骤六,根据各个行人的行人特征之间的相似度对行人进行分类,并将各行人的行人特征以及行人信息记录在对应的分类下,构成行人特征数据库;
步骤七,计算待检索行人的行人特征,将待检索行人的行人特征与行人特征数据库中的参照特征进行对比得出待检索行人所属类别,该类别下的行人信息作为跨镜头行人检索的结果。
2.根据权利要求1所述的基于行人重识别的跨镜头的行人检索方法,其特征在于:所述步骤一中构建网络结构的方法:将resnet-50作为基础网络,在最后一个全连接层的前面加入一个Eigenlayer。
3.根据权利要求2所述的基于行人重识别的跨镜头的行人检索方法,其特征在于:所述步骤二中训练方法为:
首先,用加了全连接层的resnet-50在之前训好的resnet-50上进行fine-tune直至收敛;然后进行约束和松弛迭代和重复约束和松弛迭代。
4.根据权利要求3所述的基于行人重识别的跨镜头的行人检索方法,其特征在于:约束和松弛迭代的方法包括:去相关:将新加的全连接层的权重进行SVD分解,W=USVTW=USVT,用US代替W,然后用WWTWWT的特征向量代替权重;约束:固定本层参数继续fine-tune直至收敛;松弛:不固定本层参数继续fine-tune直至收敛。
5.根据权利要求4所述的基于行人重识别的跨镜头的行人检索方法,其特征在于:欧式
Figure FDA0002240122390000011
距离的计算:
由于V为酉矩阵,因此USUS来替换W之后的相似性度量是不变的,即
Figure FDA0002240122390000021
6.根据权利要求5所述的基于行人重识别的跨镜头的行人检索方法,其特征在于:采用TensorFlow调用预训练模型来精调神经网络resnet-50。
CN201910997126.3A 2019-10-20 2019-10-20 基于行人重识别的跨镜头的行人检索方法 Pending CN112686088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910997126.3A CN112686088A (zh) 2019-10-20 2019-10-20 基于行人重识别的跨镜头的行人检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910997126.3A CN112686088A (zh) 2019-10-20 2019-10-20 基于行人重识别的跨镜头的行人检索方法

Publications (1)

Publication Number Publication Date
CN112686088A true CN112686088A (zh) 2021-04-20

Family

ID=75445092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910997126.3A Pending CN112686088A (zh) 2019-10-20 2019-10-20 基于行人重识别的跨镜头的行人检索方法

Country Status (1)

Country Link
CN (1) CN112686088A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113449611A (zh) * 2021-06-15 2021-09-28 电子科技大学 一种基于yolo网络压缩算法的安全帽识别智能监控系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171184A (zh) * 2018-01-03 2018-06-15 南京理工大学 基于Siamese网络的用于行人重识别的方法
CN109753853A (zh) * 2017-11-06 2019-05-14 北京航天长峰科技工业集团有限公司 一种同时完成行人检测与行人重识别的方法
CN109902573A (zh) * 2019-01-24 2019-06-18 中国矿业大学 面向矿井下视频监控的多摄像机无标注行人重识别方法
CN109934104A (zh) * 2019-01-29 2019-06-25 武汉烽火众智数字技术有限责任公司 基于行人重识别的跨镜头的行人检索方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753853A (zh) * 2017-11-06 2019-05-14 北京航天长峰科技工业集团有限公司 一种同时完成行人检测与行人重识别的方法
CN108171184A (zh) * 2018-01-03 2018-06-15 南京理工大学 基于Siamese网络的用于行人重识别的方法
CN109902573A (zh) * 2019-01-24 2019-06-18 中国矿业大学 面向矿井下视频监控的多摄像机无标注行人重识别方法
CN109934104A (zh) * 2019-01-29 2019-06-25 武汉烽火众智数字技术有限责任公司 基于行人重识别的跨镜头的行人检索方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YIFAN SUN 等: "SVDNet for Pedestrian Retrieval", 《ARXIV》, 6 August 2017 (2017-08-06), pages 1 - 9 *
公输睚信: "TensorFlow 使用预训练模型 ResNet-50", pages 1 - 3, Retrieved from the Internet <URL:https://www.jianshu.com/p/0237ebbee5d5> *
邓轩 等: "基于深度多视图特征距离学习的行人重识别", 《计算机应用》, vol. 39, no. 8, 10 August 2019 (2019-08-10), pages 2223 - 2229 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113449611A (zh) * 2021-06-15 2021-09-28 电子科技大学 一种基于yolo网络压缩算法的安全帽识别智能监控系统

Similar Documents

Publication Publication Date Title
CN108764308B (zh) 一种基于卷积循环网络的行人重识别方法
CN111259786B (zh) 一种基于视频的外观和运动信息同步增强的行人重识别方法
Huang et al. Person search in videos with one portrait through visual and temporal links
CN110674688B (zh) 用于视频监控场景的人脸识别模型获取方法、系统和介质
CN111046821B (zh) 一种视频行为识别方法、系统及电子设备
CN113065402B (zh) 一种基于变形注意力机制的人脸检测方法
CN108197326A (zh) 一种车辆检索方法及装置、电子设备、存储介质
Halawa et al. Face recognition using faster R-CNN with inception-V2 architecture for CCTV camera
CN111709311A (zh) 一种基于多尺度卷积特征融合的行人重识别方法
CN115171165A (zh) 全局特征与阶梯型局部特征融合的行人重识别方法及装置
CN112580480B (zh) 一种高光谱遥感影像分类方法及装置
CN113610144A (zh) 一种基于多分支局部注意力网络的车辆分类方法
CN112818790A (zh) 一种基于注意力机制与空间几何约束的行人重识别方法
CN111539445B (zh) 一种半监督特征融合的对象分类方法及系统
CN115223246A (zh) 一种人员违规行为识别方法、装置、设备及存储介质
CN115115825B (zh) 图像中的对象检测方法、装置、计算机设备和存储介质
CN113033507B (zh) 场景识别方法、装置、计算机设备和存储介质
CN112686088A (zh) 基于行人重识别的跨镜头的行人检索方法
CN112559791A (zh) 一种基于深度学习的布匹分类检索方法
CN117218382A (zh) 一种无人系统大跨度穿梭多摄像头轨迹跟踪识别方法
Raihan et al. CNN modeling for recognizing local fish
CN114782997A (zh) 基于多损失注意力自适应网络的行人重识别方法及系统
Ştefan et al. Deep learning-based person search with visual attention embedding
Xu et al. Violent Physical Behavior Detection using 3D Spatio-Temporal Convolutional Neural Networks
Jiashu Performance analysis of facial recognition: A critical review through glass factor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination