本发明涉及计算机视觉领域,尤其涉及一种基于金字塔孪生网络的目标跟踪方法。
背景技术:
目标跟踪是计算机视觉领域研究的热点之一,其在云台跟踪、无人飞行器、智能视频监控和智能交通系统等领域具有较高的应用价值。目前,传统的目标跟踪算法易受到目标形变,光照变化和运动快慢等因素的影响,造成其存在准确率较低,鲁棒性较差等不足。而孪生神经网络是由参数共享的两个相同子网络构成,使得其在目标跟踪中具有较好的实时性。同时,特征金字塔网络是基于不同尺度的特征层组成,使得其在复杂的环境下具有较高的准确率。因此,基于上述神经网络的结构特点,本发明设计了一种新的基于金字塔孪生网络的目标跟踪方法,与传统的目标跟踪算法相比,具有较高的目标识别准确率和较快的目标跟踪速度,且鲁棒性较强,在目标跟踪和视频监控等领域具有较高的应用价值。
技术实现要素:
本发明的目的在于提供一种基于金字塔孪生网络的目标跟踪方法,解决现有跟踪算法目标识别准确率低、跟踪速度与鲁棒性低的技术问题。
一种基于金字塔孪生网络的目标跟踪方法,所述跟踪方法包括如下步骤:
步骤1:目标跟踪系统平台的搭建;
步骤2:构建金字塔孪生网络模型;
步骤3:训练金字塔孪生网络模型;
步骤4:测试金字塔孪生网络模型;
步骤5:将训练和测试好的金字塔孪生网络模型传输到目标跟踪系统平台进行实现目标跟踪。
进一步地,所述目标跟踪系统平台由模型训练系统和嵌入式跟踪系统组成,模型训练系统通过串口、网线、usb或wifi与嵌入式跟踪系统相连,所述的模型训练系统包括服务器、摄像头和显示器,服务器通过vga数据线连接到显示器,服务器通过usb数据线连接到摄像头,服务器通过网线或wifi连接到互联网,用于获取训练集和数据标签的数据,金字塔孪生网络模型经过训练和测试后,将已经训练好的金字塔孪生网络模型和参数通过串口、网线、usb或wifi传给嵌入式跟踪系统;
所述的嵌入式跟踪系统包括电源模块、控制器模块、摄像头、数据存储模块、电机模块、按键模块、遥控器、无线模块、语音模块、lcd模块、led模块和usb模块,遥控器通过无线模块与嵌入式跟踪系统连接,所述的电源模块由ac转dc电路和稳压器组成,用于输出不同的电压供电,所述控制器模块采用于数据处理,所述数据存储模块用于存储操作系统、模型数据和参数数据,所述电机模块包括3个电机和3个电机驱动模块,用于摄像头的旋转、俯仰和横滚,用于摄像头实时跟踪目标转动,所述按键模块用于设置跟踪系统的工作模式,单击切换到目标跟踪模式,双击切换到取消目标跟踪模式,所述遥控器用于无线控制嵌入式跟踪系统,跟踪模式的切换,以及开机和关机操作,所述语音模块包括录音模块和语音播放模块,用于声音的录入和语音的播报,所述lcd模块用于显示控制器模块处理的数据、参数设置、按键和遥控器选择的功能,所述的led显示器用于显示当前的工作状态,当常亮表示正常工作,慢闪表示正在跟踪目标,快闪表示设备异常,所述usb模块,用于接入支持usb的移动存储器,实现数据的相互传输和拷贝。
进一步地,所述步骤2中金字塔孪生网络模型由孪生网络、特征金字塔网络和分类定位并行网络组成,孪生网络由两个vgg构成的子网组成,两个vgg构成的子网共享相同的参数,两个vgg构成的子网用于分别对目标图像和搜索图像的特征进行提取,孪生网络完成目标图像和搜索图像的特征提取后,分别获得不同尺度的目标特征层和搜索特征层,从不同层次和不同尺度的特征层中抽取6层特征,用于构建出金字塔网络;
特征金字塔网络构建完成后,与分类定位并行网络结合,用于对目标的实时定位和跟踪,分类定位并行网络由候选框子网、分类器子网和定位回归子网组成,候选框子网、分类器子网和定位回归子网分别生成候选框、置信度和坐标偏移量,且分类器子网和定位回归子网并行执行。
进一步地,所述两个vgg构成的子网为目标子网和搜索子网,分别对目标图像和搜索图像进行特征提取,并共享相同的权重和偏置,目标子网和搜索子网均是由十一层卷积层构成,十一层卷积层分别是:第一层由2个卷积单元构成,第二层由2个卷积单元构成,第三层由3个卷积单元构成,第四层由3个卷积单元构成,第五层由3个卷积单元构成,第六层由1个卷积单元构成,第七层由1个卷积单元构成,第八层由2个卷积单元构成,第九层由2个卷积单元构成,第十层由2个卷积单元构成,第十一层由2个卷积单元构成;
所述特征金字塔网络由目标子网和搜索子网得到的特征层构成,其总层数为6层,分别是:第一层由目标子网中的第十一层特征层构成;第二层由搜索子网中的第十层特征层构成;第三层由目标子网中的第七层特征层构成;第四层由搜索子网中的第六层特征层构成;第五层由目标子网中的第四层特征层构成;第六层由搜索子网中的第三层特征层构成,
所述分类定位并行网络由候选框子网、分类器子网和定位回归子网组成,候选框子网由候选框构成,用于预测目标的能力,分类器子网是由归一化指数函数分类器构成,用于区分目标和非目标的能力,定位回归子网由3x3卷积核构成,用于定位目标,其中,候选框将每层图像特征分割成nxn个格子,n为正整数,每个格子产生6个固定大小的候选框,候选框通过分类器子网和定位回归子网分别生成置信度和坐标偏移量。
进一步地,所述步骤3的具体过程为:
从视频数据库获取原始视频序列,并对视频序列进行图像预处理,获得目标训练集和搜索训练集,且训练集的目标都在图像的中心位置;
完成训练集图像处理后,将成对的目标训练集和搜索训练集图片输入到孪生网络对应的子网,获得目标特征层和搜索特征层,抽取不同层次和不同尺度的特征层,构建出金字塔网络,同时,基于候选框尺寸大小公式和位置公式,在金字塔网络的每层特征层中构造出不同位置不同大小的候选框;
将金字塔网络的每一层特征层输入到分类定位并行网络,获得并行网络的输出结果,将输出的结果与标签真实值进行相似度匹配,获取正样本和负样本;
利用目标损失函数计算匹配结果与标签真实值之间的误差,并将该误差逐层反向传播至输入层,同时,基于小批量随机梯度下降优化算法调整网络中的权重和偏置,获取最优的误差值,完成一次网络模型训练;
重复上述步骤,直至目标损失函数的误差值收敛于最小值。
进一步地,所述候选框尺寸大小公式为:
其中,sk表示第k层图像特征候选框的大小,smin=0.2表示第一层图像特征候选框的大小,smax=0.95表示第六层图像特征候选框的大小,m表示特征层数,
位置公式为:
其中,
所述的相似度匹配是指真实值(o)和候选框(i),根据公式
所述的目标损失函数l(x,c,p,t)是指置信度损失函数lconf(x,c)与坐标损失函数lloc(x,p,t)的加权求和,公式如(3)式所示:
上述(3)式中置信度损失函数lconf(x,c)公式如(4)式所示:
上述(3)式中坐标损失函数lloc(x,p,t)公式如(5)式所示:
其中,x表示匹配系数,c表示置信度,p表示预测框,t表示真实框,n表示正样本数量,i表示第i个候选框,α表示置信度损失函数和坐标损失函数之间的比例参数,
所述的小批量随机梯度下降法是对原始模型的损失函数进行优化的一种算法,公式如(6)式所示:
其中,θ表示需要更新的参数,b表示每一次迭代需要的样本数量,i=1,2,…,b表示样本数,j=0,1表示特征数,α表示学习率,yθ(x(i))表示假设函数,x(i)表示第i个样本特征,y(i)表示第i个样本对应的输出。
进一步地,所述步骤4的具体过程为:
步骤4.1:将原始视频序列中的第一帧和第二帧分别输入到已经训练得到的孪生网络中的目标子网和孪生子网中;
步骤4.2:将目标子网和孪生子网的输出结果输入到已经训练得到的金字塔网络中,以获取金字塔网络中每一层特征层的候选框;
步骤4.3:将金字塔网络的特征层和候选框输入到分类定位并行网络,获取测试结果;
步骤4.4:将测试结果输入到孪生网络的目标子网中,原始视频序列中的下一帧输入到孪生网络的搜索子网中;
(5)重复上述步骤4.2到步骤4.4,实现对目标的实时定位和跟踪。
进一步地,所述步骤5的具体过程为:
步骤5.1:将已经训练好的模型的参数和金字塔孪生网络模型,通过网线或者usb传输存储到嵌入式跟踪系统中的数据存储模块中;
步骤5.2:启动摄像头,采集测试视频,并存储在数据存储模块中;
步骤5.3:运行金字塔孪生网络模型算法,自动调用存储在数据存储模块中模型参数,并对存储在数据存储模块中的视频数据流进行实时处理;
步骤5.3:根据处理结果,在视频流中自动框定目标位置,并结合pid控制算法(为现有控制算法,比如微调法等)控制3个电机进行相应的旋转、俯仰和横滚运动,实现摄像头对目标进行平稳和实时的跟踪和定位。
本发明采用了上述技术方案,本发明具有以下技术效果:
(1)本发明提出了新颖的特征金字塔孪生网络模型,由于该模型具有权值共享和并行提取特征的特点,因此可提高金字塔孪生网络模型在目标跟踪的实时性。
(2)本发明采用了不同子网、不同层次以及不同尺度的特征,构造了全新的特征金字塔网络,使得本发明能够在复杂环境下具有较强的鲁棒性。
(3)本发明构建了分类定位并行网络,该网络分别生成了候选框、置信度和坐标偏移量,由于该网络的3个子网并行执行并且输出结果包含了坐标修正值,因此可提高本发明的目标跟踪速度和精度。
(4)本发明在结合pid控制算法的基础上,将目标跟踪算法应用于嵌入式跟踪系统平台中,能够平稳的控制3个电机进行相应的旋转、俯仰和横滚运动,实现了摄像头对目标的3维跟踪和定位,解决了目前目标跟踪平台运动平稳性较差,运动维度较少等缺点,具有较高的实用价值和市场前景。
附图说明
图1为本发明的金字塔孪生网络结构示意图;
图2为本发明的目标跟踪算法工作流程图;
图3为本发明目标跟踪系统的主程序工作流程图;
图4为本发明的总体结构框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
请参阅图1-图4,本发明提供一种基于金字塔孪生网络的目标跟踪方法,包括如下步骤:
一、目标跟踪系统平台的搭建
本发明的目标跟踪系统平台主要由模型训练系统和嵌入式跟踪系统组成。模型训练系统通过串口、网线、usb和wifi与嵌入式跟踪系统相连,以实现有线和无线的数据通信,具体连接方式如图4所示。
其中:
(1)所述的模型训练系统包括服务器、摄像头和显示器。首先,服务器通过vga数据线连接到显示器,以实现人机交互和算法调试;然后,该服务器基于ubuntu操作系统,安装python、cudn和tensorflow等开发软件,以实现基于金字塔孪生网络的目标跟踪算法的开发环境的搭建;紧接着,将服务器通过usb数据线连接到摄像头以获取目标跟踪算法所需的测试数据集;以此同时,该服务器通过网线和wifi连接到互联网,以获取训练集和数据标签等数据;最后,基于上述的开发环境运行本发明的目标跟踪算法,经过训练和测试后,将已经训练好的金字塔孪生网络模型和参数通过串口、网线、usb和wifi传给嵌入式跟踪系统。
(2)所述的嵌入式跟踪系统包括电源模块、mcu、摄像头、数据存储模块、电机模块、按键模块、遥控器、无线模块、语音模块、lcd、led和usb模块。现以具体实例进行详细说明。首先,按下遥控器的开机按键,启动嵌入式跟踪系统,主程序开始运行并读取各参数和模型,同时根据参数做相应的处理;接着初始化系统的各个模块;初始化完成后,lcd显示相关信息,并检测系统和各模块是否有异常情况,当无异常情况时,则led常亮,否则,led快闪;紧接着,主程序等待任务的到来,根据不同的任务可执行目标跟踪算法、pid控制算法、摄像头处理、数据存储处理、电机处理、按键处理、遥控器处理、无线通信处理、语音处理、lcd处理、led处理和usb处理。如果遥控器或者按键按下跟踪模式按键,则主程序执行led慢闪,并运行目标跟踪处理,即运行本发明提出的基于金字塔孪生网络的目标跟踪算法,在目标跟踪处理执行中,对摄像头获取的视频流进行实时处理以获取目标的位置;当获取目标位置后,触发主程序执行电机控制处理,即基于pid控制算法控制3个电机进行相应的旋转、俯仰和横滚运动,从而实现摄像头对目标进行平稳和实时的跟踪和定位。
图3是本发明的嵌入式跟踪系统的主程序工作流程图。在步骤s301程序开始,接着执行步骤s302读取参数并对各参数做处理,接着执行步骤s303系统及各个模块初始化,初始化完成后,系统执行步骤s304系统是否有异常情况,如果有则执行步骤s305异常处理程序,即判断是哪些情况出现异常,记录相应的情况,并对其进行处理。如果没有异常,则程序执行步骤s306等待触发任务指令的到来,由于该程序是在嵌入式linux操作系统之下运行的,以模块化进行设计,主程序只需等待任务的到来,当任务到来时执行相应的操作,使得程序简洁以及实时性更加强,根据不同的任务可执行目标跟踪算法、pid控制算法、摄像头处理、数据存储处理、电机处理、按键处理、遥控器处理、无线通信处理、语音处理、lcd处理、led处理和usb处理。
二、模型的构建和训练
1、构建金字塔孪生网络模型:
(1)本发明构建的金字塔孪生网络模型主要由孪生网络、特征金字塔和分类定位并行网络组成,如图1所示,且该模型运行于上述平台的服务器中。其中,孪生网络由两个采用vgg构成的子网组成,该孪生网络共享相同的参数,且两个子网的作用分别是对目标图像和搜索图像的特征进行提取。
(2)孪生网络完成特征提取后,分别获得了不同尺度的目标特征层和搜索特征层,本发明从上述不同层次和不同尺度的特征层中抽取6层特征,以构建出金字塔网络。由于该金字塔网络融合了高低不同层次的特征层,使得其具有平移和尺度不变性,从而提高了本发明在复杂应用场合的目标跟踪能力。
(3)特征金字塔网络构建完成后,将其与分类定位并行网络结合,从而实现了对目标的实时定位和跟踪。其中,分类定位并行网络由候选框子网、分类器子网和定位回归子网组成,上述3个子网分别生成候选框、置信度和坐标偏移量,并且分类器子网和定位回归子网并行执行,从而进一步提高了算法的执行速度。最后通过上述3个子网的输出结果,从而实现了对目标的实时定位和跟踪。
其中:所述的孪生网络由两个采用vgg构成的子网组成,它们分别被称为目标子网和搜索子网,其分别对目标图像和搜索图像进行特征提取,并共享相同的权重和偏置。其中vgg作为孪生网络的基础网络,其由十一层卷积层构成。上述十一层卷积层分别是:第一层卷积层conv1由2个大小为224x224x64的卷积conv1_1和conv1_2构成;第二层卷积层conv2由2个大小为112x112x128的卷积conv2_1和conv2_2构成;第三层卷积层conv3由3个大小为56x56x256的卷积conv3_1,conv3_2和conv3_3构成;第四层卷积层conv4由3个大小为28x28x512的卷积conv4_1,conv4_2和conv4_3构成;第五层卷积层conv5由3个大小为14x14x512的卷积conv5_1,conv5_2和conv5_3构成;第六层卷积层由大小为3x3x1024的卷积conv6构成;第七层卷积层由大小为1x1x1024的卷积conv7构成;,第八层卷积层conv8由2个大小为1x1x256的卷积conv8_1和3x3x512的卷积conv8_2构成;第九层卷积层conv9由2个大小为1x1x128的卷积conv9_1和3x3x256的卷积conv9_2构成;第十层卷积层conv10由2个大小为1x1x128的卷积conv10_1和3x3x256的卷积conv10_2构成;第十一层卷积层conv11由2个大小为1x1x128的卷积conv11_1和3x3x256的卷积conv11_2构成。具体参数如表1所示:
表1
所述的特征金字塔网络由上述目标子网和搜索子网得到的特征层构成,其总层数为6层,分别是:第一层由目标子网中的conv11_2构成;第二层由搜索子网中的conv10_2构成;第三层由目标子网中的conv7构成;第四层由搜索子网中的conv6构成;第五层由目标子网中的conv4_3构成;第六层由搜索子网中的conv3_3构成。
所述的分类定位并行网络由候选子网、分类器子网和定位回归子网组成。其中候选框子网是由候选框构成,其具有预测目标的能力。分类器子网是由softmax分类器构成,其具有区分目标和非目标的能力。定位回归子网是由一个3x3卷积核构成,其能够定位目标。其中,boundingbox是将每层featuremap分割成nxn个格子,每个格子产生6个固定大小的候选框,该候选框通过上述分类器子网和定位回归子网分别生成置信度和坐标偏移量。其中,置信度是目标的分数,坐标偏移量是boundingbox与此时featuremaplocation之间的相对距离。
2、训练金字塔孪生网络模型:
(1)从ilsvrc中的视频数据库获取原始视频序列,并对该视频序列进行图像处理,以获得目标训练集和搜索训练集。其中目标训练集图像的大小为127x127x3,搜索训练集图像的大小为255x255x3,并且上述训练集的目标都在图像的中心位置;
(2)完成训练集图像处理后,将成对的训练集图片输入到孪生网络对应的子网,以获得目标特征层和搜索特征层,抽取上述不同层次和不同尺度的特征层,以构建出本发明的金字塔网络,同时,基于候选框尺寸大小公式和位置公式,在上述金字塔网络的每层特征层中构造出不同位置不同大小的候选框;
(3)将上述金字塔网络的每一层特征层输入到本发明的分类定位并行网络,以获得本次并行网络的输出结果,将该输出的结果与标签真实值进行相似度匹配,以获取正样本和负样本。
(4)利用目标损失函数计算上述匹配结果与标签真实值之间的误差,并将该误差逐层反向传播至输入层,同时,基于小批量随机梯度下降优化算法调整网络中的权重和偏置,以获取最优的误差值,从而完成一次网络模型训练;
(5)重复上述步骤,直至目标损失函数的误差值收敛于最小值。
其中:
所述的候选框尺寸大小公式如(1)式所示:
其中,sk表示第k层featuremap候选框的大小,smin=0.2表示第一层featuremap候选框的大小,smax=0.95表示第六层featuremap候选框的大小,m表示特征层数。
所述的位置公式如(2)式所示::
其中,
所述的相似度匹配是指groundtruth(o)和boundingbox(i),根据公式
所述的目标损失函数l(x,c,p,t)是指置信度损失函数lconf(x,c)(confidenceloss)与坐标损失函数lloc(x,p,t)(localizationloss)的加权求和,公式如(3)式所示:
上述(3)式中置信度损失函数lconf(x,c)公式如(4)式所示:
上述(3)式中坐标损失函数lloc(x,p,t)公式如(5)式所示:
其中,x表示匹配系数,c表示置信度,p表示预测框,t表示真实框,n表示正样本数量,i表示第i个boundingbox,α表示confidenceloss和localizationloss之间的比例参数,
其中,θ表示需要更新的参数,b表示每一次迭代需要的样本数量,i=1,2,…,b表示样本数,j=0,1表示特征数,α表示学习率,yθ(x(i))表示假设函数,x(i)表示第i个样本特征,y(i)表示第i个样本对应的输出。
3、测试金字塔孪生网络模型:
利用上述已经训练好的金字塔孪生网络模型,进行目标跟踪测试,如图2所示,具体步骤如下:
(1)将ilsvrc中的原始视频序列中的第一帧和第二帧分别输入到本发明已经训练得到的孪生网络中的目标子网和孪生子网中;
(2)将上述两个子网的输出结果输入到本发明已经训练得到的金字塔网络中,以获取金字塔网络中每一层特征层的候选框;
(3)将上述金字塔网络的每一层特征层输入到本发明的分类定位并行网络,以获取测试结果;
(4)将上述测试结果输入到孪生网络的目标子网中,原始视频序列中的下一帧输入到孪生网络的搜索子网中;
(5)重复上述(2)到(4)步骤,从而实现对目标的实时定位和跟踪。
三、基于嵌入式跟踪系统的目标跟踪
将上述已经训练好的金字塔孪生网络模型参数,通过网线或者usb传输存储到嵌入式跟踪系统中的数据存储模块中,然后基于该模型参数进行目标跟踪的实际应用,具体步骤如下:
(1)将嵌入式linux操作系统移植到嵌入式跟踪系统硬件平台中;
(2)将已经训练好的模型参数和金字塔孪生网络模型,通过网线或者usb传输存储到嵌入式跟踪系统中的数据存储模块中;
(3)启动摄像头,采集测试视频,并存储在数据存储模块中;
(4)运行本发明提出的金字塔孪生网络模型算法,其自动调用存储在数据存储模块中模型参数,并对存储在数据存储模块中的视频数据流进行实时处理;
(5)根据本发明算法的处理结果,在视频流中自动框定目标位置,并结合pid控制算法控制3个电机进行相应的旋转、俯仰和横滚运动,以实现摄像头对目标进行平稳的实时的跟踪和定位。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。