基于YOLOv3算法的船舶双目视觉检测与定位方法
2021-04-30张啸尘赵建森王胜正张敏程成
张啸尘 赵建森 王胜正 张敏 程成
摘要:
为快速、准确地检测船舶目标,提出一种基于YOLOv3算法的船舶双目视觉检测与定位方法。
在特征学习时针对样本中不同船舶长宽比例,重新聚类样本中心锚点框,增强对船舶检测的准确性;利用SURF算法进行特征匹配,并引入双目测距算法,实现目标的测距与定位。实验结果表明,该方法在每秒传输图片30帧的情况下,平均检测精度达到94%,在1 n mile内的目标平均定位误差为11 m左右,与现有检测算法相比,具有更好的实时性、准确性。该方法对智能船舶视觉感知信息与雷达、AIS信息的融合,以及避碰辅助决策具有非常重要的作用。
关键词:
智能船舶; 目标检测; 双目测距; 辅助决策
中图分类号: U675.79; TP242.6+2
文献标志码: A
收稿日期: 2020-04-09
修回日期: 2020-08-10
基金项目:
国家自然科学基金(51709167,61701299);国家重点研发计划(2019YFB1600605);上海市科技创新行动计划社会发展领域项目(18DZ1206101);大学生创新创业项目(S20190105, S20190117)
作者简介:
张啸尘(1995—),男,江苏苏州人,硕士研究生,研究方向为船舶智能导航、计算机视觉,(E-mail)247101485@qq.com;
赵建森(1983—),男,黑龙江牡丹江人,副教授,博士,研究方向为智能通信、微波和天线,(E-mail)7230981@163.com;
王胜正(1976—),男,湖南双峰人,教授,博士,研究方向为航海仿真、智能船舶导航、大数据、机器学习,(E-mail)szwang@shmtu.edu.cn
Binocular vision detection and positioning method for
ships based on YOLOv3 algorithm
ZHANG Xiaochen, ZHAO Jiansen, WANG Shengzheng,
ZHANG Min, CHENG Cheng
(Merchant Marine College, Shanghai Maritime University, Shanghai 201306, China)
Abstract:
In order to detect target ships quickly and accurately, a binocular vision detection and positioning method for ships based on YOLOv3 algorithm is proposed. During feature learning, the center anchor frames of the samples are re-clustered for the different ship length-width ratios in the samples to enhance the accuracy of ship detection; the feature matching is carried out by the SURF algorithm, and the binocular ranging algorithm is introduced to achieve target ranging and positioning. The experimental results show that, under the condition of 30 frames per second, the average detection accuracy of this method is 94%, and the average positioning error of the targets within 1 n mile is about 11 m. Compared with the existing detection algorithms, it is of better real-time performance and accuracy. It plays a very important role in the information fusion from the visual perception, radars and AIS, as well as collision avoidance auxiliary decision for intelligent ships.
Key words:
intelligent ship; target detection; binocular ranging; auxiliary decision
0 引 言
中国船级社2015年发布的《智能船舶规范》中提到,智能船舶需利用传感器、通信、互联网等技术手段自主感知和分析船舶周边环境的信息和数据,以保证自身安全、自主航行。由此可见,信息感知技术在智能船舶领域是一项非常关键的技术。目前比较成熟的两种感知手段是船舶自动识别系统(automatic identification system,AIS)和雷達。虽然这两种感知手段使用范围较广,但是AIS信息存在主观错误和延迟,雷达存在检测盲区,因此多信息源信息融合成为港口监测和智能船舶自主航行迫切需求的新技术。大部分沿海、内陆水域以及智能化船舶上已经配备视频监控装置,但是船舶位置和航行态势仍需依靠人工判断。随着计算机视觉智能感知技术的发展,船舶目标智能识别和跟踪成为该领域新的研究热点。
1.1.4 输出层
对特征融合层输出的3个尺度特征图进行分类和位置回归。本文将原始图片缩放到416×416的大小,然后根据特征图大小分别划分为13×13、26×26、52×52的等大的单元格,每个单元格用3个锚点框预测3个边框。YOLOv3网络在3个特征图中分别通过(4+1+c)k个大小为c的卷积核进行卷积预测,k为预设边框的数量
(本文k取3),c为预测目标的类别数量(本文c取2),其中4k个参数负责预测目标边框的偏移量,k个参数负责预测目标边框内包含目标的概率,ck个参数负责预测这k个预设边框对应c个目标类别的概率,最后进行融合得到结果。
1.2 损失函数
用第i个网格的第j个锚点框进行预测时,与输出层计算对象对应,需要对这个锚点框产生的边框进行中心坐标误差、宽高误差、置信度误差和分类误差的计算。因此,本文检测方法损失函数为
Lij=λPij+Cij+Dij(1)
式中:Lij为第i个网格的第j个锚点框预测的总损失;Pij为第i个网格的第j个锚点框预测得到的边框坐标损失;λ为边框坐标损失的权值,由于定位误差对整个模型的影响较大,该值一般较大,本文λ取值为5;Cij为第i个网格的第j个锚点框预测置信度损失;Dij为第i个网格的第j个锚点框预测分类损失。
2 船舶定位原理
2.1 双目视觉原理
图像处理、立体视觉经常涉及世界坐标系、相机坐标系、像素坐标系和图像坐标系。利用坐标系相互转换实现测距的双目视觉原理见图3。
图3中:Ow-XwYwZw为世界坐标系,描述相机在世界中的位置;Ol-XlYlZl和Or-XrYrZr分别为左、右相机的相机坐标系,坐标原点为相机的光心;ol-ulvl和or-urvr分别为左、右相机的像素坐标系,坐标原点位于图像左上角;o1-x1y1和o2-x2y2分
别为左、右相机的图像坐标系,坐标原点位于图像中心;
P(Xw,Yw,Zw)为世界坐标系中的一
点,即现实中的目标点;P1、P2为点P分别在左、右相机中的像点,这两个像点在图像坐标系中的坐标分别为(x1,y1)、(x2,y2),在像素坐标系中的坐标分别为(u1,v1)、(u2,v2);B为左、右相机基线之间的距离;fx和fy分别为左、右相机的焦距。
像素坐标系与世界坐标系的转换关系如下:
式中:Zc为点P在相机坐标系中Z方向的坐标值,一般地,假设世界坐标系与相机坐标系重合,即Zc=Zw;(u,v)为点P在像素坐标系中的坐标;K为相机内参数矩阵;R为世界坐标系到相机坐标系的旋转矩阵;T为世界坐标系到相机坐标系的平移矩阵。
当K、R、T已知时,由点在世界坐标系中的坐标很容易求得其在像素坐标系中的坐标,而从像素坐标系中的坐标求世界坐标系中的坐标存在Zc未知的情况,因此通过引入双目视觉消去Zc的影响。
一般地,假设世界坐标系与左相机的相机坐标系重合,即Zl=Zw,右相机与左相机的姿态相同,仅在世界坐标系Xw軸正方向移动距离B,则左、右相机坐标投影关系如下:
式中:Kl、Kr
分别为左、右相机内参数矩阵;
Rl、Rr
分别为世界坐标系到左、右相机的相机坐标系的旋转矩阵;
Tl、Tr
分别为世界坐标系到左、右相机的相机坐标系的平移矩阵。
式中的u1-u2就是通常所说的视差。
2.2 特征点检测与匹配算法
尺度不变特征变换(scale-invariant feature transform, SIFT)算法和SURF算法是当今主流的匹配算法,这两种算法的实现步骤是一致的,见图4。这两种算法仅在尺度空间、特征点检测、方向和特征描述子的选择上存在一定差异。
在尺度空间建立方面,SIFT算法使用高斯差分(difference of Gaussian, DOG)与不同尺度的图片卷积建立空间,而SURF算法使用不同尺度的箱式过滤器(box filters)与原图片卷积。在特征点检测方面,SIFT算法先进行非极大抑制,再去除低对比度的点,最后通过Hessian矩阵去除边缘的点;而SURF算法相反,先利用Hessian矩阵确定候选点,然后进行非极大抑制。在方向方面,SIFT算法在正方形区域内统计梯度幅值的直方图,找最大值对应的方向;而SURF算法在圆形区域内计算各个扇形范围内x、y方向的haar小波响应,找模最大的扇形方向。在特征描述子方面,SIFT算法将16×16的采样点划分为4×4的区域,统计成直方图,一共128维;SURF算法将20×20的区域划分为4×4的区域,计算haar小波响应,一共64维。
SIFT算法与SURF算法在性能上存在差异:SIFT算法在尺度和旋转变换的情况下匹配效果更好;SURF算法在亮度变化的情况下匹配效果更好,在模糊方面也优于SIFT算法,运算速度是SIFT算法的3倍。
3 船舶检测与定位
3.1 船舶检测优化
YOLOv3网络基于锚点框预测边框,合适的锚点框能让预测框与真实的边框更加接近。YOLOv3网络原始的锚点框是基于VOC和COCO数据集进行聚类得到的,数量为9。结合船舶所在的空间环境和本文拍摄场景,本文采用K均值聚类的方法对训练集的边框进行聚类,得到更加合适的锚点框,使模型快速收敛并对船舶进行更好的检测,聚类方法中距离公式如下:
D=1-b∩cb∪c(7)
其中:b为标注框;c为聚类中心框;D为距离。标注框与聚类中心框的形状越相近,交并比越大,D越小,因此通过计算能获取最小距离对应的最佳锚点框。
本文在所有船舶样本(即所有的标注框b)中随机指定9个聚类中心(即聚类中心框c
;考虑不同类型船舶的长宽比有明显差别,每种船舶至少选取一个聚类中心)形成9个集群
;用式(7)计算每个样本与9个聚类中心的距离D,将样本划分到与其距离最小的集群中,并将每个聚类中心更新为当前集群的均值;重复以上步骤直至聚类中心变化很小,得到9个最佳聚类中心。
3.2 船舶定位优化
视差值直接影响测距效果,但在背景复杂,船舶在视图中占比小、特征不明显的情况下,用传统的BM算法、SGBM算法都不能得到有效的视差图。SIFT算法通常在搜索正确的特征时更加准确,但更加耗时。SURF算法特征描述子大部分基于强度差值,计算更快捷。考虑船舶定位所需的实时性,本
文先利用SURF算法对左、右视图进行特征点匹配,然后在此基础上使用YOLOv3网络检测到的船舶边框对特征点对进行约束筛选,从而快速、准确地获得有效视差并进行距离计算和定位。测距定位流程见图5。
3.2.1 SURF算法匹配特征点
首先使用SURF算法对输入的左、右相机图像进行特征点提取和匹配,见图6。
从图6可见,存在大量的错误匹配点和无用匹配点(大楼匹配点)。因此,本文提出特征点对匹配阈值条件:
式中:v1和vr分别为特征点对在左、右视图中的纵坐标值(由于两张视图在SURF算法匹配前进行过立体矫正,有效匹配的特征点对的纵坐标值应基本相同);N为在左视图中检测到的目标边框数;M为在右视图中检测到的目标边框数;用I1j判断左视图特征点是否落在左视图第j个边框中,是则为1,否则为0;用Irk判断右视图特征点是否落在右视图第k个边框中,是则为1,否则为0;T为阈值,可根据立体矫正效果设置,本文将其设置为10像素(本文拍摄的图片的分辨率为960×480)。
3.2.2 特征点对条件约束
在图6的基础上,用式(8)进行条件约束,见图7。在获得同一目标的多组特征点对和多个视差值后,对视差值进行均值计算,提取最优视差值,最后通过式(5)和(6)计算船舶位置。
4 实验与结果分析
4.1 双目摄像机船舶视频源
上海港国际客运中心码头东起高阳路,西至虹口港,北沿东大名路,南到黄浦江,岸线全长近1 200 m,是上海市水运重大交通枢纽之一,可同时停泊3艘7万吨级的豪华邮轮。因此,对上海港国际客运中心码头船舶进行检测与定位具有一定的实际意义。
本研究共使用15 000帧在上海港国际客运中心码头拍摄的图片作为初始数据集,利用旋转变换、加入高斯噪声等数据增强的方式扩大图像数据,增强YOLO模型神经网络的泛化能力。随后将扩大的图像数据的分辨率校正为416×416大小,并按
7∶3的比例分为训练集和测试集,其中训练集包含21 000帧图片,测试集包含9 000帧图片。
本研究采用Windows 10操作系统,16 GB RAM,CPU I7-9750H主频为2.6 GHz,GPU为RTX 2070,实验平台为Visual Studio 2017及Python 3.6.5。
4.2 实验结果分析
为验证检测的有效性,对数据集进行训练,训练200次后,平均损失函数值下降到1以下并趋于稳定,表明该算法在训练过程中具有很好的收敛性。
通过精确率-召回率曲线评估本文检测方法的性能,对100帧图片进行评估。假设测试图中实际有船舶A艘,通过本文检测方法检测到的船舶有B艘,其中检测到的的确是船舶的有C艘,则精确率P=C/B,召回率R=C/A。
根据图8可知,在精确率为95%的条件下召回率能达到85%,而当召回率达到92%时精确率依然可以达到85%。
本文采用SURF算法得到特征点对,结合多目标检测得到的船舶边框處理特征点对,确定船舶最佳视差,通过计算得到船舶位置信息,效果见图9。
为实现测距定位效果可视化,对测试图中的船舶位置进行二维平面还原。多帧图片的二维还原图见图10,其中:坐标为(0,0)的点与图3中的Ol重合;Z轴与图3中Zl轴重合;X轴与图3中Xl轴重合。从图10可知,本文算法预测位置与激光测距仪测量位置基本重合。
4.3 性能评估
4.3.1 多目标检测性能评估
本文在YOLOv3网络训练过程中采用K均值聚类的方法对训练集的边框重新进行聚类,得到更加合适的锚点框。分别对原锚点框和新锚点框进行训练得到两个模型,再用这两个模型对500帧图片进行检测并计算精度。结果表明,原锚点框训练得到的模型的检测精度为89%,新锚点框训练得到的模型的检测精度为94%。
4.3.2 测距性能评估
用(XV,ZV)和(XL,ZL)分别表示采用本文方法测得的船舶位置坐标和采用激光测距仪测得的船舶位置坐标,则单一船舶定位误差可表示为
E=(XV-XL)2+(ZV-ZL)2(9)
本文对500帧图片上的3 000艘船进行定位误差计算,部分船坐标值及其定位误差值见表1。最后求得最大误差为16 m,平均误差为11 m。
考虑距离远近对定位误差的影响,每100 m计算一次平均误差值,目标距离与本文方法定位误差关系曲线见图11。由图11可见,定位误差随距离增大而增大。
大量实验表明,本文方法能实现对播放速度为30帧/s的视频中目标的高精度自动检测和10次/s的目标位置信息更新。在现今有人值守的船端,船员能够通过视觉传感器实时获悉周边有无他船、他船种类和他船位置信息。
5 结束语
本文提出的基于YOLOv3算法的船舶检测与定位方法对播放速度为30帧/s的视频中目标的平均检测精度达94%,目标在1 n mile内的平均定位误差为11 m左右。本文方法对智能船舶视觉感知信息与雷达、船舶自动识别系统(AIS)信息的融合,以及避碰辅助决策具有非常重要的作用。本研究仅利用激光测距仪对定位方法进行评估,且并未考虑船舶大小和船舶定位点(定位点为船首或桅杆)。后续将测算船舶大小,确定船舶定位点,并且融合雷达、AIS等海上交通数据,对定位方法进行进一步评估。
参考文献:
[1]蒋晶晶, 安博文. 低空航拍视频中基于Vibe算法的船舶检测方法[J]. 微型机与应用, 2017, 36(10): 44-47. DOI: 10.19358/j.issn.1674-7720.2017.10.013.
[2]李双双. 内河视频监控中运动船舶检测算法研究[D]. 大连: 大连海事大学, 2018.
[3]GIRSHICKR, DONAHUE J, DARRELL T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2014: 580-587. DOI: 10.1109/CVPR.2014.81.
[4]GIRSHICKR. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision. IEEE, 2015: 1440-1448. DOI: 10.1109/ICCV.2015.169.
[5]RENShaoqing, HE Kaiming, GIRSHICK R,et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6): 1137-1149. DOI: 10.1109/TPAMI.2016.2577031.
[6]LIUWei, ANGUELOV D, ERHAN D,et al. SSD: single shot multi-box detector[C]//European Conference on Computer Vision 2016, Lecture Notes in Computer Science. Springer, 2016, 9905: 21-37. DOI: 10.1007/978-3-319-46448-0_2 vol 9905.
[7]SHAOZhenfeng, WANG Linggang, WANG Zhongyuan,et al. Saliency-aware convolution neural network for ship detection in surveillance video[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2020, 30(3): 781-794. DOI: 10.1109/TCSVT.2019.2897980.
[8]SHAOZhenfeng, WU Wenjing, WANG Zhongyuan,et al. SeaShips: a large-scale precisely annotated dataset for ship detection[J]. IEEE Transactions on Multimedia, 2018, 20(10): 2593-2604. DOI: 10.1109/TMM.2018.2865686.
[9]HUANGZhijian, SUI Bowen, WEN Jiayi,et al. An intelligent ship image/video detection and classification method with improved regressive deep convolutional neural network[J]. Complexity, 2020(1): 1-11. DOI: 10.1155/2020/1520872.
[10]刘博, 王胜正, 赵建森, 等. 基于Darknet网络和YOLOv3算法的船舶跟踪识别[J]. 计算机应用, 2019, 39(6): 1663-1668. DOI: 10.11772/j.issn.1001-9081.2018102190.
[11]REDMONJ, DIVVALA S, GIRSHICK R,et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016: 779-788. DOI: 10.1109/CVPR.2016.91.
[12]張帆, 王欣, 孙增玉. 基于双目视觉+激光测距融合的空间目标位姿测量方法研究[C]//第二届中国空天安全会议. 中国指挥与控制学会空天安全平行系统专业委员会, 2017: 109-116.
[13]YANGM S, SINAGA K P. A feature-reduction multi-viewK-means clustering algorithm[J]. IEEE Access, 2019, 7: 114472-114486. DOI: 10.1109/ACCESS.2019.2934179.
[14]CHENWei, CAO Qian. Feature points extraction and matching based on improved SURF algorithm[C]//2018 IEEE International Conference on Mechatronics and Automation (ICMA). IEEE, 2018: 1194-1198. DOI: 10.1109/ICMA.2018.8484336.
[15]FANGQiang, ZHUO Li, HU Xiaochen,et al. Fine-grained vehicle recognition using hierarchical fine-tuning strategy for urban surveillance videos[C]//2016 International Conference on Progress in Informatics and Computing (PIC). IEEE, 2016: 233-236. DOI: 10.1109/PIC.2016.7949501.
(编辑 贾裙平)