APP下载

AUV自主巡航与色块识别的典型方法与应用前景

2020-11-10李家锐黄栋黄平洋许时镇孔祥峰李慎德陈春雷

无线互联科技 2020年15期
关键词:色块栅格激光雷达

王 慧,李家锐,黄栋,黄平洋,许时镇,孔祥峰,李慎德,陈春雷

(广东海洋大学,广东 湛江 524088)

0 引言

随着科技的进步,人类在水下开发与生产相关的产业中不断加大投入。由于水下作业十分复杂,无缆水下机器人(Autonomous Underwater Vehicle,AUV)自主式水下潜器能代替人高效地完成危险的工作,在特定水域下与人配合,改善人员的工作条件,提升水下作业的效率,因此,AUV的研发愈渐深入。新技术研发的核心离不开识别技术和水下自主巡航技术两大重要领域的发展,因为识别技术是能够高效完成水下工作的前提,利用准确的图像信息,有利于AUV进行快速、准确、稳定的响应;自主巡航技术则进一步拓展了水下作业的活动空间,在没有缆线的束缚下能够更加灵活地适应各种环境。

围绕水下色块识别技术和自主巡航技术,结合其他新技术可以满足如水下探测作业、深水养殖管家等各种应用需求。但是由于水下环境异常复杂,识别技术和水下自主巡航技术的发展显得迫在眉睫。本研究将从AUV自主巡航要解决的两大核心技术进行研究,给出3种水下色块识别常见的典型方法并进行各自的优缺点分析。

1 自主巡航的难点

AUV在水下自主巡航的实现,离不开3个关键问题:(1)AUV如何实现自主定位以及水下复杂环境建模的问题。(2)预定目标定位和环境的探索问题。(3)决策规划和行动控制问题。因此,将从自主巡航所要面临的关键点展开,探讨如何进行自主定位与地图构建以及如何实现AUV水下路径规划。

1.1 多传感器融合同步自主定位与地图构建

因为同步自主定位与地图构建(Simultaneous Localization and Mapping,SLAM)在实际应用中有关键性作用,还有严谨逻辑的理论,许多机器人研究者都喜欢将其作为机器人自主导航的重中之重。考虑到AUV在水下SLAM具有局限性,同时视觉会受到水环境的干扰,本研究着重介绍融合惯性测量单元的三维激光雷达SLAM的方式。

1.1.1 基于三维激光雷达的SLAM

SLAM采用三维激光雷达测距的方法在通过检测栅格占有率来构建三维栅格地图的同时不断进行位置的更新,激光雷达测距原理普遍使用三角测距或飞行时差测距(Time of Flight Measurement,TOF)的方法,三角测距与TOF相比更多地应用于短距离测量,因此也常使用于室内。本研究的研究对象是3D激光雷达,基于TOF测距原理获取探测方向上的点云数据,实现三维的立体扫描,相比于传统的视觉传感器,其优点是抗干扰能力强、隐蔽性好、精确度高和测量区域大。

然而,3D激光雷达建立三维栅格地图的同时,会产生栅格的不占有准确度低的问题。因为是否占有是根据每一帧点云在该栅格上是否存在点从而进行更新,会出现激光束穿过栅格的一小部分,比如边缘部分,而被误认为该栅格不被占有,事实上该栅格有其他部分被占据,从而产生误差,往往三维栅格地图比二维栅格地图出现这种误差的可能性更大,影响更严重。从另一角度,或许可以尝试用解决三维栅格地图栅格不占有准确度低的方法来解决2D中同样存在的问题,理论上也能起到一定的解决效果。已有的实验中给出了解决这个问题的方法[1],公式(1)中Np为栅格被占有的次数,Ne为不被占有的次数,当Np=0时,明显降低栅格被占据概率的必要条件是:目标栅格不仅不被占有,还要多次不被占有。

(1)

1.1.2 融合惯性测量单元的三维激光雷达SLAM

惯性测量单元(Inertial Measurement Unit,IMU),主要由惯性器件组成(陀螺、加速度计等),用于输出如加速度、角速度等最原始的数据。理论上,可以根据里程计和IMU或者激光雷达与地图的匹配,计算出机器人的位姿,但在实际定位过程中,里程计、IMU、激光雷达与地图都包含噪声,因而选择多传感器的数据融合进行取长补短矫正误差。

里程计虽然能快速估计机器人的位姿,但是估计的误差会随着时间逐渐积累;激光在初始化位姿时得到栅格的基础上直接与地图进行匹配,会出现匹配效率较低,甚至会出现误匹配。根据已有的实验发现,多传感器的组合,先利用里程计和IMU的推算作为位姿的先验估计,激光雷达根据先验估计再进行匹配矫正以保证机器人位姿估计的实时性和准确性,将能自主定位并得到更精确的三维栅格地图[2]。

1.2 基于模糊PID过程控制的局部路径规划

在同步自主定位与构建的三维栅格地图之上,类比已有航向控制系统的模糊PID调节船舶转向的研究[3]方法进行改进,基于模糊控制系统,局部进行过程控制系统典型的自适应比例-积分-微分(Proportion Integral Differential,PID)调节,对多输入-多输出的过程控制耦合系统进行解耦[4],成功解耦为3个单输入-单输出的控制系统,解决局部路径规划问题。

1.2.1 测量变送器

反复读取陀螺仪的角度修正前进方向,软件模拟IIC接口并对陀螺仪3个发展方向的原始数据进行读取。再将能够通过算法得到3个方向角度的数据管理平台(Data Management Platform,DMP)无缝移植到STM32上。因为水下机器人的航向在水下会受到洋流、水流速度等因素的干扰,路径规划会存在偏差,基于过程控制系统的常规思路,可先对采样值进行程序判断滤波,再通过算术平均滤波或一阶惯性滤波等数字滤波[5]的方法对当前角度φ′进行处理,使测量值更加真实。

1.2.2 参数模糊自整定PID控制器

图1 含模糊PID调节的过程控制系统

1.2.3 执行器

当前角度与初始角度的不同偏差会产生不同的结果,若结果为0,改变转向电机的占空比;若结果为1,则机器人直行。在三维栅格地图上,行驶过程中可通过判别激光雷达等传感器接收到的信息,躲避前方紧急出现栅格占有率较高的三维栅格,到达新的栅格后此标记点将作为新一轮的起点[7]。

目前,在水下AUV应用的领域模糊PID调节运用比较广泛且多数应用于无人艇等水下机器人推进器、浮力推进系统等领域的研究。基于过程控制系统典型的PID调节,鲁棒性高,调节速度快,可以有效消除水下洋流等环境因素的干扰。结合模糊控制系统与过程控制系统的典型PID调节应用于水下AUV具有十分明显的优势,能够使非线性系统无限逼近于线性系统(基于模糊控制的特性)的处理,但是加入模糊控制器也会存在一些弊端,相比于原来的PID调节,开始会产生比较明显的震荡,可采用模糊滑模控制器的方法[8]进行改善。

2 色块识别的典型方法

AUV的识别技术在海洋领域具有十分广阔的应用和前景,但是在水下复杂的环境中,受到水的色散、折射、流速等环境因素的干扰异常严重,色块识别更是要解决的核心问题。以下将讲解3种分别基于树莓派的OpenCV、基于神经网络的Tensorflow以及基于STM32的OpenMV在水下实现色块识别的典型方法。

2.1 基于树莓派的OpenCV色块识别

无需高昂花费即可轻易完成水下色块识别的计算机视觉库工具OpenCV,用高效简洁的语言进行源代码的编写,实时实现计算机视觉。拥有基于BSD许可的API在各平台得到了广泛的运用。同时结合树莓派占用空间不大、运算速度快等优势,可观的处理速度与优越的性能弥补了水下色块识别的复杂性与计算量的需求短缺并为其带来了巨大的优势,在水下色块识别领域得到充分的展现。

OpenCV识别检测通常采用的两种模型分别为红—绿—蓝(Red-Green-Blue,RGB)模型和色相-饱和度-明度(Hue-Saturation-Value,HSV)模型,RGB模型在电脑和电视机等屏幕上得到了广泛应用,但HSV模型更加适用于色块分析,更加自然且直观。基于AUV处于较为复杂的水域环境,要想实现水下色块识别,离不开以下几个步骤。

(1)根据已有的实验研究,可将读取的图片或每一帧图像转为HSV模型(见图2)并进行均衡化处理(见图3)[9]。(2)用in range(输入阵列src,输入阵列lowerb,输入阵列支援dst)函数检测颜色,输入图像(src)的各像素是否在lowerb(下边界)和upput(上边界)之间能够被有效检测出来,若在该范围内该像素就被置为255并且保存于输出图像(dst)中,不是就置为0。(3)对得到的目标颜色二值图像进行开操作与闭操作(见图4),同时连接一些连通域。

图2 RGB模型转换为HSV模型

图3 彩色图均衡化处理

图4 二值图像开操作与闭操作

AUV通过树莓派调用OpenCV,虽然计算机视觉在图像处理方面含有大量函数且涉及面广,在色块识别方面有所成效,但存在许多缺陷,如十分依赖摄像头等硬件的精度、阈值分割、方式单一、辨识度低等问题,算法处理速度会受到无用信息运行的影响。

根据已有研究,可以在直方图分割条中运用微小的轮廓亮度和预处理阈值的方法,选取适当的条分割处理,然后运用滑块得到理想的预处理结果[10]。该方法能有效解决水域环境中背景颜色与目标物极为相似的难题,减少如蓝色金枪鱼的颜色与海水极为相似导致色块区分不清的情况,极大提高了色块识别的辨识度和准确度。

2.2 基于神经网络的Tensorflow色块识别

神经网络是实现深度学习的有用工具(神经网络可以良好地实现深度学习功能),而且神经网络在图片识别中具有良好的作用。神经网络中的神经元可以通过已知属性特征的不同权值计算出所需的目标,因此使得整个神经网络可以通过深度学习算法提取图片中的图像特征,从而完成图像的识别。神经网络的基本神经元如图5所示[11]。卷积神经系统可以在TensorFlow上进行构建并能够随时被修改,增加神经网络深度,使模型的抽象能力更强,提高图片识别的准确率。

图5 神经网络的基本神经元

卷积神经系统网络的基本结构设计主要有输入层、卷积层、池化层、激励层等[12],如图6所示。输入层直接输入图片;卷积层和池化层对图片进行全局感知,然后对特征进行降维,卷积层通过卷积核读取图片特征的像素点;池化层压缩输入图片,使输出图片的像素等于卷积核的大小。激励层则把各层的运算结果加入非线性因素提高模型的表达能力;分类器则是直接对图片中的物体进行分类[12]。

图6 卷积神经网络的基本结构

总的来说,水下机器人简单运行的过程如下:(1)通过机器学习建立一个水下物体的库。(2)水下机器人通过摄像头捕抓物体的图像信息并将其传输到达上位机分析处理图像,处理时通过卷积和池化,对图像特征进行感知、降维等操作,传递给分类器进行分类。(3)最后对提取的图像与TensorFlow搭建的训练库进行特征比较,从而实现对水下物体的识别。

TensorFlow在水下进行色块识别时由于其具有十分适用的API,尤其像由谷歌开发的图像检测器object detection API,有利于机器人对图像进行分类以及特征的提取,容易实现对目标的识别。可以利用API收集到的数据使水下机器人通过深度学习建立物体识别模型,从而识别物体的功能。

基于Tensorflow进行深度学习的水下图像识别具有显著的优势,可随时填充机器人的数据库,根据需求识别不同的物体。但是也存在一定的缺陷,图像识别需要大量数据,而水下图像数据太少。由于水下拍摄难度大,且网上关于水下物品的图片太少,很难使机器人形成自己的库[13]。此外,水下亮度不够,很容易导致机器人“色盲”,影响机器人的颜色识别,只能通过物体形状去识别。

2.3 基于STM32的OpenMV色块识别

凭借C语言可完成核心算法的机器视觉模块OpenMV,具有低成本、灵活且易使用的优点。OpenMV基于STM32提供了用python语言的编译接口,并且能通过I2C、ADC、UART、GPIO等接口进行硬件扩展,硬件资源十分丰富。

色块识别更完整地描述应该是颜色识别与追踪,具体流程如下:(1)首先,要使用图像分割的一种最简单的方法——二值化处理图像颜色;其次,把最小灰度值以及最大灰度值遍历并用类间方差原理[14]得出最佳阈值,实现目标和背景分离。把灰度图像转换成二值图像后主体像素能有效凸显,轮廓分明,有助于进行图像识别。(2)明确了二值化处理,需要选择颜色空间来实现阈值处理的进行二值化。采用并不常用Lab颜色空间,但在众多设计图像计算中应用广泛。(3)运用联通域检索,把输入图像逐行扫描找出对象的个数,同时计算出所有区域像素的个数,换算成要测算区域的面积大小,最后进行联通阈检索,就可以把目标凸显出来,实现识别。

用Camshift算法可以使AUV在水下消除捕捉目标运动所带来的影响,Camshift的特点是能根据目标像素块的面积自动调节搜索窗的大小,从而得到连续的追踪效果,且搜索时间相对较短。捕捉运动物体时(注意物体运动不能过快,有可能会导致捕捉失败)该算法拥有优秀的鲁棒性,十分适用于水下机器人。算法流程如图7所示,根据HSV颜色空间对光线亮度的不敏感性,将摄像头获取的图像转换为HSV图像后作出色调H的直方图后作反向投影,直方图的值就是颜色分布概率,最后,以Meanshift原理不断重复搜索水下AUV想要寻找捕捉的色块。

图7 Camshift算法流程

由于OpenMV本质上是拥有图像识别功能的STM32单片机,利用其丰富的接口资源可以操控外部硬件单元,甚至能通过串口通信受其他单片机模块控制,如树莓派等,也可以增加扩展版进一步增强扩展能力。因此,OpenMV简单易用,在嵌入式系统仅需要增加一个小小的模块就可以拥有机器视觉能力,从而实现更加复杂的功能。

尽管OpenMV结构简单、体积小巧,但受限于其物理分辨率,有的只有500万,其成像质量并不如人意,加上模块体积限制,CMOS面积较小,进光量不足,例如在水下光线不充足的工作环境中,有时也导致识别率失准。模块本身没有防抖结构,水下作业时机器人一般处于不稳定状态,可能会导致色块捕捉丢失,可考虑利用类似微云台等器件保持画面平滑稳定。

3 归纳与展望

自主定位与地图构建、路线规划以及色块识别是AUV能够在水下高效完成水下作业的重难点,许多文献都对此进行了探讨与研究,并优化与升级方法。经过整理,将从以下3个角度进行归纳并展望。

3.1 激光SLAM点云的精度优化

AUV由于在水域环境遇到障碍物,视线被遮挡,点云采集路线受限严重,在激光SLAM点云采集过程中不同位置之间难以通视,只能形成少量闭合环。在这种情况下,无论是实时的SLAM点云精度,还是优化后的点云精度,都会受到一定影响。因此,除了制定合理的数据采集路线外,读者可以研究一种在少量闭合环情况下更高效地提高点云精度优化方法,目前针对这种特殊情况的研究还有待挖掘。

3.2 模糊PID的过程控制系统优化

利用模糊PID调节的优势,结合工业生产中的过程控制系统的思维,对整个系统进行优化,就如AUV在路线规划的过程中,极易受到水流因素的干扰,读者可以尝试是否可以加入前馈控制器(见图8),根据进入过程的扰动量进行控制,可以有效减少被控量的偏差。又或者当对AUV转动电机方向的控制存在时间滞后问题时,系统受到的干扰作用无法根据所要控制的3个方向的角度而及时判别出来,使得超调稳定性大大降低,是否可以加入Smith预估补偿器[15],从而消除纯滞后特性在闭环的影响。

图8 前馈-反馈控制系统

3.3 色块识别3种典型方法的比较

(1)OpenCV库在图像处理方面含有大量已有的函数且涉及面广,但阈值分割、方式单一的情况严重,无用的函数内部宏定义等信息严重影响了水下的图像处理速度。(2)Tensorflow可根据需求填充数据库识别不同的物体,可以良好地优化训练模型,通过神经网络进行重建和训练对图像识别有较高的精度要求,但需要大量数据,水下亮度不够还易导致“色盲”。(3)OpenMV体积小,简单易用,易于控制其他硬件,也易被其他硬件模块控制,但受限于其物理分辨率与模块体积,无防抖结构,AUV不稳定状态易导致色块捕捉丢失,需要辅助器件保持画面平滑稳定。

使用者需要根据AUV作业环境的需求来选择不同的色块识别方式,达到在复杂水域环境中实现不同色块的识别的目的,尤其是在养殖环境中,如绿色块围栏养殖网衣生物的辨别与清理、不同颜色养殖种类如鱼群的辨识、养殖生物发生病变产生的色块异常的及时发现与清理、及时发现水中微量元素异常导致的浮游生物异常增殖如红海等,这3种色块识别的方法均具有十分可期的应用前景,将带来巨大的经济价值与社会利益。

4 结语

文章围绕AUV在水下复杂的环境中,一是探讨如何实现自主巡航的问题,从同步自主定位与地图构建和路径规划两个难点展开。采用融合惯性测量单元的三维激光雷达SLAM的方式进行AUV的定位与环境建模,在得到较为精确的三维栅格地图之上,提出基于模糊控制系统,局部进行过程控制系统典型的自适应PID调节解决路径规划的问题,同时能够在稳定性、抗干扰性及响应快速等方面进行良好的优化。二是对基于树莓派的Opencv色块识别、神经网络的Tensorflow色块识别以及STM32的Openmv色块识别3种典型的色块识别方法,进行了各自的优劣势的分析并加以比较,进行归纳和总结,并给出了今后这3种典型方法的应用前景与改进方向。

猜你喜欢

色块栅格激光雷达
足球色块
手持激光雷达应用解决方案
基于邻域栅格筛选的点云边缘点提取方法*
法雷奥第二代SCALA?激光雷达
基于校验信息隐藏的彩码抗篡改攻击技术*
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
阎先公和他的瓷板色块泼彩画
三个色块
不同剖面形状的栅格壁对栅格翼气动特性的影响