卢言
(瓦房店市高级中学,辽宁大连,116300)
目前,海参,海胆等海产品的捕捞很大依赖于潜水员人工捕捞。但是,近年来潜水员在工作时遇难的报道屡见不鲜,究其原因还是潜水员的水下工作环境十分恶劣,险象迭生。潜水员在水下长时间工作还容易患上诸如气体栓塞、减压病等疾病,甚至危及生命。而且人工捕捞还存在效率较低,成本高昂等诸多弊端。
为实现水下物体的自动化捕捞,一款可提高海产品捕捞自动化程度的智能水下目标检测识别系统应运而生。该系统具有如下优点:
①可以大幅减少潜水员的工作量,降低潜水员罹患职业病的风险。
②有助于提高捕捞自动化程度,降低捕捞成本。
③大大提升水下捕捞工作的效率。
图1 基于单片机的智能水下目标检测识别系统的总体框架图
本文设计了一款智能水下目标检测识别系统,该智能水下目标识别系统以jetson tx2为主控核心,通过电脑控制水下目标检测识别系统,实现水下目标物体的检测和识别,在渔业捕捞领域有重大应用前景。该系统到达水下指定区域时,通过电脑开启水下目标检测识别系统的GPS模块、图像识别模块以及双目摄像头。图像识别模块开启后,系统将通过双目摄像头采集到的图像进行检测与识别,并通过GPS模块返回目标海产品的位置,然后通过socket模块将被识别的海产品的位置,数量,深度等信息传输至电脑,今后也可以通过在jetson tx2的GPIO增加吸泵或机械臂等装置。该智能水下目标检测识别系统可以检测并识别水下海产品,并提供海产品位置等有效信息,这对今后提升海产品捕捞的自动化程度有重要意义。
jetson 2是基于 NVIDIA Pascal™ 架构的 AI 单模块超级计算机,具有体积小、功耗低(7.5W)、计算能力强大等诸多优点。本文以搭载ubuntu系统的jetson tx2为主控核心,控制各模块协同工作。其环境搭建过程如下:
(1)前往英伟达官网下载ubuntu,至jetson tx2的SD卡上。下载地址:http://www.geforce.cn/drivers。
(2)配置环境
①安装依赖库。
②安装BLAS。BLAS (Basic Linear Algebra Subprograms)是一个基本线性代数库。
③安装opencv。opencv的全称是:Open Source Computer Vision Library。它是一个跨平台计算机视觉库,基于BSD许可(开源)发行,它实现了图像处理和计算机视觉方面的很多通用算法。
④安装CUDA。CUDA(Compute Unified Device Architecture),是由英伟达推出的运算平台。 通过CUDA可以大大提升训练速度。
⑤安装cuDNN。
⑥安装 caffe。Caffe(Convolutional Architecture for Fast Feature Embedding)。是一种常用的深度学习框架,主要应用在视频、图像处理方面的应用上。具有清晰,可读性高,学习快速等优点。
GPIO(General Purpose Input Output),又称总线扩展器,它能够提供额外的控制和监视功能。具有低功耗,低成本,布线简单等诸多优点。
2.3.1 MYNTEYE双目摄像头
双目摄像头利用仿生学原理,通过标定后的双摄像头得到同步曝光图像,然后计算获取的二维图像像素点的第三维深度信息。采用MYNTEYE双目摄像头,可以使捕捞工作更加精确,高效。MYNTEYE双目摄像头内置IMJ并配备2颗彩色图像采集摄像头,可以提供高达1280x720的深度分辨率,最高帧率可达80fps,识别深度可达10m+。并且可以无需依赖终端计算,直接输出深度图像, 其内置两颗红外(IR)探测器,可以有效增加对水下目标的识别精度。并具有精度高,成本低等优点。在本系统中,MYNTEYE双目摄像头将图像、深度信息保存至jetson tx2,图像识别模块对图像中的物体进行检测并识别。
2.3.2 GPS模块SKG10B
GPS模块就是一个集成了RF射频芯片、基带芯片、核心CPU,再加上相关外围电路而构成的集成电路。GPS模块工作时,接收机精确的计算出它所收到信号发射和被接收时间的差值,再乘以光速从而得到接收器与卫星的距离,接收三颗卫星的信号后,利用三维坐标距离公式可以得出接收器的位置,但是卫星与接收器的时钟往往不同步,导致定位误差较大,所以引入第四个未知数-钟差,使定位精度大大提升。以上就是GPS定位的基本原理。
本系统采用的GPS模块SKG10B的工作电压为3.0-4.2V,功耗为50mW,定位精度为3米,最大更新频率为10Hz,具有高灵敏度、低功耗、小型化等诸多优点。安装该GPS模块后,不仅可以返回水下目标的位置信息,还可以通过电脑实时监控水下目标检测识别系统的位置,防止因突发状况导致水下目标检测识别系统遗失。
socket是两个节点之间的数据传输,通常属于C/S架构,两者基于TCP协议进行双向连接。
如图2所示,TCP的连接需要三次握手。第一次握手:客户端发出连接请求,此时客户端向服务器发出SNY J包。第二次握手:服务器接收到连接请求,即接收到SYN J 包,此时服务器向客户端发出SYN K ,ACK J+1包进行应答。第三次握手:客户端接收到应答,即收到SYN K ,ACK J+1包,客户端向服务器发出SYN K包进行确认。三次握手完成,连接建立。
图2 socket通信的三次握手协议
在本文设计的系统中,水下目标检测识别系统通过socket通信与电脑实现信息传送,这样,可以在电脑实时监测水下目标检测识别系统位置和水下目标的位置信息。
卷积神经网络(Convolutional Neural Network,简称CNN),是一种前馈神经网络,可以进行大型图像的处理。CNN的最大特点就是权值共享,权值共享网络结构的优点是可以使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程,从而降低了网络模型的复杂度,减少了权值的数量,该优点在网络的输入是多维图像时表现更为明显。
图3 卷积神经网络的工作过程
卷积神经网络的工作过程如图3所示,具体步骤分为输入层(InputImage)→卷积层(Convolution)→采样层(Pooling)→全连接层→参数求解。CNN的输入层一般为一个n维矩阵,可以是图像、向量化后的文本等等。卷积层的作用是滤波、去噪、找特征,不同卷积核做卷积会得到一系列feature map并作为下一层的输入,卷积的过程大致可以理解为用一个3x3卷积核在一个5x5输入层上进行有效填充,并得到一个3x3隐藏层,权值为卷积核且所有隐藏层共享该权值。通过卷积后,参数数量虽然大幅减少,但是参数依然很多,容易出现过拟合或者欠拟合等问题。下采样可以有效解决该问题,常用采样有两种,一种是Max-Pooling,即将Pooling窗口中的最大值作为采样值,另一种Mean-Pooling,即将Pooling窗口中的所有值相加取平均,平均值作为采样值。全连接层是输出层和前面若干层的过渡层,用来组织生成特定节点数的输出层。
图4 Faster R-CNN
RPN的全称是(Region Proposal Network),它是一个全连接的卷积网络,通过end-to-end的方式训出来高质量的region proposal,然后将Faster R-CNN训练好的卷积特征和Fast R-CNN共享,从而完成对目标的检测。Faster R-CNN(如图4所示)相对于其他算法检测速度大幅提高,原因是它设计了提取候选区域的网络RPN,代替了费时的选择性搜索。Faster R-CNN的步骤大体为:
①对整张图片输进CNN,得到feature map。
②卷积特征输入到RPN,得到候选框的特征信息。
③对候选框中提取出的特征,使用分类器判别是否属于一个特定类 。
④对于属于某一特征的候选框,用回归器进一步调整其位置。
本文设计的智能水下目标检测识别系统可以准确快速识别水下目标。在海产品捕捞领域,该系统可以高效的识别水下海产品,为自动化捕捞提供大量有效信息。也可以通过增加吸泵、机械臂等装置替代潜水员完成海产品捕捞工作,这样不仅可以大幅降低捕捞成本、提高捕捞效率,还可以降低潜水员因长时间工作罹患职业病的风险。