目标跟踪方法、目标跟踪装置及计算机可读存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种目标跟踪方法、目标跟踪装置及计算机可读存储介质。
背景技术
目前,固定翼无人机在着陆时,缺乏既实用又精确的自主导航设备,在很大程度上还依赖于地面遥控把飞机引向预定目标,操纵复杂、地面干扰因素多、事故频繁。
地基式视觉辅助引导是提高固定翼无人机着陆自主性和安全性的有效手段之一。视觉传感器具有成本低廉、支撑技术丰富等特点,而且视觉信号抗干扰性强且属于被动传感器,利用可见光或红外传感器,不易于被侦察,隐蔽性好,应用性比较好,并且地面可以提供先进的成像设备和强大的计算支撑,可对空拍摄无人机的运动图像序列,采用合适的图像处理方法获取图像中目标的运动轨迹,再经坐标换算可获取无人机目标在空中的定位信息和速度信息。
地基式视觉辅助引导过程中,对拍摄图像中的无人机进行跟踪和定位是整个引导过程中非常重要的环节。目前,一般采用基于Chan-Vese算法的目标跟踪方法。
发明内容
发明人发现:要实现无人机起降引导过程,引导设备的无人机定位信息更新频率要在25Hz以上才能满足控制回路的需求。目前基于Chan-Vese等算法的目标跟踪与定位方法,更新频率在10.0Hz左右,难以满足引导系统无人机着陆控制在回路的要求,算法实时性有待提高。
本公开所要解决的一个技术问题是:提出一种新的目标跟踪方法,能够提高图像中目标跟踪的实时性。
根据本公开的一些实施例,提供的一种目标跟踪方法,包括:将视频中当前帧图像中的目标搜索区域的第一图像数据输入训练好的神经网络模型的第一卷积层;将当前帧图像的前一帧图像中的目标所在区域的第二图像数据输入神经网络模型的第二卷积层,其中,第一卷积层和第二卷积层并联,目标所在区域包含被跟踪的目标并且与目标搜索区域面积相等;将第一卷积层和第二卷积层的输出结果输入神经网络模型的全连接层,得到全连接层输出的当前帧图像中目标的位置。
在一些实施例中,采用以下方法确定前一帧图像中的目标所在区域:获取前一次神经网络模型全连接层输出的前一帧图像中目标的位置,目标的位置用目标的边界框表示;根据目标的边界框区域与当前帧图像中的目标搜索区域的面积比,将目标的边界框区域缩放到与目标搜索区域面积相等,作为前一帧图像中的目标所在区域。
在一些实施例中,将目标的边界框区域缩放到与目标搜索区域面积相等包括:根据以下公式确定前一帧图像中的目标所在区域的两个斜对角顶点坐标(xA,yA)和(xB,yB):
(xA,yA)和(XB,yB)分别表示前一帧图像中的目标所在区域的两个斜对角顶点A和B的坐标,(xa,ya)和(xb,yb)分别表示目标的边界框的两个斜对角顶点a和b的坐标,k表示目标的边界框区域与当前帧图像中的目标搜索区域的面积比;将(xA,yA)和(xB,yB)确定的矩形区域作为前一帧图像中的目标所在区域。
在一些实施例中,该方法还包括:根据拍摄视频的摄像机的焦距、目标的高度以及目标距离摄像机的距离调整输出的当前帧图像中目标的位置。
在一些实施例中,目标的位置用目标的边界框表示;采用以下方法调整输出的当前帧图像中目标的位置:将目标的高度与摄像机的焦距的乘积除以目标到摄像机的距离,得到目标在当前帧图像中的高度;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的宽度等于得到的目标在当前帧图像中的高度。
在一些实施例中,该方法还包括:根据首帧图像中目标的位置、拍摄首帧图像时目标距离摄像机的距离、以及拍摄当前帧图像时目标距离摄像机的距离,调整输出的当前帧图像中目标的位置。
在一些实施例中,目标的位置用目标的边界框表示;采用以下方法调整输出的当前帧图像中目标的位置:将首帧图像中目标的边界框的长度与拍摄首帧图像时目标到摄像机的距离的乘积,除以拍摄当前帧图像时目标到摄像机的距离,得到目标在当前帧图像中的长度;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的长度等于目标在当前帧图像中的长度。
在一些实施例中,该方法还包括:采用以下方法训练神经网络模型:将训练样本中当前帧图像中的目标搜索区域的第三图像数据输入神经网络模型的第一卷积层;将训练样本中当前帧图像的前一帧图像中的目标所在区域的第四图像数据输入神经网络模型的第二卷积层;将第一卷积层和第二卷积层的输出结果输入全连接层,得到全连接层输出的当前帧图像中目标的位置,计算输出的当前帧图像中目标的位置与标注的当前帧图像中目标的位置的误差;将当前帧的下一帧图像更新为当前帧图像;重复上述步骤,直至得到训练样本中每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差;根据每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差调整神经网络模型的参数,使得各帧图像中目标的位置与标注的该帧图像中目标的位置的误差和最小。
根据本公开的另一些实施例,提供的一种目标跟踪装置,包括:第一图像输入模块,将视频中当前帧图像中的目标搜索区域的第一图像数据输入训练好的神经网络模型的第一卷积层;第二图像输入模块,将当前帧图像的前一帧图像中的目标所在区域的第二图像数据输入神经网络模型的第二卷积层,其中,第一卷积层和第二卷积层并联,目标所在区域包含被跟踪的目标并且与目标搜索区域面积相等;目标位置确定模块,用于将第一卷积层和第二卷积层的输出结果输入神经网络模型的全连接层,得到全连接层输出的当前帧图像中目标的位置。
在一些实施例中,第二图像输入模块还用于获取前一次神经网络模型全连接层输出的前一帧图像中目标的位置,目标的位置用目标的边界框表示,根据目标的边界框区域与当前帧图像中的目标搜索区域的面积比,将目标的边界框区域缩放到与目标搜索区域面积相等,作为前一帧图像中的目标所在区域。
在一些实施例中,第二图像输入模块用于:根据以下公式确定前一帧图像中的目标所在区域的两个斜对角顶点坐标(xA,yA)和(xB,yB):
(xA,yA)和(xB,yB)分别表示前一帧图像中的目标所在区域的两个斜对角顶点A和B的坐标,(xa,ya)和(xb,yb)分别表示目标的边界框的两个斜对角顶点a和b的坐标,k表示目标的边界框区域与当前帧图像中的目标搜索区域的面积比;将(xA,yA)和(xB,yB)确定的矩形区域作为前一帧图像中的目标所在区域。
在一些实施例中,该装置还包括:第一位置调整模块,用于根据拍摄视频的摄像机的焦距、目标的高度以及目标距离摄像机的距离调整输出的当前帧图像中目标的位置。
在一些实施例中,目标的位置用目标的边界框表示;第一位置调整模块用于将目标的高度与摄像机的焦距的乘积除以目标到摄像机的距离,得到目标在当前帧图像中的高度,以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的宽度等于得到的目标在当前帧图像中的高度。
在一些实施例中,该装置还包括:第二位置调整模块,用于根据首帧图像中目标的位置、拍摄首帧图像时目标距离摄像机的距离、以及拍摄当前帧图像时目标距离摄像机的距离,调整输出的当前帧图像中目标的位置。
在一些实施例中,目标的位置用目标的边界框表示;第二位置调整模块用于将首帧图像中目标的边界框的长度与拍摄首帧图像时目标到摄像机的距离的乘积,除以拍摄当前帧图像时目标到摄像机的距离,得到目标在当前帧图像中的长度,以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的长度等于目标在当前帧图像中的长度。
在一些实施例中,该装置还包括:神经网络训练模块,用于:将训练样本中当前帧图像中的目标搜索区域的第三图像数据输入神经网络模型的第一卷积层;将训练样本中当前帧图像的前一帧图像中的目标所在区域的第四图像数据输入神经网络模型的第二卷积层;将第一卷积层和第二卷积层的输出结果输入全连接层,得到全连接层输出的当前帧图像中目标的位置,计算输出的当前帧图像中目标的位置与标注的当前帧图像中目标的位置的误差;将当前帧的下一帧图像更新为当前帧图像;重复上述步骤,直至得到训练样本中每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差;根据每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差调整神经网络模型的参数,使得各帧图像中目标的位置与标注的该帧图像中目标的位置的误差和最小。
根据本公开的又一些实施例,提供的一种目标跟踪装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器设备中的指令,执行如前述任一些实施例中的目标跟踪方法。
根据本公开的再一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一些实施例中的目标跟踪方法的步骤。
本公开采用并联双层卷积神经网络模型,在第一卷积层中输入当前帧图像中的目标搜索区域的第一图像数据,在第二卷积层中输入当前帧图像的前一帧图像中的目标所在区域的第二图像数据,并联的卷积层同时对图像进行处理,再输入全连接层,输出当前帧图像中的目标位置。由于神经网络模型可以离线进行训练,使用时可以直接应用,只通过一次前向传播即可输出目标位置,并且并联的卷积层能够进一步提高计算效率,从而使得对于图像中目标进行跟踪的效率得到整体的提高。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的目标跟踪装置的结构示意图。
图2示出本公开的另一些实施例的目标跟踪装置的结构示意图。
图3示出本公开的一些实施例的目标跟踪方法的流程示意图。
图4示出本公开的另一些实施例的目标跟踪方法的流程示意图。
图5示出本公开的又一些实施例的目标跟踪方法的流程示意图。
图6示出本公开的摄像机小孔成像的原理示意图。
图7示出本公开的又一些实施例的目标跟踪装置的结构示意图。
图8示出本公开的再一些实施例的目标跟踪装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提出一种利用并联双卷积神经网络对图像中的目标跟踪的方法、装置以及计算机可读存储介质,可以提高目标跟踪的效率,下面结合具体的实施例进行描述。本公开的方案不仅适用于无人机的跟踪还适用于其他任何目标的跟踪。
本公开的实施例中的目标跟踪装置可各由各种计算设备或计算机系统来实现,下面结合图1以及图2进行描述。
图1为本公开目标跟踪装置的一些实施例的结构图。如图1所示,该实施例的装置10包括:存储器110以及耦接至该存储器110的处理器120,处理器120被配置为基于存储在存储器110中的指令,执行本公开中任意一些实施例中的目标跟踪方法。
其中,存储器110例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图2为本公开目标跟踪装置的另一些实施例的结构图。如图2所示,该实施例的装置20包括:存储器210以及处理器220,存储器210以及处理器220分别与存储器110以及处理器120类似,还可以包括输入输出接口230、网络接口240、存储接口250等。这些接口230,240,250以及存储器110和处理器120之间例如可以通过总线260连接。其中,输入输出接口230为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口240为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口250为SD卡、U盘等外置存储设备提供连接接口。
下面结合图3至图6描述本公开的目标跟踪方法的实施例。
图3为本公开目标跟踪方法一些实施例的流程图。如图3所示,该实施例的方法包括:步骤S302~S306。
步骤S302,将视频中当前帧图像中的目标搜索区域的第一图像数据输入训练好的神经网络模型的第一卷积层。
被跟踪的目标可以是固定翼无人机。无人机的地基式视觉辅助引导系统可以包括地面双目摄像机,左目摄相机和右目摄相机沿跑道两侧对称分布,摄相机固连在转台上可以转动,对无人机进行连续拍摄。左目摄相机和右目摄相机分别拍摄两路视频,对于每一路视频都需要确定图像中目标的位置。
神经网络模型为并联双卷积神经网络模型,第一卷积层和第二卷积层并联,针对每一路视频,将视频图像中的每一帧图像首先确定目标搜索区域,然后将目标搜索区域的图像数据依次作为当前帧图像的第一图像数据输入训练好的神经网络模型的第一卷积层。第一图像数据例如为目标搜索区域的各个像素点的像素值。
每一帧图像的目标搜索区域可以采用卡尔曼滤波器确定,卡尔曼滤波器属于现有技术,在此不再赘述。目标搜索区域为初步确定可能包含目标的区域,相对于将整幅图像输入神经网络模型,减少了数据的处理量,提高神经网络模型的处理效率。
步骤S304,将当前帧图像的前一帧图像中的目标所在区域的第二图像数据输入神经网络模型的第二卷积层。
第一卷积层和第二卷积层并联,目标所在区域包含被跟踪的目标并且与目标搜索区域面积相等,即目标所在区域与目标搜索区域包含的像素点数量相同,当前帧图像例如为视频中第n帧图像,则前一帧图像则为n-1帧图像,n为正整数。
前一帧图像中的目标所在区域可以采用以下方法进行确定:
1)获取前一次神经网络模型全连接层输出的前一帧图像中目标的位置;
神经网络模型输出的图像中目标的位置可以利用目标边界框(Bounding-box)的两个斜对角顶点的坐标进行表示,根据两个斜对角顶点坐标可以唯一确定图像中一块矩形区域,该矩形区域为包含目标的最小矩形区域。
可以将利用神经网络模型确定视频中各帧图像中的目标的位置的过程理解为一个反馈循环过程,在确定视频中第n帧图像中目标的位置时,需要利用上一次神经网络模型的输出结果,即第n-1帧图像中目标的位置。
2)根据目标的边界框区域与当前帧图像中的目标搜索区域的面积比,将目标的边界框区域缩放到与目标搜索区域面积相等,作为前一帧图像中的目标所在区域。
进一步,可以根据以下公式确定前一帧图像中的目标所在区域的两个斜对角顶点坐标(xA,yA)和(xB,yB):
(xA,yA)和(xB,yB)分别表示前一帧图像中的目标所在区域的两个斜对角顶点A和B的坐标,(xa,ya)和(xb,yb)分别表示目标的边界框的两个斜对角顶点a和b的坐标,k表示目标的边界框区域与当前帧图像中的目标搜索区域的面积比;将(xA,yA)和(xB,yB)确定的矩形区域作为前一帧图像中的目标所在区域。
前一帧图像中目标所在区域不仅包含被跟踪的目标还包含目标周围的背景信息,第一卷积层可以提取目标及其周围背景等的特征,而第二卷积层可以提取目标搜索区域的特征,全连接层基于前后帧的连续性可以识别出目标搜索区域中目标的位置,实现图像中目标的准确跟踪。
本公开中目标搜索区域、目标所在区域和目标边界框均采用矩形形状,并且矩形区域的长宽比、目标的边界框的长宽比与无人机的长宽比相近。这种方式相对于现有技术中目标边界框、目标搜索区域均采用正方形的形状的方法,能够充分利用无人机扁平的几何形状,更加准确的表示出无人机的位置。
上述实施例中提到,在确定当前帧图像中目标的位置时需要用到前一帧图像中目标的位置信息,对于首帧视频图像由于没有前一帧图像的信息,则可以采用其他算法检测出首帧图像中目标的位置,例如采用YOLO(You Only Look Once,只看一眼)算法,该算法为现有技术,在此不再赘述。对于首帧之后的图像则可以直接输入神经网络模型即可得到目标的位置。
进一步,摄像机拍摄无人机视频时,一般会从无人机还没有开始进入视野时就开始进行拍摄,也可以采用YOLO算法确定首帧出现无人机的图像,以及首帧出现无人机图像中无人机的位置。也就是,在步骤S302之前检测摄像机拍摄的当前帧图像中是否出现目标,如果出现目标则确定当前帧图像中目标的位置,并确定目标所在区域,在接收到下一帧图像后,将下一帧图像更新为当前帧图像,并确定目标搜索区域,之后执行步骤S302。如果当前帧图像中没有出现目标,则继续检测是否出现目标。
当神经网络输出的目标的位置中没有目标时,表示当前帧拍摄时没有跟踪到目标,此时由神经网络模型将目标丢失的信息反馈至目标出现检测模块,检测摄像机拍摄的当前帧图像中是否出现目标,如果出现目标则确定当前帧图像中目标的位置,并确定目标所在区域,在接收到下一帧图像后,将下一帧图像更新为当前帧图像,并确定目标搜索区域,之后执行步骤S302。如果当前帧图像中没有出现目标,则继续检测是否出现目标。
卡尔曼滤波器在估计图像中目标搜索区域时也需要用到前一帧图像的信息,因此,对于首帧图像或首帧出现无人机的图像的目标搜索区域则可以根据首帧图像或首帧出现无人机的图像中目标的位置进行确定。具体的可以参考前述确定目标所在区域的方法确定首帧图像或首帧出现无人机的图像的目标搜索区域。
步骤S306,将第一卷积层和第二卷积层的输出结果输入神经网络模型的全连接层,得到全连接层输出的当前帧图像中目标的位置。
第一卷积层或第二卷积层并不限于仅包含一个卷积层,即第一卷积层或第二卷积层也可以是由多个卷积层串联而成,例如第一卷积层由5个卷积层串联形成,第二卷积层由5个卷积层串联形成。第一卷积层和第二卷积层之后还可以串联池化层,池化层之后为全连接层。
根据上述实施例的方法可以确定视频中连续的各帧图像中目标的位置,从而形成目标的运动轨迹,实现对目标的跟踪。
上述实施例的方法采用并联双层卷积神经网络模型,在第一卷积层中输入当前帧图像中的目标搜索区域的第一图像数据,在第二卷积层中输入当前帧图像的前一帧图像中的目标所在区域的第二图像数据,并联的卷积层同时对图像进行处理,再输入全连接层,输出当前帧图像中的目标位置。由于神经网络模型可以离线进行训练,使用时可以直接应用,只通过一次前向传播即可输出目标位置,并且并联的卷积层能够进一步提高计算效率,从而使得对于图像中目标进行跟踪的效率得到整体的提高。
本公开还提供一种并联双卷积神经网络的训练方法,下面结合图4进行描述。
图4为本公开目标跟踪方法另一些实施例的流程图。如图4所示,该实施例的方法包括:步骤S402~S414。
步骤S402,对训练样本中各帧图像中的目标的位置进行标注。
可以利用X-plane通过仿真或半仿真的方式得到标注的各帧图像。X-plane为现有工具,使用方法在此不再赘述。
步骤S404,将训练样本中当前帧图像中的目标搜索区域的第三图像数据输入神经网络模型的第一卷积层。
步骤S406将训练样本中当前帧图像的前一帧图像中的目标所在区域的第四图像数据输入神经网络模型的第二卷积层。
目标所在区域的确定方法可以参考前述实施例中的方法。
步骤S408,将第一卷积层和第二卷积层的输出结果输入全连接层,得到全连接层输出的当前帧图像中目标的位置,计算输出的当前帧图像中目标的位置与标注的当前帧图像中目标的位置的误差。
步骤S410,判断当前帧图像是否为最后一帧图像,如果不是则执行步骤S412,否则,执行步骤S414。
步骤S412,将当前帧的下一帧图像更新为当前帧图像,回到步骤S404重新开始执行。
步骤S414,根据每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差调整神经网络模型的参数,使得各帧图像中目标的位置与标注的该帧图像中目标的位置的误差和最小。
神经网络模型的参数例如为各网络层对应的权重系数,调整方法可以采用现有技术中的方法,在此不再赘述。
为进一步提高图像中目标的位置的跟踪的准确率,可以对神经网络模型输出的图像中目标的位置进行修正,下面结合图5至图6描述本公开提供的对神经网络模型输出的图像中目标的位置进行修正的方法。
图5为本公开目标跟踪方法又一些实施例的流程图。如图5所示,在步骤S306之后还可以包括:
步骤S502,根据拍摄视频的摄像机的焦距、目标的高度以及目标距离摄像机的距离调整输出的当前帧图像中目标的位置。
参考图6所示,为摄相机小孔成像模型示意,Oc为摄相机坐标系原点,Xc和Yc分别为摄像机坐标系的横轴和纵轴。Oi为图像坐标系原点,x、y分别为图像坐标系的横轴和纵轴。高为H的同一物体在距离摄像机坐标系原点距离为d1和d2的位置在图像平面中的投影分别为h1和h2,摄相机焦距为f,可得式(3)和(4)。
如果已知摄像机的焦距f,目标到摄像机的距离d和目标的实际高度H,则可以根据公式(3)计算目标在当前帧图像中的高度。当目标为无人机时,H即为无人机的高度。
具体的,将目标的高度H与摄像机的焦距f的乘积除以目标到摄像机的距离d,得到目标在当前帧图像中的高度h;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的宽度等于得到的目标在当前帧图像中的高度。
如果无法获得摄像机的焦距,但能够获得每次拍摄时目标到摄像机的距离,则可以根据公式(4)计算目标在当前帧图像中的高度。
具体的,利用首帧图像中目标的边界框的宽度h1乘以当前帧图像拍摄时目标到摄像机的距离d2,再除以拍摄首帧图像时目标到摄像机的距离d1,得到目标在当前帧图像中的高度h2;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的宽度等于得到的目标在当前帧图像中的高度。
进一步参考图6,还可以调整图像中目标的边界框的长度。在步骤S306之后还可以包括:
步骤S504,根据首帧图像中目标的位置、拍摄首帧图像时目标距离摄像机的距离、以及拍摄当前帧图像时目标距离摄像机的距离,调整输出的当前帧图像中目标的位置。
参考图6以及公式(3)和(4)可以得到公式(5)和(6)。
如果已知摄像机的焦距f,目标到摄像机的距离d和目标的实际长度L,则可以参考公式(5)计算目标在当前帧图像中的长度。当目标为无人机时,L即为无人机的两翼端点之间的长度。
具体的,将目标的长度L与摄像机的焦距f的乘积除以目标到摄像机的距离d,得到目标在当前帧图像中的长度l;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的长度等于得到的目标在当前帧图像中的长度。
如果无法获得摄像机的焦距,但能够获得每次拍摄时目标到摄像机的距离,则可以根据公式(6)计算目标在当前帧图像中的高度。
具体的,利用首帧图像中目标的边界框的长度l1乘以当前帧图像拍摄时目标到摄像机的距离d2,再除以拍摄首帧图像时目标到摄像机的距离d1,得到目标在当前帧图像中的长度l2;以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的长度等于得到的目标在当前帧图像中的长度。
上述步骤S502和S504均为可选步骤,并且二者没有先后顺序可以并行实现,首帧图像中目标的边界框可以根据前述实施例中提到的YOLO算法得到。
上述实施例的方法对神经网络模型输出的目标的位置进行修正,进一步提高了目标跟踪的准确性。
本发明还提供一种目标跟踪装置,下面结合图7进行描述。
图7为本公开目标跟踪装置一些实施例的结构图。如图7所示,该目标跟踪装置70包括:
第一图像输入模块702,将视频中当前帧图像中的目标搜索区域的第一图像数据输入训练好的神经网络模型的第一卷积层。
第二图像输入模块704,将当前帧图像的前一帧图像中的目标所在区域的第二图像数据输入神经网络模型的第二卷积层,其中,第一卷积层和第二卷积层并联,目标所在区域包含被跟踪的目标并且与目标搜索区域面积相等。
第二图像输入模块704还用于获取前一次神经网络模型全连接层输出的前一帧图像中目标的位置,目标的位置用目标的边界框表示,根据目标的边界框区域与当前帧图像中的目标搜索区域的面积比,将目标的边界框区域缩放到与目标搜索区域面积相等,作为前一帧图像中的目标所在区域。
第二图像输入模块704用于:
根据以下公式确定前一帧图像中的目标所在区域的两个斜对角顶点坐标(xA,yA)和(xB,yB):
(xA,yA)和(xB,yB)分别表示前一帧图像中的目标所在区域的两个斜对角顶点A和B的坐标,(xa,ya)和(xb,yb)分别表示目标的边界框的两个斜对角顶点a和b的坐标,k表示目标的边界框区域与当前帧图像中的目标搜索区域的面积比;
将(xA,yA)和(xB,yB)确定的矩形区域作为前一帧图像中的目标所在区域。
目标位置确定模块706,用于将第一卷积层和第二卷积层的输出结果输入神经网络模型的全连接层,得到全连接层输出的当前帧图像中目标的位置。
下面结合图8描述本公开的目标跟踪装置的另一些实施例。
图8为本公开目标跟踪装置另一些实施例的结构图。如图8所示,该目标跟踪装置80包括:第一图像输入模块802,第二图像输入模块804,目标位置确定模块806,这三个模块可以参考前述实施例中的第一图像输入模块702,第二图像输入模块704,目标位置确定模块706的功能。
目标跟踪装置80还可以包括:第一位置调整模块808,用于根据拍摄视频的摄像机的焦距、目标的高度以及目标距离摄像机的距离调整输出的当前帧图像中目标的位置。
目标的位置可以用目标的边界框表示;第一位置调整模块808用于将目标的高度与摄像机的焦距的乘积除以目标到摄像机的距离,得到目标在当前帧图像中的高度,以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的宽度等于得到的目标在当前帧图像中的高度。
目标跟踪装置80还可以包括:第二位置调整模块810,用于根据首帧图像中目标的位置、拍摄首帧图像时目标距离摄像机的距离、以及拍摄当前帧图像时目标距离摄像机的距离,调整输出的当前帧图像中目标的位置。
目标的位置可以用目标的边界框表示;第二位置调整模块810用于将首帧图像中目标的边界框的长度与拍摄首帧图像时目标到摄像机的距离的乘积,除以拍摄当前帧图像时目标到摄像机的距离,得到目标在当前帧图像中的长度,以目标的边界框区域的中心为中心,调整目标的边界框,使调整后的目标的边界框的长度等于目标在当前帧图像中的长度。
目标跟踪装置80还可以包括:神经网络训练模块812,用于:
将训练样本中当前帧图像中的目标搜索区域的第三图像数据输入神经网络模型的第一卷积层;
将训练样本中当前帧图像的前一帧图像中的目标所在区域的第四图像数据输入神经网络模型的第二卷积层;
将第一卷积层和第二卷积层的输出结果输入全连接层,得到全连接层输出的当前帧图像中目标的位置,计算输出的当前帧图像中目标的位置与标注的当前帧图像中目标的位置的误差;
将当前帧的下一帧图像更新为当前帧图像;
重复上述步骤,直至得到训练样本中每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差;
根据每一帧图像中目标的位置与标注的该帧图像中目标的位置的误差调整神经网络模型的参数,使得各帧图像中目标的位置与标注的该帧图像中目标的位置的误差和最小。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一些实施例中的目标跟踪方法的步骤。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。