甘浪雄 吴金茹 徐海祥 冯 辉 张 磊 束亚清 张东方
(武汉理工大学航运学院1) 武汉 430063) (内河航运技术湖北省重点实验室2) 武汉 430063) (武汉理工大学船海与能源动力工程学院3) 武汉 430063) (苏州市港航事业发展中心4) 苏州 215000)
水路运输污染小、运量大而且耗能低,日益增长的行船数量也给管理部门造成了监管负担,为维系水路运输业的效率与安全,构建智能化航运系统迫在眉睫.随着计算机视觉技术、深度学习的发展,陆路交通通过将车牌识别技术应用到综合道路监控系统中,建立起较为成熟的智能交通管理系统.船舶名称作为船舶能够合法航行的重要身份标识,具有唯一性和必需性,从采集的船舶图像中检测并识别出船名信息,对于打造智能化内河航运系统具有重要意义,而快速、准确地定位船名是实现船名识别的首要任务.
基于深度学习的文本检测分为两类:第一类是通过对边界框执行回归操作,采用常用目标检测的处理流程,派生出基于回归的文本检测方法[1].在Faster R-CNN[2](faster region with convolutional neural network feature)、SDD(single shot multibox detector)和YOLOv3(you only look once v3)等经典目标检测的网络框架上,针对文本特有的特点提出改进.Liao等[3]针对文本具有较大横纵比的特点,在SSD算法的基础上修改了锚框比例并采用不规则卷积核,提出了TextBoxes算法来检测不同长宽比大小的文本,针对文本多方向性的特点,又提出TextBoxes++算法采用定向矩形或四边形边界框替换矩形边界框来达到多方向文本检测的目的.Zhong等[4]在Faster R-CNN的基础上,提出了一种用于文本检测的统一框架,由具有文本特征先验边界框的Inception-RPN(inception region proposal network)组成,扩大了文本与一般目标之间的差距.这些方法在检测水平文本方面较为有效,但难以处理密集文本和任意形状的文本.第二类是基于文本区域分割的方法,主要受全卷积神经网络的启发,对每个像素进行预测得到文本区域分割图,采用后处理得到文本边界框.Shelhamer等[5]提出了级联卷积文本网络(cascaded convolutional text network,CCTN),实现从粗到细的文本定位.该方法利用低分辨率高层特征粗略区分图像中的文本和背景,再将检测的文本区域通过精细检测网络预测文本区域和文本中心线区域,最终得到文本框,对不同尺度的文本检测有较好的鲁棒性.Wang等[6]提出了一种渐进式扩展算法,用于解决密集文本之间难以准确分割的问题.Liao等[7]提出DBNet算法,将可微分二值化操作应用于分割网络中,采用自适应的阈值,简化了后处理并提高了文本检测的效果,且具有较强的鲁棒性.这类方法对多方向性文本有较好的检测效果,但存在后处理复杂度高、耗时长以及模型普遍缺少特征级的精细化导致模型不能被充分利用的问题[8].
针对水面船舶船名存在位置多变、分辨率小以及倾斜等问题,文中在DBNet算法的基础上,提出基于注意力机制与特征增强的船名检测方法.通过在骨干网络引入注意力机制,实现跨通道之间的信息交互并加强船名特征信息,采用多尺度特征增强与融合模块进一步提升特征的多样性及鲁棒性,同时使用新的损失函数,在构建的船名数据集上进行多组对比分析实验进行验证.
针对水面船舶图像中的船名检测,以基于分割的文本检测网络DBNet为基准,设计了一种基于注意力机制与特征增强的船名检测方法,其网络结构见图1.
图1 基于注意力机制与特征增强的船名检测网络结构
在基于深度神经网络的目标检测任务中,采取引入注意力机制的方法来提升网络对目标的聚焦,防止有用特征丢失从而提升网络的效果.从本质上来看,注意力机制与人类对外界事物的观察机制相似,可以帮助模型对输入的每个部分赋予不同的权重,抽取出更加关键的信息,使模型做出更准确的判断.
ECANet[9]中提出了一种高效通道注意力模块,相较于典型的SENet[10]中提出的通道注意力(squeeze-and-excitation,SE),ECA模块具有良好的跨通道信息获取的能力,能够实现不降维的局部跨信道交互,在降低模型复杂度的同时还能保持性能,其结构见图2.具体计算步骤如下:①将输入特征图进行全局平均池化操作,对整个特征图求平均值,得到1×1×C大小的特征图;②采用自适应卷积核进行一维卷积操作,并经过sigmoid激活函数得到各个通道的权重w;③将权重与原始输入的特征图对应元素相乘,得到最终输出特征图.
图2 高效通道注意力(ECA)模块网络结构
将高效通道注意力模块引入到船名检测的特征提取模块中.将轻量级的ResNet18作为模型的骨干网络,该网络是目前应用最广泛的深度卷积特征提取网络之一,通过引入残差学习来解决普通网络中梯度消失和梯度爆炸的问题,提取更深层次的特征[11-12].将ECA模块添加到骨干网络提取的有效特征层上,用于增强图像中的文本特征.输入图像通过骨干网络分别提取到1/4、1/8、1/16、1/32大小的特征图,每个特征图再经过高效通道注意力模块得到c2、c3、c4和c5四个新的特征图.
FPEM与特征金字塔(feature pyramid network,FPN)结构类似,通过融合低级和高级信息来增强不同尺度的特征,是一个可以级联的结构,能够有效地增强特征.此外,相较于FPN,FPEM还具有以下两个优点:FPEM是一个可级联的模块,随着级联数的增加,不同尺度的特征图能够融合得更充分,并且能够增大感受野;FPEM是由可分离的卷积构建,计算成本低.该模块主要由up-scale增强和down-scale增强两个阶段组成,将骨干网络输出的特征金字塔通过up-scale从上到下融合,再通过down-scale从下往上融合,不断增强各个尺度的特征信息.
在up-scale增强阶段,以c4、c5为例,对c5进行两倍的线性上采样,再与c4进行逐元素相加,最后通过可分离卷积操作得到新的特征图c4;在dow-scale增强阶段,以c2,c3为例,对c3进行两倍的线性上采样,再与c2进行逐元素相加,同样通过可分离卷积操作,但此时的滑动步长为2,从而得到与c3大小相同的新特征图p3.逐层进行以上操作,最终得到增强后的特征图p2、p3、p4、p5.
FFM是用于融合不同深度的FPEM的特征,其结构见图3.该模块对同一尺度的特征图逐个相加,得到最终的多尺度特征后,对不同尺度的特征图进行上采样操作使得特征图具有相同的大小,级联得到模型的最终输出特征图F.相较于直接将不同尺度的特征图上采样再全部级联的方法,FFM能够有效地减少特征通道数,从而加快预测速度.
图3 特征融合模块
对特征图F进行一次卷积和两次批量标准化与转置卷积操作,扩大到和原图一样大,再经过sigmoid层得到0-1输出概率图P.同样对特征图F先进行卷积、批量标准化操作并经过ReLU激活函数,再进行两次上采样操作,期间进行一次批量标准化与ReLU,经过sigmoid层后输出阈值图T.通过建立概率图和阈值图之间的关系,生成近似二值图,其表达式为
(1)
式中:Bi,j为近似二值图上(i,j)处的值;Pi,j为概率图上(i,j)处的值;Ti,j为自适应阈值图在(i,j)处的值;k为放大系数.
该近似二值化函数与标准二值化函数相似,但具有可微性,所以可以在训练阶段随分割网络进行优化,使得分割网络产生一个边界效果较好的概率图和近似二值图,不仅能简化后处理过程,还提高了文本检测的效果.
在后处理过程中,采用概率图来生成文本框.使用固定阈值t对概率图进行二值化操作得到二值化图,通过二值化图可以得到收缩的文字区域.将收缩文字区域按照裁剪算法的偏移系数d′通过膨胀扩展来生成文本框,计算公式为
(2)
式中:d′为扩展补偿;S′为收缩文字区域的面积;C′为收缩多边形的周长;r′为扩展比例.
在训练过程中,分别采用不同的标签对概率图、阈值图和近似二值图进行监督.采用Vatti裁剪算法来生成文本标签,标注的数据集给定的标签G一般是完整文本框,为了实现相邻文本实例之间的有效分离,对标签进行缩放处理.将人工标注的文本标签G向内缩小距离d得到Gs,将Gs作为概率图和近似二值图的标签.缩小距离d的计算公式为
(3)
式中:S为多边形的面积;r为缩小比例;C为多边形的周长.
同时向外扩张同样的距离d得到GL,GS和GL中间区域GSL视为文本区域的边界,计算GSL区域内每个像素点到原始图像边界G的归一化距离(最近段的距离)即为阈值图的标签.
本文主要计算的损失包括概率图的损失、阈值图的损失和二值图的损失.其中,概率图和二值图的损失属于分类损失,用来优化网络对“文本”和“非文本”预测正确的结果;阈值图的损失属于回归损失,用来优化网络生成定位准确的回归框.损失函数L的计算公式为
L=Ls+α·Lb+β·Lt
(4)
式中:Ls为概率图的损失;Lt为阈值图的损失;Lb为二值图的损失;α和β用于平衡各损失函数在训练过程中的比重.
对Ls采用平衡交叉熵损失函数,在损失函数中添加权重因子来平衡正负样本的权重,即:
Ls=∑w·lgpi+(1-w)lg(1-pi)
(5)
式中:pi为样本的分类概率;w为权重因子,权重大小根据正负样本的分布进行设置.
而对于Lb损失的计算采用了Dice损失函数.Dice损失一般应用于语义分割中,对正负样本不平衡的场景有着不错的性能,训练过程中更侧重对前景区域的挖掘,是一种类似于IOU度量的损失函数.Lb损失的计算公式为
(6)
式中:yi为近似二值图的标签值;xi为预测值;ε为一个极小的数,一般称为平滑系数,起到平滑损失和梯度的作用.
Lt损失计算的是GL区域内预测与标签之间损失,本文使用Smooth L1 损失函数来计算Lt.
(7)
(8)
式中:RL为GL内的像素索引;为阈值图的标签;为训练过程中阈值图的预测值.
由于目前没有公开的船名图片数据集,本实验数据集选自船讯网上带有船名字符的水面可见光图片,其中10 169张作为训练集,1 260张作为测试集,这些图片中包括远洋救助拖轮、海巡船、渔船等各种船型的船名.采用PaddleLabel半自动标注工具对图片进行标注,标注的文本框为四边形框.为了有效表示船舶图像中的船名字符区域,将属于同一标签内容的区域作为单独的文本区域.原始图像和人工标注图像示例见图4.
图4 原始图像和标注图像示例
在训练阶段,对训练数据进行数据增强操作,主要包括:①将输入图像按照0.5的比例进行水平翻转;②将图像随机旋转(-10°,10°)区间内的角度;③图像按照(0.5,0.3)的比例进行缩放.并将输入图像大小设置为640×640.
参数设置:根据GPU内存大小将每次迭代输入图像数量设置为2;数据集训练轮次为100;采用Adam优化器进行端到端的训练;学习率初始设置为0.005;可微分二值化操作中放大系数k根据经验设为50;后处理过程中的二值化阈值t设为0.3;扩展比例r′设为1.5;缩小比例r设为0.4;根据损失的数值,α和β分别设为1和10;交叉熵损失函数中w设为0.25.
文本检测中常用的评价指标包括召回率Rrecall、精确率Pprecision和F1分数.由于本文数据来源于摄像机拍摄,船舶处于航行状态导致拍摄图片效果不理想,图片中存在船名字符角度多变、清晰度不高、大小不一等复杂情况,所以采用计算标定框和检测框的交并比来判定算法的召回率、精确率.计算公式为
(9)
(10)
(11)
(12)
式中:area()为求多边形的面积;inter()为求两个多边形的交集;umion()为求两个多边形的并集;gti为第i个标定框;detj为第j个检测框;为iouMati,j大于0.5的个数;Numgt为标定框的个数;Numdt为检测框的个数.
2.4.1不同特征提取模块的对比
以DBNet为基准,DBNet+ECA表示在DBNet算法的特征提取网络中引入高效通道注意力模块,其他部分与DBNet算法一致,分别进行实验,得到的召回率、精确率以及F值见表1.
表1 不同注意力模块结果对比 单位:%
由表1可知:在特征提取模块中引入高效通道注意力模块ECA,召回率相对基础算法提升了4.9%,精确率相对下降了0.5%,F值也有不错的提升,从83.6%提升到85.8%,说明该方法较为有效.结果表明,引入ECA模块较大幅度地提升了召回率,有效地减少船名漏检的情况.
2.4.2多尺度特征融合模块对比
为了验证特征金字塔增强模块与特征融合模块对特征信息的有效利用,以DBNet为基准,DBNet+FPEM_FFM表示在DBNet算法中采用多尺度特征增强与融合模块来代替FPN的算法,实验结果见表2.
表2 多尺度特征融合模块对比实验结果 单位:%
由表2可知:采用多尺度特征增强与融合模块代替DBNet算法中的FPN,使得召回率和精确率都有所提升.结果表明,特征金字塔增强模块能够更好地利用骨干网络提取的特征信息,较好地融合浅层和深层特征图,有效地提高算法的多尺度检测能力.
2.4.3不同损失函数的对比
为了验证本文采用的回归损失函数对模型训练效果的影响,以DBNet为基准,DBNet*表示在DBNet算法中回归损失部分使用新的损失函数,分别进行实验,结果见表3.
表3 损失函数对比实验结果 单位:%
由表3可知:使用新损失函数的算法在精确率上较基准有一定的提升,提升了3.2%,F值也提升了1.1%.结果表明,本文采用的smooth L1损失函数能够有效地提高文本框的回归效果,提升了算法的检测精度.
2.4.4整体改进实验
为验证本文算法相对DBNet在整体性能上的提升,用DBNet**表示本文提出的在DBNet基础上采用高效通道注意力模块、多尺度特征增强与融合和改进的损失函数算法,实验结果见表4.
表4 整体改进实验结果 单位:%
由表4可知:本文算法对于DBNet算法精确率效果提升明显,从84.7%提升至88.1%.
图5a)为采用DBNet算法检测效果图,图5b)为采用本文算法的检测效果图,深色框图是检测算法输出的文本边界框.由图5可知:本文提出的算法在检测效果上优于DBNet算法.
图5 部分检测效果图
针对水面船舶图像中船名检测问题,提出了一种基于注意力机制与特征增强的船名检测算法,该算法引入高效通道注意力模块,增强了网络对文本特征的提取能力,有效地减少了船名漏检的情况.采用多尺度特征增强与融合模块提高网络的分割性能,提升了检测精确率.改进了回归任务的损失函数,提升了检测效果.在自建船名图像数据集上进行对比实验,结果表明本文算法的有效性.