一种基于IoU的水下多目标跟踪方法与流程

文档序号:19933219发布日期:2020-02-14 22:15阅读:558来源:国知局
一种基于IoU的水下多目标跟踪方法与流程

本发明涉及计算机视觉及目标跟踪技术,具体为一种基于iou(intersection-over-union,交并比)的水下多目标跟踪方法。



背景技术:

近年来,多目标跟踪因其具有的潜在学术和商业潜力,在计算机视觉中逐渐备受关注,也在现实生活中有许多实际应用,例如视频监控、人机交互、人工智能、虚拟现实等。与单目标跟踪不同的是,这些实际需求引起了额外的一系列具有挑战性的问题,例如目标间的相似外观造成的互相影响、目标间频繁遮挡、轨道初始化和终止条件等,如何妥善处理以上问题是解决多目标跟踪的关键所在。

以往的多目标跟踪算法常常只针对同一类型的目标,例如行人、车辆,很少算法关注多类型的多目标跟踪,原因在于该问题的应用场景不多,而且需要构建多类外观特征提取方法,以及进行多类目标检测,导致算法复杂度较高,速度较慢,难以满足实时需求。而且,以往在水下的多目标跟踪通常是根据声纳、传感器等手段进行非直观的定位跟踪,很少算法直接从视觉方向解决。如今随着摄影设备不断改良,水下数据集相对更容易收集获取,我们也能够直接在视频图像中对水下多个感兴趣的目标进行跟踪。

现有的多目标跟踪技术根据轨迹初始化方法大部分是基于检测的在线跟踪,即在跟踪前先进行目标检测,将得到的每一帧的目标定位框作为目标轨迹的一部分,并且只使用当前帧及之前的图像帧作为跟踪线索。以往因为目标检测算法的不成熟,导致得到的目标常常回归得不够精准,从而需要算法在跟踪部分设计得更加复杂来提高跟踪准确度,例如提取目标的外观特征、运动特征、交互特征来进行相似度度量,在跟踪部分再加入检测器做周边检测等,这些过程往往需要耗费大量时间,使算法实时性大打折扣。但随着科技进步,深度学习领域飞速发展,目标检测技术也越来越成熟,我们通过目标检测能得到的目标更加准确,这为我们实现更高效便捷的跟踪器提供了基础。

另外,随着深度学习的进步,越来越多的跟踪算法在特征提取阶段中融入了深度卷积神经网络,例如resnet、siamesenetwork、inceptionnetwork等,虽然这类方法能提取较鲁棒的目标外观特征,但其往往消耗大量时间,导致算法难以达到实时。而只使用人工设计的传统特征如hog、sift等作为度量目标相似性标准的算法,则在准确度上有所欠缺。因此,如何同时提高算法的准确性和实时性是亟需解决的重要挑战之一。



技术实现要素:

针对现有多目标跟踪技术存在准确率与实时性难以兼顾平衡的不足,本发明提供一种在确保多目标跟踪准确率的同时,能极大有效地提高跟踪实时性的水下多目标跟踪算法,该算法基于iou技术,通过场景拥挤检测算法自适应调整检测目标的得分阈值,能针对水下多分类多目标进行跟踪。

本发明采用以下技术方案实现:基于iou的水下多目标跟踪方法,包括以下步骤:

s1、获取水下感兴趣目标的数据集,进行图像预处理、图像增强;

s2、将数据集划分为训练集、测试集与验证集,训练并获得收敛的目标检测模型;

s3、对输入的当前图像帧进行图像增强;

s4、使用训练好的目标检测模型对s3进行增强后的图像帧进行目标检测,得到该帧的所有检测框信息和该帧的检测得分;

s5、通过场景拥挤检测算法,自适应调整目标检测的得分阈值,筛选部分检测目标,同时根据检测得分对检测目标集合划分为高、低得分检测目标集合;

s6、计算各检测目标与各运动轨迹之间的iou得分;

s7、根据iou得分,对检测目标与运动轨迹进行分集匹配;

s8、根据步骤s7的匹配结果对所有检测目标与运动轨迹进行状态转移处理,以保持检测目标id的一致性。

本发明相对于现有技术,具有如下的优点及效果:

1、本发明对多类别的多个目标跟踪过程,没有复杂的特征提取方法,线上不使用深度学习神经网络,通过场景拥挤检测算法自适应调整检测目标的得分阈值,结合iou度量方法,对水下多分类多目标进行跟踪;能达到简单高效,实时性高,同时保持较高的准确率的效果。

2、针对水下的多分类多目标跟踪,方向新颖,所需硬件要求不高,也有实际应用价值,可用于实际应用中,如海洋生物研究、水下探测、水下捕捞等工作。

附图说明

图1是本发明的多目标跟踪流程图;

图2是yolov3网络结构示意图;

图3是任务分配过程中匹配算法的集合轨迹状态转移示意图。

具体实施方式

下面通过附图及实施例对本发明作进一步详细的描述,但本发明的实施方式并不限于此。

本发明基于iou的水下多目标跟踪方法,包括目标检测部分的准备流程以及某一帧多目标跟踪部分的流程。其中,目标检测部分包括以下步骤s1-s2,某一帧多目标跟踪部分如图1所示,包括以下步骤s3-s8:

s1、获取水下感兴趣目标的数据集,进行图像预处理、图像增强等操作;

s2、将数据集划分为训练集、测试集与验证集,然后选用合适的卷积神经网络作为backbone进行线下训练,最终获得收敛的目标检测模型;

s3、对输入的当前图像帧进行图像增强;

s4、使用训练好的目标检测模型对步骤s3增强后的图像帧进行目标检测,得到该帧的所有检测框信息以及该帧的检测得分;

s5、通过场景拥挤检测算法,自适应调整目标检测的得分阈值,筛选部分检测目标,同时根据检测得分对检测目标集划分为高、低得分检测目标集合;

s6、计算各检测目标与各运动轨迹之间的iou得分;

s7、根据iou得分,对检测目标与运动轨迹进行基于匈牙利匹配的分集匹配;

s8、根据步骤s7的匹配结果对所有检测目标与运动轨迹进行状态转移处理,包括运动轨迹初始化与终止等,以保持检测目标id的一致性。

上述步骤s1、s3中的图像增强主要针对水下环境的视频而言,与陆地上拍摄的普通图像不同,复杂的水下成像环境和光照条件导致目前水下成像系统拍摄的图像往往具有对比度低、纹理模糊、颜色失真、非均匀光照、可视范围有限等质量退化问题。同时考虑到算法实时性需求,因此,本发明主要使用基于加权l1正则化的水下图像清晰化算法来进行图像增强,以解决上述问题,如公式(1)所示:

其中,sc分别表示为c通道的颜色信息、均值、均方差、最大值以及最小值;θc表示调整图像动态范围的参数,通常根据图像基调统计信息来取值,如果图像基调统计信息为蓝则取[2.3,1,1],如果图像基调统计信息为绿则取[2,1.3,0.5]。

在步骤s2中,本发明首先随机打乱数据集,然后按照7:2:1的比例划分训练集、测试集与验证集;接着对训练集进行数据增强,包括采用裁剪、旋转、平移、形变、遮挡等操作,以此来缓解水下数据集较少的问题。在卷积神经网络backbone的选择上,考虑到本发明在目标检测部分需要有较高准确度的需求,而yolov3具有多尺度、高效准确、同时可轻量简便等特点,并且它在coco、voc等多个目标检测公开数据集的实验结果优越、性能卓越,所以本实施例选择yolov3作为训练卷积神经网络backbone,其网络结构如图2所示。另外,在训练过程中,本发明对比了迁移学习与重新训练的效果,实验结果表明重新训练比迁移学习准确性稍微高一些。经实验分析,重新训练对于本发明应用场景更加适用,其原因在于陆地上的目标检测与水下目标的背景环境差距较大,如光照、对比度等影响更重,因此曾经在imagenet或其他陆地数据集上训练得到的权重模型使用在水下环境时效果并不明显。除此之外,本发明在训练中使用的优化器是adam优化器,迭代次数设置为500,并采用早停策略,即若模型在50步内收敛便结束训练。同时采用自适应下降学习率策略,初始化学习率为0.001,若模型在20步内收敛则学习率降低0.1倍。通过上述训练策略可以更快、更准确地得到收敛的最终模型。

在步骤s4中,本发明对图像增强后的图像帧,用训练好的目标检测模型进行检测,得到该帧的所有检测框信息,其中包括检测框的长和宽,左上角横坐标和纵坐标,以及该帧的检测得分(即检测分数),检测得分是归一化后的浮点值,范围是0到1。

虽然本发明所得的检测比较可靠,但在水下复杂的成像环境中,还是很难保证每一个检测都是准确无误的;此外,每个检测间可能会发生遮挡、碰撞等现象,因此也会产生一系列的噪音检测,所以还需要对所有检测目标做筛除过滤操作。在步骤s5中,本发明引入了场景拥挤检测算法,该算法能较好地判断当前帧是否处于目标拥挤现象,并且根据拥挤程度,自适应调整筛除检测目标的得分阈值。场景拥挤检测算法对第t帧的场景拥挤检测计算公式如(2)所示:

其中,ρd表示检测得分阈值,α表示预设得分阈值偏移值,numr表示检测框与轨迹框发生重叠的个数,num表示检测框总数,β表示预设的最低检测框总数值。α用于控制检测得分阈值不至于过高,β则用于判断是否有进行拥挤检测的必要,即当检测总数很少时说明不存在拥挤现象,而最多出现个别检测部分重叠。得分阈值经过公式(2)筛选后,能在拥挤场景下得到较低值,在松散场景下得到较高值,即对筛选阈值进行了自适应调整;这正符合本发明的设计:当发生拥挤时,真实目标往往被遮挡导致检测得分不够高,相对地,在真实目标自身明确时理应获得较高检测得分。在本发明中,启发式地将α设为0.2,β设为10。因此,通过公式(2)的筛选,如果发生场景拥挤,所有目标可能的绝对得分都会降低,本发明需要将阈值也降低,使真实目标不会因为绝对得分低而被筛除掉;本发明通过自适应调整得分阈值,使每个目标的相对得分基本保持不变,只有每一帧的筛选阈值在变。

除此之外,步骤s5还根据检测得分对检测集进行分集,分别是高、低得分检测集合,这样做的好处在于跟踪器在进行数据关联时,能优先匹配更像是真实目标的高得分检测,然后再考虑低得分检测。对第t帧的检测分集公式如(3)所示:

其中,dhigh和dlow分别表示高得分检测目标集合和低得分检测目标集合,d表示检测目标总集合,sd表示检测目标d的得分,savg和smed分别表示检测得分总集合的平均值和中位数。通过简单地比较检测得分的平均数与中位数,将最可能是真实目标的检测得分和最可能是假目标的检测得分分别归到高得分检测集合和低得分检测集合,同时还使用公式(2)中的场景拥挤检测算法来调整得分阈值,从而在具有噪音干扰的环境中保留真实目标。

步骤s6中,计算第t帧的检测目标d与运动轨迹k之间的iou(交并比,即重叠度)的公式如(4)所示:

其中,sd∩k和sd∪k分别表示检测目标d这一检测框与运动轨迹k这一轨迹框之间的相交区域面积和并集区域面积,d和k分别表示检测目标总集合与运动轨迹集合。通过公式(4),可以计算得到当前帧每个检测目标-运动轨迹对的iou,然后可以排列成一个iou矩阵,横坐标对应检测目标序号,纵坐标对应运动轨迹序号。

在步骤s7中,采用匈牙利算法进行分集匹配。匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,它是通过不断寻找增广路径,从而寻找到最大匹配的。因其简单便捷的特点,本发明使用它作为分集匹配算法的基础。而本发明设计的分集匹配思想也比较容易理解,即是步骤s5提到的,优先匹配最可能是真实目标的高得分检测,然后再匹配低分检测。整个匹配流程如下:首先输入高得分检测目标集合、低得分检测目标集合、运动轨迹集合、iou矩阵,然后将iou矩阵作为检测目标集合与运动轨迹集合之间的距离度量,接着依次将高、低得分检测目标集合与运动轨迹集合进行匈牙利匹配。最终,当匹配完成后,可以得到以下三个集合:配对的检测目标-运动轨迹集、未配对的检测目标集、未配对的运动轨迹集。其中,配对的检测目标运动轨迹集以及未配对的检测目标集都同时包括高、低得分检测目标集中的检测目标,即最后结果中不分高、低得分检测目标集合。

在步骤s8中,需要对通过步骤s7得到的三个集合做轨迹状态转移处理,转移流程如图3所示。每个运动轨迹均可以处于三种状态:跟踪状态、消失状态和删除状态。跟踪状态表示运动轨迹正在被跟踪;消失状态表示运动轨迹暂时消失,即发生遮挡或碰撞现象;删除状态表示运动轨迹已经完全消失在视频之中。设立轨迹状态转移的目的在于缓解检测目标id频繁发生交换的现象,从而保持检测目标id的一致性。另外,在步骤s6和s7中涉及到的运动轨迹是只包括处于跟踪状态和消失状态的轨迹,处于删除状态的轨迹将被舍弃。下面对每个集合的转移条件及结果展开介绍:

对于配对的检测目标-运动轨迹集合,根据检测的位置等信息更新它们的运动轨迹信息,然后判断运动轨迹状态,若处于跟踪状态,则保持状态不变,即进行t1操作;若处于消失状态,则将它转移到跟踪状态,即进行t3操作;对于未配对的检测目标集,为每个检测目标初始化一个运动轨迹,使这些运动轨迹的信息与对应的检测信息相同,并让它们处于跟踪状态;对于未配对的运动轨迹集中的每个运动轨迹,当该运动轨迹处于跟踪状态时,将它转移到消失状态,即进行t2操作;当运动轨迹处于消失状态时,比较该运动轨迹的已消失帧数与删除阈值ρr的大小,当已消失帧数大于ρr时,则将它转移到删除状态,即进行t5操作;反之,则保持它的状态为消失状态,即进行t4操作。在本实施例中,启发式地将删除阈值ρr设为2,这样既能缓解目标id交换的现象,也能防止由于摄像头抖动等原因造成的目标帧间位置差距过大,从而发生匹配错误的情况。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1