宋光磊,王银涛,刘立伟
(1. 西北工业大学航海学院,陕西 西安 710072;2. 江苏自动化研究所,江苏 连云港 222061)
水面目标检测问题涉及海面光反射以及海雾条件下的大气散射等,对海上环境的感知、雾天场景的成像机理、降质图像的恢复和感知成为水上目标检测的难题,海上小目标检测需要对图像增强操作[1]。
针对视觉导引规划问题,无人船搭载的摄像头常常只作为图像输出,无法与其他诸如激光传感器协同配合。原因在于视觉方面需要对采集目标进行更加复杂的信息处理,例如后期的特征提取等。视觉新算法源源不断的产出,为之前难以实现的、仅靠模板匹配或光流的视觉搜索算法提供了新思路。
目标检测任务狭义上讲是指找出图像或视频帧中的待测物体,同时找出其图像中位置及对应关系。涉及定位问题(像素位置、目标大小)和分类问题(类别判定)两部分[2]。目标检测算法的发展始于20世纪末,当前全世界目标检测学者的目光聚焦在卷积神经网络对非显著特征的提取上。卷积神经网络(Convolutional Neural Networks, CNNs)的引入[3]使目标检测算法迈上了新台阶。
此阶段的代表性算法有R-CNN、Fast-RCNN[4]及集大成者Faster-RCNN[5],对YOLO的产生有深远意义。CNN运行机制如下。
作为前馈型网络(Feedforward Neural Network),相对比传统神经网络,每层都是对上层特征的线性回归和非线性变换,CNN每层都有不同功能,且选取合适激励函数,池化层(Pooling Stage)实现维度数据下降,有效降低传统NN网络的复杂性。图1给出CNN卷积从输入到输出运行机制。
为防止特征提取过程中出现过拟合及“参数爆炸”,降低CNN卷积神经网络的参数复杂性,相关的局部感知模块、参数共享模块和滑动窗与卷积计算模块可以通过感知自身信息、滤波卷积图像和引入偏置项等方式减少网络训练量。
近年来,随着水面水下无人系统松耦合技术工业化的不断落地,精确的路径规划导引不仅在民用领域,还在军用领域颇为重要。由于比例导引法在拦截高速、大机动目标时有较大缺陷,人们开始应用线性二次型的方法来克服这个问题,这就出现了最早的最优导引律。随着控制理论的发展,文献中通过建立随机的数学模型来描述目标机动加速度的变化规律,设计过程中,把目标机动加速度假设为一个低阶Markov 过程,借此设计了针对目标的最优导引方法[6]。詹致祥从最优控制理论出发研究了鱼雷的最优垂直命中的制导方法以及该方法的简化,并对理想情况进行了仿真[7]。严卫生团队基于变结构控制理论,提出了一种垂直命中目标的导引律[8]。西安现代控制技术研究所在2020年针对前置角约束的问题,采用变结构控制方法设计了一种固定前置角导引律,并通过弹道仿真论证了变提前角控制的正确性与一般有效性[9]。文献[10]和文献[11]构建了结合导航引导技术与视觉系统,用于捕获移动物体的拦截导引算法,并提出了一个自适应控制器来处理目标的参数变化。
YOLO(You Only Look Once)算法作为深度学习史上第一台单阶段探测器(One-stage Detector),于2015年由R.Joseph提出[12]。该类算法对完整图像应用单个神经网络。该网络将图像划分为多个区域,并同时预测每个区域的边界框和概率,在当前的各类图像应用场景中大放异彩[13-15]。本文检测框架主要涉及darknet、anchor和FPN的YOLO网络架构,如图2所示。
图2中DBL是Darknetconv2d_BN_Leaky的缩写,为YOLO核心组件;res中的n值代表含有多少残差单元。其训练图片为固定大小(448×448)。将原始图片分为S×S个单元格,作为之后的输出。每个单元格需要预测L个box值,同时为每个框的值预测一个置信度(Confidence Scores)。每个单元格需要预测C(物体种类个数)个条件概率值。故最后网络的输出维度为S×S×(B×5+C),这里每个单元格负责预测一种物体同时预测多个框的值。借此原理,开始训练YOLO数据如图3所示。
图3 YOLO数据训练流程Fig.3 Data training process of YOLO
针对图3中CNN卷积部分作出一点说明:网络(不含全连接层的全卷积网络)中YOLO进行了三次检测,多倍降采样调用了多尺度地图上SSD思想。YOLO使用了2步长上采样,把32倍降采样得到的特征图大小提升一倍,也就成了16倍降采样,8倍降低采样也是同理。这样就可以使用深层特征进行测试。降采样采取步长为2的最大池化和平均池化进行。
由于海雾、水面反射光等复杂背景下拍摄的图像,其能见度较差,目标检测困难。普通的目标检测算法在极端海况或海面较远距离处效率极低,因此,对水面检测到的图像进行滤波处理势在必行。
针对复杂天气下的定位问题,有学者提出了一种应用于YOLOv3的图像自适应YOLO(IA-YOLO)框架,可以对通过YOLOv3的每一帧图像进行自适应增强,从而提高检测性能[16]。本文借鉴上述成果中的计算方法,将其中的除雾滤波器和锐化滤波器迁移至YOLOv5模型框架中(独立于YOLO检测的松耦合设计),针对YOLO探测器的恶劣天气条件,可以使YOLO目标检测算法迁移至无人船或鱼雷等工作能见度较低的场合时精度更高。
本系统针对场景条件,设计了锐化滤波器和除雾滤波器。具体介绍如下所示:
1)锐化滤波器
图像锐化可以突出图像细节。锐化滤波公式如下:
F(x,λ)=I(x)+λ(I(x)-Gau(I(x)))
(1)
其中,I(x)为输入图像,Gau(I(x))为高斯滤波器,λ为正缩放因子,可以通过调节正缩放因子来调节锐化程度,调优目标检测性能。图像经过边缘锐化提取后如图4所示。
图4 锐化滤波器提取效果Fig.4 The results of the sharpening filter extraction
2)除雾滤波器
基于暗通道先验方法设计了一个具有可学习参数的除雾滤波器。基于散射模型,朦胧图像的形成可以表述为
I(x)=J(x)t(x)+A(1-t(x))
(2)
其中I(x)为雾天图像,J(x)为场景亮度。A为模糊光,t(x)为介质透射图,定义为
t(x)=e-βd(x)
(3)
式中,β是散射系数,与当前环境有关,d(x)是场景深度。对于重新获得场景亮度,需要计算暗通道图,并选择最亮的N个像素,并对I(x)的N个像素进行平均估计,得到A。
对获取的目标船图像像素进行朦胧合成并进行雾化分析来模拟雾天环境,雾化理论处理后进行如下方式的去雾检测来观察除雾后的结果,如图5。
图5 除雾前后目标检测效果Fig.5 Target detection effect before and after de-fogging
计算硬件选用NVIDIA JETSON TX2,卷积训练设置batches=64,subdivisions=8,图像通道数为3,动量因子momentum=0.9,权重正则衰减项decay=0.0005,色调hue=0.1,初始学习率learning rate=0.1;池化层(maxpool)尺寸size=2,池化步进stride=2;卷积层中,卷积核尺寸size=3,卷积运算步长stride=1,仅考虑单一目标,则特征图数目为
filters=3×(5+lenclasses)=3×(5+1)=18
(4)
将改进前后的YOLO一轮次定位损失做比较,得图6。得IOULossbefore=0.738、IOULossafter=0.776,期望定位损失越大越好(最优值为1),通过平均值可见改进后算法性能较好。
图6 改进前后YOLO定位损失比较Fig.6 Location loss before and after improving
基于小样本单一目标船数据的可视化训练结果如图7所示。其中,左侧六幅图分别为训练集和回调集的置信度损失、定位损失与分类损失。定位损失和训练损失越趋近于0,模型评估效果越好。由于仅训练一类,分类损失为0。metrics/precision为模型预测精度;metrics/recall为正样本召回准确率检测精度结果;最后两幅图表征了不同IOU阈值(0.5到0.95的mAP阈值精度,即精度与坐标轴所围区域的面积,步长为0.05)。最终精度指标为0.997 6。
图7 改进式YOLO模型评价Fig.7 Model evaluation of improved YOLO
根据流视频目标信息来判断目标的运动状态,常见方法是单目视觉方法,但无法得到相对准确的深度信息。双目视觉系统根据左右两个源相机,利用多边测量原理获得场景的深度信息,并且可以重建周围景物的三维形状和位置,原理上相对明晰。但立体视觉系统的难点是对应点匹配的问题,该问题在很大程度上制约着立体视觉在机器人领域的应用前景。因此,本文采用直接获取ZED相机点云深度信息的方式,解决因深度信息无法确定导致的目标估计不准问题。
假设待测目标坐标为P,两相机光心分别为OL、OR,相机的焦距为f,中心距为baseline,像素坐标原点为(x0,y0),则距离信息公式z根据比例关系,拓展到三维空间,坐标公式为
(5)
由图8比例及刚体变换关系可知,水面目标从像素坐标系uv至世界坐标系OW-XWYWZW的公式:
图8 坐标系相对转换关系Fig.8 Relative transformation relation of the coordinate system
(6)
调整相机系,代入内外参量并压缩至二维条件得
(7)
构建二维探测者-目标相对运动方程如图9所示。
图9 水平面导引问题相对运动关系Fig.9 Relative motion relation for horizontal guidance problems
(8)
根据图9相对运动关系,对时间求导变换后得视线角加速度:
(9)
(10)
滑模变结构控制(Sliding Mode Variable Structure Control,简称SMC)是变结构控制系统的一种控制策略,也是VSC中的主体设计方法。这种控制策略与常规控制的根本区别在于控制的不连续性。这种特性可以使系统在一定条件下沿“滑动模态”作小幅、高频率的上下运动,处于滑动模态的系统具有很好的鲁棒性。除此之外,滑模变结构控制暂态性能稳健,对外部变化不敏感使其可快速响应,广泛用于当今鱼雷、导弹制导律设计中去。限于比例导引方法在末端制导的局限性,应用滑模控制将终端约束视为扰动项,使其收敛从而实现舷角约束导引规划。
本论文限定无人船自终端接近水面目标时,终端舷角需要是可控、预设的。将Autolabor模拟平台底盘终端航向角设为ψz,然而终端交汇是一个过程,定义一个关于末制导时间的函数,设为ψz(t),由于目标机动时刻的舷角为ψt(t),实现舷角约束制导,需要将两末端舷角作差,终端交汇时刻为tf,可设置理想交汇舷角为ψopt(tf),易得出终端时刻舷角约束条件:
ψz(tf)=ψt(tf)±ψopt(tf)
(11)
以比例导引法(Pure Proportional Navigation Guidance, PPNG)作为普适性导引方法。有效导引目标范围(终端tf范围时相对距离收敛至0)为[17]
(12)
(13)
上述条件保证了无人船在探测过程中始终指向目标并在有限时间内实现对目标的拦截。在完成纯比例导引的模型构建后,沿用上述思路,对二维滑模变结构导引作进一步分析与对比。
根据开关平面定义,设置开关平面s(t)和lyapunov函数V(t)如下:
(14)
(15)
1)目标静止或匀速控制律
针对此类目标,目标航向位置恒定,故终端视线角qz为恒定常数。由定义,通过V(t)对时间求导,得
(16)
探测者法向加速度指令进一步化简可得
(17)
经过进一步配凑,变结构导引控制律如下:
(18)
根据如上加速度指令,积分后的航向指令为
(19)
2)目标定常机动(AT(t)=c·v)控制律
假设目标的加速度AT可测且为常数c,定常运动情况下,qz存在且随时间变化,因此,开关平面和滑模导引律为
(20)
(21)
鉴于现有设备条件,本文涉及无人船的规划导引算法借助Autolabor平面无人系统平台进行仿真验证(如图10)。
1)TCP/IP通信方法
作为面向连接的协议,TCP协议在服务端和客户端收发数据之前,需要和对方提前建立连接。TCP建立连接的过程在本论文中连接协议如下:
首先,图像角点信息与深度信息经过系统整合后形成距离-舷角信息,通过图像处理计算机向移动机器人系统平台发出连接请求数据包;无人平台向图像计算机发送同意连接并要求同步;最后图像处理计算机再对移动无人平台发送确认接受同步,从而建立TCP远程连接,两主机之间可以正式发送数据(见图11)。
2)ROS通信架构
本文中ROS主要应用于视觉websocket通道的传输以及机器人控制指令的发布,共同构成通信系统。
3)实验结果
由末端舷角要求,选用适当参数的末端舷角为70°时变结构趋近轨迹,如图12所示。其中,图12d)为理论轨迹,最终制导角度为68.91°,误差为1.54%。图12e)为无人车平台实验结果。
本文研究并开发了基于二维目标的数据增强检测与舷角约束导引方案,可用于海上极端天气的小样本目标搜寻与导引跟踪。系统采用YOLO进行目标检测定位;应用滑模变结构方法消除末端舷角扰动;并构建融合通信协议,仿真及实验结果验证了算法的有效性和可行性。