6 `! z$ o2 z- F, l 原标题:基于CCTV的航路海况分级和波高识别 * s0 ]# S7 b3 a: `
2 x- a) _+ b/ T4 x! v 基于CCTV的航路海况分级和波高识别 % L0 ^' r4 I b! W
1 选题背景与研究目的
# _' k# _/ M1 [9 a& g 海浪监测是海洋环境监测的主要内容之一,在海浪分级或者海浪监测方面,海浪监测手段具体可分为:人工观测法、仪器测量法和遥感反演法。人工观测法受光照和恶劣天气影响,无法做到连续监测,测量结果具有主观性。仪器测量法需要在海洋环境下(比如水上和水下)安装测量仪器,应用便捷性不高;遥感反演法(主要包括雷达、摄影照相测波法等)的缺点是监测成本较高,优势是测量精度较高,针对海浪监测楚晓亮等人利用X波段雷达测得有效波高的相对误差为14.67%,峰值频率的误差为5.97%;王伟等人提出的基于MIMO雷达方法反演出的有效波高、主波波向与上跨零周期都具有更高的精度。摄影照相测波法在海洋环境下由于缺少控制点,图像匹配困难,同时需要进行复杂的标定工作。
6 k% {& `+ o* L" H6 q 2006年以来,机器学习领域取得了突破性的进展,伴随分布式云计算和大数据的兴起,人工智能得到了快速发展。深度学习是利用云计算对大数据进行处理的核心算法。深度学习允许分层去学习事物的特征,然后自底向上传播形成更高的抽象,实现对事物的多级表达。 4 J" u+ ^# Y9 i/ j- `) G1 }+ w
在视频场景应用处理、自然图像识别领域,深度学习具有较强的优势。但在海洋领域,由于缺少长时间海洋视频数据,及同步海洋环境监测样本,较少有人研究。海浪灾害是我国发生最频繁的海洋灾害,每年造成的损失仅次于风暴潮带来的灾害。因此实现基于视频的海浪实时监测具有重要的实际意义。同时,现有深度学习算法,基于的数据集比较单一,大部分都是针对特定的数据集开展,如人脸、手写字体库等,而深度学习算法结构没有普适性,因为隐含层的深度、卷积核的数量以及大小、学习率等参数需要根据实际情况来设定。因此构建适合深度学习的海浪视频训练集,及同步海洋环境监测数据为标签的测试集,设计并开发适应于海浪视频的深度学习模型具有一定的理论意义。
1 M# ~ i" j7 e3 Q; L 本文利用深度学习的优势,把深度学习应用到海洋环境监测领域,利用视频大数据构建了适合深度学习的海况等级图像数据集,同时针对海浪图像纹理特征丰富、周期变化的特性,经过参数修正,提出了基于深度学习的近岸海况等级检测算法,研究内容可应用于海上丝绸之路运输环境安全保障服务系统,实现海况实时监测,为海上丝绸之路通航环境安全保障奠定了基础。 % g$ o2 Z4 c( R6 |: ]. ^
2 国内外研究现状及发展动态 ; i& }, ?/ Z* g0 l( G/ c6 D7 L2 D$ z
1)海洋环境信息测量与反演
5 Q6 U: e- v! q& G8 L- \ 海洋测量是测绘科学研究的一个重要组成部分,它的主要任务是对海洋几何场和物理场参数进行精密测定和描述,其目的是为人类的活动提供必要的海洋空间信息。最近十几年,随着计算机技术和信息获取手段的改进和发展,海洋测量学科也发生了深刻的变化,继过去单一的海道测量学之后,相继出现了相对独立的海洋控制测量学、海洋工程测量学、海底地形测量学、海洋重力测量学、海洋磁力测量学以及海洋界面测量学等。机载激光测深、多波束测深以及侧扫声纳系统等一批具有全覆盖、高效率和高精度特点的高新技术测量设备的出现,已经使海洋测量从过去的点线测量模式转变为带状测量模式。海洋测量正在突破传统的时空局限,进入以数字式测量为主体、以计算机技术为支撑、以3S(GPS,GIS,RS)技术为代表的现代海洋测量新阶段。
2 `( ?: Y4 z; [) F9 V3 l9 o 海洋环境信息测量技术,首先通过海洋环境观测设备研制与开发,利用多波束测深系统、机载激光测深系统、无验潮测深系统等多种测量技术,进行海洋环境信息的采集,然后利用遥感卫星等多种数据进行海洋环境信息的反演。利用卫星高度计数据推求海平面高度,并据此进一步反演海洋大地水准面、海洋重力场、海底地形和海洋潮汐,是卫星测高技术的重要应用领域,在这一领域获得的成果包括:首次提出使用完整的带有非随机参数的最小二乘配置模型反演海底地形新方案;推出了按现代最小二乘配置模型进行海底地形反演的迭代计算公式;完成了卫星测高反演海洋深度与船测水深的比对和检核工作;提出综合利用多种信息源构制我国海域水深模型的设想,并实际完成了南海2′×2′ 水深数字模型的构制。 / X2 ^9 ~& E: r1 M
波浪观测是海洋观测的主要内容之一。其观测手段众多,主要有人工测波、仪器测波和遥感反演测波等方式。人工观测法可分为人工目测法和光学测波仪观测法;仪器测量法可分为测杆测波法、压力式测波法、声学式测波法、重力式测波法和激光式测波法;遥感反演法可分为雷达测波、卫星测波和摄影照相测波,或是分为X波段雷达测波、高频地波雷达测波、合成孔径(SAR)雷达测波、卫星高度计测波和摄影照相测波等。国内很多学者都对这些观测手段的原理和国内外现状进行了研究,观测者需要根据实际情况选择适合的观测方法才能获得理想的观测资料。 " m) W# C4 A9 R2 j: Y
为了增加对海上天气系统,尤其是灾害性天气系统生成与演变规律的科学认识,提高海上和沿海地区气象预报的准确率以及防灾减灾的能力,需要多种观测平台和多种观测技术提供海上气象要素信息。这些平台和技术包括卫星遥感、岛屿地面气象站与气象探空站网、油气平台和船舶自动气象站、海上锚定浮标、漂流浮标、有人驾驶飞机下投探空、岸基多普勒天气雷达等。与国际先进水平相比,中国周边广阔海洋上部署的气象和水文观测站点稀少,近海布置的浮标也不多,少量商船提供不连续、分散的气象海况报告。因成本大、维持费用较高以及没有海外观测基地,中国还没有大气海洋环境观测研究的专用飞机平台。中远海缺少气象探空站网,少有对流层大气廓线(尤其是台风中)的立体剖面观测资料。海洋-气象-生态等海上监测网络规模较小,缺乏对赤道辐合带(ITCZ)、太平洋暖池、El Nino 及海上季风(爆发)等现象的实时有效的监测,而这些现象或过程对中国的天气和气候变化有重大的影响。 - |1 j! t) |8 L/ ]( g2 @' d
2)基于深度学习的目标识别与检测 % [: H+ t! \, ^& ~, D
领域取得了很好的效果,相比于传统的机器学习,深度学习方法通过多层网络直接对图像卷积和池化操作来提取图像本质特征,在图像识别领域有突出的优势,并取得了突破性进展,深度学习的发展,特别是卷积神经网络(CNN)的出现,为图像特征提取带来全新的解决方法,卷积神经网络是局部连接网络,在卷积神经网络中,图像中小部分区域作为底层输入数据,信息通过前向传播经过网络中各个层,在每一层中都由过滤器构成,以便能获得观测数据的一些显著特征,其层次间的紧密联系和空间信息使其特别适用于图像处理和理解,并能自动从图像中抽取出丰富的相关特性,因此通过卷积神经网络能更好提取图像特征。 6 A2 p5 \' n4 N2 f; W) P1 D
Ross Girshick等人在CVPR大会上提出了R-CNN网络,该网络在全连接层前加了一个空间金字塔 (spatial pyramid pooling)层,使得该网络在全连接层输入不需要归一化图像尺寸,从而使得提取的特征有更好的尺度不变性,降低了过拟合的可能,在VOC 2012数据集上,将目标检测的平均准确率(mean Average Precision,简称mAP)提升到53.3%。Ross Girshick和Shaoqing Ren又相继提出了Fast R-CNN和Faster R-CNN,提高了准确率和检测速度,Joseph Redmon等人提出的YOLO v1以45FPS真正达到了可以检测视频的速度,这为快速检测视频运动目标指明了方向,Wei Liu提出了SSD物体检测模型,在实时性和准确率都高于YOLO v1,在VOC数据集测试,mAP达到了 74.3%,速度达到了46FPS,随 Joseph Redmon又提出了YOLO v1升级版YOLO v2,在VOC数据集上测试,将mAP提升至78.6%,并且大大提高了检测速度,达到了67 FPS的实时检测的效果,目前已经达到了YOLO v3,YOLO v4。随着基于区域的卷积神经网络目标检测和基于耦合卷积神经网络的弱监督学习也被提出来,使得标记成本大大降低,近几年目标检测方法在速度和准确率不断取得新的突破。
4 x6 N1 \; W: B 3)迁移学习研究现状 ( J" Z* W# l3 z( `* O# `, I
迁移学习旨在通过源域中的数据来辅助目标域进行分类。因为在迁移学习中源域和目标域的数据分布是不一致的,所以为了使用源域中的数据,迁移学习的首要任务是如何减小源域和目标域之间的差异,从而使得源域上面的知识可以迁移到目标域当中去。相关的迁移学习方法主要可以分为:基于样本选择的迁移、基于特征转换的迁移、基于模型的迁移、基于属性的迁移。
" O5 L+ x' `. k$ E! ~ 基于样本的迁移方法通过计算源域样本和目标域样本相关性大小赋予源域样本一定的权重,使得源域样本可以参与到训练过程中,从而减小源域和目标域的差异。TradaBoost方法利用Boost策略对源域中的样本进行加权。核均值(Kernel Mean Matching,KMM)方法通过在再生希尔伯特空间中对源域和目标域样本进行匹配并对源域样本进行加权,使得源域和目标域的分布趋近一致。同类的方法还有KL重要性估计过程(Kullback-Leibler Importance Estimation Procedure, KLIEP),通过KL散度来度量源域和目标域的差异,对源域数据进行加权,缩小源域和目标域在分布上的差异。地标选择方法(Landmarks Selection,LS)在源域中选择特定的样本而不是全部的样本进行样本迁移。基于样本的迁移方法在源域和目标域的差异性比较小的情况下,可以达到可观的效果,但是在源域和目标域差异性较大的情况下分类效果并不理想。当源域和目标域的特征空间不一致的情况下,也无法使用这一类方法。
! v- R L M" P1 Y- p- c: J 近些年,随着深度学习技术在图像分类中的应用,深度迁移学习方面的研究也得到了更多的关注。对比与传统的非深度迁移学习方法,由于深度迁移方法可以直接对原始图像进行操作,可以提取更适合于迁移的特征,可以实现在实际应用中“端到端”的学习,很大程度的提高了图像分类正确率。但是,这并不能代表传统迁移学习方法就没有研究的价值,相对比于传统迁移方法,深度迁移方法通常是利用深度网络进行图像特征提取过程,然后在特征提取之后进行源域和目标域的适配过程,而适配过程中采用的方法和思想大多来自于传统的迁移学习方法。例如,深度域混淆方法(Deep Domain Confusion,DDC)在深度网络的末端添加了一层自适应层,自适应层可以在网络中约束源域和目标域的数据分布,通过在自适应层计算最大均值差异来减小源域和目标域的差异。Long提出的深度自适应网络(Deep Adaptation Networks,DAN)方法在DDC模型的基础上进行了扩展,在DAN方法中引入了三个自适应层和表征能力更好的多核MMD度量。Tzeng在DDC方法的基础上提出了领域和任务同时迁移(Simultaneous transfer across domains and tasks,STDT)的方法,在利用深度网络进行域适应的同时进行源域和目标域中的任务迁移。Long提出的联合适配网络(Joint Adaptation Network,JAN)方法将对数据进行自适应的方法推广到了对类别进行自适应,在深度网络中同时进行域适应和对抗学习。不同于上述的在网络中添加自适应的方法,HaoyangLi等人提出的自适应批量归一化方法通过在网络中的归一化层引入统计特征的适配,完成从源域到目标域的迁移工作。Yaroslav等人首次利用生成对抗网络GAN(Gennrative Adversarial Nets,GAN)在神经网络的训练过程中加入了对抗机制,提出了域对抗网络(Adversarial Discriminative Domain Adaptation,ADDA)方法,ADDA方法利用对抗思想一方面使得生成的特征可以尽可能的帮助区分两个领域,同时约束域判别器无法对两个领域的差异进行判别,最终的目标是学习得到同时适应于源域和目标域的特征表示。Bousmalis等人提出的域分离网络(Domain Separation Network,DSN)方法在DANN的基础进行了扩展,将特征学习分为了域公共特征学习和域独立特征学习。对于海浪图像数据集,因为其图像样本量较少等特点,选取迁移学习可以在少量海浪样本的基础上,达到较满意的效果。
- V7 @: Z* y+ S+ X% T 3 研究内容及技术难点
5 F L% N* h1 O3 ?% a# [$ x3 J! E 海况监测是海洋环境监测的主要内容之一,在海浪分级或者海浪监测方面, 传统方法如人工观测法、仪器测量法和遥感反演法都存在一定问题。随着图像识别技术的发展,特别是机器学习的发展,使得通过视频图像监测海况等级的研究迅速发展起来,急需建立快速识别海况等级、反演环境信息的数据模型,实现对海浪波高的识别推算。
: m7 @% Q2 F n, _# v 使用CCTV视频数据可以获得大量不同海况下海浪图像,根据历史数据与实测数据相结合的方法建立多等级的海况图像数据库,构建适合深度学习的海浪视频数据集,同时针对海浪图像纹理特征丰富、周期变化的特性,经过一定的参数修正,研究基于深度学习的海况等级测量与反演方法。通过数据扩增技术对视频监测数据进行预处理,提高模型泛化能力,依据视频的相关性,引入误差函数,优化模型灵敏度,利用CNNs建立适用于海洋领域海浪等级深度学习模型架构。
6 L6 _0 T9 B$ q& ^+ W7 \ 本研究的技术难点主要有以下三点: , [' g+ I3 l9 K% m9 x
1)由于海洋环境中包含了海洋温度、密度、盐度、海流、海浪、潮汐等多种水文信息,以及晴天、多云、雨雪、大雾等多种气象信息,使得我们所获取的视频图像是一个复杂的海洋环境。因此,在数据处理过程中需要剔除其他环境因素,提取有关海况等级的数据参数,并根据海浪的物理特性反演出具体的海况等级。 2 q" s/ }! T1 w% |; e& H' i/ C
2)于受到光线、天气、拍摄角度等原因,对海况等级划分的准确性存在问题。如果通过人为判断海浪等级,其测量结果存在主观性;如果通过历史数据进行判断,需要按照严格的时间、空间序列进行标定,而大部分图像数据缺少时间与位置信息。因此,如何对采集到的视频图像数据按照海况等级进行标定是研究的难点。
2 Z& n; K5 W3 y. f* ?9 D 3)图像的清晰度对图像识别有很大影响。视频在拍摄过程中受到光线照射角度等的影响,以及白天夜晚亮度的不同,需要对各种情况下的图像进行细致的区分,研究对各类图像筛选的高效、准确的方法。 ' e. B0 K, C- g
4 海况等级图像数据预处理 9 w2 s0 x$ o" y+ g
1)海况图像数据集构建
7 {/ I1 t( `+ I! h0 N$ Y 图像数据集的构建是深度学习实验的重要组成部分,深度学习识别率的高低主要依赖于样本数据集,通常深度学习的实验所用到的数据集的数量都是数以千计,包含各种各样的图像数据。由于原始海况图像会收到许多的干扰因素,比如受光照,大气,雨水和温度的影响。为了更加准确的利用深度学习训练识别图像的特征,首先是否需要提高数量即样本扩容,深度学习的识别依靠的海量数据;再次提高图像质量,包含图像增强技术和归一化处理等,提高质量的图像可以提取明显的图像特征,提高深度学习的识别率;再次就是提高运算速度,前期的图像预处理需要花费很长的时间,需要进行并行计算等数据预处理方法,提取图像特征为了方便后进行后续的工作。
& Y1 Z- e6 n& \2 R1 Z& E0 d 本研究中海况图像的获取主要分为两个部分。一部分为船载高清摄像头拍摄的实时海况信息视频数据,一部分为浮标图像数据。本文依托船载高清视频序列为海浪数据,以浮标数据中心Arog浮标测得风、浪等数据作为定标依据,挑选海况等级特征明显的视频,格式转换后进行预处理,包括以下几个步骤:
% v8 e# r: V/ t8 H4 q H 1)将视频分帧抽取成图片。根据关键帧提取表达视频的主要内容,先进行加权均值滤波,去除影响图像的噪声,进行图像细化处理,突出海浪图像的纹理特征点。均值滤波算法又称为邻域平均法,主要思路是先计算每个像素点的灰度值,再计算相邻的领域像素点的灰度平均值,用领域像素点的灰度平均值来替换像素点的灰度值,4领域的组成条件是定义的半径为r单位距离为x,以及8领域构建的半径为r与单位距离为2。海浪图像经过加权均值滤波处理,能够有效的提取图像的特定的特征的范围需要进行图像细化处理。可以得到几乎与原始图像相似的简易的具有弧度曲线的海浪图像,将图像的线条从多像素宽度减少到单位像素宽度。 " _# B ]0 W$ D4 Z
2)经过第一步得到的原始图像分辨率为1920×1080,由于海浪具有周期性,所以把原始图像按照一个海浪的周期截取出分辨率为300×300的图像;
, N3 h* ~# a% u1 _! n( x 3)为了减少海浪冗余信息,对所得到的图像进行去均值处理。首先计算每一个维度上数据的均值(使用全体数据计算),之后在每一个维度上都减去该均值,然后在数据的每一维度上除以该维度上数据的标准差,使得数据的每一个维度具有零均值和单位方差; 9 v2 ?* u) Y' l
4)经过第三步之后,所得图像特征明显,为了进一步加快训练速度,减少非相关特征的影响,在不影响海浪等级识别的前提下,把图像缩小分辨率,到此为止,形成一个海浪等级样本,重复以上步骤,构建不少于5000样本训练集和5000样本对应的标签数据、1000样本测试集和1000样本对应的标签数据,构建适用于深度学习样本集。部分海浪等级样本如图所示。
I! }2 c# t8 v, Q/ c% G9 I! ?
- k: ?5 o: S/ `1 J. z% Y/ L 图1 海况图像 / t1 [ q# |3 Z; ?
2)海况等级标定 $ o. k$ g/ x: a" R3 p" K
海况等级是对海面不平程度的一种定量的描述,目前我国是沿用波浪级来确定,按波高的大小分为10级,0级最小,9级最大。波高级根据1/3有效波高来划分,1/3有效波高的定义是:在连续时间内,对每100个随机波浪按其瞬时波高从大到小排列,求出前1/3部分最大瞬时波高的平均值,此即称为1/3有效波高。根据1/3有效波高在浪级表中所处的位置,可得到相应的浪级,即海况等级。
7 J1 ^: r; H0 C7 O 表1 海况级(浪级)表 # H' M7 l% T9 ?
! z6 Y( R$ G7 X$ @; W$ V7 I8 Q% e
为了更准确的判断海况等级,将原始数据标定一个海况等级标签,本研究根据海浪真实物理特性与图像质量特征,通过以下几个步骤进行预处理: 9 y$ h2 ]+ B) } T2 M2 N2 G1 [+ ^
首先,通过分析已获得的浮标数据,包括风的速度、周期,波的高度、平均周期等参数,计算图像所对应的1/3有效波高值,进一步确定图像所对应的海况等级,这有利于后期模型训练的准确性;
8 n" i8 A" t/ B* S1 Z0 w 其次,将标定好的数据按照统一的分辨率进行切割,本研究将分辨率为2880×300的原始图像且切割成分辨率为480×260的图像,然后根据图像的平均亮度去除未显示出来的图像以及质量较差的图像; # b/ a( g. d6 _6 c1 _3 E. a
最后,将全部数据按照海况的等级进行分组,分到2、3、4、5级海况图像数据集中,每组图像按照天气条件、光线情况、模糊程度还可以进一步细分,同时保证图像质量可适应深度学习模型训练,部分预处理后的海况图像如图所示。 4 O8 Q' B" V# D& e% ~1 W) Z
sales@brightocean.com.cn 8 c2 J0 G% }% Y6 w
图2 2级海况图像
7 J. M, @/ u9 ~6 J0 v- Z" v' N 1 u* w2 v7 s& @# {& {. ?! W
图3 3级海况图像 2 E6 ~$ r% w7 O9 a
! e8 J7 X' E! |3 H# t2 n: } 图4 4级海况图像 2 V7 H% W% z5 }" u0 ~
7 l0 M; ]* l. Y
图5 5级海况图像
6 i4 O" b% U7 [3 a- Q 5 深度学习算法模型构建与训练 5 b$ m; R, q& d: {1 ~: |) ?6 o
1)深度学习算法模型构建 . S6 N8 l* z% |5 U1 b4 U
卷积神经网络(CNN),本质上是一个多层感知机,但是由于它的局部连接、权值共享及空间或时间上的次采样特性,驱使卷积神经网络能够在处理二维图形时具有一定范围内的平移、缩放和扭曲不变性。典型的卷积神经网络模型结构通常由输入层、若干层卷积层和池化层、若干层全连接层及输出层组成,卷积神经网络基本组成结构如图所示。
% e% u6 E+ X7 b9 Z0 M) s' [! L- K 2 i6 ?2 f* P9 |- U
图6 卷积神经网络结构图 * Z: Y5 B2 w% ?/ }4 D: R+ M$ H
卷积过程:图中的Ci层表示卷积层,相当于一个滤波器,该层的输入特征与卷积核进行卷积操作,经过激活函数便可以计算出输出特征。若第l层表示卷积层,则第l层第j个特征图的计算公式为:
! R4 v8 i/ e* a' X% U1 B (1) 8 [) G) X* z1 S1 B' Z( M9 n% ?& C
( q! Y! ^" j g# j; m" t1 Y
式中,为卷积操作;为第l-1层第i个特征图;为和之间用于连接的卷积核;为的偏置;为选择的输入特征图;f()为线性激活函数,本文所有试验均采用Relu作为激活函数,有效地避免了梯度消失问题。 ' U9 K; `( R* w! C1 @( f) o# T
池化过程:图中的Si层表示池化层,又称下采样层,该过程可以减少网络模型的训练参数,从而降低模型复杂度,提高模型的泛化能力。若第l层表示池化层,则第l层第j个特征图的计算公式为: ! N% B4 C7 {7 `' t1 s" d- K
(2) 4 Z# Z8 C v. T( l8 [
' B( e, B6 R) t" M6 @: F' S 式中,为的池化参数;为第l-1层第j个特征图;down()为池化函数,又称下采样函数;为的偏置。卷积层首先对海况图像的纹理、颜色等底层特征进行提取,然后利用池化层对重要特征进行筛选,最后将提取到的特征进行组合,形成高阶语义特征,利用高阶语义特征对海况图像的等级实现分类。
0 T; N; T4 L" E9 W& a
% R2 j) Q+ l+ {$ P) T/ W 图7 卷积操作图 ; k# k. w X1 B" o( U F1 v: |
海况等级图像特征的有效提取和表达是实现海况等级分类中的重点,相比于传统的特征提取方法(如SIFT、HOG、GIST等),CNN能够对输入图像逐层提取从底层到高层的特征,创立底层信号到高层语义特征的映射信息,充分降低了海况等级分类的底层视觉表达与高层语义信息之间的“鸿沟”。 " a: c$ E' L( T" [7 b- P
模型主要包括两个部分:特征提取和分类。首先将有海况等级标签数据集随机分为训练数据集和测试数据集,训练数据集输入迁移学习算法模型后,经过前向传播(feedforward,FF)得到模型输出;然后计算模型输出和实际数据标签的误差,根据误差求导计算梯度,前几层微调,最后输出层重训练,通过反向传播(backpropagation,BP)更新网络,如此往复便进行训练优化;最后通过Softmax分类器获得分类结果,得到有效的海况分级模型。
8 g, S8 W/ q; n4 z$ x
& n# s. ^9 {. P: p, B 图8 迁移学习海况分级模型示意图
* G* _) J& L$ v' [( ?& ?: H 为了得到理想的分类效果,深度学习需要大量有标签样本海况数据集训练复杂的网络结构。其中下载的海况数据集数据量较小,对于数据集而言是一个挑战。因此,本文采用数据增广策略增加本文研究中有限的样本数据,以实现稳健性更强的深度网络学习。海况图像数据具有的旋转多变性、尺度多样性等特征,因此可以进一步增广样本数据。具体而言,本文将镜像和旋转应用于海况图像样本数据,分别对原始和转置图像分别进行随机0-30°的旋转操作,使用该策略可将原始数据扩大数倍。
8 X, g. q S, @9 L* r5 @ 由于训练CNN模型需要足够数量的有标签数据,但实际应用中收集如此多的有标签海况等级图像数据集是个难题。面对海况等级领域有标签数据集匮乏的问题,采用迁移学习方法,运用已有知识和模型学习相关领域问题,可有效解决有标签海况等级图像数据不足的问题。ImageNet是当下最大的图像识别数据库,样本多样性强且类别覆盖范围广。海况等级图像在图像纹理、线条、色彩、结构上的特征与ImageNet图像有很多的相似之处,因此,本文使用迁移学习策略,将从ImageNet上学习到的权重作为模型的初始权重,而不是随机确定初始权重从头开始训练;然后使用海况等级数据集对预训练CNN模型进行微调,使用一个较小的学习率通过继续反向传播对CNN网络的权重进行优化,可以微调网络的所有层,或者冻结前面的几层,仅微调网络中较高的层,使得仅需少量的有标签海况等级图像据便可获得很好的分类效果。该策略不仅能有效解决小样本数据训练模型易产生的过拟合问题,同时也能够大大缩减模型训练的时间,并且迁移学习策略可有效实现海况等级分类。
9 c& O A, x. L* e$ P 考虑到此为应用于船载的图像设备中,因此,需要考虑以下几个方面:模型容量,即模型容量通常是指模型的表征能力,以及对相应任务特征空间的刻画能力,其与模型的参数量和网络结构息息相关;模型参数量,即模型参数量的多少直接影响着模型拟合能力的强弱。模型参数量越多,模型拟合能力越强,对训练数据的需求越大;模型结构,即网络的深度对于卷积神经网络模型性能的提升具有举足轻重的作用,但模型深度的增加同时也会带来梯度消失及网络性能退化问题越容易过拟合。经过分类数量、参数量和网络结构综合考虑,本次选择的基准分类模型为VGG16网络。
! `9 ~6 W$ _5 _3 [/ O0 Y# N 为了将卷积神经网络算法更好的引入到我们所需要的海况分级任务当中,我们在VGG16模型的基础上,针对海况图像特性以及实际任务需求对模型做出了改进。经过多次实验和反复参数调整,根据最优化原则,构建的重训练学习模型一共包含三个带权值的层,其中第一层为卷积层,后面连接两个全连接层,第一个全连接层负责组合卷积层输入的底层特征构成了模型的特征提取部分,将输入的高维特征映射到样本的标签空间后再进行分类。卷积核均采用2×2的维度,在滑动步长的设置上均为1×1,边界填充的方式均为“SAME”,对应的各层特征提取通道,每个卷积层的最后均进行局部的响应归一化(LRN)处理,如图所示: " f4 p3 ~) n7 v! F6 r
3 d8 ]% }5 C1 F1 ]9 i( H
图9 卷积层结构图 + [5 J/ {1 q4 j* z" x- {
(3)
' |8 H" z A( u) l# t9 X. z! s- h; B& g& V" q( i$ P$ z
其中,代表归一化后的数值,i代表更新的第几通道,代表即将更新的元素位置,为前一个层级的输出值,、、均为相关的系数。
) g7 T$ L$ A% @5 d$ M0 y) {4 t: a# r. Z3 U. |
图73 全连接层结构图
+ @8 ?% c/ }% c! \1 A4 J3 W" { 特征经过卷积层和局部归一化处理后,实现了高维特征提取和映射,所有的特征数据重置为一维矩阵后最终进入全连接层,经过防过拟合策略处理,得到预测的高度异常值,通过预测值与实际观测的高度异常计算损失函数,根据反向传播和梯度下降方法实现模型优化训练。
a) I+ j4 P Q4 U; v 2)深度学习算法模型的训练 $ L; [! U5 o! D2 D
卷积神经网络参数的更新主要依靠在模型训练过程中的前向、后向传播。首先在模型的前向传播过程中,数据样本通过网络模型的输入层进入卷积层,由卷积核上的权重和偏置相加,通过选择的激励函数非线性变换,得到卷积后的特征提取图,其后连接池化层,通过下采样过程在保存特征数量的同时而仅仅使特征图尺寸减小,经过多个卷积和池化层组合后,最后到达输出层,得到预测结果。根据梯度下降原则,在反向传播过程中不断更新权重矩阵和偏置,具体过程如式:
) {" T4 b7 u# v* l, C: w4 v (4)
' p# }& Q% w3 X0 r" I1 H& m/ r* w9 \0 ~8 P3 C" ^0 `
(5)
9 {7 {5 ]; o8 y w2 N# ]6 z! N, O2 {
其中首先计算j层卷积层上的权重和偏置的梯度,计算出当前学习率下的梯度下降方向和距离,如式所示:。
0 b1 o: D$ T% {7 N% s& }; E+ E (6) ; n, S( K2 a! e( `( ]4 f0 |
" w- }# e' r, p3 d3 F, O P
(7)
- x N2 L/ x8 p6 z; R% B7 B, G u6 D# l% ~$ N1 @
(8) $ E. J) C) C$ b/ Z0 c3 ?
7 }" X. L1 ]- o+ N (9) 3 c0 ^; V9 z, S# e1 s5 q; Q1 U
# [ b3 Q2 z# A
对于层卷积层上的权重和偏置而言,从最后的输出层根据损失函数的误差,沿着梯度下降的方向不断迭代和更新,直到在训练过程中权重和偏置矩阵令损失函数值最小化,达到最优解为止。
7 q* C V! F6 z/ K( h6 | 根据本文构建的模型后,对于第一层而言,则将收集的海况分级数据送入特征提取网络,再通过模型训练得到海况分级预测效果,并真实的海况分级效果进行,根据误差的反向传播更新梯度,并最终选取未参与训练的海况分级数据进行测试,验证分类模型的精确度。 0 O% L% g. z Y) g; C# Y& C+ c
对于第i层的卷积核进行参数初始化后,对上一层特征矩阵进行卷积操作,对应的元素累加之后在加上相应网络层上的偏置得到每一层上的总和Z,在对Z进行相应的激励函数,得到本神经网络层上的输出特征矩阵:
Z! P$ G: {& f, H3 w (10)
/ F6 u- ^6 {% j; a: C9 K
- m. W1 p/ s( @ S4 X8 G 神经网络的参数权重更新主要依赖于反向传播计算,实现误差函数最小化。计算各层的残差以及梯度,实现反向传播的更新。首先,在正向传播的过程中,输出层的预测值与实际观测的误差存在,则上一层的输出为本层的输入;而反向传播的过程中,已知本层的误差,反推上一层隐藏层的误差,进而推导出W和b的最终梯度值,例如,对于第j层卷积层而言,代表卷积层上一层的输出,为第j层的残差,n为样本数,则权重W的梯度和偏置b的梯度分别为: , }" M. P% ^: g* L( ] w8 B& i: O# h) C8 N
(11)
9 s! c7 V! C/ m# A0 O( {# g) W, l3 u1 t5 _* R
(12)
( w! Q5 o& a, j5 u- \# w
/ g6 N3 C& n* H! M' S 进而根据梯度更新最新的权重W以及b,为ECN模型现在的学习率: ) p) C# o3 U! @' f, q& R
(13)
& y4 G: }$ v2 l! m; _
3 O0 \) ?7 V& n, S. g/ `, K (14) * x; x% n! V! L" ~1 l7 G% z+ }2 M
/ Q; A7 m! u$ j; u0 C$ S) F( J4 V
模型通过调整双向的权重,训练拟合过程中优化模型。为模型在第二层卷积层训练的权重梯度下降的分布图,横轴表示权重值的大小,纵轴表示以此权重值为中心的权重数量,切片则是随着迭代次数的排列,之前的切片颜色深,较新的切片颜色浅。 7 B8 y2 G& q. {$ h Z
. W; L/ M* \2 M }3 f7 M! y
图10 模型卷积层权重直方图
/ I* q4 C4 t' H6 f4 S, u6 @. J 3)实验及测试
. c t4 A- g4 q1 b# a! { 为了模型能够顺利搭建,需要准备相关的软硬环境进行开发。目前,深度学习平台较多,主要包括:Tensorflow、Caffee、Theano等。本文选取谷歌发布的开源平台TensorFlow,其具备支持多平台开发,以张量和计算图的思想为主,解决复杂数学问题时计算速度较快,支持并行和分布式,支持GPU加速,模型的稳定性及通用性较高等特点,在学术界和工业界皆有大量应用,图为TensorFlow的计算图示意结构:
1 H* S- L7 f8 m1 v1 q1 n6 `+ O
' ?! s o4 ^5 E5 m 图11 TensorFlow计算图
; ~, ~) U+ {9 ~) B* ?8 w3 g5 t% y- q 本文根据自身条件和需要,选择在Win10系统上开发,安装Anaconda,选取Python3.6环境,同时因为训练过程的模型基础架构为CNN,为了开启GPU加速,安装了Tensorflow-GPU的2.0版本以及Cuda+Cudnn。当然,其他的科学计算库也进行了安装,包括Numpy、Sklearn等。在经过模型训练后,一些数据处理以及出图方面,选取的软件为Matlab R2019a。 0 z" ?. w' ~5 J, n
在模型训练传导过程中,当预测值与实际值之间通过均方根误差损失函数后,需要通过误差的反向传播来计算梯度,进而优化算法。在训练方式的改进方面,即以损失函数的最小化(最大化)为目标不断逼近,进而模型内部的参数根据反向传播过程一层层的更新权重,其中为了有效的训练模型并得到精确的权重结果,应选取合适的优化算法以及学习策略,以便更新与计算相应的网络参数,逼近最优化权重值,控制方差最终使训练的模型结果收敛,而权重每次的更新方式如下所示: $ \$ c+ l# p0 ^- m: ]
(15)
* q, t* P3 }+ Q& x( |
7 Z1 f- @! f1 s; u% X- q 即权重的每次更新都是朝着目标梯度下降的方向更新,代表学习率,传统批量梯度下降将计算整个数据集的梯度,权重也通常只会一次更新,在处理大型的数据集样本时速度非常缓慢且更新过程可控性较差,甚至导致溢出的问题。而学习率决定着权重更新速度的快慢,权重的不断更新,最终在误差曲面内收敛至全局最优,但同样可能陷入局部最优陷阱。
8 Q- M/ Y) M0 o3 S 其中,小批量梯度下降方法是应用在大数据集上的一种是为了平衡BGD(批量梯度下降)与SGD(随机梯度下降)优点的算法,每次更新权重的方式是随机选取合适的更新速度以及更新次数的小批量的样本数进行模型训练,通过目的是为了让训练的速度比较快的同时,仍然能保证模型训练算法的准确率,解决了内存瓶颈以及收敛波动性的相关问题。 ) ]1 E" t9 Q( P
本文中算法模型选取Adam(Adaptive Moment Estimation)算法,其能基于训练数据的迭代更新过程,自适应的计算每一个参数的学习率。与传统的随机梯度下降算法学习率单一且保持不变的方法不同的是其可以在训练过程中为不同的训练参数设计自适应的相关学习率,算法同时基于一阶的矩均值和二阶矩均值,对梯度的相关指数移动均值进行了计算。 9 a. M9 g5 d/ C$ N V
同时,过拟合是模型在训练拟合的过程中,由于样本往往不符合独立同分布的假设,因此在选择抽样上具备抽样误差,难以对整个样本数据集进行精确的分布估计,而复杂的模型也会尽量考虑所有的抽样误差,从而拟合所有的抽样数据。本文中设计的模型为了防止此现象的发生,在构建模型的过程中,选用了L2正则化、Dropout以及Early Stopping方法。 $ C. |4 j, A3 x' A% }7 A
6 模型结果及海况波高识别
$ ?- g6 C8 y5 N& F! ?: ^8 K/ A2 n; I 随机把海况图像数据集中图片的70%分为训练集、另外30%作为测试集,本此选取的评价指标为准确率,即测试集预测标签和测试集实际标签的准确程度,在训练过程和实际测试过程中,对二级、三级、四级和五级海况进行分类,基于VGG16网络的迁移学习测试结果如图所示,红色的为训练集准确率测试结果,蓝色的为测试集准确率结果,可以看出基于VGG16的迁移学习效果较好,训练集准确率结果接近99%,测试集已经也最终达到了4类海况90%以上的准确率。 ( c6 S: e( c6 C0 Y
) D- s* ^( ]' P& i8 R6 b 图12 模型训练结果(红色为训练集准确率,蓝色为测试集准确率) ! W4 [3 C9 Z- o, o, J9 b! I a
综上所述,在模型每次训练过程即自动保存目前为止表现最好的测试集模型,若当连续50个Epoch以上不能达到更小的损失函数值时,则认为准确率不会再继续提高,训练过程停止迭代,此时选取最优化的测试集损失函数模型,防止过拟合,实现基于迁移学习的海况分级模型算法,实现了海况等级的准确推算,再根据各级海况的波高表,实现对海浪波高的精确识别。返回搜狐,查看更多
5 j- a7 @. p' i# U& @2 Z0 T4 e: F( B$ S: n( {' \, U
责任编辑:
# ~$ S4 M$ M3 E: R: L U4 H8 |* o1 P9 r0 e* v
5 O' F' l+ U! q* x' M
$ Q5 G" g1 A% X* h0 C9 \. V) h4 V2 r b. l# d' x# t. i; z
|