本发明涉及无人艇应用技术领域,具体地说是一种基于无人艇应用的目标长时间稳定跟踪方法。
背景技术:
无人艇,是一种无人操作的水面舰艇,可以在各种环境中使用,尤其便于在不适合有人船只和较为危险的环境中使用,不管是在军用领域还是民用领域,我国对无人艇的需求都在逐渐增强。在无人艇的自主航行中,目标的稳定跟踪是无人艇自动避障的技术基础。目前常用的目标跟踪方法主要有以下两种:
(1)基于关键点匹配的目标跟踪方法
基于关键点匹配的目标跟踪方法通常在目标所在区域提取具有不变性特征的关键点,将目标模板视作一些关键点的集合,在以后的各帧中提取关键点并与模板的关键点比较,然后估计几何变换参数,求得当前帧目标位置相对于初始模板位置的几何变换关系。
(2)基于目标检测的目标跟踪方法
基于目标检测的跟踪方法通常利用一个在线训练的分类器将目标从周围背景中区分出来。在跟踪的过程中,在上一帧目标所在位置周围以滑动窗口形式提取一定数量的候选框,通过在线训练的分类器预测目标所在位置。有了目标的预估位置以后,可以生成一个带标签的训练样本集合,用这个训练样本集在线训练更新分类器模型参数。
基于关键点匹配的方法的成功与关键点的检测方法密切相关,关键点太多会影响算法执行效率,关键点太少会影响算法的准确性,并且,当目标的外观发生剧烈变化,或者背景较复杂,与目标区分度不大时,这种算法就会跟丢目标,导致跟踪失败。而基于目标检测的跟踪方法虽然能够很好的解决目标的形变、旋转等问题,但是算法复杂度较高,难以做到实时,限制此类方法的实际应用范围。
尽管目前已存在许多目标跟踪的方法,但是在无人艇的自主航行问题中,待跟踪的目标类型众多(例如游轮、帆船、漂浮物、礁石等),可能很大也可能很小,并且经常伴随目标的尺度变化以及目标之间的遮挡,在保证实时性的前提下,目前的目标跟踪方法不能很好的适应真实的自然场景。
综上所述,尽管目前存在很多目标跟踪相关方法,但由于算法的鲁棒性以及实时性等原因,很难将其应用到无人艇的自动避障中。
技术实现要素:
本发明要解决的技术问题是提供一种基于无人艇应用的水面目标跟踪方法,能够长时间稳定地进行跟踪。
为了解决上述技术问题,本发明采取以下技术方案:
一种基于无人艇应用的目标跟踪方法,包括以下步骤:
s1,获取目标的图像序列,在以上一帧目标所在位置为搜索中心的设定范围内,利用预设滤波器f(z)=wtz,z为样本的特征向量,w为权重向量,搜索到最大响应位置,该最大响应位置作为目标在当前帧的候选位置中心;
s2,在候选位置中心的周围采用多尺度滑动窗口采样得到若干候选框,利用结构化svm分类器对所有候选框计算得分,得分最大的候选框作为当前帧目标的预测结果;
s3,判断目标是否被遮挡;
s4,若目标被遮挡,则不进行在线学习,不更新预设滤波器参数和结构化svm分类器参数;若目标未被遮挡,更新预设滤波器参数,转入步骤s5;
s5,更新结构化svm分类器参数;
s6,重复步骤s1-s5,直到图像序列的最后一帧。
所述步骤s4中更新预设滤波器参数具体包括以下子步骤:
s4.1,构造循环样本矩阵,以步骤s2得到的预测结果所在位置作为中心,设置一个基本样本,该基本样本的大小为目标的n倍,n为大于1的实数,将该基本样本进行上下左右的循环偏移,得到若干训练样本,所有训练样本构成循环样本矩阵;
s4.2,对预设滤波器f(z)=wtz中的参数w进行更新,设定训练样本及其回归值为{(x1,y1),(x2,y2),...,(xi,yi),...},根据目标函数:
所述步骤s4.2中,对于闭式解w=(xtx+λi)-1xty,其中存在逆运算(xhx+λi)-1,在样本量很多时直接求解逆运算会很耗时,为了提高运算效率,对该闭式解进行离散傅立叶变换。
所述步骤s5具体包括以下子步骤:
s5.1,以预测结果所在位置为中心,在设定搜索半径的区域内,均匀采集训练样本,得到支持向量,该支持向量由正训练样本和负训练样本构成,更新结构化svm分类器参数;
s5.2,设定支持向量的数量上限,当支持向量的数量达到阈值时,去除对结构化svm分类器影响最小的支持向量。
所述步骤s3中判断目标是否被遮挡具体为:
s3.1,将步骤s2中得分最大的候选框所对应的得分值与历史最大得分值进行比较,得分值最大的候选框为当前的跟踪结果;
s3.2,若当前的候选框的得分小于maxscore-derta_1*maxscore,则目标被遮挡,当前跟踪结果维持上一帧目标位置不变,并在下一帧寻找目标时扩大搜索范围;
s3.3,若当前的候选框的得分大于maxscore-derta_1*maxscore并且小于maxscore-derta_2*maxscore,则当前跟踪结果是目标,目标的一部分被遮挡,此时更新目标位置,但是不更新预设滤波器和结构化svm分类器参数;
s3.4,如果当前的候选框的得分值大于maxscore-derta_2*maxscore,则既更新目标位置也更新预设滤波器参数和结构化svm分类器参数;
其中,maxscore为历史最大得分值,derta_1和derta_2为常数,并且derta_2小于derta_1。
所述步骤s1具体包括以下子步骤:
s1.1,获取目标的图像序列后,对其中的图像进行预处理,将图像转换为灰度图,在该灰度图上进行特征提取取,得到特征图;
s1.2,特征图上每一个像素位置对应有一个特征向量zij,计算特征图上每个像素位置的响应值f(z)=wtzij,得到热图,取该热图中最大响应位置为当前帧目标候选位置的中心。
本发明能够长时间稳定跟踪无人艇自主航行中遇到的各种障碍物以及需要被跟踪的目标。通过及时处理无人艇上相机拍摄得到的图片,结合预设滤波器和结构化输出的跟踪方法,实时感知周围环境,稳定跟踪感兴趣目标。在保证实时性的前提下,本发明相比于现有的其他跟踪方法,无论是在处理跟踪过程中目标遮挡、尺度变化等问题,还是目标自身发生形变或者环境背景光照变化等问题上,都有很大的提升,对无人艇的自动避障具有重要的指导意义。
附图说明
附图1为本发明流程示意图;
附图2为本发明中判断目标是否被遮挡的流程示意图;
附图3为本发明预设滤波器更新参数的流程示意图;
附图4为本发明结构化svm分类器更新参数的流程示意图;
附图5为本发明跟踪实施例的示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述。
如附图1所示,本发明揭示了一种基于无人艇应用的水面目标跟踪方法,包括以下步骤:
s1,获取目标的图像序列,在以上一帧目标所在位置为搜索中心的设定范围内,利用预设滤波器f(z)=wtz,z为样本的特征向量,w为权重向量,搜索到最大响应位置,该最大响应位置作为目标在当前帧的候选位置中心。
s2,在候选位置中心的周围采用多尺度滑动窗口采样得到若干候选框,利用结构化svm分类器对所有候选框计算得分,得分最大的候选框作为当前帧目标的预测结果。
s3,判断目标是否被遮挡。
s4,若目标被遮挡,则不进行在线学习,不更新预设滤波器参数和结构化svm分类器参数,即使目标的表现模型发生改变时也能准确找得到目标;若目标未被遮挡,更新预设滤波器参数,转入步骤s5。
s5,更新结构化svm分类器参数。
s6,重复步骤s1-s5,直到图像序列的最后一帧,从而得到较为准确的跟踪结果。
对于步骤s1具体包括以下子步骤:
s1.1,获取目标的图像序列后,对其中的图像进行预处理,将图像转换为灰度图,在该灰度图上进行特征提取,得到特征图。如果目标图像的面积大于阈值smax,降低其分辨率为原来的0.5倍,避免因跟踪器处理的图像过大而降低算法效率,在本发明实施例中取smax=50*50。如果是彩色图,还需要将其转换为灰度图,特征提取只在灰度图上进行。对于图像特征的选择,选择处理速度比较快速并且效果也比较好的hog特征,将梯度方向分为9个bin,cell大小为lcell*lcell,lcell=4,每个cell的特征维度是31,计算搜索区域对应的特征图,如果搜索区域的大小为wf*hf,特征图的大小为
s1.2,特征图上每一个像素位置对应有一个特征向量zij,计算特征图上每个像素位置的响应值f(z)=wtzij,得到热图,取该热图中最大响应位置为当前帧目标候选位置的中心。特征图上每个像素位置都有一个特征向量zij,
在步骤s2中,根据步骤1得到当前帧的候选位置中心,若目标长和宽分别为wt、ht,则搜索区域的长和宽为wt+12、ht+12。在搜索区域内以5个尺度(1.0,0.9,1.05,1.1,1.15)进行滑动窗口密集采样,得到目标候选框。
选用6种haar特征模板,将每个候选框分为4*4的网格,在2个尺度上对每个候选框所在区域的图像计算得到192维haar特征。为了提高算法的计算效率,在特征提取前,首先计算输入图像的积分图。利用结构化svm分类器对每个候选框计算得分。取得分最大的候选框作为目标新的位置。
如附图2所示,步骤s3中判断目标是否被遮挡具体为:
s3.1,将步骤s2中得分最大的候选框所对应的得分值与历史最大得分值进行比较,得分值最大的候选框为当前的跟踪结果;
s3.2,若当前的候选框的得分小于maxscore-derta_1*maxscore,则目标被遮挡,当前跟踪结果维持上一帧目标位置不变,并在下一帧寻找目标时扩大搜索范围;
s3.3,若当前的候选框的得分大于maxscore-derta_1*maxscore并且小于maxscore-derta_2*maxscore,则当前跟踪结果是目标,目标的一部分被遮挡,此时更新目标位置,但是不更新预设滤波器和结构化svm分类器参数;
s3.4,如果当前的候选框的得分值大于maxscore-derta_2*maxscore,则既更新目标位置也更新预设滤波器参数和结构化svm分类器参数;
其中,maxscore为历史最大得分,derta_1和derta_2为常数,并且derta_2小于derta_1。在本实施例中,derta_1、derta_2的值分别是0.65和0.35。
通过判断目标是否被遮挡,并且执行相关操作,有效防止预设滤波器和结构化svm分类器发生错误更新,导致跟踪结果出现漂移甚至跟丢目标的情况。
此外,如附图3所示,所述步骤s4中更新预设滤波器参数具体包括以下子步骤:
s4.1,构造循环样本矩阵,以步骤s2得到的预测结果所在位置作为中心,设置一个基本样本,该基本样本的大小为目标的n倍,n为大于1的实数,将该基本样本进行上下左右的循环偏移,得到若干训练样本,所有训练样本构成循环样本矩阵。比如,将基本样本的大小设为目标大小的3倍。以目标为中心,将基本样本做出相应的上下左右循环偏移,可以得到数量很多的训练样本,对于新构造的训练样本,根据它里面目标中心与基本样本目标中心的距离,分配一个总体呈高斯分布的回归值,方差为0.4、0.3或者其他数值,该方差的取值与目标大小有关,上述列举并非是限定,具体表现为方差
另外,通过循环偏移得到的图像在边界处不是很平滑,通过对基准图像乘以一个汉宁窗来降低边缘图像的权重。
s4.2,对预设滤波器f(z)=wtz中的参数w进行更新,设定训练样本及其回归值为{(x1,y1),(x2,y2),...,(xi,yi),...},根据目标函数:
上述的训练样本的训练过程实际上是求解一个岭回归问题,或者叫做正则化最小二乘问题。比如,一个复数情况下的求解结果w*=(xhx+λi)-1xhy,其中xh是x的共轭转置,w*是w的共轭。在这个闭式解中出现了求逆运算(xhx+λi)-1,将上面的闭式解进行离散傅立叶变换,可以避开矩阵求逆运算,减少算法执行时间,极大提高目标跟踪算法的实时性。最终得到
如附图4所示,所述步骤s5具体包括以下子步骤:
s5.1,以预测结果所在位置为中心,在设定搜索半径的区域内,均匀采集训练样本,得到支持向量,该支持向量由正训练样本和负训练样本构成,更新结构化svm分类器参数。
通过学习一个预测函数f:x→y去直接预测帧间的目标位置转换关系,而不是学习一个分类器。输出空间是转换关系y而不是二值标签0或者1。在该方法中,一个带标签的样本是一对(x,y),y是目标位置的转换关系(比如位移、旋转),在结构化输出svm框架下学习f,将f应用于下式中进行下一帧目标位置的预测:
判别函数f为更准确的包含目标的样本打高分。其中pt-1为t-1帧目标所在位置,
其中yi代表第i帧对应的跟踪器的输出结果,εi为svm中的松弛变量,(
使用标准的拉格朗日对偶技术,目标函数被转化为以下的相等对偶形式
在上述对偶形式中,
其中
s5.2,设定支持向量的数量上限,当支持向量的数量达到阈值时,去除对结构化svm分类器影响最小的支持向量。
根据步骤s5.1,如果一个支持模式只有两个支持向量,那么这两个都会被移除。将向量(xr,y)移除后对权重向量的影响可以按下式计算:
(xr,yr)为正的支持向量,(xr,y)为去掉的支持向量,
如附图5所示,为按照本发明方法进行水面目标跟踪的一个实施例示意图,能够长时间稳定的跟踪目标。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。