智能感知是船舶实现自主航行的前提和基础.作为船舶的感知系统,须检测周围环境状态并实时跟踪运动的目标,为后期的决策阶段提供决策依据.目前,船舶感知外界环境主要是通过雷达传感器,自动定位系统(automatic identification system,AIS)等,但雷达目标可能会丢失信息,AIS只针对装有该系统的船只,会使船舶在航行中存在感知信息缺失的问题.视觉传感器具有直观的数据形式,能够对雷达信息和AIS进行补充[1],辅助船舶的智能航行.为了充分发挥摄像头的作用,文献[2]提出了基于跟踪学习检测(tracking learning detection,TLD)框架的船舶识别跟踪算法.文献[3]将反向传播(back propagation,BP)神经网络和卡尔曼滤波相结合,建立了船舶动态跟踪模型.文献[4]在Tiny Yolov3算法的基础上加入了基于重叠度的卡尔曼滤波跟踪算法.随着计算机视觉的不断发展,摄像头在船舶智能航行中发挥的作用越来越大.实现船舶目标准确快速的跟踪对船舶智能航行的发展具有重要意义.目标跟踪领域中,基于相关滤波[5]和孪生网络[6]的单目标跟踪算法发展迅速,但不能满足船舶对于多个目标的跟踪需求,所以须研究多目标跟踪算法.目前主流的多目标跟踪方法大多基于检测跟踪(tracking by detection,TBD)框架,将检测结果与跟踪轨迹进行匹配,匹配成功则完成当前帧的跟踪.Sort算法[7]是TBD框架的一个雏形,通过匈牙利算法对检测和预测结果进行匹配,算法速度快,但对遮挡几乎没有处理,导致轨迹ID频繁切换;IoU-Tracker算法[8]直接将前后两帧检测框之间的IoU(intersection over union)作为关联匹配的依据,但这种方法只能满足简单的环境感知;DeepSort算法[9]则是在Sort算法的基础上加入表观特征的匹配,采用卷积神经网络提取目标的深度特征作为匹配的依据,大大提高了跟踪性能.本研究改进了DeepSort表观匹配中特征集合的更新方法,有效减少了跟踪过程中的轨迹ID切换.针对船舶智能航行所面临的环境,将检测算法与跟踪算法相结合,利用Yolov5算法对视频进行逐帧检测,改进的DeepSort算法则将检测结果与跟踪器进行数据关联匹配,使同一个目标始终分配至同一条跟踪轨迹,进而完成海上多目标船舶的跟踪.1 检测算法分析Yolo(you only look once)系列目标检测算法是计算机视觉中的经典算法.该算法将检测视为一个回归问题,使用单阶段模型一次性得到目标的边界框、置信度和类别概率,虽然在精度上略低于两阶段模型,但速度非常快.Yolov3算法[10]采用骨干网络Darknet-53提取图像特征;利用多尺度融合的特征对目标进行多尺度检测,提升了小目标的检测精度;使用多个独立的Logistic分类器替换Softmax层实现多标签分类.经过上述改进,算法在精度和速度上均有明显的提升.Yolov4算法[11]融合了当前目标检测领域各种网络设计和训练思想,如采用数据增强来增加训练样本的多样性;使用全局交并比CIoU做为边界框损失函数;使用Mish激活函数和DropBlock正则化方法;选择CSPDarkNet53作为特征提取的主干网络;引入注意力机制等,成为目前最为兼顾性能和速度的检测算法之一.Yolov5算法与Yolov4算法都采用了Mosaic数据增强方式,但在一些方面有所不同,比如:在输入端采用了自适应图片缩放和自适应锚框计算;骨干网络加入了Focus结构;使用GIoU做为边界框损失函数等.Yolov4和Yolov5算法各有优劣,前者在跟踪精度上略胜一筹,后者检测速度快,使用配置简单的Pytorch框架,部署成本较低,其中Yolov5m模型占用空间41 MiB,在Tesla V100显卡上处理一张图片仅需3 ms.本研究利用训练好的Yolov5m模型进行船舶目标的检测时,发现该模型的精度和速度均能满足跟踪算法的需求,所以将Yolov5算法作为本文算法的检测器,为跟踪算法提供检测结果.2 DeepSort算法2.1 基本流程DeepSort算法采用数据关联的方式来完成多目标的跟踪,每个目标会分配一条跟踪轨迹,且每条轨迹均有一个参数A用于记录距上次匹配成功后的帧数.若轨迹与检测结果匹配成功,则A初始化为0,否则A加1;若A大于阈值Amax,则视为目标消失;若检测结果连续Ainit都能与新分配的轨迹匹配成功,则视为新出现的目标.本文算法流程图如图1所示.首先对检测结果进行预处理,去掉置信度小于阈值的检测结果和通过非极大值抑制去除检测中重叠的边界框;然后通过卡尔曼滤波器预测目标在当前帧的位置,对于初始化的新轨迹,只须进行运动匹配,其他跟踪轨迹则须进行运动状态和表观状态的融合匹配,进而得到融合的度量匹配矩阵;接着用匈牙利算法对度量匹配矩阵进行处理,得到初步的匹配结果;对于未匹配成功的跟踪轨迹和检测结果,对跟踪框和检测框进行基于IoU的匹配,得到当前帧最终的分配结果;最后根据匹配结果进行参数更新及后续处理.10.13245/j.hust.220123.F001图1算法流程图2.2 运动匹配DeepSort算法中由向量(u,v,γ,h,u˙,v˙,γ˙,h˙)来描述图像坐标系下水面目标在某一时刻的状态,其中:(u,v)为边界框中心的坐标;γ为框的长宽比;h为框的高度,(u˙,v˙,γ˙,h˙)为对应四个参数的速度信息.通过卡尔曼滤波得到水面目标在当前帧的预测位置后,计算与检测位置之间的运动匹配程度,为目标匹配提供运动方面的度量依据.对于第i条跟踪轨迹和第j个检测框,两者的运动匹配程度可用马氏距离来表示,即d1(i,j)=(dj-yi)TSi-1(dj-yi),式中:dj为第j个检测框的状态向量;yi和Si为第i条跟踪轨迹预测得到的状态向量和协方差矩阵.2.3 表观匹配由于船舶在航行过程中会使船载摄像头一直处于运动状态,且目标船舶可能存在遮挡的情况,因此单独使用基于马氏距离的运动匹配会导致频繁出现轨迹切换的情况.为了弥补上述缺点,在运动匹配的基础上增加了基于特征向量间最小余弦距离的表观匹配.对于每一个检测框,采用深度神经网络提取框内图像的深度特征,并与跟踪器存储的特征集进行匹配,这里通过计算深度特征间的余弦距离作为匹配的依据[12].针对行人跟踪问题,原算法采用的特征提取网络无法用于船舶目标的特征提取.为了适应所研究的船舶跟踪问题,在SeaShips数据集[13]的基础上进行改进,生成船舶重识别数据集,并重新训练特征提取网络模型,使之能够满足跟踪过程中船舶特征提取的要求.网络模型提取特征的过程如图2所示.10.13245/j.hust.220123.F002图2网络模型提取特征的过程对于每条跟踪轨迹,构建一个特征向量集R,该集合包含该水面目标最近K帧匹配成功的特征向量.d2(i,j)是第j个目标检测结果和第i条轨迹之间的表观匹配度,计算公式为d2(i,j)=min{1-rjTrk(i)|rk(i)∈Ri},式中:rj为检测块的特征向量;rk(i)为第i个水面目标轨迹特征集Ri中第k个特征向量;rjTrk(i)为特征向量之间的余弦距离.得到表观匹配度量之后,采用线性加权的方式与运动匹配度量融合,得到新的度量匹配信息ci,j=λd1(i,j)+(1-λ)d2(i,j),式中:ci,j为第j个检测框和第i条轨迹之间的匹配程度,该值越小说明两者为同一水面目标的概率越大;λ为权重系数.2.4 匈牙利匹配与IoU指派通过融合运动匹配和表观匹配两种度量方式,得到检测结果与跟踪轨迹的融合度量匹配信息ci,j.假设当前帧有D个检测框和T条跟踪轨迹,则可得到T×D个融合度量匹配信息c组成度量匹配矩阵CT×D.利用匈牙利算法对匹配矩阵进行处理,实现水面多目标的分配,并且保证所有成功匹配的轨迹和检测框之间的c之和最小.对于未匹配成功的轨迹和检测结果,进行基于IoU的匹配,最终得到匹配成功的水面目标及未成功匹配的水面目标轨迹和检测结果.2.5 参数更新和后续处理经过上述匹配,得到最终的分配结果.对于成功匹配的跟踪器,分别更新卡尔曼滤波参数、参数A和轨迹的特征向量集R;没有匹配成功的检测结果,可能为新目标,初始化一条新的跟踪轨迹;没有匹配成功的轨迹,A+1,若A超过阈值Amax,则视为目标消失并删除该轨迹.实验发现:原算法在对多船目标进行跟踪中,经常出现轨迹切换身份的现象,如图3所示,目标船舶开始被分配至3号轨迹,一段时间之后发生了ID切换,该船被分配至9号轨迹.10.13245/j.hust.220123.F003图3跟踪过程中轨迹切换分析发现:在原算法中每条跟踪轨迹的特征集R均为最近K帧匹配成功的向量集,检测与跟踪轨迹匹配成功后,新的特征向量替代集合中最早匹配成功的向量,特征集合中充斥着高度相似的特征向量,如图4(a)所示.当目标船舶因转向或遮挡等引起外观较大变化时,集合中特征比较单一,无法在集合中找到与检测结果相匹配的特征,此时会造成表观度量的失效,导致跟踪过程中出现轨迹ID切换的现象.10.13245/j.hust.220123.F004图4改进前后特征向量集合的样本比较为了提升表观度量方式的准确性,对特征集合的更新方式进行改进.改进后的更新方式为:当检测与跟踪轨迹匹配成功后,将新的特征向量添加到集合之中,并将集合中与新的特征向量匹配成功的向量删除,使得集合中的特征向量之间有较大的差异性,如图4(b)所示.从图4可以看出:改进前特征向量集合里面的样本大都相似,为目标船舶近期的状态;改进后的特征向量集合中样本彼此间的差异性较大,包括目标不同阶段的状态.通过更新方式的改进,能够在有限的容量空间中存储跟踪器更多种状态下的船舶表观特征,使得检测结果更容易与集合中的特征相匹配.3 实验结果与分析为验证本文算法的有效性,首先对用于表观匹配的特征提取网络进行训练,然后用实海域视频对本文算法进行实验测试.视频拍摄的是近海域真实场景,各个场景均包含多条运动的船舶,视频图像帧大小为1 280×720,帧频为30帧/s.3.1 特征提取网络训练SeaShips数据集是按照标准检测数据集VOC2007的格式制作的.为了满足重识别数据集的要求,首先利用标注文件截取图片中的船舶目标,然后将属于同一目标的图片放置在同一文件夹中.为了保证训练过程的顺利进行,将每个目标所有图片的3/4划分到训练集,剩余的归为测试集,且每个目标的训练集和测试集文件夹命名一致.最终得到大约300个船舶目标,约7 500张图片的训练样本.某一船舶目标训练图片集如图5所示.10.13245/j.hust.220123.F005图5某一船舶目标训练集图片本实验的硬件平台为Intel(R) Core(TM) i7-8700 CPU@3.20GHz处理器、16 GiB内存、GeForce GTX 1080 Ti显卡、11 GiB显存.软件环境为Ubuntu 16.04,python3.7,PyTorch1.6.在训练程序中,优化算法为SGD,动量因子为0.9,批次为8,学习率为0.1,每训练20个周期学习率衰减至上次的1/10.在训练过程中,每对训练集完整地训练一次,即一个周期,便将得到的模型在测试集数据上进行评估,得到当前训练阶段在测试集数据上的损失值和精度.图6为不同训练阶段在训练集和测试集上的损失(L)和分类精度(e),n为训练周期.10.13245/j.hust.220123.F006图6不同训练阶段在训练集和测试集上的损失和分类精度由图6可以发现:在训练至20个周期后,学习率衰减,训练中损失值大幅下降,模型精度有了较大提升,在之后的训练中,分类精度不断提升并趋于稳定.在60~80个周期,损失值和模型的精度基本没有变化,所以在第80个周期完成后终止训练,并将训练好的模型作为本文算法的特征提取网络模型.3.2 实验与结果为评价算法的跟踪效果,对测试的视频进行了标注工作,包括船舶的图像空间位置和彼此的轨迹ID,并选取下列6个参数作为评价指标:在整个序列中至少80%帧成功跟踪的轨迹所占的比例(α);在整个跟踪序列中至多20%帧成功跟踪的轨迹所占的比例(β);跟踪轨迹改变目标ID的次数(p);跟踪轨迹被打断的次数(q);结合丢失目标,虚警率和错误匹配的跟踪性能评价指标(M);多目标跟踪精度(e').实验中算法采用的参数为:Amax=75,Ainit=3,K=80,λ=0.2.首先利用训练好的Yolov5算法对视频序列中的船舶目标进行检测,然后将检测结果作为跟踪算法的输入,分别测试改进前后DeepSort算法的跟踪效果,并使用上述6个评价指标来对算法进行评估.图7为视频一中第5,210,320和430帧的跟踪结果.图8为改进后的算法对图3的样本进行测试,得到的跟踪结果.表1为改进前后算法的跟踪性能评价结果.10.13245/j.hust.220123.F007图7视频一中第5,210,320和430帧的跟踪结果10.13245/j.hust.220123.F008图8改进后算法的跟踪结果10.13245/j.hust.220123.T001表1改进前后算法跟踪性能评价结果算法α/%β/%pqMe'v/(帧·s-1)DeepSort38.415.424260663.876.443改进DeepSort39.513.821557165.476.342从图7可以看出:图像区域的船舶大都被检测跟踪成功,并为不同的船舶分配相应的轨迹.当有新的目标出现时,比如第210帧新出现的9号和10号目标,第430帧出现的11号目标,算法能为其分配新的跟踪轨迹.当有目标消失时,比如第210帧消失的5号目标,第430帧消失的2号、4号和7号目标,算法能够将轨迹删除,使之不再出现.从图8可以看出:改进后的算法能够准确跟踪到图像中的船舶目标,对比图3,分配至3号轨迹的船舶在多帧图像中始终保持相同的轨迹,没有发生轨迹身份的切换.对于新增的6号和8号目标及消失的5号目标,均有良好的跟踪效果.由表1可以看出:对DeepSort中特征集的更新方式进行改进之后,算法的跟踪性能有了一定的提升,其中:跟踪轨迹改变目标ID的次数降低了11.2%,跟踪轨迹被打断的次数降低了5.8%,在整个跟踪序列中至多20%帧成功跟踪的轨迹所占的比例由15.4%降至13.8%,在整个序列中至少80%帧成功跟踪的轨迹所占的比例由38.4%提高到39.5%,虚警率和错误匹配的跟踪性能评价指标提高了2.5%,多目标跟踪精度几乎没有变化.改进前后跟踪速度(v)均保持在40帧/s以上,能够满足实时性的要求.4 结语将Yolov5检测算法与DeepSort算法相结合,引入到船舶智能航行的目标感知中,并对DeepSort算法中特征向量集的更新方式进行改进.实验结果表明:改进后的算法跟踪精度有了一定的提升,跟踪速度几乎保持不变,能够满足准确性和实时性的要求,在船舶智能航行的感知领域具有很好的工程应用前景.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读