本发明涉及视频监控中目标检测研究领域,特别涉及一种基于双流卷积神经网络的双目图像快速目标检测方法。
背景技术:
目标检测的任务是,在图像中对感兴趣的目标物体位置进行确定,并对其类别进行识别。目标检测是人脸识别、目标跟踪等众多高级计算机视觉任务的基础。譬如,在人脸识别场景中,需要先对人脸进行检测,才能在特定区域中提取特征以验证身份;类似地,目标跟踪也需要先检测出目标位置,才能进行特征相似度的匹配以跟踪物体。当前目标检测已受到大量来自学术界和工业界的重视,被广泛应用于公共安防、智慧城市和自动驾驶等领域中。
当前的目标检测方法大致可以分为两种:
一、基于单目rgb图像的目标检测方法
该方法是目前目标检测领域中最主要的一个发展方向,其根据单张rgb图像,利用其中的颜色、纹理等特征,从而检测目标物体。然而,由于这种方法仅依赖rgb信息来进行检测,因此对于光照、颜色等因素的变动鲁棒性较差。具体地,一方面,在光照条件不好的情况下,目标在rgb上的特征会不再明显,基于单目rgb图像的目标检测方法往往会漏检此类目标。另一方面,对于一些表观相似的目标,如俯视视角下地上的脚印和行走的行人,基于单目rgb图像的方法往往也会容易将其混淆,把虚假目标误检成正样本。
二、基于双目视觉的目标检测方法
基于双目视觉的目标检测方法通过加装一个rgb摄像头,从双目rgb图像中可以获取图像的深度信息,当前这一深度信息往往通过视差图来表征。由于深度信息对光照、颜色并不敏感,因此将其与rgb结合,可以辅助解决一些单目rgb方法所面临的挑战,提高目标检测的效果。然而,当前基于双目视觉的目标检测方法应用过程比较繁琐,往往需要依赖视差图来进行计算——它们通常需要先在视差图上提取深度信息,然后再综合利用深度信息和rgb信息来进行目标检测。在实际的应用中,得到的原始数据是由摄像头捕获的双目rgb图像,而现有的基于双目视觉的方法需要先对双目图像计算视差图,然后再利用视差图和rgb来进行检测。这无疑不是端到端的方法,视差图的中间计算过程会使应用过程变得繁琐,影响了实际应用的效率。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供一种基于双流卷积神经网络的双目图像快速目标检测方法,该方法构建了一个双流卷积神经网络,具有效率高、目标检测结果更准确的优点。
本发明的目的通过以下的技术方案实现:基于双流卷积神经网络的双目图像快速目标检测方法,包括步骤:
(1)对双目摄像头进行标定,得到标定参数;
(2)根据标定参数对训练图像进行校正,训练隐式深度语义挖掘网络用于在双目图像上隐式地学习深度语义信息,训练多模态特征混合检测网络;将隐式深度语义挖掘网络输出的特征与多模态特征混合检测网络的特征通过通道串联的方式结合在一起,便组成双流卷积神经网络,利用训练图像训练双流卷积神经网络;
(3)通过双目摄像头获取测试图像,并对其进行校正,将校正后的图像输入到上述双流卷积神经网络中进行目标检测,得到目标检测结果。
本发明构建了一个双流卷积神经网络,一方面,与已有的基于双目视觉方法不同,本发明方法可以直接以双目图像为输入,深度语义信息直接从双目图像中得出,不需要任何视差图的中间计算过程,因此应用效率会更快速高效。另一方面,通过双流卷积神经网络,本发明方法可以综合利用rgb信息和双目视觉中的深度语义信息,借助深度信息对光照变化的强鲁棒性,可以缓解传统单目rgb所面临的一些挑战,这有助于目标检测效果的提高。
优选的,步骤(1)中,对双目摄像头进行标定,步骤是:
(1-1)制作一个n*n的黑白棋盘格,量得棋盘格中每个格子的边长为k厘米;
(1-2)用架构的双目摄像头从不同角度拍摄该棋盘格,得到z组照片,每组照片中棋盘格均同时完整地出现在左右两个镜头的视野中;
(1-3)以拍摄得到的z组棋盘格照片为输入,同时键入每个格子的边长k厘米,用现有的标定工具,例如matlab的标定工具包toolbox_calib进行相机的标定,最终得到左右摄像头x方向和y方向的焦距
优选的,步骤(2)中,根据标定参数对训练图像进行校正,步骤是:
输入双目图像训练集中的图片
优选的,步骤(2)中,训练隐式深度语义挖掘网络,步骤是:
(2-1-1)建立隐式深度语义挖掘网络结构,并初始化网络结构中的参数;
(2-1-2)对于标定后的训练图像,人为标注出其中左目摄像头的图像中的目标位置;
(2-1-3)利用隐式深度语义挖掘网络进行目标检测,对于每一对双目图像,经训练后得到对应的目标位置信息与类别置信度,将其与步骤(2-1-2)中人为标注信息比对,利用损失函数与梯度下降法对隐式深度语义挖掘网络进行训练;训练后,只保留隐式深度语义挖掘网络的前7个层级,得到训练后的模型参数。
更进一步的,所述步骤(2-1-1)中,隐式深度语义挖掘网络结构采用基于dispnet的网络结构,主干设置17个层级,其中conv代表卷积层、corr代表相关层,为了使网络学习的特征能向对目标检测最有利的方向发展,在网络的conv4b、conv6b、conv7b和conv8b上分别设置了一条检测分支;每个检测分支上分别设置了四对卷积层,负责四个不同大小范围的目标检测。
更进一步的,所述步骤(2-1-1)中,用dispnet在flyingthings3d数据集上的训练结果初始化隐式深度语义挖掘网络结构的参数。
优选的,步骤(2)中,训练多模态特征混合检测网络,步骤是:
(2-2-1)建立多模态特征混合检测网络,并初始化网络结构中的参数;
(2-2-2)对于标定后的训练图像,人为标注出其中左目摄像头的图像中的目标位置;
(2-2-3)屏蔽隐式深度语义挖掘网络的特征来源,输入上述标注过目标的原始图像,让多模态特征混合检测网络进行目标检测;对于每一个训练图像,得到对应的目标位置信息与类别置信度,将其与步骤(2-2-2)中人为标注信息比对,利用损失函数与梯度下降法对多模态特征混合检测网络进行训练,得到训练后的模型参数。
更进一步的,所述步骤(2-2-1)中,多模态特征混合检测网络的主干采用vgg16的神经网络结构,其中conv代表卷积层、pool代表池化层,为了使网络学习的特征能向对目标检测最有利的方向发展,在多模态特征混合检测网络的conv4_3、conv_fc7、conv6_2、conv7_2、conv8_2和conv9_2上分别设置了一条检测分支;每个检测分支上分别设置了四对卷积层,负责四个不同大小范围的目标检测。
优选的,步骤(2)中,将隐式深度语义挖掘网络前7层的输出特征,与多模态特征混合检测网络的pool3层通过通道串联的方式结合在一起,便组成了双流卷积神经网络,然后对该双流卷积神经网络进行训练,步骤是:
(2-3-1)对于标定后的训练图像,人为标注出图像中的目标位置;
(2-3-2)让双流卷积神经网络进行目标检测,对于每一个训练图像,得到对应的目标位置信息与类别置信度,将其与步骤(2-3-1)中人为标注信息比对,利用损失函数与梯度下降法对网络进行训练,得到训练后的模型参数。
优选的,步骤(3)中,将校正后的图像输入到上述双流卷积神经网络中进行目标检测,步骤是:
(3-1)将校正后的图像
(3-2)删除置信度低于预设阈值的目标,组成最终的可信的目标检测结果。
更进一步的,步骤(3-2)得到可信的目标检测结果
(3-3-1)初始化:令
(3-3-2)从dtemp中挑选出置信度最高的检测结果
dmax={xmax,ymax,wmax,hmax,cmax},查找dtemp中除了dmax以外,其它与dmax交并比超过预设阈值的检测结果,组成
(3-3-3)将
(3-3-4)将dmax从dtemp中剔除,同时将dmax加入dfinal中,若dtemp不为空集,跳回执行步骤(3-3-2),否则执行步骤(3-3-5);
(3-3-5)
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明通过隐式深度语义挖掘网络与多模态特征混合检测网络构建了一双流卷积神经网络,在该双流卷积神经网络的框架中,隐式深度语义挖掘网络能直接从双目图像中学习深度语义信息,多模态特征混合检测网络可以综合利用rgb和深度语义信息的互补性,从而得到更优的目标检测结果。
2、与现有的基于单目rgb图像的最好技术相比,本发明能综合利用rgb和双目视觉的深度信息,深度信息对光照变化的鲁棒性更强,因此可以缓解单目rgb图像所面临的一些挑战,达到更好的检测效果。
3、与现有的基于双目视觉的最好技术相比,本发明在检测过程中可以直接基于双目rgb图像,端到端地输出检测结果,不需要视差图的中间计算过程,应用效率更为快速。
附图说明
图1是本实施例方法的流程图。
图2是本实施例中对双目摄像头进行标定时采用的黑白棋盘格示意图。
图3是本实施例中隐式深度语义挖掘网络的框架结构图。
图4是本实施例中多模态特征混合检测网络的框架结构图。
图5是本实施例中双流卷积神经网络的框架结构图。
图6是利用现有方法和本实施例方法在双目行人数据集上的可视化检测结果图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本发明提出了一种基于双流卷积神经网络的双目图像快速目标检测方法,该方法通过隐式深度语义挖掘网络与多模态特征混合检测网络构建双流卷积神经网络,隐式深度语义挖掘网络可直接以双目图像为输入,深度语义信息直接从双目图像中得出。双流卷积神经网络可综合利用rgb信息和深度语义信息,借助深度信息对光照变化的强鲁棒性,提高目标检测效果。本发明的技术方案可以以一切基于vgg16[19]的神经网络作为主干,本方案所描述的利用vgg16-ssd[6]作为网络主干只是一个应用实例。图1为本发明的具体流程图。
下面结合图1-6,对本实施例基于双流卷积神经网络的双目图像快速目标检测方法进行详细说明。
s1、架构双目摄像头,并对双目摄像头进行标定,得到标定参数。
本实施例中采用双目摄像头,因此在进行训练前,需要先对摄像头进行标定,标定的步骤是:
i)制作一个12x12的黑白棋盘格,如图2所示,量得棋盘格中每个格子的边长为k厘米。
ii)用双目摄像头从不同角度拍摄该棋盘格20组照片,拍摄时注意棋盘格必须同时完整地出现在左右两个镜头的视野中。
iii)以拍摄得到的20组棋盘格照片为输入,同时键入每个格子的边长k厘米,用matlab的标定工具包toolbox_calib进行相机的标定。最终得到左右摄像头x方向和y方向的焦距
s2、对训练图像进行校正
输入双目图像训练集中的图片
s3、训练隐式深度语义挖掘网络
隐式深度语义挖掘网络主要用于从双目图像中提取深度语义信息,如图3所示。基于这个目的,在网络的设计中,本实施例方法参考了mayern,ilge,hausserp等在《alargedatasettotrainconvolutionalnetworksfordisparity,opticalflow,andsceneflowestimation》中公开的dispnet的网络结构,并在其基础上进行了一些扩展。具体地,本实施例隐式深度语义挖掘网络的主干结构如表1所示。
表1隐式深度语义挖掘网络的主干结构
表1中,conv代表卷积层、corr代表相关层。本实施例采用的隐式深度语义挖掘网络的主干共有17个层级,其中为了使网络学习的特征能向对目标检测最有利的方向发展,本方法在网络的conv4b、conv6b、conv7b和conv8b上分别设置了一条检测分支。每个检测分支上分别设置了四对卷积层,负责四个不同大小范围的目标检测,即
表2隐式深度语义挖掘网络中每个检测分支的具体结构
在建立上述隐式深度语义挖掘网络结构后,输入步骤s2得到的校正后训练图像
s4、训练多模态特征混合检测网络
多模态特征混合检测网络的结构如图4所示,其中网络的主干采用了vgg16-ssd的网络结构,隐式深度语义挖掘网络输出的特征
表3多模态特征混合检测网络中每个检测分支的具体结构
在建立上述隐式深度语义挖掘网络结构后,输入步骤s2得到的校正后左图训练图像
s5、训练双流卷积神经网络
将隐式深度语义挖掘网络前7层的输出特征
s6、测试图像的获取与校正
与步骤s2类似,输入双目测试图像{i1,i2},其分别代表测试图像中的左图和右图。根据步骤s1得到的标定参数
s7、将校正后的测试图像输入双流卷积神经网络进行目标检测
将步骤s6得到的校正后测试图像
然后,对检测d′进行阈值筛选。具体地,对于检测结果
s8、对
初始化:令
i)从dtemp中挑选出置信度最高的检测结果dmax={xmax,ymax,wmax,hmax,cmax},查找dtemp中除了dmax以外,其它与dmax交并比超过0.45的检测结果,组成
ii)将
iii)将dmax从dtemp中剔除,同时将dmax加入dfinal中。若dtemp不为空集,跳回执行步骤i),否则执行步骤iv)。
iv)
为测试本发明方法的效果,在kitti验证集和双目行人数据集上,将本发明的方法与基于单目rgb的目标检测方法进行了对比,实验结果如表4所示。
表4在kitti验证集和双目行人数据集上的实验结果
其中stereodet为本发明的方法,monodet为仅利用单目rgb信息的目标检测方法。实验表明,本发明方法综合利用rgb和双目视觉的深度信息,可以明显提高目标检测的准确率。另外,由于本发明方法可以直接利用双目图像,不需要另外计算视差图,因此时间效率较为快速,可达到接近实时的效果。
图6展示了本发明方法与基于单目rgb信息的目标检测方法在双目行人数据集上的可视化检测结果。其中第一行代表的是原图,第二行代表的是仅利用单目rgb信息的目标检测方法,第三行代表的是本发明方法。实验表明,相比于基于单目图像的方法,本发明方法能产生更少的误检或漏检结果,这说明了本发明方法利用双目视觉的深度信息,对光照、表观的变化具有更强的鲁棒性。
与当前的主流方法对比,表5和表6分别展示了kitti测试集(汽车类别)和eth数据集上的实验结果。
表5在kitti测试集(汽车类别)上的实验结果。
其中*为本实施例复现的实验结果。
表6在eth数据集上的实验结果。
其中*为本实施例复现的实验结果。
在表5、6中,fasterr-cnn可采用rens等公开的《fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks》,rrc可采用renj等公开的《accuratesinglestagedetectorusingrecurrentrollingconvolution》,led可采用zhangs等公开的《led:localization-qualityestimationembeddeddetector》,subcnn可采用xiangy等公开的《subcategory-awareconvolutionalneuralnetworksforobjectproposalsanddetection》,deepmanta可采用chabotf等公开的《deepmanta:acoarse-to-finemany-tasknetworkforjoint2dand3dvehicleanalysisfrommonocularimage》,3dop-stereo可采用chenx等公开的《3dobjectproposalsusingstereoimageryforaccurateobjectclassdetection》,stereorrc表示本发明方法。yolov3可采用redmonj等公开的《yolov3:anincrementalimprovement》,refinedet可采用zhangs等公开的《single-shotrefinementneuralnetworkforobjectdetection》,rpn+bf可采用zhangl等公开的《isfasterr-cnndoingwellforpedestriandetection?》,f-dnn2+ss可采用dux等公开的《fuseddeepneuralnetworksforefficientpedestriandetection》,latsvm2+2person可采用zhangz等公开的《pedestriandetectionaidedbyfusionofbinocularinformation》,通过再现上述现有方法,并将上述方法的实验结果与本发明方法进行比对。
其中在kitti测试集上,为了消除因基础框架所带来的基础性能差异,同时考虑到效果和效率上的折中,本发明采用了rrc作为本方法的网络主干。实验表明,在相近的时间效率下,本方法可以达到最优的检测效果。特别地,对于个别检测效果略优的方法[deepmanta、rpn+bf、f-dnn2+ss],它们都需要付出比本方法高得多的时间代价。deepmanta由于采用了迭代修正的检测机制,其运行时间约为本方法的4倍;rpn+bf基于区域来进行目标检测,其在性能更好的k40gpu上仍需要本文方法的5倍时间来处理一张图片;而f-dnn2+ss因为利用了多模型混合的方式,其运行时间为本文方法的20多倍。由以上的实验结果可见,本文方法在效果和效率上达到了最好的折中。
可通过各种手段实施本发明描述的技术。举例来说,这些技术可实施在硬件、固件、软件或其组合中。对于硬件实施方案,处理模块可实施在一个或一个以上专用集成电路(asic)、数字信号处理器(dsp)、可编程逻辑装置(pld)、现场可编辑逻辑门阵列(fpga)、处理器、控制器、微控制器、电子装置、其他经设计以执行本发明所描述的功能的电子单元或其组合内。
对于固件和/或软件实施方案,可用执行本文描述的功能的模块(例如,过程、步骤、流程等)来实施所述技术。固件和/或软件代码可存储在存储器中并由处理器执行。存储器可实施在处理器内或处理器外部。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。