周 怡,祝啟瑞,谢海成,羊箭锋
(苏州大学电子信息学院,江苏 苏州 215006)
随着交通科技的发展,水路航运在交通运输方式中起到了越来越重要的作用,不断推动着经济全球化的发展。船舶是水路运输过程的重要载体,因此在船舶之间、船舶与岸台如何进行高效、准确的身份识别,成为保障航道安全的重点问题[1]。
船舶铭牌是船舶最重要的身份识别信息之一,铭牌上的船名标识是由国家统一规定的船舶身份信息。目前已经有一些文献通过计算机视觉等相关技术对船舶铭牌进行识别与监管。金雪丹[2]将船舶监管系统与计算机视觉相结合,用来实现岸台和目标船舶之间的识别与通信,并提出运用图像处理相关技术和神经网络对船舶进行分类和识别。古辉[3]等基于双线性空间变换技术与弧度插值等技术提出了铭牌字符矫正方法。Zhu[4]等提出船舶非标铭牌的定制化字符识别。
加强对船舶身份的管理,亟需在各个航道设立实时智能视频监控系统,通过图像处理以及计算机视觉等相关技术对船舶铭牌进行提取与识别。设立的视频监控系统需要实时、准确地对铭牌图像序列进行目标检测、分类和定位。与目前流行的车牌检测算法不同的是,船舶铭牌由于较多内外因素的影响,其检测更为复杂。例如铭牌字体印刷方式多变、印刷位置差异巨大、字符倾斜、外部光照、悬挂物遮挡与航道环境复杂、铭牌锈蚀损伤等。因此,必须结合相应的目标检测算法与有限库匹配等后续处理,才能达到准确、高效识别非标铭牌的要求。
传统的目标检测方法有三种:光流法[5]、背景建模法[6]和帧间差分法[7]。光流法是基于灰度图中像素的运动矢量来提取目标并跟踪的,光流法的检测精度较高,但抗噪性能差,且所需硬件成本较高。帧间差分法对相邻两帧图像之间的差值进行计算,对满足设定阈值的目标进行提取,可以实时准确地对区域内运动目标进行检测,但帧间差分法对速度较慢的运动目标检测较差,且抗噪性能不高,很难长时间对运动目标进行检测。背景建模法通过计算每一帧与背景模板之间的差值提取满足阈值的运动区域,其优点是可以适应复杂多变的环境状况,能够完整地检测出运动目标。但由于船舶航行时,会产生波浪、阴影、光强等多方因素影响,背景建模法会出现误检的现象。
为了更好地避免外界因素对检测的影响,本文采用基于卷积神经网络的目标检测算法。卷积神经网络(convolutional neural networks,CNN)是一种前馈神经网络,其人工神经元能够相应覆盖范围内的周围单元,使得图像可以作为网络的直接输入,无需传统目标检测算法中复杂的特征提取过程以及数据重建过程[8]。相对于传统的检测方法,基于卷积神经网络的目标检测可以更好的解决外部因素的影响,更适合船舶非标铭牌的提取与识别。
卷积神经网络主要的组成部分有卷积层、池化层以及全连接层。卷积层和上一层的局部接受域连接,进行卷积运算提取区域的特征。池化层将上一层传递的数据进行采样或聚合,通过采样最大值或平均值等将该区域数据的复杂度大大降低,同时保留了数据的关键信息。全连接层起到分类器的作用,能够将学习到的“分布式特征表示”映射到样本标记空间。
基于卷积神经网络的目标检测算法大致可以分为两大类,一类是基于区域提名的目标检测,例如R-CNN、Fast R-CNN[9]等,另一类是端到端的检测,例如YOLO[10](You Only Look Once)、SSD[11](single shot multibox detector)等。由于在船舶非标铭牌识别系统中,需要同时满足实时性和准确性并存的要求,本文提出了基于卷积神经网络的YOLO检测方法,能够快速精确的识别出船舶非标铭牌。
本文使用的YOLOv3[12]基本框架结构如图1所示,采用了DarkNet-53的网络结构,主要由卷积层、批标准化层连接而成,其采用LeakyRelu激活函数。同时借鉴了残差神经网络(Residual Network)的做法,在一些层与层之间设置了快捷链路。
图1 YOLOv3框架Fig.1 YOLOv3 framework
DarkNet-53网络的输入为256×256×3,其中包含多个不同的残差单元,每一个残差单元由两个卷积层和一个快捷链路组成。整个YOLOv3结构中通过改变卷积核的相应步长来进行张量的尺寸变换,由此替代掉了原先的池化层和全连接层。YOLOv3借鉴Faster R-CNN中的锚箱(anchor)机制,通过维度聚类的方法聚类出9种尺寸的先验框,同时直接预测出先验框的相对位置。对边界框(bounding box)进行预测时采用了逻辑回归方式,用于对锚箱包围的部分进行目标性评分,预测该位置为目标的可能性有多大,以此去掉不必要的锚箱,减少计算量。YOLOv3将输入图像映射到3个不同尺度的输出张量,用以代表图像中各个位置存在某种目标的概率。
在YOLOv3的目标检测任务中,需要确定几个关键信息:坐标(x,y),长宽(w,h),分类(class),置信度(confidence),因此损失函数由各自的特点分别确定并相加得到,其表达式为:
(truthconf-predictconf)2
(1)
式中,主要分为三部分,坐标损失函数、置信度损失函数以及类损失函数。λobj代表栅格是否存在物体,当栅格内存在物体时λobj为1,反之为0。由于YOLOv3的检测在三个尺度上进行,有13×13、26×26、52×52,每个b-box负责对三个anchor box进行回归操作,因此最终输出的尺寸为1×(3×(13×13+26×26+52×52))×(5+k)=1×10647×(5+k),其中k代表类的数量。
坐标损失是希望预测的边界框和先验框之间的差距能够尽可能与真实框和先验框的差距接近,使得预测的边界框能够最大的接近真实框,置信度损失与类损失则是希望预测的目标与类别更趋于准确。通过网络训练的过程,损失函数会计算预测值和真实值间的误差,进一步调整参数,使得预测模型性能更好。
YOLO目标检测是一种端对端的算法。采用架设在鹤溪大桥下京杭运河航段的两台网络高清摄像机大量采集样本图片。两台摄像机架设方式如图2所示。
其中1号为大焦距摄像机,用来采集船舶非标铭牌的细节更优、距离更近的图片用以训练字符;2号为小焦距摄像机,用来拍摄范围更大的航道信息,同时对船舶物体进行训练。分别提取分辨率为1280×720的10000张图片制作训练集和验证集、提取1000张图片制作测试集,通过大样本图片的采集有效解决了训练集不足的问题。样本包括了不同光照环境下、不同时间点的图片,使得最后训练出的模型具有较好的性能。YOLO目标检测的样本需要手动进行标注,为了避免光照、背景对船舶铭牌的影响,对船舶铭牌的样本图片采取二值化处理、中值滤波后进行标注训练的方式,处理后的铭牌如图3所示,每批训练图片的数量为10,迭代次数为1000。
图2 摄像机架设示意图Fig.2 Schematic diagram of camera erection
图3 样本处理示例Fig.3 Sample processing example
本文选取在架设在鹤溪大桥的两组摄像机进行船舶视频监控,用以进行算法的验证分析。仿真实验的在PC端完成,主要配置为:Inter(R)i5-4590 CPU处理器,主频为3.30 GHz,GPU(NVIDIA GeForce GTX 1070)。
实验中,使用小焦距摄像机的图像进行实际测试。将包含有船舶目标的航道图片输入网络后,首先对船舶进行识别与定位,将船舶所处的预测框裁剪出图片。由于船舶图像为长方形,网络的输入为正方形。且相对于高度来说,船舶的长度太大,直接对图片进行尺寸的变换会压缩图片上的铭牌信息,因此将船舶图片按宽度等比分为三段分别输入网络中,识别定位出铭牌,并裁剪出铭牌的预测框包含图像。最后将铭牌再次输入,能够识别出船舶身份信息。船舶非标铭牌的检测流程如图4所示。
图4 非标铭牌检测流程示例Fig.4 Example of non-standard nameplate inspection process
通过测试结果,得到在测试集上YOLOv3目标检测的查准率、查全率、每秒识别的帧数,相对于CNN和Faster R-CNN实验结果如表1所示。
表1 测试集在YOLOv3上的实验结果Tab.1 Experimental results of the test set on YOLOv3
观察测试集在YOLOv3上的表现,同时与其他两种方法比对发现,尽管YOLOv3的每秒识别帧数fps远大于其余两种方法,基本满足实时性的要求,但是直接将YOLO用于非标铭牌识别会存在一些漏检、错检的现象,这是因为船牌为非标铭牌,本身会存在铭牌锈蚀、障碍物遮挡等导致字符模糊不清的因素,再加上光照不均等外界因素,查准率和查全率较低。基于以上问题,本文在检测之后采取设置关联因子的方法,在有限船名库中进行匹配。
交通运输部发布的《船舶名称管理办法》对船舶铭牌的字符组成及数量做出了规定,其中第四条规定“船舶中文名称由2个或是两个以上的规范汉字后加阿拉伯数字构成”。针对铭牌为中文加数字这一特点,且船名中文部分组成为有限库,随机选取鹤溪大桥航道上不同时段的10000艘货船进行中文船名库的制作,制作出的中文船名库中出现次数前15高的船名如图5所示。
图5 中文船名库出现次数前15高的船名Fig.5 The top 15 ship names in the Chinese ship name database
依据管理规定中对船舶铭牌的中文部分制定的要求,再加上统计得到的中文船名库,本文创新型的以δ因子作为匹配有限库的参数,用来调节检测非标铭牌与船名库的关联程度。可以得到非标铭牌识别系统的匹配公式为:
(2)
式中,R为检测到的不完整非标铭牌中的单个字符序列;ω为中文船名库中的统计字符所占比重;N为检测到的铭牌字数。将检测之后的船名在有限中文库中寻找存在的相同字符,如果发现缺失字符,则依据船名出现次数占比,根据模糊匹配的规则自动找出可能性最高的船名。
经测试,通过有限中文库模糊匹配后的非标铭牌识别系统,能够保证较高的查准率和查全率,以及较快的检测速度,如表2所示。这满足了非标铭牌识别的准确性和实时性的要求。
表2 设置有限中文库匹配后的实验结果Tab.2 Experimental results after setting up limited Chinese library matching
设计非标铭牌有限中文库匹配机制,通过匹配最大关联因子解决铭牌无法辨别的问题,在很大程度上提高了系统的准确率。同时,每隔固定时间对中文船名库进行更新,减少新增名牌带来的误差,进一步提高了系统的稳定性。
本文设计了一种基于YOLOv3目标检测的非标船牌识别系统,通过视频监控的方式实时准确对监管航道船舶进行船号的识别与获取,并在YOLOv3目标检测的基础上提出了有限船名库模糊匹配的思想。
本文对主要的目标检测技术进行了详细的描述,针对船舶非标铭牌识别的可行性与难点进行了分析介绍,提出船名有限中文库模糊匹配方法,完成了对船舶非标铭牌较高查准率、查全率的识别,满足了视频监测准确性、实时性的要求。在后续的工作中,将不断补充并完善现有船名中文库,将系统更好地应用于广泛场景中。