CN109670405B - 一种基于深度学习的复杂背景行人检测方法 - Google Patents
一种基于深度学习的复杂背景行人检测方法 Download PDFInfo
- Publication number
- CN109670405B CN109670405B CN201811408378.XA CN201811408378A CN109670405B CN 109670405 B CN109670405 B CN 109670405B CN 201811408378 A CN201811408378 A CN 201811408378A CN 109670405 B CN109670405 B CN 109670405B
- Authority
- CN
- China
- Prior art keywords
- feature
- layer
- feature extraction
- layers
- network
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 151
- 238000013135 deep learning Methods 0.000 title claims abstract description 21
- 238000000605 extraction Methods 0.000 claims abstract description 97
- 238000012549 training Methods 0.000 claims abstract description 79
- 238000012360 testing method Methods 0.000 claims abstract description 72
- 238000013528 artificial neural network Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 80
- 230000004927 fusion Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 5
- 230000005764 inhibitory process Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000013434 data augmentation Methods 0.000 claims description 2
- 238000002372 labelling Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 238000011176 pooling Methods 0.000 abstract description 4
- 239000010410 layer Substances 0.000 description 127
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000004308 accommodation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 230000004438 eyesight Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于深度学习的复杂背景行人检测方法,其主要步骤如下:搭建SSD目标检测框架并修改SSD网络模型:在特定卷积层中间添加Inception组件,通过Concatenation操作将特定卷积层进行融合,得到新的特征提取层,以新特征提取层为基础层构建新的特征提取网络;在新特征提取层后端添加Inception组件,并通过Pooling和Concatenation操作将所提取特征逐层与后续的特征提取层融合;以上述步骤所得的网络作为训练网络,使用行人数据集进行训练;设定相关阈值,使用相应的测试集进行测试,输出检测结果。本发明通过加深和加宽神经网络来充分挖掘图像中的背景信息,不仅提高了SSD框架在行人检测任务中的召回率,而且增强了该框架的鲁棒性,提升了该框架在复杂背景下的行人检测性能。
Description
技术领域
本发明涉及计算机视觉和人工智能技术领域,具体涉及一种基于深度学习的复杂背景行人检测方法。
背景技术
行人检测即判断输入的图像或视频序列中是否存在行人,并确定其位置。行人检测是目标检测的一个分支,也是目标检测领域的研究热点和难点,其在自动驾驶、视频监控和智能机器人等人工智能领域中具有广泛的应用。同时,行人检测也是许多计算机视觉任务的前提和基础,如行人结构化、行人行为分析和行人再识别等任务,都需要先对输入数据中的行人做出检测才能进行后续的工作。因此,有效的行人检测方法具有重要的研究意义与迫切的实际需求。
行人检测技术在20世纪90年代就开始引起了人们的关注,许多学者围绕该领域开展研究,诞生了多种不同类型的行人检测方法,较为经典的有基于机器学习的行人检测方法。基于机器学习的行人检测研究主要集中于2005至2011年这段时间内,从行人描述特征着手,可将此阶段产生的方法分为基于全局特征的方法、基于人体部件特征的方法和基于立体视觉特征的方法三大类。Dalal和Triggs在2005年提出梯度方向直方图(Histogram ofOriented Gradient,HOG)的概念,并在发表于CVPR(IEEE Conference on ComputerVision and Pattern Recognition)会议上的论文《Histograms of oriented gradientsfor human detection》中将其用于行人检测,该算法在MIT行人数据库上获得近乎100%的检测成功率,在包含视角、光照和背景等变化的INRIA行人数据库上,也取得了大约90%的检测成功率。Mikolajczyk等人在ECCV(European Conference on Computer Vision)会议上发表论文《Human detection based on a probabilistic assembly of robust partdetectors》,将人体分成人脸、头肩部以及腿部,然后对每个部分采用SIFT(ScaleInvariant Feature Transform)特征进行描述,该方法在MIT行人库上取得了不错的检测效果。Hattori等人在BMVC(British Machine Vision Conference)会议上发表论文《Stereo-based pedestrian detection using multiple patterns》,提出对左右视角的多个图像进行ROI(Region of Interest)提取,并将其用于模式分类,降低了目标检测的误检率。基于机器学习的行人检测方法采取人工提取特征的方式,其往往具有片面性和主观性,且存在特征提取能力不足的缺点。
最近,深度学习以其端到端的训练方式及强大的特征提取能力,在计算机视觉领域引起了一大批学者的关注。在目标检测和行人检测领域,研究者们也纷纷尝试将深度学习应用到目标检测和行人检测任务中。2014年Girshick等人在CVPR会议上发表论文《RichFeature Hierarchies for Accurate Object Detection and Semantic Segmentation》,创新性地提出了“候选窗口生成+特征提取+候选窗口分类”的三段式区域卷积神经网络(Region based Convolutional Neural Network,R-CNN)目标检测方法,并取得优异的检测效果。虽然R-CNN在精确度上有较大的提升,但是其速度非常慢,处理一张图片大约需要200秒。随后,Girshick等人又于2015年分别在ICCV(IEEE International Conference onComputer Vision)会议和International Conference on Neural InformationProcessing Systems会议上发表论文《Fast R-CNN》和《Faster R-CNN:towards real-timeobject detection with region proposal networks》,提出检测速度更快、检测精确度更高的目标检测框架Fast R-CNN和Faster R-CNN,形成R-CNN系列目标检测算法。与R-CNN系列方法不同,Redmon等人在CVPR会议上发表论文《You Only Look Once:Unified,Real-Time Object Detection》,提出YOLO目标检测模型,该模型通过直接回归的方法在实现较好检测精确度的同时极大提升检测速度。Liu等人在ECCV会议上发表论文《SSD:SingleShot MultiBox Detector》,其在YOLO模型的基础上进行改进,提出SSD目标检测框架,进一步提升检测速度与精确度。上面主要讲述的是近几年基于深度学习的目标检测方法的发展历程,行人检测的方法大都是在通用目标检测方法的基础上进行一些修改,因此主要的发展路径大体一致。
当前基于深度学习的行人检测主要包括两大类:一是将传统方法与神经网络相结合,先使用传统方法进行初步检测,然后将检测结果作为神经网络的输入,去掉传统方法在初步检测过程中产生的误检窗口。这一类方法一定程度上减少了误检窗口,然而,深度学习在此过程中扮演分类器的角色,算法的检测精确度主要依赖于传统方法,并且无法形成端到端的检测框架,需要人工参与部分特征的提取。第二类方法是将现有目标检测框架进行修改后使用行人数据进行训练,利用训练好的模型来完成行人检测任务。这类方法虽然取得了一定的效果,但是并未深究什么样的网络结构更适合于行人检测。基于深度学习的行人检测方法虽然在许多公开数据集上(如INRIA行人数据库等)取得了不错的检测效果,但是对于背景较为复杂的数据集或贴近现实生活的图像或视频数据,此类算法的表现却差强人意。当前针对复杂背景行人检测的研究相对较少,Zhao等人在专著IntelligentComputing Theories and Application上发表论文《Pedestrian Detection Based onFast R-CNN and Batch Normalization》,其将EdgeBoxes算法和Fast R-CNN模型相结合,提出了一种针对复杂背景的行人检测方法,该方法先使用EdgeBoxes算法提取一系列候选框,再将提取的候选框作为输入数据训练修改过的Fast R-CNN模型,最后使用训练好的Fast R-CNN模型实现行人检测。虽然其所提算法在检测性能上有一定的提升,但距离直接应用于现实生活还存在一定差距,因此需要寻找有效的复杂背景行人检测方法,以解决复杂背景下的行人检测问题。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种基于深度学习的复杂背景行人检测方法,该方法有效地克服了现有技术在复杂背景下行人检测准确率低和漏检率高等缺点,增强了SSD框架的鲁棒性,提升了该框架在复杂背景下的行人检测性能。
本发明基于SSD目标检测框架通过加宽和加深神经网络的方式,结合Inception组件、特征融合方式的特点,提出一种基于深度学习的复杂背景行人检测方法,通过在SSD特征提取网络前端添加Inception组件,提升模型的特征提取能力,充分挖掘输入图像的背景信息。同时将Inception组件所提取的特征进行融合,以此构建新的特征提取网络,接着再次添加Inception组件,进一步提升模型的特征提取能力,并将所提取特征与网络后端的卷积层逐层进行融合,共享上下文信息,增强了模型的鲁棒性。
本发明的目的可以通过如下技术方案实现:
一种基于深度学习的复杂背景行人检测方法,所述方法包括以下步骤:
步骤1、以分类网络VGG16为基础网络搭建SSD目标检测框架,将SSD目标检测框架中的分类参数修改为二分类,构建SSD行人检测框架;
步骤2、分别在SSD行人检测框架训练神经网络的第一、二层特征提取层中间和第三、四层特征提取层中间各添加两组Inception组件,替代原有卷积核大小为3x3的四层卷积层,且保持第三、四层特征提取层的宽度和高度一致,即输出特征尺寸均为10x10;
步骤3、通过双线性插值的方式将第二、四层特征提取层的宽度和高度变换为38,得到新的第二、四层特征提取层,且其宽度和高度与第一层特征提取层一致,删除SSD行人检测框架训练神经网络的后两层特征提取层;
步骤4、通过Concatenation操作将含有Inception组件的第一、二、四层特征提取层融合成新的特征提取层,以融合所得新特征提取层为基础层,逐层减小网络的宽度和高度,构建其它五层特征提取层,形成新的特征提取网络;
步骤5、抽取新特征提取网络的第一层特征提取层,在其后端添加Inception组件,通过Pooling和Concatenation操作将该Inception组件的输出特征与特征提取网络的后五层特征提取层逐层进行融合,形成最终的特征提取网络;
步骤6、在步骤3和步骤4所添加Inception组件中的每层卷积层后端添加BatchNormalization层,并在每个Inception组件的融合特征层后端添加两层卷积核大小为1x1的卷积层,形成Inception组件的最终输出特征;
步骤7、获取训练图像并进行标注,使用SSD行人检测框架自带的数据增广操作对标注好的训练图像进行预处理,并以步骤2-5所得神经网络作为训练网络,修改SSD行人检测框架对应参数并设置训练策略,使用预处理后的训练图像训练模型,当模型达到最大训练次数或者拟合时停止训练;
步骤8、设定IOU交并比阈值、置信度阈值、非极大值抑制阈值,获取测试图像并调用训练好的模型进行前向计算得到检测结果,根据网络的检测结果在测试图像上画出相应的行人框,得到检测后的测试图像。
进一步地,所述步骤1中,SSD目标检测框架为论文《SSD:Single Shot MultiBoxDetector》提出的目标检测框架,其包含基础网络、特征提取网络和分类检测模块三部分,其中基础网络负责初步特征提取,特征提取网络负责多尺度特征提取,分类检测模块负责对特征提取网络所提取的特征进行分类;SSD目标检测框架的默认输入尺寸大小为300x300;其中,基础网络为VGG16中的conv1_1-fc7层,其中VGG16的全连接层fc6、fc7被改为卷积核大小为3x3的卷积层;另外,SSD目标检测框架的特征提取网络包含六层特征提取层,分别为:conv4_3、fc7、conv6_2、conv7_2、conv8_2、conv9_2,其中conv4_3和fc7为基础网络VGG16的卷积层。
进一步地,所述步骤2中,通过Concatenation操作将卷积核大小分别为5x5、3x3、1x1的三层并联卷积层进行融合,组成Inception组件,其中卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数比为1:2:1,且卷积核大小为5x5的卷积层由两层卷积核大小为3x3的卷积层串联实现;新建fc6_inception、fc7_inception、conv7_1_inception、conv7_2_inception共四组Inception组件,分别替换SSD行人检测框架训练神经网络中的fc6、fc7、conv7_1、conv7_2四层卷积层,替代默认的3x3卷积操作。
进一步地,所述步骤3中,通过双线性插值的方式将fc7_inception、conv7_2_inception的输出转换为38x38尺寸的特征,使其宽度和高度与conv4_3层相同,分别得到fc7_interp、conv7_2_interp,删除SSD行人检测框架训练神经网络中原有的特征提取层conv8_2和conv9_2。
进一步地,所述步骤4中,通过Concatenation操作将含有Inception组件的conv4_3、fc7_interp、conv7_2_interp融合成新的特征提取层feature_1,以特征提取层feature_1为基础层构建特征提取层feature_2、feature_3、feature_4、feature_5、feature_6,形成新的特征提取网络。
进一步地,所述步骤5中,在特征提取层feature_1后端添加Inception组件,得到特征层feature_1_inception,通过Pooling和Concatenation操作将feature_1_inception层逐层与feature_2、feature_3、feature_4、feature_5、feature_6融合,形成最终的特征提取网络,其包含六层特征提取层,分别为feature_1、feature_2、feature_3、feature_4、feature_5、feature_6,所包含六层特征提取层所对应的尺寸大小分别为:38x38、19x19、10x10、5x5、3x3、1x1。
进一步地,所述步骤5中,feature_1后端所添加Inception组件的构建方式及卷积核个数占比与步骤2一致。
进一步地,所述步骤6中,Inception组件融合特征层后端添加的卷积层的卷积核个数等于卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数之和。
进一步地,所述步骤7中,修改SSD行人检测框架对应参数包括修改学习率参数、设置训练最大迭代次数、设置学习率更新策略。
进一步地,所述步骤8中,测试网络输出结果包含测试图像名称、行人边框置信度及行人边框坐标值。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明提供的一种基于深度学习的复杂背景行人检测方法,在行人检测任务上使用深度学习技术代替手工提取特征,利用卷积神经网络强大的表征能力来充分获取输入图像的行人特征,提升了行人检测方法的整体检测性能。
2、本发明基于SSD目标检测框架,创新性地结合Inception组件、特征融合等多种特性,在SSD特征提取网络前端添加Inception组件,提升对应隐藏层的特征提取能力,充分挖掘图像背景信息,并将所提特征进行融合,以此构建新的特征提取网络;后续在新特征提取网络第一层后端再次添加Inception组件,并将所提取特征逐层与后端的隐藏层融合,共享上下文信息,增强了模型的鲁棒性,提高了模型在复杂背景下的行人特征提取能力,从而实现了复杂背景行人检测准确率和召回率的提升。
3、本发明选择在SSD特征提取网络上进行相应修改,增加SSD特征提取网络的复杂度,提高其特征提取能力,由于该段神经网络特征层宽度和高度均较小,最大宽度和高度为38,最小宽度和高度为1,因此,增加该段神经网络的复杂度不会导致模型参数量的急剧增加,保证模型在训练阶段依旧可以较快达到拟合,且在提高模型特征提取能力的同时不会导致模型检测速度的大幅度下降,保证模型的实时性,使得模型依旧具备实时检测的能力。
附图说明
图1为本发明方法的复杂背景行人检测模型的训练流程框图。
图2为本发明方法的复杂背景行人检测模型的测试流程框图。
图3为本发明方法的复杂背景行人检测模型的网络结构图。
图4为本发明方法所添加Inception组件的结构框图。
图5为本发明实施例中测试结果的P-R曲线图。
图6为本发明实施例模型训练过程的mAP值曲线图。
图7为本发明实施例的检测结果对比图,其中,图7(a)、图7(c)、图7(e)、图7(g)为SSD模型的检测效果图,图7(b)、图7(d)、图7(f)、图7(h)分别为对应的本发明方法的检测效果图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
本实施例提供了一种基于深度学习的复杂背景行人检测方法,包括复杂背景行人检测模型训练和复杂背景行人检测模型测试两部分。
图1所示为本发明的复杂背景行人检测模型的训练流程框图,主要包括SSD目标检测框架搭建、训练神经网络修改、lmdb格式训练数据生成、模型训练策略设置、反向传播更新权重、已拟合模型参数保存等步骤。
图2则表示本发明的复杂背景行人检测模型的测试流程框图,主要包括测试神经网络修改、lmdb格式测试数据生成、测试模型调用、测试图像读取、测试网络前向计算、检测结果输出及保存等步骤。
图3分别本发明方法的网络结构图,与SSD相比,本发明方法结合了Inception组件、特征融合等多种特点,通过加宽和加深网络的方式提高模型的特征提取能力,充分挖掘输入图像的背景信息,增加模型的复杂度来提高模型的表征能力,同时在保证检测精确度提升的同时不会导致模型检测速度的大幅度下降。
下面分别以PSDB数据集所划分的训练图像和测试图像作为训练数据和测试数据来详细介绍本发明的实施过程,实施例主要基于Caffe版的SSD模型实现。PSDB(CUHK-SYSUPerson Search Dataset,也称Person Search Data Base)数据集是香港中文大学多媒体实验室王晓刚研究组发布的行人检测数据集,该数据集由拍摄图像和视频截图组成,共18184幅图像,与其它数据集相比,该数据集收集了数百个生活场景(如地铁、商场、公园等)的图像,具有多场景、背景复杂、多视角、光照变化大等特点。另外,该数据集选择电影和电视剧作为收集图像的另一个来源,使数据集的场景和图像的内容更加丰富,同时也使得该数据集更具有挑战性。PSDB数据集共有训练图像11206张,测试图像6978张,全部图像中有12490幅图像由电子设备拍摄于各类生活场景,包括夜间、阴天、雨天、室内及室外等;另外的5694幅图像来源于电影或电视剧的截图。由于PSDB数据集中有许多图像背景较为复杂,检测难度较大,符合本发明的实施要求,故选择该数据集作为实施例的训练数据和测试数据。实施例通过本发明的方法,将背景较为复杂的PSDB测试图像中的行人检测出来,并给出精确的行人坐标框及其对应的置信度,其模型训练流程如图1所示,对应的模型测试流程如图2所示,模型的网络结构图如图3所示。实施具体步骤如下:
第一步,框架搭建及修改。
基于Caffe搭建SSD目标检测框架,并使用Python编程语言执行ssd_pascal.py文件,生成适用于Pascal VOC数据集的多分类SSD模型。修改上述SSD模型的训练网络和测试网络中的相关类别参数,将其由21类分类网络修改为二分类网络,使其适用于行人检测。
第二步,PSDB数据集格式转换。
从PSDB数据集的标注文件中读取行人边框标注信息,计算每个行人框所对应的坐标值。以Pascal VOC数据集的格式为标准生成PSDB数据集中每幅图像所对应的xml标签文件,共生成18184份xml标签文件,包含行人框99809个。
第三步,生成训练数据与测试数据。
将PSDB数据集所划分的训练图像和测试图像与相应的xml标签文件一一对应起来,并分别创建TXT文件保存图像与xml的对应信息。运行create_data.sh文件读取相应的图像和xml标签文件生成lmdb格式的训练数据和测试数据。
第四步,修改训练神经网络,提高模型特征提取能力。
删除fc6、fc7、conv7_1、conv7_2共四层特征提取层,添加fc6_inception、fc7_inception、conv7_1_inception、conv7_2_inception共四组Inception组件,分别替换删除的四层卷积层,且保持conv7_2_inception的宽度和高度与conv6_2层的尺寸相同,即输出特征尺寸均为10x10。上述添加的Inception组件由三层卷积核大小分别为5x5、3x3、1x1的卷积层并联组成,其中卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数比为1:2:1,且卷积核大小为5x5的卷积层由两层卷积核大小为3x3的卷积层串联实现。在所添加Inception组件中的每层卷积层后端添加Batch Normalization层,并在每个Inception组件的融合特征层后端添加两层卷积核大小为1x1的卷积层,形成Inception组件的最终输出特征,本发明所添加Inception组件的结构框图如图4所示。
新建Interp层通过双线性插值的方式将fc7_inception、conv7_2_inception的宽度和高度变换为38,分别得到特征提取层fc7_interp、conv7_2_interp,删除训练神经网络中原有的特征提取层conv8_2和conv9_2。新建Concat层将含有Inception组件的conv4_3、fc7_interp、conv7_2_interp融合成新的特征提取层feature_1,以特征提取层feature_1为基础层,设置卷积核大小为3x3,逐层减小网络的宽度和高度,构建特征提取层feature_2、feature_3、feature_4、feature_5、feature_6,形成新的特征提取网络。
第五步,修改训练神经网络,共享上下文信息。
在第四步的基础上,在特征提取层feature_1后端添加Inception组件,得到特征层feature_1_inception,接着对feature_1_inception层通过五次Pooling操作得到五层尺寸不同的特征层:feature_1_pool1、feature_1_pool2、feature_1_pool3、feature_1_pool4、feature_1_pool5,且保持这五层特征层的宽度和高度分别与feature_2、feature_3、feature_4、feature_5、feature_6相同,接着通过Concatenation操作将五次Pooling操作所得的五层特征层分别与feature_2、feature_3、feature_4、feature_5、feature_6层进行融合,并将融合所得特征进行一次3x3卷积操作之后送进SSD模型的检测模块进行分类和回归。至此,完成本发明所提方法的训练神经网络的修改,网络结构图如图3所示。
第六步,设置模型训练策略。
设置训练batch_size=16,iter_size=2,最大训练迭代次数max_iter=100000,设置优化函数为SGD(Stochastic Gradient Descent,随机梯度下降),动量参数momentum=0.9,初始学习率base_lr=0.0005,在第80000次迭代之后将学习率缩小10倍。
第七步,模型训练与保存。
修改第五步所得训练神经网络的训练数据路径,将其指向lmdb格式的PSDB训练数据集,以论文《SSD:Single Shot MultiBox Detector》的作者Wei Liu所提供的VGG_ILSVRC_16_layers_fc_reduced.caffemodel文件作为预训练模型,输入相关参数运行Caffe开始训练,利用卷积神经网络的反向传播机制不断更新模型权重值,降低模型的损失值,当模型拟合或者达到最大训练迭代次数,停止训练并保存模型权重值,输出对应的caffemodel文件。
第八步,修改测试神经网络,提高模型特征提取能力。
删除fc6、fc7、conv7_1、conv7_2共四层特征提取层,添加fc6_inception、fc7_inception、conv7_1_inception、conv7_2_inception共四组Inception组件,分别替换删除的四层卷积层,且保持conv7_2_inception的宽度和高度与conv6_2的尺寸相同,即输出特征尺寸均为10x10。上述添加的Inception组件由三层卷积核大小分别为5x5、3x3、1x1的卷积层并联组成,其中卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数比为1:2:1,且卷积核大小为5x5的卷积层由两层卷积核大小为3x3的卷积层串联实现。在所添加Inception组件中的每层卷积层后端添加Batch Normalization层,并在每个Inception组件的融合特征层后端添加两层卷积核大小为1x1的卷积层,形成Inception组件的最终输出特征,本发明所添加Inception组件的结构图如图4所示。
新建Interp层通过双线性插值的方式将fc7_inception、conv7_2_inception的宽度和高度变换为38,分别得到特征提取层fc7_interp、conv7_2_interp,删除训练神经网络中原有的特征提取层conv8_2和conv9_2。新建Concat层将含有Inception组件的conv4_3、fc7_interp、conv7_2_interp融合成新的特征提取层feature_1,以特征提取层feature_1为基础层,设置卷积核大小为3x3,逐层减小网络的宽度和高度,构建特征提取层feature_2、feature_3、feature_4、feature_5、feature_6,形成新的特征提取网络。
第九步,修改测试神经网络,共享上下文信息。
在第八步的基础上,在特征提取层feature_1后端添加Inception组件,得到特征层feature_1_inception,接着对feature_1_inception层通过五次Pooling操作得到五层尺寸不同的特征层:feature_1_pool1、feature_1_pool2、feature_1_pool3、feature_1_pool4、feature_1_pool5,且保持这五层特征层的宽度和高度分别与feature_2、feature_3、feature_4、feature_5、feature_6相同,接着通过Concatenation操作将五次Pooling操作所得的五层特征层分别与feature_2、feature_3、feature_4、feature_5、feature_6层进行融合,并将融合所得特征进行一次3x3卷积操作之后送进SSD模型的检测模块进行分类和回归。至此,完成本发明所提方法的测试神经网络的修改,网络结构图如图3所示。
第十步,模型测试并输出测试结果。
修改第九步所得测试神经网络的训练数据路径,将其指向lmdb格式的PSDB测试数据集,设定IOU交并比阈值、置信度阈值,调用第七步所保存的caffemodel文件作为测试模型,输入相关参数运行Caffe调用测试模型对测试网络参数进行初始化,读取测试图像并对测试网络进行前向计算得到测试结果,最后将测试结果存储于TXT文件中,包含测试图像名称、检出行人框坐标值及该矩形框所对应的置信度。使用Python编程语言执行plot_detections.py文件,在测试图像上绘制所检测出的行人框,并在行人框上方显示其置信度。
为了验证本发明方法的可行性以及检验该方法的各项性能,本发明在Caffe深度学***台为Linux-Ubuntu 16.04操作***,所使用的GPU型号为NVIDIA GeForceGTX 1080Ti,GPU显存为11G,详细训练参数设置为:batch_size=16,iter_size=2,最大训练迭代次数max_iter=100000,优化函数为SGD(Stochastic Gradient Descent,随机梯度下降),动量参数momentum=0.9,初始学***性,本次实验SSD模型与本发明方法的实验环境和所有实验参数均相同。
表1、2、3列举了SSD模型和本发明方法的各项检测结果,以及这两个模型的对比数据。其中“原始数据”表示PSDB测试集所包含的数据,其它三列分别表示SSD的检测结果、本发明方法的检测结果、本发明方法对比于SSD模型的提升量。“height<60”表示高度小于60个像素值的行人框数量,由于PSDB数据集只标注了高度大于50个像素值的行人,故该项也表示高度位于50-60像素值的行人数量,“60≤height<200”和“200≤height”则分别表示行人高度位于60-200像素值以及行人高度大于200个像素值的行人数量。另外,表1的测试数据所对应的测试参数为:IOU交并比阈值overlap_threshold=0.25,NMS非极大值抑制阈值nms_threshold=0.45,置信度阈值confidence_threshold=0.50,两种方法的实验环境及其他实验参数全部保持一致。
表1
对比项 | 原始数据 | SSD | 本发明方法 | 提升量 |
height<60 | 1939 | 165 | 755 | 590 |
60≤height<200 | 22329 | 12913 | 13805 | 892 |
200≤height | 13642 | 10752 | 11001 | 249 |
正样本数量 | 37910 | 23830 | 25561 | 1731 |
检测框数量 | - | 25120 | 26614 | 1494 |
召回率 | - | 58.30% | 62.54% | 4.24% |
准确率 | - | 94.86% | 96.04% | 1.18% |
mAP | - | 81.80% | 83.75% | 1.95% |
由表1的数据可知,本发明方法在所有对比指标上的检测结果均优于SSD模型。其中对于高度小于60个像素值的行人框,PSDB测试集原有的数量为1939个,SSD模型只检测出了165个,召回率约为8.51%,漏检率高达91.49%,而本发明方法检测出了755个,召回率约为38.94%,相比于SSD模型提高了30.43%;对于高度位于60-200像素值的行人,本发明方法也有较大的提升,比SSD模型多检测出了892个行人框;对于高度大于200像素值的行人,SSD模型和本发明方法的召回率分别为78.82%和80.64%,该项两个模型的召回率均高于75%,虽然提升空间有限,但本发明方法依旧比SSD模型多检测出了249个行人框。另外,本发明方法在整体召回率和mAP(mean Average Precision)等指标上与SSD模型相比均有所提升。
表2和表3分别为IOU交并比阈值overlap_threshold=0.50和0.75时两种方法的检测结果,测试环境及其他测试参数与表1相同。随着IOU交并比阈值的提高,两种方法对应的检测精确度均有所下降。对比表1、2、3可以发现,在IOU交并比阈值overlap_threshold取值不同的情况下,本发明方法的检测结果均优于SSD模型。
表2
对比项 | 原始数据 | SSD | 本发明方法 | 提升量 |
height<60 | 1939 | 96 | 470 | 374 |
60≤height<200 | 22329 | 12570 | 13441 | 871 |
200≤height | 13642 | 10608 | 10913 | 305 |
正样本数量 | 37910 | 23274 | 24824 | 1550 |
检测框数量 | - | 25120 | 26614 | 1494 |
召回率 | - | 56.94% | 60.73% | 3.79% |
准确率 | - | 92.65% | 93.27% | 0.62% |
mAP | - | 76.57% | 78.09% | 1.52% |
表3
对比项 | 原始数据 | SSD | 本发明方法 | 提升量 |
height<60 | 1939 | 23 | 124 | 101 |
60≤height<200 | 22329 | 8868 | 9743 | 875 |
200≤height | 13642 | 8880 | 9373 | 493 |
正样本数量 | 37910 | 17771 | 19240 | 1469 |
检测框数量 | - | 25120 | 26614 | 1494 |
召回率 | - | 43.48% | 47.07% | 3.59% |
准确率 | - | 70.74% | 72.29% | 1.55% |
mAP | - | 45.52% | 47.10% | 1.58% |
图5是测试结果的P-R曲线图,纵坐标表示检测准确率(Precision),横坐标表示检测召回率(Recall),设置不同的置信度阈值求得多对P-R值,将多对P-R值绘制成相应的P-R曲线。红色曲线为本发明方法的P-R曲线,绿色为SSD模型的P-R曲线,其中IOU交并比阈值overlap_threshold=0.5,NMS非极大值抑制阈值nms_threshold=0.45,置信度阈值confidence_threshold的最大值为0.9,最小值为0.1,步进为0.1,每种方法包含9对P-R值。由图可知,在曲线的右上角部分,本发明方法在相同的准确率下召回率高于SSD模型,虽然SSD模型在曲线的右下角取得较高的召回率,但其在取得高召回率率的同时准确率却低于30%,而本发明方法的9对P-R值的准确率均高于60%,图5表明本发明方法的整体性能优于SSD模型。
图6是本发明方法与SSD模型训练过程中的mAP值曲线图。其中横坐标表示训练迭代次数,纵坐标表示mAP值,红色曲线为本发明方法的mAP值变化曲线,绿色为SSD模型的mAP值变化曲线。以模型开始训练为起点,每进行一万次迭代后使用测试数据集进行测试并求得相应的mAP值。如图6所示,整个训练过程中,两种方法的mAP值变化趋势基本一致,说明了本发明方法的模型训练收敛速度与SSD模型大致相同,表明了本发明方法对训练网络的修改不会增加模型的训练难度。
图7是实施例检测结果对比图,如图所示,左边一列,即图7(a)、图7(c)、图7(e)、图7(g)为SSD模型的检测效果图,右边一列,即图7(b)、图7(d)、图7(f)、图7(h)为对应的本发明方法的检测效果图。由图可知,在背景较为复杂的场景下,如夜间环境,室内环境、街道场景等,相比与SSD模型,本发明方法能更好地检测出图像中的行人,证明了本发明方法在复杂背景下具有较强的行人检测能力。
上述实施例通过设置不同阈值并从多个角度将本发明方法的测试结果与SSD模型的测试结果进行对比,由对比结论可知,本发明方法以PSDB数据集作为训练数据和测试数据,在不同的对比条件下检测结果优于SSD模型,且模型的训练收敛速度与SSD模型相当,证明了本发明方法的有效性。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。
Claims (4)
1.一种基于深度学习的复杂背景行人检测方法,其特征在于,所述方法包括以下步骤:
步骤1、以分类网络VGG16为基础网络搭建SSD目标检测框架,包含基础网络、特征提取网络和分类检测模块三部分,其中基础网络负责初步特征提取,特征提取网络负责多尺度特征提取,分类检测模块负责对特征提取网络所提取的特征进行分类;SSD目标检测框架的默认输入尺寸大小为300x300;其中,基础网络为VGG16中的conv1_1-fc7层,其中VGG16的全连接层fc6、fc7被改为卷积核大小为3x3的卷积层;另外,SSD目标检测框架的特征提取网络包含六层特征提取层,分别为:conv4_3、fc7、conv6_2、conv7_2、conv8_2、conv9_2,其中conv4_3和fc7为基础网络VGG16的卷积层;将SSD目标检测框架中的分类参数修改为二分类,构建SSD行人检测框架;
步骤2、通过Concatenation操作将卷积核大小分别为5x5、3x3、1x1的三层并联卷积层进行融合,组成Inception组件,其中卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数比为1:2:1,且卷积核大小为5x5的卷积层由两层卷积核大小为3x3的卷积层串联实现;新建fc6_inception、fc7_inception、conv7_1_inception、conv7_2_inception共四组Inception组件,分别替换SSD行人检测框架训练神经网络中的fc6、fc7、conv7_1、conv7_2四层卷积层,替代默认的3x3卷积操作;保持conv7_1_inception、conv7_2_inception的宽度和高度一致,即输出特征尺寸均为10x10;
步骤3、通过双线性插值的方式将fc7_inception、conv7_2_inception的输出转换为38x38尺寸的特征,使其宽度和高度与conv4_3层相同,分别得到fc7_interp、conv7_2_interp,删除SSD行人检测框架训练神经网络中原有的特征提取层conv8_2和conv9_2;
步骤4、通过Concatenation操作将含有Inception组件的conv4_3、fc7_interp、conv7_2_interp融合成新的特征提取层feature_1,以特征提取层feature_1为基础层构建特征提取层feature_2、feature_3、feature_4、feature_5、feature_6,形成新的特征提取网络;
步骤5、抽取新特征提取网络的第一层特征提取层feature_1,在其后端添加Inception组件,feature_1后端所添加Inception组件的构建方式及卷积核个数占比与步骤2一致,得到特征层feature_1_inception,通过Pooling和Concatenation操作将feature_1_inception层逐层与feature_2、feature_3、feature_4、feature_5、feature_6融合,形成最终的特征提取网络,其包含六层特征提取层,分别为feature_1、feature_2、feature_3、feature_4、feature_5、feature_6,所包含六层特征提取层所对应的尺寸大小分别为:38x38、19x19、10x10、5x5、3x3、1x1;
步骤6、在步骤3和步骤4所添加Inception组件中的每层卷积层后端添加BatchNormalization层,并在每个Inception组件的融合特征层后端添加两层卷积核大小为1x1的卷积层,形成Inception组件的最终输出特征;
步骤7、获取训练图像并进行标注,使用SSD行人检测框架自带的数据增广操作对标注好的训练图像进行预处理,并以步骤2-5所得神经网络作为训练网络,修改SSD行人检测框架对应参数并设置训练策略,使用预处理后的训练图像训练模型,当模型达到最大训练次数或者拟合时停止训练;
步骤8、设定IOU交并比阈值、置信度阈值、非极大值抑制阈值,获取测试图像并调用训练好的模型进行前向计算得到检测结果,根据网络的检测结果在测试图像上画出相应的行人框,得到检测后的测试图像。
2.根据权利要求1所述的一种基于深度学习的复杂背景行人检测方法,其特征在于:所述步骤6中,Inception组件融合特征层后端添加的卷积层的卷积核个数等于卷积核大小分别为5x5、3x3、1x1的三层并联卷积层的卷积核个数之和。
3.根据权利要求1所述的一种基于深度学习的复杂背景行人检测方法,其特征在于:所述步骤7中,修改SSD行人检测框架对应参数包括修改学习率参数、设置训练最大迭代次数、设置学习率更新策略。
4.根据权利要求1所述的一种基于深度学习的复杂背景行人检测方法,其特征在于:所述步骤8中,测试网络输出结果包含测试图像名称、行人边框置信度及行人边框坐标值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811408378.XA CN109670405B (zh) | 2018-11-23 | 2018-11-23 | 一种基于深度学习的复杂背景行人检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811408378.XA CN109670405B (zh) | 2018-11-23 | 2018-11-23 | 一种基于深度学习的复杂背景行人检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109670405A CN109670405A (zh) | 2019-04-23 |
CN109670405B true CN109670405B (zh) | 2021-01-19 |
Family
ID=66142237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811408378.XA Expired - Fee Related CN109670405B (zh) | 2018-11-23 | 2018-11-23 | 一种基于深度学习的复杂背景行人检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670405B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443366B (zh) * | 2019-07-30 | 2022-08-30 | 上海商汤智能科技有限公司 | 神经网络的优化方法及装置、目标检测方法及装置 |
CN110598767A (zh) * | 2019-08-29 | 2019-12-20 | 河南省收费还贷高速公路管理有限公司航空港分公司 | 一种基于ssd卷积神经网络的地下排水管道缺陷识别方法 |
CN110781817B (zh) * | 2019-10-25 | 2022-05-17 | 南京大学 | 一种解决部件不对齐的行人再识别方法 |
CN111091110B (zh) * | 2019-12-24 | 2023-11-17 | 山东仁功智能科技有限公司 | 一种基于人工智能的反光背心穿戴识别方法 |
CN111259736B (zh) * | 2020-01-08 | 2023-04-07 | 上海海事大学 | 一种基于深度学习的复杂环境下行人实时检测方法 |
CN111401210B (zh) * | 2020-03-11 | 2023-08-04 | 北京航天自动控制研究所 | 一种基于模板框增广的提高小目标检测稳定性的方法 |
WO2022016355A1 (zh) * | 2020-07-21 | 2022-01-27 | 华为技术有限公司 | 标注信息的确定方法及装置 |
CN112349057A (zh) * | 2020-12-01 | 2021-02-09 | 北京交通大学 | 基于深度学习的室内烟雾和火灾检测方法 |
CN113469097B (zh) * | 2021-07-13 | 2023-10-17 | 大连理工大学人工智能大连研究院 | 一种基于ssd网络的水面漂浮物多相机实时检测方法 |
CN113822172B (zh) * | 2021-08-30 | 2024-06-14 | 中国科学院上海微***与信息技术研究所 | 一种视频时空行为检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9760806B1 (en) * | 2016-05-11 | 2017-09-12 | TCL Research America Inc. | Method and system for vision-centric deep-learning-based road situation analysis |
US10380741B2 (en) * | 2016-12-07 | 2019-08-13 | Samsung Electronics Co., Ltd | System and method for a deep learning machine for object detection |
CN108509978B (zh) * | 2018-02-28 | 2022-06-07 | 中南大学 | 基于cnn的多级特征融合的多类目标检测方法及模型 |
CN108711148B (zh) * | 2018-05-11 | 2022-05-27 | 沈阳理工大学 | 一种基于深度学习的轮胎缺陷智能检测方法 |
-
2018
- 2018-11-23 CN CN201811408378.XA patent/CN109670405B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN109670405A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109670405B (zh) | 一种基于深度学习的复杂背景行人检测方法 | |
Li et al. | Illumination-aware faster R-CNN for robust multispectral pedestrian detection | |
CN108985186B (zh) | 一种基于改进YOLOv2的无人驾驶中行人检测方法 | |
CN109241982B (zh) | 基于深浅层卷积神经网络的目标检测方法 | |
Chen et al. | Survey of pedestrian action recognition techniques for autonomous driving | |
CN111444821A (zh) | 一种城市道路标志自动识别方法 | |
CN109508675B (zh) | 一种针对复杂场景的行人检测方法 | |
CN109684922B (zh) | 一种基于卷积神经网络的多模型对成品菜的识别方法 | |
CN108537824B (zh) | 基于交替反卷积与卷积的特征图增强的网络结构优化方法 | |
CN105528575B (zh) | 基于上下文推理的天空检测方法 | |
CN107808376B (zh) | 一种基于深度学习的举手检测方法 | |
CN107273832B (zh) | 基于积分通道特征与卷积神经网络的车牌识别方法及*** | |
Ren et al. | A novel squeeze YOLO-based real-time people counting approach | |
CN113609896A (zh) | 基于对偶相关注意力的对象级遥感变化检测方法及*** | |
CN112528845B (zh) | 一种基于深度学习的物理电路图识别方法及其应用 | |
Guan et al. | Atrous faster R-CNN for small scale object detection | |
CN113435319B (zh) | 一种联合多目标跟踪和行人角度识别的分类方法 | |
CN114332921A (zh) | 基于改进聚类算法的Faster R-CNN网络的行人检测方法 | |
CN115620090A (zh) | 模型训练方法、低照度目标重识别方法和装置、终端设备 | |
CN111507416A (zh) | 一种基于深度学习的吸烟行为实时检测方法 | |
Liu et al. | Progressive context-dependent inference for object detection in remote sensing imagery | |
CN113361475A (zh) | 一种基于多阶段特征融合信息复用的多光谱行人检测方法 | |
CN114463800A (zh) | 基于广义交并比的多尺度特征融合人脸检测与分割方法 | |
Wang et al. | Summary of object detection based on convolutional neural network | |
CN114332754A (zh) | 基于多度量检测器的Cascade R-CNN行人检测方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210119 |