叶萍
(福建船政交通职业学院,福建 350007)
关键字:船舶航行自动化 卷积神经网络 船舶图像 自动识别
随着计算机以及电气控制技术的快速发展,在船舶电气自动化领域,航行自动化、机舱自动化等方面都取得了较为显著的成果,其中船舶航行自动化系统随着计算机科学的成熟在船舶工作中有着广泛的应用[1]。船舶自动识别是船舶航行自动化系统一个重要的组成部分,提高船舶识别准确度能够大大提升船舶自动化航行的安全性。目前一般的船舶自动识别系统(AIS)[2]基于雷达以及信号传输存在一定的不稳定性,有时AIS信息受气候环境影响很难被收报船接收到,特别是很难被雷达接收。信息中最重要的数据包括船籍、船位、航线、航速、航向及转向速度等,在目前的雷达设备中,不能自动、连续地传送给船舶。而船舶图像识别作为一种探测方法,能够基于超高分辨率相机和图形处理单元(GPU)精确地自动识别周围区域的船只,特别是难以被雷达识别的小船,进而阻止大型船只与较小的船只碰撞,有效规避人视野盲区障碍物。在可视条件较差的情况下,检测AIS不能识别的小型船舶,大大提高船舶的避撞能力。
深度学习作为图像识别技术的一个重要方法,自动特征学习及分类的能力使得其能够快速准确地在复杂场景下对物体进行识别分类。相比于传统方法,卷积神经网络近年来在包括ImageNet等数据集上都取得了压倒性的图像识别优势,并且其利用权值共享和局部视野域的方法,减少了参数的数量,提高了运算速度。
权值共享:每个隐藏神经元都具有同样的偏置和一致的连接到局部感受野的权重。每个隐藏神经元可以学习一种特定的特征映射,最后通过多层连接堆叠的方式,学习到整个图片的特征。
对于l层的第j,k个隐藏神经元,所得的输出为:
其中,σ是某神经元的激活函数;b是偏置。w是共享权重的数组,a是激活值。
卷积神经网络能够自动地学习到合适的权重和偏置,所以网络的输出y x 能够拟合所有的训练输入x。为了量化输入x与拟合输出y(x)之间的差距,该算法引入了代价函数的概念:
其中,w表示网络中所有的权重的矩阵,b是所有的偏置的矩阵,n是训练输入数据的个数,a表示输入为x是输出的激活值,求和则是在所有的输入数据x上进行的。网络训练的过程其实就是找到代价函数最小时对应的权重值。
直接计算代价函数的最小值得计算量十分巨大,1986年,Rumelhart[8]提出借助使用反向传播算法,大大减少了最小化代价函数时的计算量,为加深网络层数提供了可能性。
ReLU函数:ReLU函数是神经网络中最常用的激活函数之一,通常与卷积层同时出现,其公式为:
其中,当输入x<0时,输出为0;当输入x>0时,输出x。
混合层(pooling):混合层的作用是对卷积层的输出信息进行降采样,减少参数个数,避免过拟合。详细地说,混合层将输出的每个特征映射凝缩成一个新的特征映射,常见的混合层有最大值混合(max-pooling)和均值混合(average-pooling)。以max-pooling为例,则取该层一定区域内的最大激活值作为新的特征值输入到下一层。
2012年Krizhevsky提出深度卷积网络AlexNet[3],在数据集ImageNet[4]上实现了图像分类任务并将错误率降低到17.0%。在此基础上,Zisserman提出了一种新的深度卷积网络结构VGGNet[5],该网络采用更小的卷积核以及更深的网络以增强网络性能。在ImageNet数据集上将分类错误率降到了7.32%。同年,Szegedy[6]提出了一种带有Inception层CNN结构GoogleNet,增大了网络的深度和宽度,在ImageNet数据集上测试的错误率为6.67%。
综上所述卷积网络结构既具备自动特征学习能力,还具有强大的分类能力。在此基础之上,通过设计特定的网络结构,卷积网络在船舶图像识别中具有广阔的应用场景。
生成对抗神经网络(GAN)[7]作为今年来广泛应用的深度学习方法,是一种无监督式地图像特征学习方法。相比于路上交通驾驶系统,船舶的图像难以系统性地获取,加之海上的气候多变,得到真实航行场景下的特定船舶图像标签难度较大,成本较高。换言之,目前可获取的数据集图像质量不一致且各个船只类别不同,使用有监督式学习方法难以得到较好地效果。而生成对抗神经网络不需要标签,能够无监督式系统性地学习各类船舶图像特征,较好地解决了数据集问题。因此本系统基于生成对抗神经网络设计相应的船舶识别流程。
所谓生成对抗神经网络,包含生成器和判别器。生成器生成伪数据,旨在“骗过”判别器;判别器则需要尽力区分伪造图像和真实图像。二者进行对抗学习,学习训练如何生成与真实数据分布一致的生成数据。通过这种方式,生成对抗神经网络模型能够在无监督地条件下自动学习各类船舶图像特征,进而在辅助神经网络地帮助下实现船舶识别分类。本系统使用基于信息最大化的生成对抗网络(Info-GAN),定义了一个生成对抗网络,包含生成器G和判别器D和辅助网络Q。将船舶场景图像分为杂货船,湖船,渡船,帆船,无船场景这五类。定义隐变量c从一个固定的噪声分布中采样得出。随机噪声变量z和潜变量c的串联构成生成器的输入,通过生成器G转换成样本G(z,c)。将c的维度对应为上述五种场景图像。因此c和G(z,c)之间需要有高度的互信息。为了最大化互信息I(c;G(z,c)),模型的目标函数为:
然而该模型的优化问题在于真实的P(c|x)无法得知,因此在整个优化的过程中,该算法也引入了变分推断的思想,使用变分分布Q(c|x)来逼近P(c|x),它是基于最优互信息下界的轮流迭代以实现最终的求解,可以求得式(1)的下界。于是InfoGAN的目标函数变为:
在具体的实现中,本课题设计了辅助网络Q,其与D共用了除输出层之外的所有卷积层,在最后增设了一个全连接层来输出Q(c|x)。对于c,如果是离散隐变量,可以使用softmax的非线性输出来代表Q(c|x);如果是连续隐变量,可以使用高斯分布来表示。
本系统具体的网络结构如图1:
图1 网络结构
在网络训练过程中,本系统随机变量由高斯变量z和离散变量c组成。除了通过EM距离在生成器(G)和鉴别器(D)之间进行极大极小值算法,本系统还将c和辅助网络的输出(Q(c|G(c,z))以最大限度地提高相互信息。
图2
在网络训练过程中,将船只高清摄像头所捕获的图片作为辅助神经网络的输入,就能够得到特定的隐变量c,此时的隐变量就能指示图片所属船只的类别。而生成器在给定对应的隐变量情况下也能生成对应类别的船舶图像。
综上所述,通过生成器和判别器基于互信息最大化的对抗学习,可以使得辅助神经网络无监督式地学习到各类船舶图像的特征,准确地识别不同类别的船只以及无船场景。为本系统设计提供了核心算法。
本次实验使用的数据集包括10种不同类别的船:杂货船,湖船,渡船,帆船,游轮,消防船,渔船,机动游艇,钻机和潜艇。该数据集从Shipspotting.com网站获取。实验使用了1000张图像进行对抗神经网络算法训练,并使用200张图像进行了5种不同类别的验证:杂货船,湖船,渡船,帆船,无船场景。
对于每个分类结果,定义正确地分割出像素个数为TP,被错误地分割出的像素个数为FP和未被分割出的像素个数为FN。对于每个分割结果精确度,召回率和F分数(F1)定义如下:
本次验证过程选取了两类对比实验:
1)传统特征提取方法与支持向量机搭配:特征提取方法为:利用[9]的方法,将尺度不变方向变化,方向梯度直方图以及LAB颜色直方图的提取的特征结合为188维的特征向量作为输入,使用支持向量机(SVM)进行分类。(CTM+SVM)
2)使用在Imagenet-1K上预训练好的Resnet-100直接以船舶图像作为输入,在提取特征之后即可在输出端调整输出类别数以达到船舶分类的目的。(Resnet-100)
将图像作为辅助网络的输入,可以得到具体的隐变量数值,根据所得的数值对图片进行分类,得到船只识别结果,图3为部分分类效果。
图3
由图3可见,A为杂货船,B为湖船,C为渡船,D为帆船,E为无船场景。各类图片都能较好地被分配到所属类别,聚类中心明显,本算法能够在较高的精确度上完成场景图片的识别分类。
基于上述三种方法,本次实验对每个方法进行了4次重复实验,对4组实验取平均值,所得到的数据结果如表1。
表1 对比实验结果
由表1可见,生成对抗神经网络相较于传统分类算法,在识别船舶图像过程中能够取得大幅提升的分类效果。对比较具代表性的深度残差网络,不仅取得了分类上准确度的提升,且网络结构更加简单,所需计算资源与训练时间更少,更易落地应用于船舶电气自动化嵌入式系统。
本论文提出了一种基于生成对抗神经网络的图像识别算法。经过数学推导,船舶类别分析,隐变量设计使用,网络模型设计,本论文将该算法应用于船舶自动识别系统。通过对比实验论证,本论文所提出的算法较其他算法取得了更高的分类准确度,并且在有标签数据集较少的情况下能够进行无监督地特征学习,由此可见基于本生成对抗神经网络的船舶自动识别系统在船舶航行自动化以及船舶电气自动化领域具有一定的应用价值。