一种面向无人艇应用的水面目标检测跟踪一体化方法
技术领域
本发明属于数字图像处理和控制系统交叉技术领域,更具体地,涉及一种面向无人艇应用的水面目标检测跟踪一体化方法。
背景技术
无人艇作为水面无人操作舰艇,在许多实际应用场景中,都有着十分重要的作用。例如,民用领域中的水质监测,警用领域中的海关缉私,军用领域中的近海巡逻等等。因此,我国对无人艇的需求正在日益增加。而无人艇要完成自主航行的前提是要实现自动避障技术,水面目标的快速检测是自动避障技术的基础。对于水面目标的检测除了要快速和准确,检测结果一定要平滑,才能够为无人艇的控制模块提供稳定的环境感知信息。下面介绍几种目前常用的目标检测算法:
(1)基于目标潜在区域的目标检测算法
2014年Ross Girshick等人在CVPR上发表R-CNN算法,首先计算得到目标潜在区域,然后对众多目标潜在区域分别提取CNN特征进行分类,最终实现目标检测。R-CNN算法开创了基于目标潜在区域的目标检测方法,利用selective search算法获取目标潜在区域,然后将每一个目标潜在区域输入到卷积神经网络中,分别提取各自的CNN特征,最后将特征送入到SVM分类器中进行分类,R-CNN算法在VOC 2010数据库上获得了53.7%的正确率。
2015年Kaiming He等人在NIPS上发表了Faster R-CNN算法,提出了RPN网络,从输入图片的卷积层中提取目标潜在区域,实现了端对端的卷积神经网络。该算法将图片输入到CNN网络中,计算输入图片的卷积特征图,从中提取目标的潜在区域,然后将目标潜在区域送入全连接层,最后利用softmax分类器进行分类和回归,得到目标的类别和位置。该算法取得了当时最好的效果,在VOC 2007数据集上正确率达到了73.2%。
(2)不需要目标潜在区域的目标检测算法
2016年Wei Liu等人在ECCV上发表了SSD算法,去除了提取目标潜在区域的过程,直接将图片输入到CNN网络进行目标检测识别,大大缩短了计算时间。SSD算法将输入图片统一剪裁成固定的大小(300*300或500*500),然后计算图片的CNN特征,将其中的多层特征图分别接上分类器,得到目标的类别和位置,对众多目标框进行非极大值抑制得到最终的结果。SSD300网络在VOC 2007数据集上获得了72.1%的准确率,速度达到了58fps。
目前常用的目标检测算法主要是基于深度学习,此类目标检测算法由于算法复杂度高,大多数的速度都比较慢,不能达到实时。而不需要提取目标潜在区域的目标检测算法(例如SSD算法)速度可以达到实时的要求,但是对于小目标的效果不好,无法达到实际应用的要求。同时,目标检测算法对于视频序列的检测结果不平滑,相近几帧的结果可能差别较大。而无人艇在进行自主航行的时候,需要稳定的目标位置信息。
对于目标检测方法速度慢和检测结果不平滑的问题,目标跟踪方法可以很好的解决。目前常用的跟踪算法有,Jianming Zhang等人在ECCV上提出MEEM跟踪方法,Henriques等人在TPAMI上提出的KCF跟踪方法等等。目标跟踪算法速度快,并且检测结果相对稳定,但是跟踪算法同时也存在许多局限性。第一,目标跟踪算法需要被提供目标的初始位置,由于水面目标众多,如果出现新目标,将无法跟踪。第二,目标跟踪算法难以克服大尺度变化,如果目标出现大程度的姿态变化,将会丢失目标。第三,目标跟踪算法不能解决遮挡问题,水面船只众多,经常会出现遮挡情况,目标跟踪算法容易丢失目标。
综上所述,无论是目标检测算法还是目标跟踪算法,单独使用都不能完成无人艇的障碍物检测识别任务,无法实现无人艇的自主避障。但是,两种方法的优点恰好可以补充各自方法的不足,因此考虑将目标检测算法和目标跟踪算法结合到一起,来完成无人艇的自主避障任务。
发明内容
本发明要解决的技术问题是提供一种面向无人艇应用的水面目标检测跟踪一体化方法,既能够快速、准确的获取障碍物类别和位置,又可以获取稳定的检测结果。
为了解决上述技术问题,本发明采取以下技术方案:
一种面向无人艇应用的水面目标检测跟踪一体化方法,包括以下步骤:
S1,训练目标检测神经网络模型;
S2,目标检测,对输入的图片进行检测,得到该图片中的包含目标的目标框,进而得到目标检测结果,将检测结果放入集合Bd中;
S3,检测当前图片是否为第一帧图片,若是,则转入步骤S4;若不是,则检验目标跟踪结果,将上一帧图片的目标跟踪结果,输入到目标检测神经网络模型中进行检测,保留没有丢失目标的跟踪框,将该跟踪框放入集合Bt中;
S4、精调目标框和跟踪框的大小和位置,对步骤S2中的目标框和步骤S3中的跟踪框进行边缘提取得到边缘图,将该边缘图的最大外接矩形作为精确的目标框和跟踪框;
S5,判断是否出现新目标,对比集合Bt和Bd中的目标框和跟踪框,判断集合Bd中是否发现了新目标,若发现新目标,将该新目标的框加入集合Bt中,舍弃集合Bd中其余的目标框;
S6,目标跟踪,将集合Bt中的跟踪框中的目标作为跟踪目标;
S7,连续跟踪m帧,然后重复步骤2至步骤7,直到最后一帧图片。
所述步骤S1具体包括:
S11,定义神经网络网络误差函数:
其中Lc和Lr分别代表分类误差和回归误差,具体定义如下:
在上述公式中,i表示框的序号;bi表示框里有目标的概率,如果第i个框是正样本则bi等于1,否则等于0;bi *表示第i个框实际的类别;mi表示第i个框的四个坐标;mi *表示第i个框实际的坐标;λ表示分类误差和回归误差的平衡参数;
S12,网络初始化;
S13,训练神经网络,使用反向传播算法,对神经网络的参数进行更新,当测试误差不再变化时,训练停止。
所述步骤S2具体包括:
S21,图片初始化,对输入的图片初始化处理;
S22,提取图片CNN特征;
S23,获取目标初始位置和类别,得到包含目标的初始目标框;
S24,获取目标精确位置和类别,得到目标框;
S25,剔除虚景,对步骤S24的结果进行非极大值抑制处理,剔除虚景和重复的目标框,得到目标检测最终结果,将该目标检测最终结果放入集合Bd中。
所述步骤S23具体为,由步骤S22提取的图片的CNN特征构成该图片的CNN特征图,在该CNN特征图上以每个元素为中心,构建9种不同大小的矩形框,将该9种矩形框输入到softmax分类器中进行分类和回归,得到具有初始位置和类别的初始目标框。
所述步骤S24具体为,将初始目标框归一化至设定大小,再接入2个全连接层,然后送入softmax分类器得到目标框的精确位置和类别。
所述步骤S5具体包括:
S51,计算区域H-S颜色直方图,将输入图片从RGB颜色空间转换至HSV颜色空间,对集合Bt和Bd中的目标框和跟踪框,构建区域H-S颜色直方图,将目标框的直方图放入集合Hd中,将跟踪框的直方图放入集合Ht中;
S52,区域颜色直方图匹配,比较集合Ht和集合Hd中的颜色直方图,如果相似度小于设定值,则检测到了新目标;如果相似度大于设定值,则没有检测到新目标,将新目标的框放入集合Bt中;
S53,剔除重复目标框,在集合Bt中,计算每个目标框与其他目标框交集部分的面积,若交集的面积占其中某个目标框面积70%以上,同时该两个目标框检测到的目标类型一致,则判定出现重复目标框,将面积大的目标框移出集合Bt。
所述步骤S6具体包括:
S61,构造循环偏移矩阵,以集合Bt中跟踪框作为跟踪目标的起始位置,以该起始位置为中心,选择面积大于起始位置面积的矩形区域作为样本图像,将该样本图像进行上下左右的循环偏移,得到若干训练样本,所有训练样本构成样本矩阵,该样本矩形变成循环矩阵;
S62,训练滤波器参数,得到滤波器W=[w(1) w(2) w(3)……w(n)]T使得:
其中λ是为了防止过拟合设定的正则化项,求解可得W=(XHX+λI)-1XHy,X和XH都是循环矩阵,进一步求出其中W*表示W的共轭,⊙代表对应元素相乘;
S63,搜寻目标,在下一帧图片上,按照步骤S61找到若干样本图像,利用滤波器W,对每一个样本图像进行回归,将回归值最高的图像设为目标位置,完成目标跟踪,将新的目标位置放入新的集合Bt中。
本发明能够快速、准确的检测到无人艇自主航行中遇到的障碍物,并且检测结果较为稳定。接收摄像机拍摄的图片,对图片进行目标检测,将检测结果作为目标跟踪的起始位置,进行目标跟踪。利用目标检测与目标跟踪的相互验证,提高方法的准确率。利用颜色直方图对比、目标位置关系等策略,平滑检测结果,从而得到稳定的目标位置。
附图说明
图1为本发明流程原理示意图;
图2为本发明中目标检测流程示意图;
图3为本发明中目标边缘示意图;
图4为本发明目标H-S颜色直方图;
图5为本发明检测跟踪一体化实验结果序列图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明
如附图1-4所示,本发明揭示了一种面向无人艇应用的水面目标检测跟踪一体化方法,包括以下步骤:
S1,训练目标检测神经网络模型。为了解决训练问题,本发明制作了水面常见目标数据集,共2000张图片,其中包括内河船、帆船、军舰、邮轮、浮标等5类水面常见目标。同时为了增强目标检测神经网络的稳定性,训练时另外加入PASCAL VOC 2007数据集20类共10000张图片,本发明训练集最终包含25类目标共12000张训练图片。
该步骤S1具体包括:
S11,定义神经网络网络误差函数:
其中Lc和Lr分别代表分类误差和回归误差,具体定义如下:
在上述公式中,i表示框的序号;bi表示框里有目标的概率,如果第i个框是正样本则bi等于1,否则等于0;bi *表示第i个框实际的类别;mi表示第i个框的四个坐标;mi *表示第i个框实际的坐标;λ表示分类误差和回归误差的平衡参数。在本实施例中,λ等于9;Nc表示神经网络在进行批量训练时,每一批图片的数量,Nc等于100;Nr表示神经网络第5层卷积特征图元素的个数,Nr等于2400。
S12,网络初始化。可利用神经网络框架caffe进行训练。使用在ImageNet数据集上训练好的VGG16网络模型,初始化目标检测方法中的神经网络参数。
S13,训练神经网络,使用反向传播算法,对神经网络的参数进行更新,当测试误差不再变化时,训练停止。
S2,目标检测,对输入的图片进行检测,得到该图片中的包含目标的目标框,进而得到目标检测结果,将检测结果放入集合Bd中。
该步骤S2具体包括:
S21,图片初始化,对输入的图片初始化处理。本实施例中,将输入的图片归一化至600*800大小,然后对图片进行去均值处理,均值从水面目标数据集上计算得来,或者是通过大量计算进行一个预设设定取值。归一化大小,可以灵活设定,上述只是一种举例,并非是限定。
S22,提取图片CNN特征。
S23,获取目标初始位置和类别,得到包含目标的初始目标框。由步骤S22提取的图片的CNN特征构成该图片的CNN特征图,在该CNN特征图上以每个元素为中心,构建9种不同大小的矩形框,将该9种矩形框输入到softmax分类器中进行分类和回归,得到具有初始位置和类别的目标初始目标框。比如,可在图片的CNN特征图上,以每一个像素为中心构建3种不同尺度(1282,2562,5122)和3种不同纵横比(2:1,1:1,1:2)共9种类型的矩形框,将所有的目标框送入softmax分类器进行分类和回归。每个目标框会有25个得分值,分别代表25种目标类型,得分值最高的类作为该目标框的类别。回归得到的是目标框的4个新坐标,分别是目标框左上角的横坐标和纵坐标以及目标框的宽和长,回归之后目标框会更加贴合目标。由于水面目标背景比较简单,因此取得分前150的框作为目标的初始位置。
S24,获取目标精确位置和类别,得到目标框。将初始目标框归一化至设定大小(如7*7),再接入2个4096维的全连接层,然后送入softmax分类器得到目标框的精确位置和类别。
S25,剔除虚景,对步骤S24的结果进行非极大值抑制处理,剔除虚景和重复的目标框,得到目标检测最终结果,将该目标检测最终结果放入集合Bd中。
S3,检测当前图片是否为第一帧图片,若是,则转入步骤S4;若不是,则检验目标跟踪结果,将上一帧图片的目标跟踪结果,输入到目标检测神经网络模型中进行检测,保留没有丢失目标的跟踪框,将该跟踪框放入集合Bt中。通过目标检测的神经网络,来检验跟踪框内是否还有其他目标。同时可以根据回归结果来调整跟踪框的位置,让目标跟踪的矩形框能够更好的贴合目标。对上一轮目标跟踪最后一帧的跟踪框进行步骤S24的操作,如果输出的得分值高于设定阈值,则认为跟踪框没有丢失目标,保留该跟踪框;若得分值低于阈值,则舍弃该跟踪框。将保留下来的跟踪框放入集合Bt。阈值的设定范围为0.6-0.8,在本发明实施例中,阈值设为0.7。
S4、精调目标框和目标跟踪的大小和位置,对步骤S2中的目标框和步骤S3中的跟踪框进行边缘提取得到边缘图,将该边缘图的最大外接矩形作为新目标框和新跟踪框。在本实施例中,边缘图进行二值化处理,将小于阈值的边缘设为0,大于阈值的边缘设为1。得到局部区域的边缘图后,将目标边缘的最大外接矩形作为精确的目标框和跟踪框。经过调整后,目标框和跟踪框可以更好的包围目标,进一步减少框内虚景。边缘阈值范围为0.1-0.3,在本发明实施例中,边缘阈值设为0.2。
S5,判断是否出现新目标,对比集合Bt和Bd中的目标框和跟踪框,判断集合Bd中是否发现了新目标,若发现新目标,将新目标的框加入集合Bt中,舍弃集合Bd中其余的目标框。
步骤S5具体包括:
S51,计算区域H-S颜色直方图,将输入图片从RGB颜色空间转换至HSV颜色空间,对集合Bt和Bd中的目标框和跟踪框,构建区域H-S颜色直方图,将目标框的直方图放入集合Hd中,将跟踪框的直方图放入集合Ht中。构造H-S直方图,h通道直方图直条数量为30,色调的取值范围为0~179,统计色调的分布情况;S通道直方图直条数量为60,饱和度的取值范围为0~255,统计饱和度的分布情况。将输入图片从RGB颜色空间转换至HSV颜色空间,步骤S4得到了目标框和跟踪框的坐标,在输入图片上截取相应的矩形区域,计算这些区域H-S颜色直方图,最后将所有的颜色直方图的纵坐标归一化至0~1。将目标框的H-S颜色直方图放入集合Hd,hi∈Hd;将跟踪框的H-S颜色直方图放入集合Ht,hj∈Ht。
S52,区域颜色直方图匹配,比较集合Ht和集合Hd中的颜色直方图,如果相似度小于设定值,则检测到了新目标;如果相似度大于设定值,则没有检测到新目标,将新目标的框放入集合Bt中。
区域颜色直方图匹配。采用相关的方法来比较两个直方图的相似性,其中相关对比的公式如下:
其中I、J代表颜色空间的通道,N代表直方图中直条的数量。将目标框与跟踪框进行直方图对比,若目标框与所有跟踪框的相似度都小于阈值,则认为该目标框发现了新目标,将该目标框放入集合Bt;若与某个跟踪框的相似度大于阈值,则认为该目标框没有检测到新目标,舍弃该目标框。相似度阈值范围为0.75-0.9,在本实施例中,阈值设为0.8。
S53,剔除重复目标框,在集合Bt中,计算每个目标框与其他目标框交集部分的面积,若交集的面积占其中某个目标框面积70%以上,同时该两个目标框检测到的目标类型一致,则判定出现重复目标框,将面积大的目标框移出集合Bt。
由于水面上存在光照变换、波浪、雾汽等复杂的气候条件,导致同一目标在前后几帧可能会不同的样貌或姿态。经过步骤S52处理后,会出现同一目标上存在多个矩形框的情况,因此需要剔除重复的目标矩形框。在集合Bt中,计算每个目标矩形框与其他矩形框交集部分的面积。若交集的面积占其中某个矩形框面积70%以上,同时两个矩形框检测到的目标类型一致,则判定出现重复框,将面积大的框移出集合Bt。
S6,目标跟踪,跟踪集合Bt中的目标框。
步骤S6具体包括:
S61,构造循环偏移矩阵,以集合Bt中跟踪框作为跟踪目标的起始位置,以该起始位置为中心,选择面积大于起始位置面积的矩形区域作为样本图像,将该样本图像进行上下左右的循环偏移,得到若干训练样本,所有训练样本构成样本矩阵,该样本矩形变成循环矩阵。本实施例中,样本图像面积为起始位置面积的1.5倍。
S62,训练滤波器参数,得到滤波器W=[w(1) w(2) w(3)……w(n)]T使得:
其中λ是为了防止过拟合设定的正则化项,求解可得W=(XHX+λI)-1XHy,X和XH都是循环矩阵,进一步求出其中W*表示W的共轭,⊙代表对应元素相乘;
S63,搜寻目标,在下一帧图片上,按照步骤S61找到若干样本图像,利用滤波器W,对每一个样本图像进行回归,将回归值最高的图像设为目标位置,完成目标跟踪,将新的目标位置放入新的集合Bt中。
S7,连续跟踪m帧,然后重复步骤2至步骤7,直到最后一帧图片。为了保证结果的平滑并且及时检测到新目标,m的取值范围在30-50之间,在实施例中,m等于40。
如附图5所示,为本发明检测跟踪的效果序列示意图,应用上述方法,得到稳定的目标位置。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。