基于深度卷积网络的港口集装箱属性识别方法❋

2019-01-04 06:54杨杰敏郭保琪罗汉江林建成
关键词:滤波器集装箱卷积

杨杰敏, 郭保琪, 罗汉江, 林建成

(1.中国海洋大学,山东 青岛 266100; 2. 青岛新前湾集装箱码头有限责任公司,山东 青岛 266500; 3. 青岛海大新星软件咨询有限公司,山东 青岛 266500;4. 山东科技大学计算机科学与工程学院,山东 青岛 266590)

全自动化集装箱码头是对传统集装箱码头作业模式的颠覆, 但实现集装箱码头装卸全过程无人化作业,首先需要实现对码头作业场景及对象全方位的感知。当前人工智能、物联网、云计算等相关技术快速发展, 为自动化集装箱码头应用技术的发展带来新的机遇[1]。作为自动化码头系统应用的关键技术之一的图像识别技术,不仅需要对集装箱的箱号进行识别,而且需要对集装箱的箱门方向、铅封、残损等信息进行识别和检测[2]。最近发展迅速的基于深度卷积网络的图像智能识别技术,可以用来快速、有效地解决全自动化集装箱码头集装箱的识别问题。

目前,卷积神经网络(CNN)在图像识别方面取得了优异的表现[3-5]。近期的研究文献表明,虽然CNN在分类问题上进行训练,但同时具备了较强的定位检测能力[6-10]。流行的基于CNN 的目标检测方法主要有R-CNN,Faster R-CNN,R-FCN,SSD和YOLO等,目标识别性能已经取得长足的进步。

R-CNN[11]首次提出在CNN中进行目标检测,它首先计算有可能包含物体的剪裁方框(box),然后针对这些box运行CNN网络进行分类识别。由于推荐的box有很多重叠发生,导致该方法存在重复计算,代价较大。Fast R-CNN[12]将图片输入到神经网络,然后在网络中间层利用卷积特征进行剪裁和box推荐,这样只要运行一次CNN就可以得到所需要的box。R-CNN 和Fast R-CNN均依赖于外加的box生成器,而最近的研究表明这些box可以由神经网络本身生成[16-19],它需要一个覆盖在不同空间位置、缩放比例、宽高比的box集合,被称之为锚点。这些锚点用来预测两个目标:一是离散的类标号,另一个是连续的偏移坐标。然后把这两个目标绑定到一个代价函数上,同时进行训练。而另外一种基于区域的全卷积网络R-FCN[13](Region-Based Fully Convolutional)在特征提取结束之后添加全卷积层,也就是说,它不是在网络中间层建议的box上选取特征,而是在这个全卷积层上产生box,并预测目标和位置。该方法将特征推送到最后一层不仅大大减少了每个区域的计算量,同时使用全卷积层使深度网络保留了其平移不变性。

上述基于R-xxx的检测方法均属于两阶段算法,先进行区域box推荐,然后进行分类检测。而SSD(Single Shot Multibox Detector )[14]和YOLO (You Only Look Once )[15]是一阶段方法,使用一次网络正向传播就可以预测目标和位置,而不需要进行区域推荐,这无疑会极大提高预测速度,不过其预测准确度不如区域推荐方法,因此在许多情况下需要在预测速度和准确度之间做出合理的均衡。

前述流行的深度目标检测方法至少包含特征提取网络和位置回归网络,网络结构比较复杂,需要训练的参数量较大,所需的标记样本数量较大,而且必须使用同时带有类别及位置标记的样本,样本的制作成本高。但实际应用中很难提供足够的标记样本,导致训练出的模型准确率不够理想。针对此问题,本文提出一种轻量级的基于相关性特征图的目标检测方法,该方法只需要部分特征提取网络,不需要进行box推荐和坐标位置回归,而是充分利用卷积神经网络自身的频率选择特性,以及产生平移、旋转、缩放不变性特征的能力,生成一个与目标相关的显著性分布特征图,对该特征图之前的所有滤波器组进行训练,使该特征图同时具备了分类和位置预测功能。该方法只需要较少的类别标记样本,不需要做位置标记,就可以训练出兼顾准确性和识别速度的深度模型。

论文首先从信号时频变换的角度研究单个卷积滤波器的工作原理,然后对卷积网络中间层产生的深度表征进行分析,提取与检测目标相关的特征图子集。通过对特征子集进行组合,得到能够检测目标的相关性特征图,并设计相应的目标函数。最后通过实验,验证了该方法的有效性。

1 相关性特征图的目标检测

1.1 卷积深度神经网络结构

Inception卷积深度神经网络模型由最优的稀疏子结构层叠构建而成,其理论依据在于:如果数据集的概率分布能够被一个巨大的稀疏神经网络表征,那么通过分析上一层神经元激活值的统计相关性,并将具有较高相关性的神经元分组并逐层构建,就可以得到一个最优的网络拓扑结构。如图 1所示,最优稀疏子结构以上一层(Last layer)的卷积特征图为输入,具有4个并行分支,由1×1,3×3,5×5的卷积滤波器(Conv)、池化器(Pool)组成。在分支上前置1×1的卷积器,用于降低输入3×3,5×5卷积器的通道个数,减少权值参数;与之类似,在3×3最大池化器(MaxPool)后面放置1×1卷积器,最后通过输出特征图的合并操作(Filter Concat)传递到下一层,这样构成了一个inception模块。

图1 Inception模块结构

Inception深度神经网络以多个卷积层(Conv0 Conv1)、池化层(pool2)的线性排列开始,用于提取线、边缘等低层的视觉特征。之后堆叠多个Inception模块(A,B…G…),其分支结构允许不同尺度不同层级特征的融合,并逐渐提取到抽象的中间层及高级别语义特征。同时,特征提取层均采用BatchNormal正则化及Relu激活函数。对最后一个特征提取层做全局平均池化(AvgPool)后,得到特征向量,通过全连接层(FC)输出类别预测向量(logits)。该网络获得了ILSVRC 2014挑战赛冠军,是目前较为流行的深度网络结构。本文采用经过128万张ImageNet数据集预训练过的Inception V3网络作为目标检测的特征提取器(见图2)。

图2 Inception V3卷积神经网络

1.2 卷积滤波器本质

深度卷积网络(CNN)以卷积滤波器为核心部件,本节从信号时频变换的角度研究单个卷积滤波器的工作原理,对探究深度神经网络平移、旋转、缩放等不变量的生成具有重要意义。

图3 卷积滤波器及其响应图解

图4 高斯函数

图3中fi,gi分别是指训练图像和所期望得到的响应输出图像,hi是卷积滤波器。gi由位于检测目标中心的峰值亮点构成,而其它的地方均是较小的值。具体来说,可以定义gi是一个在目标中心(xi,yi),半径为σ如图4所示的2维高斯函数:

g(x,y)=(f⊗h)(x,y)=Γ-1(F(w,v)H(w,v))。

(1)

根据卷积定理(1),在空域做卷积等价于在傅里叶频域做乘积,这是精确计算过滤器的基础。其中:f是原图像;h是滤波器;g是空域的响应输出图像;Γ是傅里叶变换;首字母(F,H)代表各自的2维傅里叶变换。

要精确求解滤波器,首先要将公式(1)的H替换为其复共轭,

G(w,v)=F(w,v)H*(w,v)。

(2)

然后,根据公式(3)求解过滤器:

(3)

公式(3)是关于输出响应图的傅氏变换和原图的傅氏变换间的除法。从图3过滤器h1,h2,h3的图像中可以看出,它们并不是对眼睛进行响应,而是对每张具体的训练图片进行响应。要产生一个拟合全部训练图片的并具有泛化能力的过滤器,需要根据公式(4)计算多个精确过滤器的平均。

(4)

(5)

从图3的最后一行看出,均值化操作增强了这些训练图片的共同特征,抑制了样本的个体特征。每个精确的过滤器可以视做一个弱分类器,它在单个训练图片上表现良好。如果这些弱分类器是无偏的,将它们相加,会得到一个方差为0的强分类器,其表现超过其它普通分类器。

由于傅里叶变换是线性操作,均值计算在时域和空域均能进行。如果在空域内进行,滤波器可以在求平均前被剪裁,这样滤波器可以针对训练图片的不同大小进行构建。一般来讲,对训练图片进行平移、缩放、旋转等变换可以使过滤器适应性及鲁棒性更强。而选择合适的滤波器,可以衰减图像中的无用信号频率,保留目标对象的频率。

本节所使用的卷积滤波器比深度神经网络中的卷积滤波器核要大,但是原理与深度网络进行多层的卷积滤波器类似。深度网络通过在空域进行连续多层的卷积,本质上是对图像信号在频域进行多步筛选和过滤,最终留下的就是目标体的频率,对应在空域(见特征图)上的亮点。因此,深度网络本身已经具备目标检测的能力,不需要额外附加一些结构(如位置回归子网)来实现。

1.3 深度表征分析

深度卷积网络由众多卷积滤波器组合而成,根据上节的阐述,中间层会产生许多深度表征g(x,y),分析深度表征对理解深度学习的机制很重要。在经过ImageNet数据集预训练过后,卷积特征能够描述很多物体,可以认为是用大量的神经元检测到丰富的可视化模式。神经网络层对不同类型的特征进行编码,高层捕捉物体类别的语义概念,而低层对物体局部的各种区分性特征进行编码。但对于一个特定的目标检测任务来说,要得到那些能够把目标体从背景中区分出来的特征图子集,需要丢掉那些同时对目标区域和背景区域有较高响应的特征图,防止检测器被背景区域干扰。CNN可以从图像分类任务中学到这些特征,利用这些特征可以进行目标的检测和定位。

图5 相关特征图

CNN所激活的特征图是稀疏和局部化的,激活的区域和语义对象的区域高度相关。图5显示了一些对目标区域使用最大值激活的特征图。图5(a)是输入深度神经网络的集装箱图片,其中黄色框内的铅封是检测目标。图5(b)深度神经网络中间某层的特征图可视化,共有768个通道(特征图),每个特征图在蓝色方框内显示,其中,编号为520(黄色框内)的特征图检测到目标表征。图5(c)是该特征图的放大显示,从中可以清楚地看到以红色亮点表示的特征图的最大值恰好对应铅封。另外,特征图只有较少的区域具有非0值。这些非0值是局部化的,主要与图像前景的目标物体相关。如果对目标物体进行平移、转动等变换,会引起特征图发生变化,但是变化仅限于目标体的范围。由此可以说明特征图捕获了与该目标体相关的可视化特征。

需要说明的是,满足这种表征的相关性特征图可能不止一个,而且只是以一定的概率出现。因此,需要组合这些特征,并做增强性训练,以提高检测的准确性。

1.4 特征图组合

对于一张给定的图片,令gi代表所选择的相关性特征图,对每个特征图,进行全局平均池化操作,得

(6)

对于它们所检测的目标类c,输入到分类层的值

(7)

得到

(8)

Pc(x,y)直接显示了特征图在(x,y)位置检测为类c的显著性值,这样Pc就成为检测类c的显著性分布特征图。

1.5 目标函数

Inception网络通常在经过多个Inception模块后,由全局池化(AvgPool)得到特征向量,并经过全连接层(FC)输出神经激活值logits, 通过SoftMax函数预测不同类别的概率(见图6),这种网络结构只能实现图像分类。本文从中间的Inception模块G选取合适的特征图,经过全局平均池化层(AvgPool)生成logits, 然后通过Sigmoid函数预测类别概率,如图6右半部分。该方法能在所选特征图上同时预测目标类别和位置,实现目标检测。同时由于不使用全连接层FC,降低了过拟合的风险。

激活值logits转化为概率分布后通过最小化损失函数逼近类别标签labels,如果一个图像样本被预测为一个类,通常使用softmax交叉熵(Cross Entropy)函数;但对于目标检测任务,往往需要在一个图像样本中检测出多个类别的物体,因此需要使用sigmoid交叉熵(Cross Entropy)函数,计算与类标签labels的概率分布差异。

令x=logits为分类输出的激活值向量,z为标签labels向量,则sigmoid交叉熵函数为:

(1-zi)(-log(1-sigmoid(xi)))=

(9)

从推导可见,sigmoid函数直接用于深度神经网络的学习容易造成梯度弥散问题,但是与交叉熵函数结合后,形式不仅会简化,同时还抑制了梯度的消失。

图6 目标函数及网络连接

1.6 实验结果

对集装箱的箱门和铅封检测任务,提供包含箱门和铅封的正样本各50例,负样本50例。训练时在保留检测目标的基础上,对样本进行增广处理。包括剪裁、平移、缩放、旋转等变换,促使神经网络产生平移、旋转、缩放不变性特征。训练过程中的目标函数曲线见图7,sigmoid交叉熵值平稳下降至0.3,表明预测的概率分布同标签的分布逐步接近。

图8中左图是摄像头拍摄的集装箱图片,右侧是检测箱门的显著性分布特征图。从分布图来看,箱门的4根柱子均以最大值(红点)呈现,同时该类别的概率分值接近1,表明检测到箱门。

图9中左图是摄像头拍摄的集装箱图片,右侧是检测铅封的显著性分布特征图。从分布图来看,最大值(红点)处恰好对应铅封的位置,同时该类别的概率分值接近1,表明检测到铅封。

图7 sigmoid交叉熵的训练曲线

图8 箱门检测

在每个类别的显著性分布特征图上,使用Opencv的连通区域算法得到大于某个阈值的目标区域,并计算包围矩形及角点坐标,从而计算出目标体的精确位置。

本文使用tensorflow的Object Detect API ,基于Inception网络架构,与流行的深度神经网络的目标检测算法(R-FCN, Faster R-CNN, SSD )进行比较。在Intel COREi7,8核心,32 G内存的DELL工作站上运行,结果如表1所示。与上述三种方法相比,本文提出的使用显著性分布特征图进行目标检测的方法,由于不使用box边界框,不采用附加的网络结构及定位回归训练,大幅减少了需要学习的变量参数。在训练样本数较少的情况下,取得了较高的识别准确率和速度。由于受到光照、拍摄角度等因素影响,仍然存在一定的错误率。随着样本数量不断增加,可以增加对该问题的鲁棒性,提高识别率。

图9 铅封检测

从显著性特征图来看,神经网络学习到了对目标的检测表征能力,这是基于深度神经网络固有的频率选择特性,并通过合理的结构设置及训练方法进行了激发和增强,因此本方法对其它场景及更多类别的检测也适用。

2 结语

本文提出一种基于深度卷积网络的识别方法,能够在少量样本图像的条件下,快速地检测识别目标对象。并通过实验,对集装箱箱门、铅封等相关目标进行检测,取得良好效果。实际工程应用中,在该算法的基础上,结合实际业务状况等其他集装箱信息进行复合校验,会大幅提高识别率。目前,实际应用最终的识别率在97%左右。未来计划在集装箱自动化码头系统及智慧港口的应用开发中,不断完善和优化其工程应用,提高开发效率和部署灵活性。

表1 Inception网络架构与深度神经网络的

Note:①Methods;②Accuracy;③Average detection time;④Test of correlation featuremap

猜你喜欢
滤波器集装箱卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
虚实之间——集装箱衍生出的空间折叠
从滤波器理解卷积
Comparison of decompression tubes with metallic stents for the management of right-sided malignant colonic obstruction
一种新型集装箱起重吊具设计
开关电源EMI滤波器的应用方法探讨
基于傅里叶域卷积表示的目标跟踪算法
一种微带交指滤波器的仿真
一种新型自卸式污泥集装箱罐