基于卷积神经网络的AUV 水下识别系统

2021-03-19 07:16王俊雄黄伍德
船舶与海洋工程 2021年1期
关键词:矩形卷积神经网络

李 昱,王俊雄,黄伍德

(1.上海交通大学 船舶与海洋工程学院,上海 201100;2.上海船舶设备研究所,上海 200031)

0 引 言

自主式水下机器人(Autonomous Underwater Vehicle, AUV)在海事研究和海洋开发领域具有广阔的应用前景,在水下信息获取、精确打击和“非对称情报战”等方面也有广泛应用,现已成为世界各国研究的重要内容[1]。AUV 需通过导航系统实现高精度自主导航,其基本惯性导航系统一般采用捷联式惯导。由于工作环境的限制和惯性器件产生的固有漂移误差的影响,单一的导航设备无法满足AUV 长期高精度导航的需求,需采用组合导航系统。AUV 在远距离端一般采用水声引导的方法或惯性导航系统与多普勒速度计程仪组合导航的方法接近目标物,对导航精度的要求并不高,近距离端导航定位才是AUV 进行水下目标探测的关键[2]。目前,用于进行水下测量的传感器有惯性导航传感器、声呐传感器和视觉传感器等,其中:惯性导航传感器测出的是物标与水下机器人的相对位置,由于累计误差的产生,测量精度会随着时间的推移而下降,一般应用于水下远距离端的导航中;声呐传感器分为长基线、短基线和超短基线等3 种,其测量精度较低,不适用于复杂的水下环境;视觉传感器具有成本低、体积小、运动方式灵活等特点,适用于局部的精确定位,是近几年各国重点研究的传感器。AUV 的水下视觉引导一般是通过摄像机获取目标物信息,由此进行目标物识别和测距定位[3]。

水下目标自动识别是目前水下识别技术的一个主要研究方向,如何对图像进行特征提取是目标识别领域的一项重要研究内容。当前卷积神经网络[4]广泛应用于物体检测、动作识别和图像分类识别等领域中,能有效提取特征,其性能远优于传统方法。基于卷积神经网络的视觉导航系统能使AUV自主识别目标物,大幅提升其图像特征提取和图像识别能力,实现对近距离目标物的精准定位[5-6]。本文搭建一种AUV系统平台,通过试验获取水下矩形木框和三角形木框图像,根据LeNet-5神经网络框架模型[7-10]设计一种13层卷积神经网络,完成水下矩形木框和三角形木框的二分类试验。

1 AUV 系统平台搭建

1.1 AUV 系统结构

本文设计的AUV 主要由树莓派主机(Raspberry Pi)、PIXHAWK 飞控板、电池仓及外壳、蓄电池、螺旋桨推进器、无刷电机驱动板、三轴陀螺仪模块、温度/深度等传感器、水泵、摄像头、电力猫模块和水上通信模块组成,可通过地面站和手机APP 的控制实现水下航行,其前置摄像头可通过电力猫模块向手机传输视频数据,显示在水下拍摄的图像。Raspberry Pi 体积小,易于安装,具有丰富的硬件接口,易于开发;摄像头可通过有线方式或插入无线网卡的方法实现与水下机器人控制系统的连接。因此,本文采用搭载4 核Broadcom BCM2836 芯片的Raspberry Pi 搭建AUV 系统平台。AUV 系统结构图见图1。

图1 AUV 系统结构图

1.2 AUV 水下视觉系统

1.2.1 AUV 水下视觉硬件系统

AUV 水下视觉系统是AUV 获得水下环境视觉信息所采用的主要工具,是AUV 设计的一项重要内容。本文设计的水下拍摄实现原理为将摄像头通过USB(Universal Serial Bus)接口与Raspberry Pi 连接,待Raspberry Pi 经设定程序开机之后,采用Python 编程驱动摄像头工作。选用的摄像头型号为USBFHD06H,像素尺寸为12.8×11.6,最高有效像素可达2000×1121,可输出的图像格式有H264、MJPEG 和YUV2,工作电压为5V(直流),工作电流为140~190mA。

该摄像头通过USB 连接Raspberry Pi(见图2),由此获得电源,同时在Raspberry Pi 的控制指令下进行开启或关闭;摄像头可初步满足工作的控制要求,拍摄精度满足水下摄像的要求。

此外,由于水下光线不够充足,在AUV 的摄像头两端分别加装照明灯装置,为AUV 水下拍摄工作提供充足的光源,摄像机通过水下密封罩安装于AUV 正前方。图3 为AUV 视觉系统整体安装模型图。

图2 USBFHD06H 摄像头及其与Raspberry Pi 连接图

图3 AUV 视觉系统整体安装模型图

1.2.2 AUV 水下视觉软件系统

Raspberry Pi 没有预装操作系统,需先将操作系统下载到SD 卡上,由SD 卡导入Raspberry Pi,重启之后完成操作系统安装。Raspbian 是Raspberry Pi 特有的基于Debian 的操作系统,其硬件驱动程序根据Raspberry Pi 的硬件优化,可为Raspberry Pi 提供一个稳定、快速的系统平台。基于在固件、核心成分和应用等方面的改进,Raspbian 是较为适合普通用户使用的操作系统。Raspbian 预搭载的编程开发环境是Python语言,其具有完善的标准库,且易于编程。

OpenCV 是一个开源的跨平台计算机视觉库,可在Linux、Windows 和MacOS 操作系统上运行,支持跨平台使用,具有轻量级和高效的优点,可提供大量图像特征检测方面的算法函数,执行效率较高,使用方便,可支持Raspberry Pi 运行的Raspbian 操作系统,并使用Python 语言做开发语言。

TensorFlow 是谷歌基于DistBelief 研发的新一代人工智能学习的开源系统,是张量从流图的一端流动到另一端的计算过程,可将复杂的数据结构传送到人工智能神经网络中进行分析和处理,具有完备的标准库,广泛应用于语言识别和图像识别中,与Python 语言兼容。

本文在Raspberry Pi 上安装Raspbian 操作系统,并安装编译器GCC4.3、QT4.5 和OpenCV 3.4 软件工具包。本文所述水下识别系统在Linux 操作系统下利用QT 库开发图形界面,以OpenCV 图像处理库为基础,通过对库中提供的相关函数进行处理获取数据集,结合Tensorflow 对获取的数据集进行分类处理。

在水下搭建三角形木框和矩形木框试验平台(见图4),在AUV 航行过程中对矩形木框和三角形木框进行拍摄,图像采集模块可通过 cvCaptureFromCam()函数,从摄像机中得到水下矩形木框和三角形木框图像。

通过cvCaptureFromAVI()函数调用从本地保存的图像文件;通过cvSetCaptureProperty()函数对返回的图像进行结构设置。通过start()函数开启定时器,每隔一段时间调用一次自定义函数;通过cvGrabFrame()函数,从视频流中获取一帧图像并进行存储;通过cvRetrieveFrame()函数对存储的图像进行处理和显示。程序流程见图5。

图4 水下矩形木框和三角形木框试验平台

图5 程序流程

目前AUV 水下对接坞站口一般为三角形和矩形,因此在水池中搭建矩形木框和三角形木框试验平台,通过上述过程,从不同角度进行拍摄,共获取1340 张图像,部分数据集见图6。

图6 水下拍摄部分数据集

2 卷积神经网络结构

本文采用卷积神经网络对矩形木框和三角形木框进行分类,数据集来自于AUV 在水下采集的三角形木框和矩形木框图像,采用1340 个像素为100×100 的RGB 图像,在此基础上设计卷积神经网络网格图(见图7)。

图7 卷积神经网络网格图

本文设计的卷积神经网络共有13 层,有关矩形木框和三角形木框识别的详细过程如下。

1) 输入层:采用双线性插值算法对原始输入图像进行缩放处理,将图像的像素缩放为100×100。

2) Conv1-Relu1 层:该层是一个特征提取层,利用32 个5×5 的卷积核对原始图像进行卷积计算,提取特征,并获得32 个像素为100×100 的特征图。在第一层卷积层,采用32 个像素为5×5 的卷积核对输入层像素为100×100 的图像进行卷积计算,提取特征,卷积核步长设置为1,采用图像边缘自动补零的方法对输入图像进行卷积计算,最终得到32 个像素为100×100 的特征图。本文拟采用ReLU 激活函数对卷积结果进行激活,提高模型收敛的速度,计算式为

式(1)中:X 为输入图像,Y1为Conv1-Relu1 层输出特征图;ω 为卷积核;b1为偏置项。制造噪声,增强鲁棒性,最终得到Conv1-Relu1 层特征图。

3) Max-pooling 层:该层是子采样层,对Conv1-Relu1 层得到的32 个像素为100×100 的特征图进行二次特征提取。本文采用32 个像素为2×2 的卷积核分别对Conv1-Relu1 层得到的32 个像素为100×100 的特征图进行卷积计算。卷积核移动步长为2,采用图像边缘不自动补零的方法,最终得到32 个像素为50×50的特征子图,计算式为

式(2)中:Xij为Conv1-Relu1 层输出特征图;Y2为Max-pooling 层输出特征图;b 为偏置项。式(2)采用2 倍速对特征图进行缩放,缩小的速度过快会使得到的特征图过于粗糙,缩小的速度过慢会使计算量过大。为得到更多的图像细节[13],一般将缩放因子设为2;为能有效控制特征图的缩放速度,之后子采样过程的缩放因子也都设为2。

4) Conv2-Relu2 层:为更好地提取出图像的局部特征,扩展神经元的感受野,对Max-pooling 层得到的特征子图像进行二次卷积操作,该层采用64 个像素为5×5 的卷积核,移动步长为1,图像边缘自动补零,遍历整个特征子图,最终得到64 个像素为50×50 的特征图。通过前2 层操作之后,神经元的感受野较原始输入图像扩展为10×10,经过该层操作之后,每个神经元的感受野又增加5 倍,扩展为50×50,同时特征图个数也增加1 倍,增加至64 个。

5) Max-pooling 层:该层同样为子采样层,对Conv2-Relu2 层得到的64 个像素为50×50 的特征图进行二次特征提取。为控制图像的缩放速度,同样采用64 个像素为2×2 的卷积核,卷积核移动步长为2,采用图像边缘不自动补零的方法,对遍历Conv2-Relu2 层得到的64 个像素为50×50 的特征图进行卷积计算,最终得到64 个像素为50×50 的特征子图。

6) Conv3-Relu3 层:为增加卷积神经网络的深度,提高分类的准确性,继续采用128 个像素为3×3 的卷积核遍历上一层得到的特征图,卷积核的移动步长同样设为1,采用边缘自动补零的方法对上一层得到的特征图进行卷积操作,得到128 个像素为25×25 的特征图,增加了卷积神经网络的深度。

7) 其余卷积层和池化层:经过Conv1-Relu1 层、Max-pooling 层、Conv2-Relu2 层、Max-pooling 层和Conv3-Relu3 层卷积和池化之后,提取的特征已具有表达能力,但其抽象能力依然不够,在试验中,当卷积神经网络只使用前几层时,获得的正确精度分类只有45%。为使提取的特征更加抽象,更具有表达能力,在卷积神经网络中增加卷积层和池化层[11],增加卷积神经网络的深度,利用图7 所示的卷积神经网络对木框和三角框进行分类,得到的分类精度大幅上升,最终得到128 个像素为6×6 的特征图。

8) 全连接层和softmax 分类输出层:经过8 层卷积和池化操作之后,得到128 个像素为6×6 的特征图,为了将分布式特征图映射到样本标记空间内,降低特征位置对分类的影响[12],采用3 层全连接层,将上一层得到的特征图像组合成列向量,最后通过softmax 函数对图像进行分类。

3 试验与测试

本文使用的图像数据集来自于在水下从不同角度对矩形木框和三角形木框进行拍摄得到的图片,共有1340 张。试验基于Linux 操作系统,通过OpenCV 和TensorFlow 软件完成二分类。

通过上述卷积神经网络进行训练和测试,经过4 层卷积层和池化层对图像进行特征提取,采用三段式全连接方式对卷积神经网络进行训练,结果见图8。在FC1 层,输入的神经元数量为4608 个,输出的神经元数量为1024 个,对权重进行dropout 函数操作和L2 正则化,避免出现过拟合现象,采用ReLU 激活函数进行激活;在FC2 和FC3 层,同样对权重进行dropout 函数操作和L2 正则化,分别将神经元缩减为512 个和2 个,FC3 层输出数据经过softmax 层,采用softmax 函数对输入进行二分类。由图8 可知:训练损失随着训练迭代次数的增多而减少,测试准确率随之提高;当训练迭代的次数达到一定数值时,测试的准确率和损失相对处于一个平稳的状态;在此次试验中,经过90 次训练迭代之后,网络基本收敛,网络迭代了100 次,卷积神经网络结构参数优化之后的训练损失值为0.058,准确率达到99.18%。

图8 训练结果图

4 结 语

本文设计了AUV 视觉硬件系统,选用搭载4 核Broadcom BCM2836 芯片的Raspberry Pi,选用型号为USBFHD06H 的摄像头,通过USB 与Raspberry Pi 连接,基于Raspbian 系统,在水下搭建矩形木框和三角形木框试验平台。在AUV 航行过程中,通过摄像头采集木框平台图像,通过OpenCV 获取水下图像,通过 cvCaptureFromCam()函数进行图像采集,通过cvCaptureFromAVI()函数调用从本地保存的图像文件,通过cvSetCaptureProperty()函数对返回的图像进行结构设置并制作数据集,通过start()函数开启定时器,每隔一段时间调用一次自定义函数,通过cvGrabFrame()函数从视频流中获取一帧图像并进行存储,通过cvRetrieveFrame()函数对存储的图像进行处理和显示,并结合Tensorflow 将卷积神经网络应用于AUV 中。在LeNet-5 神经网络的基础上,增加卷积层的深度,扩展全连接层,设计一种13 层的卷积神经网络进行水下目标识别,分别利用4 层卷积层和池化层对图像进行特征提取,采用卷积神经网络获取水下目标特征,采用3 层全连接层对水下拍摄的木框和三角框进行训练分类,分别对卷积神经网络权重进行dropout 函数操作和L2 正则化,通过试验,在进行100 次迭代训练之后,水下目标识别的准确率达到了99.18%。

猜你喜欢
矩形卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
矩形面积的特殊求法
基于深度卷积网络与空洞卷积融合的人群计数
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
从矩形内一点说起