机器人 2022, Vol. 44 Issue (5): 574-588  
0
引用本文
殷国程, 吴超. 一种基于反光带方案的ARV对接视觉定位算法[J]. 机器人, 2022, 44(5): 574-588.  
YIN Guocheng, WU Chao. A Visual Positioning Algorithm for ARV Docking Based on Reflective Tape Scheme[J]. ROBOT, 2022, 44(5): 574-588.  

一种基于反光带方案的ARV对接视觉定位算法
殷国程 , 吴超     
上海交通大学船舶海洋与建筑工程学院, 上海 200240
摘要:针对自主遥控潜水器(ARV)近距离水下对接面临的定位方法效果不佳、定位信息误差较大等问题,设计了一种基于反光带方案的水下视觉定位算法。首先提出一种基于Q学习的混合鲸鱼优化算法(QHWOA)来提高算法的收敛精度和收敛速度,并以中继器对接口外布置的反光带为目标,利用QHWOA算法优化Otsu目标函数分割对接图像;然后提出基于PCA(主成分分析)降维法的关键点提取算法来提取关键轮廓与关键点;最后采用SRPnP算法解算ARV与中继器的相对位姿。通过水下对接实验进行关键点像素提取误差和视觉定位误差的计算,结果表明定位误差满足水下对接的精度要求。该算法能够在ARV水下对接时输出有效定位信息,引导ARV与中继器对接。
关键词自主遥控潜水器    单目视觉定位    水下对接    图像处理    鲸鱼优化算法    
中图分类号:TP242.3            文献标志码:A            文章编号:1002-0446(2022)-05-0574-15
A Visual Positioning Algorithm for ARV Docking Based on Reflective Tape Scheme
YIN Guocheng , WU Chao     
School of Naval Architecture, Ocean & Civil Engineering, Shanghai Jiao Tong University, Shanghai 200240, China
Abstract: When the autonomous and remotely operated vehicle (ARV) performs close-range underwater docking, there exist some problems, such as poor performance of the positioning method and relatively large errors of the positioning information. For those problems, an underwater visual positioning algorithm based on the reflective tape scheme is designed. Firstly, a Q-learning based hybrid whale optimization algorithm (QHWOA) is proposed to improve convergence accuracy and convergence speed. With the reflective tape placed outside the interface of the TMS (tether management system) as the target, the docking image is segmented through Otsu's objective function optimized by QHWOA. Then, a keypoint extracting algorithm based on PCA (principal component analysis) dimensionality reduction is proposed to extract key contours and keypoints. Finally, SRPnP (a simple, robust and fast method for the perspective-n-point problem) algorithm is used to calculate relative pose of the ARV and the TMS. Through underwater docking experiment, the errors of key point extraction in pixel and visual positioning are calculated, which verify that the positioning errors meet the accuracy requirements of underwater docking. The algorithm can output effective positioning information during underwater docking, and guide ARV docking with TMS.
Keywords: autonomous and remotely operated vehicle    monocular visual positioning    underwater docking    image processing    whale optimization algorithm    

1 引言(Introduction)

水下对接技术是当前水下机器人领域的一个研究热点,具有重要的科学意义和实用价值。水下中继器和水下回收系统是水下机器人安全布放的重要方式。对于无人遥控潜水器(ROV),中继器是一种高效和安全的作业方式,在海洋石油工程、大深度ROV等方面都有着较为广泛的应用[1]。对于自主水下机器人(AUV),采取水下回收系统回收潜器是一种较为常见的回收方式[2]。上述应用,均涉及到水下对接问题。本文研究一种混合模式的自主遥控潜水器(ARV),利用车库式中继器布放方式将系统布放至几千米水深,再通过光纤微细缆布放ARV本体至万米深海底进行探测和作业,回收时ARV与中继器在深海完成对接后整体回收。水下对接是全海深ARV水下安全回收的关键环节,因此研究有效的ARV水下对接定位技术,对于提高潜水器作业效率、降低布放作业风险等具有非常重要的现实意义。

由于水下对接环境与技术条件的约束,水下声呐、定位导航设备通常能够实现中远距离的定位导航,但在近距离引导和水下对接进站中定位效果却不理想。而视觉定位技术因其简单有效的特点逐渐成为水下机器人近距离对接的常用方法[3]。国内外研究人员针对水下近距离对接一般采用引导灯或者特定特征开展视觉定位。在传统的引导灯方面,Li[3]提出了一种使用单目相机和引导灯的视觉对接方法,图像处理算法包括图像采集、图像分割、图像降噪和位姿估计,并利用基于光心像素坐标信息的控制算法引导对接。Zhong[4]设计了一种用于AUV对接的双目视觉定位方法。首先提出一种自适应加权的Otsu算法用于图像分割,并将引导灯的质心坐标值作为双目视觉的匹配特征完成视觉定位。使用这种特征匹配方法,双目视觉的定位频率超过10 Hz。Palomeras[5]提出利用引导灯和增强现实(AR)标记引导AUV近距离对接。当AUV上的相机捕捉到回收系统的所有引导灯时,采用非线性最小二乘法解算AUV的6维位姿;否则,使用AR标记来引导AUV。以上基于引导灯方案的视觉定位算法由于水下光的吸收与散射,导致经过图像处理后的引导灯存在不规则性,因此输出的光心像素坐标存在较大像素误差。在特定特征视觉定位研究方面,文[6] 利用结合FAST(feature from accelerated segment test)角点检测和BRIEF(binary robust independent elementary feature)描述子的ORB(oriented FAST and rotated BRIEF)特征提取器提取面板特征,然后与已知模板中检测到的特征进行匹配,并基于足够多的匹配特征进行位姿估计。该算法定位精度高,但是光照不均匀和噪声会导致特征点的误匹配率较高[7]。魏志祥等[8]在水下对接中利用反射光源识别法设计了图像分割及特征点提取算法,相较引导灯方案提高了定位速度与精度。但是在水下场景中基于Canny算法的图像分割易出现过分割或分割不准确,影响定位精度。

在图像包含大量信息时,基于多级阈值的方法相较于单阈值法具有更好的图像分割效果和更稳定的性能[9]。为了降低多级阈值分割的时间复杂度,图像多级阈值分割中应用了许多群智能算法,例如鲸鱼优化算法(WOA)[10]、粒子群优化(PSO)算法[11]、正弦余弦算法(SCA)[12]、布谷鸟搜索(CS)算法[13]等。针对算法易陷入局部最优的问题,大量论文通过融合其他智能算法提高性能。其中文[14-15] 基于Q学习的自我奖罚机制改进PSO和SCA的更新策略,提高了算法跳出局部最优的能力。文[16] 将差分进化(DE)作为局部开发策略融合到WOA中以更好地平衡算法的全局搜索和局部开发能力,并通过目标函数值、结构相似性、峰值信噪比和特征相似性的比较,表现了算法优越的总体性能。文[17] 基于种群策略将PSO融合到WOA中,并验证了以Otsu函数和模糊熵为目标函数的算法在多级阈值图像分割中的性能。

基于以上分析,考虑水下近距离对接场景的定位需求,本文以反光带为特定特征设计了一种ARV与中继器水下对接的视觉定位算法。提出基于改进鲸鱼优化算法的多级阈值图像分割算法和基于PCA降维的关键点提取算法,并采用SRPnP算法解算出ARV与中继器的相对位姿。最后通过水下对接实验和误差计算,证明算法的有效性。

2 ARV对接视觉定位算法(The visual positioning algorithm for ARV docking)

在中继器对接口外框架上根据中继器的结构布置反光带,以便对特定特征进行视觉定位。为保证输出的摄像机与中继器的相对位姿为ARV首端平面中心点与中继器内框投影面(中继器内框架平面在与其平行的外框架平面上的垂直投影面)中心点的相对位姿,在ARV首端平面正中心布置单个摄像机,采集对接图像。并且在ARV上布置光源,如图 1所示。在ARV水下对接视觉定位中,首先分割出对接图像中的反光带区域,然后提取反光带区域的4个关键轮廓和关键点,如图 2所示。最后根据关键点的世界坐标系和图像像素坐标系坐标解算出ARV与中继器的相对位姿,完成视觉定位。

图 1 摄像机及光源安装位置 Fig.1 Installation location of the camera and light source
图 2 水下对接视觉定位 Fig.2 Visual positioning for underwater docking

反光带效果如图 3所示。红色箭头指向关键轮廓所在反光带区域,红点为关键轮廓的4个顶点,即关键点所在位置。

图 3 反光带效果 Fig.3 Effect of the reflective tape

水下对接视觉定位算法流程如图 4所示。

图 4 算法流程 Fig.4 Flow of the proposed algorithm
3 图像分割(Image segmentation)

相较其他分割方法,基于Otsu算法的阈值分割具有计算效率高、无参数、鲁棒性强等优点[18]。因此本节提出基于Q学习的混合鲸鱼优化算法(QHWOA)优化Otsu多级阈值分割。

3.1 Otsu多级阈值分割

Otsu以$ K $个阈值$ t_{1}, t_{2}, \cdots, t_{K} $将图像分割成$ K+1 $个聚类$ C_{0}, $ $ C_{1}, $ $ \cdots, $ $ C_{K} $,其中$ 0 $ $ < $ $ t_{1} $ $ < $ $ t_{2} <\cdots <t_{K} <L $$ L $是灰度级别,并假定$ t_{0} =0 $$ t_{K+1} =L $。首先计算$ C_{k} $$ k=0, 1, \cdots, K $)的累加概率$ w_{k} $、平均灰度$ \mu_{k} $和图像的平均灰度$ \mu_{T} $

$ \begin{align} w_{k} =\sum\limits_{i\in C_{k}} \frac{h_{i}} {N}, \quad \mu_{k} =\sum\limits_{i\in C_{k}} \frac{ih_{i}} {w_{k} N}, \quad \mu_{T} =\sum\limits_{k=0}^K w_{k} \mu_{k} \end{align} $ (1)

其中$ h_{i} $是灰度$ i $的像素数,$ N $是像素总数。

由式(2) 计算类间方差$ \sigma_{B}^{2} $

$ \begin{align} \sigma_{B}^{2} & =\sum\limits_{k=0}^K w_{k} (\mu_{k} - \mu_{T})^{2}=\sum\limits_{k=0}^K {w_{k} \mu_{k}^{2} -\mu_{T}^{2}} \\ & =\sum\limits_{k=0}^K w_{k} \left(\frac{1}{N}\frac{\sum\limits_{i\in C_{k}} ih_{i}} {w_{k}} \right)^{2}-\mu_{T}^{2} \\ & =\frac{1}{N}\sum\limits_{k=0}^K \frac{ \left(\sum\limits_{i=t_{k}}^{t_{k+1} -1} ih_{i}\right)^{2}}{\sum\limits_{i=t_{k}}^{t_{k+1} -1} h_{i}} -\mu_{T}^{2} \end{align} $ (2)

通过最大化目标函数$ f $来确定最佳阈值[19]

$ \begin{align} (t_{1}^{*}, \cdots, t_{K}^{*})=\text{arg max } f(t_{1}, \cdots, t_{K}) \\ f(t_{1}, \cdots, t_{K})=\sum\limits_{k=0}^K \frac{ \left(\sum\limits_{i=t_{k}}^{t_{k+1} -1} ih_{i}\right)^{2}}{\sum\limits_{i=t_{k}}^{t_{k+1} -1} h_{i}} \end{align} $ (3)

基于反光带的高亮度特性,利用最佳阈值的最大值$ t_{K}^{*} $进行图像二值化,将包含反光带的亮度值较高的区域分割成一类,其他亮度值较低的背景区域分割成另一类。

3.2 改进鲸鱼优化算法 3.2.1 鲸鱼优化算法

鲸鱼优化是基于座头鲸的狩猎模式进行优化的群智能算法[20]。鲸鱼优化算法利用参数$ A $$ [0, 1] $区间内的随机数$ p $从包围猎物、探索猎物和泡泡网攻击3种更新策略中选择一种进行更新。

$ \begin{align} A=2\lambda r-\lambda \end{align} $ (4)

其中$ \lambda $从2线性递减到0,$ r $$ [0, 1] $区间内的随机数。

包围猎物:当$ |A|<1 $$ p< $ 0.5时,选择当前最优解为目标猎物,如式(5) 所示。

$ \begin{equation} \begin{gathered} \mathit{\boldsymbol{X}}_{i}^{t+1} =\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -A{\mathit{\boldsymbol{D}}} \\ {\mathit{\boldsymbol{D}}}=| {C\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t}} |, \quad C=2r \end{gathered} \end{equation} $ (5)

其中$ \mathit{\boldsymbol{X}}_{\rm{best}}^{t} $为第$ t $次迭代目标函数值最优的个体位置,$ \mathit{\boldsymbol{X}}_{i}^{t}, \mathit{\boldsymbol{X}}_{i}^{t+1} $为个体$ i $在第$ t $次迭代前后的位置。

探索猎物:当$ |A|\geqslant 1 $$ p< 0.5 $时,随机选择目标搜索,如式(6) 所示。

$ \begin{equation} \mathit{\boldsymbol{X}}_{i}^{t+1} =\mathit{\boldsymbol{X}}_{\rm{rand}}^{t} -A\mathit{\boldsymbol{D}}', \quad \mathit{\boldsymbol{D}}' =| {C\mathit{\boldsymbol{X}}_{\rm{rand}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t}} | \end{equation} $ (6)

其中$ \mathit{\boldsymbol{X}}_{\rm{rand}}^{t} $为第$ t $次迭代从种群中随机选择的个体位置。

泡泡网攻击:当$ p\geqslant 0.5 $时,鲸鱼通过螺旋式路径游走搜索逼近猎物,如式(7) 所示。

$ \begin{equation} \begin{gathered} \mathit{\boldsymbol{X}}_{i}^{t+1} =\mathit{\boldsymbol{X}}_{\rm{best}}^{t} +\mathit{\boldsymbol{D}}'' {\rm e}^{bl}\cos (2{\rm{ \mathsf{ π} }} l) \\ \mathit{\boldsymbol{D}}'' =| {\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t}} | \end{gathered} \end{equation} $ (7)

其中$ b $表示对数螺旋形状常数,设为1,$ l $$ [-1, 1] $区间内的随机数。

3.2.2 动态惯性权重

WOA算法在整个迭代期间并没有动态调整惯性权重,这虽然保证了算法的全局搜索能力,但不利于后期的局部精细搜索。为了平衡算法的全局搜索能力和局部搜索精度,本文引入分段惯性权重:

$ \begin{align} W= \begin{cases} 1, & t\leqslant T_{\max} /5 \\ {\rm e}^{-[10(t-T_{\max} /5)/T_{\max}]^{2}}, & \rm{其他} \end{cases} \end{align} $ (8)

其中$ T_{\max} $为最大迭代次数。

$ W $在前期为较大固定值,利于算法在全局空间搜索;在中后期快速下降,提高算法的局部搜索精度,加快收敛速度。利用$ W $更新式(5) 和式(7):

$ \begin{align} \mathit{\boldsymbol{X}}_{i}^{t+1} & =W\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -A| {C\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t}} | \end{align} $ (9)
$ \begin{align} \mathit{\boldsymbol{X}}_{i}^{t+1} & =W\mathit{\boldsymbol{X}}_{\rm{best}}^{t} +| {\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t}} |{\rm e}^{bl}\cos (2{\rm{ \mathsf{ π} }} l) \end{align} $ (10)
3.2.3 Lévy游走和差分进化

鲸鱼优化算法在迭代初期进行全局搜索,在迭代后期进行局部搜索,并没有有效地脱离局部最优的操作。考虑到迭代中种群多样性下降陷入局部收敛点的问题,引入Lévy游走[21]和差分进化[22]改进算法的收敛精度和收敛速度。Lévy游走是一种基于重尾概率函数的随机游走,本文基于Lévy游走的更新策略由式(11) 实现。

$ \begin{equation} \begin{aligned} \mathit{\boldsymbol{\chi}}_{i}^{t} & =\mathit{\boldsymbol{X}}_{i}^{t} +\partial (\mathit{\boldsymbol{X}}_{i}^{t} -\mathit{\boldsymbol{X}}_{\rm{best}}^{t})\oplus L(\beta) \\ \mathit{\boldsymbol{\zeta}}_{i}^{t} & =\mathit{\boldsymbol{X}}_{\rm{best}}^{t} +\partial (\mathit{\boldsymbol{X}}_{i}^{t} -\mathit{\boldsymbol{X}}_{\rm{best}}^{t})\oplus L(\beta) \\ \mathit{\boldsymbol{X}}_{i}^{t+1} & = \begin{cases} \mathit{\boldsymbol{\chi}}_{i}^{t}, & f(\mathit{\boldsymbol{\chi}}_{i}^{t})\geqslant f(\mathit{\boldsymbol{\zeta}}_{i}^{t}), f(\mathit{\boldsymbol{\chi}}_{i}^{t})\geqslant f(\mathit{\boldsymbol{X}}_{i}^{t}) \\ \mathit{\boldsymbol{\zeta}}_{i}^{t}, & f(\mathit{\boldsymbol{\chi}}_{i}^{t})<f(\mathit{\boldsymbol{\zeta}}_{i}^{t}), f(\mathit{\boldsymbol{\zeta}}_{i}^{t})\geqslant f(\mathit{\boldsymbol{X}}_{i}^{t}) \\ \mathit{\boldsymbol{X}}_{i}^{t}, & \rm{其他} \end{cases} \end{aligned} \end{equation} $ (11)

其中$ \partial $为步长控制因子,从0.4线性递减到0.01。$ \oplus $为点对点乘法,$ f(\mathit{\boldsymbol{X}}_{i}^{t}), f(\mathit{\boldsymbol{X}}_{i}^{t+1}) $为第$ t $次迭代前后个体$ i $的目标函数值,由式(3) 计算。Lévy随机数$ L(\beta) $采用式(12) 计算:

$ \begin{align} L(\beta)=\frac{\phi \mu_{1}} {|\mu_{2} |^{ \frac{1}{\beta}}}, \; \; \phi = \left(\frac{\Gamma ({1+\beta}) \sin \left(\dfrac{\beta} {2}{\rm{ \mathsf{ π} }} \right)}{\Gamma \Big(\dfrac{1+\beta} {2}\Big) \beta 2^{ \frac{\beta -1}{2}}}\right) ^{ \frac{1}{\beta}} \end{align} $ (12)

其中$ \mu_{1}, \mu_{2} $满足标准正态分布,$ \beta $为常数,设为1.5。

由Lévy游走策略更新位置虽能拓广搜索空间,增大跳出局部收敛点的可能性,但常会导致收敛速度变慢和异常跳跃[23]。而差分进化算法能加快收敛速度、稳定优化结果[24],因此引入Lévy游走和差分进化以平衡QHWOA算法的全局搜索能力和局部开发能力。差分进化算法由式(13)~(15) 实现。

首先,采用“DE/current-to-best/1”方式进行变异:

$ \begin{align} \mathit{\boldsymbol{H}}_{i}^{t} =\mathit{\boldsymbol{X}}_{i}^{t} +F(\mathit{\boldsymbol{X}}_{\rm{best}}^{t} -\mathit{\boldsymbol{X}}_{i}^{t})+F(\mathit{\boldsymbol{X}}_{r_{1}}^{t} -\mathit{\boldsymbol{X}}_{r_{2}}^{t}) \end{align} $ (13)

其中$ F $为变异因子,从0.95线性递减到0.6。$ \mathit{\boldsymbol{X}}_{r_{1}}^{t}, $ $ \mathit{\boldsymbol{X}}_{r_{2}}^{t} $为第$ t $次迭代从种群中随机选择的2个不同个体的位置,$ r_{1}, r_{2} \in [{1, N_{\rm P}}] $$ N_{\rm P} $为种群数量。$ \mathit{\boldsymbol{H}}_{i}^{t} $为第$ t $次迭代中个体$ i $经过变异后得到的位置。

然后采用指数分布交叉策略进行交叉:先随机选取个体的某一维度分量,从该维度分量开始交叉,如果满足$ \rm{rand}[0, 1]\leqslant C_{\rm R} $,则对下一维度分量也进行交叉。以此循环,直到$ \rm{rand}[0, 1]>C_{\rm R} $或者所有维度分量都进行了交叉[24]

$ \begin{equation} T_{i}^{t} (j)= \begin{cases} H_{i}^{t} (j), & \rm{满足指数分布交叉策略} \\ X_{i}^{t} (j), & \rm{其他} \end{cases} \end{equation} $ (14)

其中交叉概率$ C_{\rm R} \in [0, 1] $$ {\mathit{\boldsymbol{T}}}_{i}^{t} $为第$ t $次迭代中个体$ i $经过变异和交叉后得到的位置。

最后基于优胜劣汰的竞争法则进行选择操作:

$ \begin{align} \mathit{\boldsymbol{X}}_{i}^{t+1} = \begin{cases} {\mathit{\boldsymbol{T}}}_{i}^{t}, & f({\mathit{\boldsymbol{T}}}_{i}^{t})\geqslant f(\mathit{\boldsymbol{X}}_{i}^{t}) \\ \mathit{\boldsymbol{X}}_{i}^{t}, & f({\mathit{\boldsymbol{T}}}_{i}^{t})<f(\mathit{\boldsymbol{X}}_{i}^{t}) \end{cases} \end{align} $ (15)
3.2.4 Q学习算法

Q学习由状态空间$ {\mathcal S}=\{s_{1}, s_{2}, \cdots, s_{n}\} $、动作空间$ {\mathcal A}=\{a_{1}, a_{2}, \cdots, a_{n} \} $和学习策略组成[25]。Q学习利用Q表为当前状态选择动作并根据与环境交互学习得到的奖罚值不断更新Q表,目的是为每一种状态选择“收益”最大的动作。

Q学习在迭代前将Q表初始化为零矩阵,并根据式(16) 计算的概率值选择动作[26]

$ \begin{align} P({s_{t}, a_{j}})=\frac{\exp ({Q({s_{t}, a_{j}})})}{\sum\nolimits_{a_{j} \in {\mathcal A}} {\exp ({Q({s_{t}, a_{j}})})}}, \; s_{t} \in {\mathcal S} \end{align} $ (16)

由式(16) 可知,初始状态选择任何动作的概率是相同的。开始学习后,根据状态选择不同的动作有不同的奖罚值,$ Q $值更新也不同。$ Q $值越大,被选择的概率越大。

每次迭代由式(17) 更新Q表。

$ \begin{align} Q_{t+1} (s_{t}, a_{t})=\;& Q_{t} (s_{t}, a_{t})+ \partial_{t} (r_{t} +\gamma \max (Q_{t} (s_{t+1}, a))- \\ & Q_{t} (s_{t}, a_{t})) \end{align} $ (17)

其中$ Q_{t} (s_{t}, a_{t}), Q_{t+1} (s_{t}, a_{t}) $是在第$ t $次迭代更新前后的$ Q $值。$ \max (Q_{t} (s_{t+1}, a)) $为第$ t $次迭代下一状态的最大$ Q $值。$ \gamma $$ [0, 1] $区间内的比例因子。$ r_{t} $为第$ t $次迭代更新位置的奖罚值,由式(18) 确定[14]

$ \begin{align} r_{t} = \begin{cases} 1, & f(\mathit{\boldsymbol{X}}_{i}^{t+1})>f({\mathit{\boldsymbol{X}}_{i}^{t}}) \\ -1, & \rm{其他} \end{cases} \end{align} $ (18)

$ \partial_{t} $为学习率,利用式(19) 进行更新[14-15]

$ \begin{align} \partial_{t} =1-0.9\frac{t}{T_{\max}} \end{align} $ (19)
3.3 基于Q学习的混合鲸鱼优化算法

QHWOA为每一个体都建立一个Q表,其中状态空间$ {\mathcal S} $和动作空间$ {\mathcal A} $图 5所示。利用Q学习对更新策略的动态控制来更新个体的位置,并根据奖罚值反馈Q学习,目的是根据个体状态从4种更新策略中选择对改善目标函数值“贡献”最大的更新策略。假设某一个体采用泡泡网攻击策略进行更新,选择的动作为Lévy游走,如图 6(a)所示。假设更新个体位置奖罚值$ r_{t} $$ -1 $,比例因子$ \gamma $为0.8,学习率$ \partial_{t} $为0.6,则$ Q_{t+1}(s_{t}, a_{t}) $将会更新为

$ \begin{align*} Q_{t+1} (s_{t}, a_{t}) =\;& 1.30+0.6\times (-1+0.8\times \\ & \max(0.96, 0.93, -0.86, 1.10)-1.30) \\ =\;&0.448 \end{align*} $
图 5 QHWOA中的Q表 Fig.5 Q table in QHWOA
图 6 QHWOA中Q学习示意图 Fig.6 Schematic diagram of Q-learning in QHWOA

此个体状态也会从泡泡网攻击更新为Lévy游走,如图 6(b)所示。

QHWOA算法流程如图 7所示,步骤如下:

图 7 QHWOA流程 Fig.7 Flow of QHWOA

第1步:初始化种群,将个体的Q表清零,更新目标函数值最优的个体位置。将停滞次数$ g_{t} $置0,将个体初始状态设置为包围猎物/探索猎物。

第2步:由式(16) 计算个体状态为$ s_{t} $时4种动作对应的概率值,并随机选择一种动作$ a_{t} $。当选择包围猎物/探索猎物时,若$ |A|\geqslant 1 $,则由式(6) 更新$ \mathit{\boldsymbol{X}}_{i}^{t} $;若$ |A|<1 $,则由式(9) 更新$ \mathit{\boldsymbol{X}}_{i}^{t} $。当选择泡泡网攻击时,由式(10) 更新$ \mathit{\boldsymbol{X}}_{i}^{t} $。当选择Lévy游走时,由式(11) 更新$ \mathit{\boldsymbol{X}}_{i}^{t} $;当选择差分进化时,由式(13)~(15) 更新$ \mathit{\boldsymbol{X}}_{i}^{t} $

第3步:由式(3) 计算个体目标函数值,更新最优个体位置$ \mathit{\boldsymbol{X}}_{\rm{best}}^{t} $。由式(17) 更新个体Q表,并将个体$ s_{t} $更新为所选取的动作$ a_{t} $

第4步:若$ \mathit{\boldsymbol{X}}_{\rm{best}}^{t} $更换,则$ g_{t} $置0。判断$ g_{t} $是否达到$ g_{\max} $,若满足则输出$ \mathit{\boldsymbol{X}}_{\rm{best}}^{t} $,并分割对接图像;否则,转第2步。

4 关键点提取(Keypoint extraction)

提出了基于PCA降维的关键点提取算法。PCA降维法通过计算原始空间中数据方差最大的方向,得到该方向上的投影结果,从而减少数据冗余[27]。PCA求轮廓角度时需计算轮廓点像素坐标样本协方差矩阵的特征值和特征向量,最大特征值对应的特征向量与像素平面$ X $轴的夹角即轮廓角度。

4.1 提取关键轮廓 4.1.1 算法流程

第1步:轮廓检测,设置面积阈值,筛选掉轮廓面积过大或过小的异常轮廓。将轮廓$ \varPhi_{i} $$ i $ $ = $ $ 1, $ $ 2, $ $ \cdots, $ $ N_{\varPhi} $)的轮廓点像素坐标平均值作为轮廓中心$ p_{i} $的像素坐标,$ N_{\varPhi} $为轮廓总数。并利用PCA降维法计算$ \varPhi_{i} $的轮廓角度$ a_{i} $

第2步:如果图像为第1帧,则由式(20) 得到数组$ \mathcal{D}_{1} $$ \mathcal{D}_{2} $$ \mathcal{D}_{3} $$ \mathcal{D}_{4} $

$ \begin{align} {\mathcal D}_{k} (j)=\| {p_{j} -P_{k}} \|, \quad j=1, 2, \cdots, N_{\varPhi} \end{align} $ (20)

其中$ {\mathcal D}_{k} (j) $表示数组$ \mathcal{D}_{k} $的第$ j $个分量,$ \| \cdot \| $表示像素点之间的像素距离,$ P_{k} $$ k=1, 2, 3, 4 $)表示成像平面的右上、左上、左下和右下顶点。

如果图像为第2帧及剩余帧,则首先利用上一帧的关键点与靶心$ P_{\rm C} $建立“靶心-关键点坐标系”,由式(21) 将所有轮廓分配到4个象限$ \varOmega_{1} $$ \varOmega_{2} $$ \varOmega_{3} $$ \varOmega_{4} $,如图 8(b)所示。

$ \varPhi_i \in \begin{cases}\varOmega_1, & \eta_2<\delta_i<\eta_1 \\ \varOmega_2, & \left\{\begin{array}{l} \left(-180<\delta_i<\eta_2\right) \text { or } \\ \left(\eta_4<\delta_i \leqslant 180\right), \quad \eta_4>0 \\ \eta_4<\delta_i<\eta_2, \quad \eta_4<0 \end{array}\right. \\ \varOmega_3, & \left\{\begin{array}{l} \left(\eta_3<\delta_i \leqslant 180\right) \text { or } \\ \left(-180<\delta_i<\eta_4\right), \quad \eta_4<0 \\ \eta_3<\delta_i<\eta_4, \quad \eta_4>0 \end{array}\right.\\ \varOmega_4, & \eta_1<\delta_i<\eta_3 \end{cases} $ (21)
图 8 关键轮廓提取结果 Fig.8 Results of key contour extraction

其中$ \delta_{i}, \eta _{1}, \eta _{2}, \eta _{3}, \eta _{4} $分别为$ p_{i} $、右上与右下关键点像素连线的中点、左上与右上关键点像素连线的中点、左下与右下关键点像素连线的中点和左上与左下关键点像素连线的中点对$ P_{\rm C} $的角度。

由式(22) 得到数组$ \mathcal{D}_{1} $$ \mathcal{D}_{2} $$ \mathcal{D}_{3} $$ \mathcal{D}_{4} $

$ \begin{align} {\mathcal D}_{k} (j)=\| {{p_{j} -P_{\rm C}} \|}, \quad \varPhi_{j} \in \varOmega_{k} \end{align} $ (22)

式(22) 中,$ k=1, 2, 3, 4 $$ j=1, 2, \cdots, N_{\Omega}^{k} $$ N_{\Omega}^{k} $表示第$ k $象限内的轮廓总数。

第3步:若图像为第1帧,则对$ \mathcal{D}_{1} $$ \mathcal{D}_{2} $$ \mathcal{D}_{3} $$ \mathcal{D}_{4} $升序排序,否则降序排序,并分别提取数组前3位对应的轮廓,记为右上轮廓群、左上轮廓群、左下轮廓群和右下轮廓群,见图 8

第4步:在不均匀光照下轮廓的面积与周长会发生变化,所以不能用它们来筛选关键轮廓。因此分别遍历每个轮廓群的所有轮廓,找出其轮廓角度上的最小包围矩形,将矩形的最长边标记为轮廓“方向长度”。将各轮廓群中最大“方向长度”对应的轮廓标记为该轮廓群的关键轮廓。

4.1.2 算法分析

ARV与中继器的相对倾斜角度过大时,第1帧处理算法会提取不到正确的关键轮廓,但是第2帧处理算法具有“纠错”效果,如图 9所示。正确的关键轮廓和靶心为$ \varPhi_{\rm C} $$ P_{\rm C} $,第1帧错误提取的关键轮廓和靶心为$ \varPhi_{\rm W} $$ P_{\rm W} $。由第2帧可在第三象限得到轮廓中心与$ P_{\rm W} $的像素距离最大的3个轮廓$ \varPhi_{\rm C} $$ \varPhi_{\rm S} $$ \varPhi_{\rm X} $,比较“方向长度”后,将会提取$ \varPhi_{\rm C} $作为关键轮廓。

图 9 纠正第1帧错误提取 Fig.9 Correction for extraction mistake in the first frame
4.2 提取关键点

设提取的右上、左上、左下和右下关键轮廓为$ \varPhi_{m} $$ m= 1, 2, 3, 4 $),对应的轮廓角度为$ a_{m} $,轮廓中心点为$ p_{m} $。轮廓点$ I_{mn} $$ m=1, 2, 3, 4 $$ n=1, 2, $ $ \cdots, N_{\rm I}^{m} $)表示第$ m $个关键轮廓的第$ n $个轮廓点,其中$ N_{\rm I}^{m} $为第$ m $个关键轮廓的轮廓点总数。计算$ \varPhi_{m} $中的每个轮廓点$ I_{mn} $相对于$ p_{m} $的角度$ b_{mn} $,如果满足$ b_{mn} \in [\tau_{1}, \tau_{2} ] $,则计算$ I_{mn} $$ p_{m} $的像素距离$ L_{mn} $,其中$ \tau_{1}, \tau_{2} $根据式(23) 计算。

$ \begin{equation} \begin{aligned} & \tau_{1} = \begin{cases} a_{m} -180 , & m=1, \; a_{m} \in [0, 180] \\ a_{m}, & (m=1, \; a_{m} \in (-180, 0)) \; \rm{or }\\[-3pt] & (m=3, \; a_{m} \in [0, 180]) \\ -180, & m=2 \\ 180+a_{m}, & m=3, \; a_{m} \in (-180, 0) \\ 0, & m=4 \end{cases} \\ & \tau_{2} = \begin{cases} a_{m} -180, & m=2, \; a_{m} \in [0, 180] \\ a_{m}, & (m=2, \; a_{m} \in (-180, 0)) \; \rm{or } \\[-3pt] & (m=4, \; a_{m} \in [0, 180]) \\ 180, & m=3 \\ 180+a_{m}, & m=4, \; a_{m} \in (-180, 0) \\ 0, & m=1 \end{cases} \end{aligned} \end{equation} $ (23)

将最大$ L_{mn} $对应的$ I_{mn} $标记为$ \varPhi_{m} $的关键点,对标记的4个关键点像素坐标求取平均值作为$ P_{\rm C} $的像素坐标,如图 10所示。

图 10 关键点提取结果 Fig.10 Results of keypoint extraction
5 位姿估计(Pose estimation)

单目摄像机模型主要考量世界坐标系到图像像素坐标系的映射关系,应用到ARV水下对接,世界坐标系以中继器内框投影面中心为原点,$ X $轴指向中继器左舷,$ Y $轴垂直向下,$ Z $轴垂直于中继器外框架平面向外。摄像机坐标系$ X $轴与$ Y $轴分别平行于图像的横向和纵向,以摄像机光轴为$ Z $轴,沿摄像方向为正。图像物理坐标系与图像像素坐标系的$ X $$ Y $轴分别平行于摄像机坐标系的$ X $$ Y $轴,前者以光轴与像平面的交点为原点,后者以图像的左上角为原点,如图 11所示。

图 11 坐标系 Fig.11 Coordinate systems

关键点在世界坐标系与摄像机坐标系中的坐标由式(24) 转换。

$ \begin{align} \begin{bmatrix} X^{\rm C} \\ Y^{\rm C} \\ Z^{\rm C} \\ 1 \end{bmatrix}=\begin{bmatrix} {\mathit{\boldsymbol{R}}} & {\mathit{\boldsymbol{t}}} \\ {\bf 0}^{\rm T} & 1 \end{bmatrix}\begin{bmatrix} X^{\rm W} \\ Y^{\rm W} \\ Z^{\rm W} \\ 1 \end{bmatrix} \end{align} $ (24)

其中,$ (X^{\rm W}, Y^{\rm W}, Z^{\rm W}) $$ (X^{\rm C}, Y^{\rm C}, Z^{\rm C}) $为关键点在世界坐标系和摄像机坐标系中的坐标。$ {\mathit{\boldsymbol{R}}} $为正交旋转矩阵,其中$ (\psi, \theta, \varphi) $表示世界坐标系绕$ x $$ y $$ z $轴旋转$ \psi $$ \theta $$ \varphi $角度后与摄像机坐标系一致[28],规定沿各坐标轴指向方向的逆时针旋转为正。$ {\mathit{\boldsymbol{t}}} $表示世界坐标系的原点在摄像机坐标系中的坐标,通过式(25) 计算。

$ \begin{equation} \begin{aligned} & \mathit{\boldsymbol{R}} =\begin{bmatrix} {r_{11}} & {r_{12}} & {r_{13}} \\ {r_{21}} & {r_{22}} & {r_{23}} \\ {r_{31}} & {r_{32}} & {r_{33}} \end{bmatrix}, \quad \mathit{\boldsymbol{t}}=\begin{bmatrix} x_{t} \\ y_{t} \\ z_{t} \end{bmatrix} \\ & \begin{cases} r_{11} =\cos \theta \cos \varphi \\ r_{21} =\cos \theta \sin \varphi \\ r_{31} =-\sin \theta \\ r_{12} =\sin \psi \sin \theta \cos \varphi -\cos \psi \sin \varphi \\ r_{22} =\sin \psi \sin \theta \sin \varphi +\cos \psi \cos \varphi \\ r_{32} =\sin \psi \cos \theta \\ r_{13} =\cos \psi \sin \theta \cos \varphi +\sin \psi \sin \varphi \\ r_{23} =\cos \psi \sin \theta \sin \varphi -\sin \psi \cos \varphi \\ r_{33} =\cos \psi \cos \theta \end{cases} \end{aligned} \end{equation} $ (25)

关键点摄像机坐标系与图像物理坐标系的坐标由式(26) 转换。

$ \begin{align} Z^{\rm C} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}=\begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix}\begin{bmatrix} X^{\rm C} \\ Y^{\rm C} \\ Z^{\rm C} \\ 1 \end{bmatrix} \end{align} $ (26)

其中$ (x, y) $为关键点在图像物理坐标系中的坐标;$ f $为焦距,单位为mm。

关键点图像物理坐标系与图像像素坐标系的坐标由式(27) 转换。

$ \begin{align} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}= \begin{bmatrix} \dfrac{1}{d_x} &0& u_{0} \\ 0 & \dfrac{1}{d_y} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \end{align} $ (27)

其中,$ (u, v) $为关键点在图像像素坐标系中的坐标;$ (u_0, v_0) $为图像物理坐标系原点在图像像素坐标系中的坐标,$ d_x $$ d_y $是像素点在横、纵方向上的物理尺寸,单位为mm/pixel。

因此,关键点世界坐标系与图像像素坐标系的坐标由式(28) 转换。

$ \begin{align} Z^{\rm C} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}=\begin{bmatrix} \dfrac{1}{d_x} & 0 & u_{0} \\ 0 & \dfrac{1}{d_y} & v_{0} \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} f& 0& 0& 0 \\ 0& f& 0& 0 \\ 0& 0& 1& 0 \end{bmatrix}\begin{bmatrix} {\mathit{\boldsymbol{R}}} & {\mathit{\boldsymbol{t}}} \\ \mathit{\boldsymbol{0}}^{\rm T} & 1 \end{bmatrix}\begin{bmatrix} X^{\rm W} \\ Y^{\rm W} \\ Z^{\rm W} \\ 1 \end{bmatrix} \end{align} $ (28)

本算法经过图像分割和关键点提取后输出关键点在图像像素坐标系中的坐标,并根据已知的固定关键点世界坐标系坐标求解旋转矩阵$ {\mathit{\boldsymbol{R}}} $和平移向量$ {\mathit{\boldsymbol{t}}} $,即基于2D-3D匹配点估计相对位姿,属于透视n点(PnP)问题[29]。传统的PnP算法在目标点共面时位姿解算误差较大,因此本文采用更适用于关键点共面并且求解速度更快的SRPnP算法[30]求解旋转矩阵$ {\mathit{\boldsymbol{R}}} $和平移向量$ {\mathit{\boldsymbol{t}}} $,得到ARV与中继器的相对位移解算值$ (x_{t}, y_{t}, z_{t}) $和相对倾斜角度解算值$ (\psi, \theta, \varphi) $,完成视觉定位。

6 实验与分析(Experiments and analyses)

对接时,若ARV上开孔正对锁紧机构,则中继器上锁紧机构内部活塞朝向筒体外方向推动锁舌,完成锁舌与开孔的固定。锁舌长72 mm,宽65 mm,高40 mm,如图 12所示。当ARV与中继器内框架边缘不大于72 mm时,锁紧机构能与开孔配合锁住ARV。

图 12 锁紧机构 Fig.12 Locking mechanism

图 13为相对位移和相对倾角解算值都为0时的ARV准备对接示意图。其中外框表示中继器内框投影面,$ O $点为其中心点。内框为ARV对接等效剖面,$ O' $点为ARV首端平面中心点。

图 13 对接示意图 Fig.13 Schematic diagram of docking

设ARV与中继器的相对位移和相对倾斜角度真实值为$ (x_{\rm O}, y_{\rm O}, z_{\rm O}) $$ (\psi_{\rm O}, \theta_{\rm O}, \varphi_{\rm O}) $,解算值为$ (x_{\rm S}, $ $ y_{\rm S}, $ $ z_{\rm S}) $$ (\psi_{\rm S}, \theta_{\rm S}, \varphi_{\rm S}) $,则视觉定位误差中$ X $轴位移误差为$ x_{\rm e} =x_{\rm S} -x_{\rm O} $$ Y $轴位移误差为$ y_{\rm e} =y_{\rm S} -y_{\rm O} $$ Z $轴角度误差为$ \varphi_{\rm e} =\varphi_{\rm S} -\varphi_{\rm O} $图 13$ O' $点相对于$ O $点的$ X $轴位移为$ x_{\rm e} $$ Y $轴位移为$ y_{\rm e} $。内框相对于外框的倾斜角度为$ \varphi_{\rm e} $。以$ O' $点连接内框6个顶点$ A_{r} $分别交外框$ B_{r} $点,$ r= 1, 2, \cdots, 6 $。由式(29) 计算$ {\mathit{\boldsymbol{d}}} $值。当$ {\mathit{\boldsymbol{d}}} $值都大于0时,说明尽管视觉定位存在误差,但是仍可对接成功。

$ \begin{align} d_{r} =O'B_{r} -O'A_{r}, \quad r=1, 2, \cdots, 6 \end{align} $ (29)

如果关键点像素提取误差过大,则相对位移和相对倾斜角度的解算值与其真实值的误差会过大,此时如果得到的$ {\mathit{\boldsymbol{d}}} $值小于0,则会导致对接失败。因此本节首先分析关键点像素提取误差,然后通过计算视觉定位误差求取$ {\mathit{\boldsymbol{d}}} $值,进而判断本算法的定位误差是否满足对接精度要求。为了验证算法的有效性,在水下环境进行试验。摄像机焦距为2.8 mm,图像传感器为1/3$ '' $ CMOS,经过降采样的图像分辨率为1280$ \times $720。算法基于C$ ++ $和OpenCV3.4.6,电脑的CPU为i5-6300HQ @2.30 GHz,内存16 G。

6.1 关键点像素提取误差

对ARV水下对接实验视频按帧数均匀取样,选取300帧水下对接图像进行处理,各步骤处理效果如图 14~17所示。对灰度图中值滤波(滤波核大小为5$ \times $5)后利用QHWOA算法优化Otsu目标函数($ K= $ 4)能够分割出反光带关键轮廓所在连通域,最优阈值见表 1。关键点提取算法可以较为准确地输出关键点在图像像素坐标系中的坐标。图 18给出了对接图像的处理时间,每帧对接图像的处理时间在40~50 ms之间,处理速度能够达到20~25帧/秒,可以满足水下对接实时性要求。

图 14 第1帧图像处理结果 Fig.14 Processing results of the first frame image
图 15 第66帧图像处理结果 Fig.15 Processing results of the 66th frame image
图 16 第160帧图像处理结果 Fig.16 Processing results of the 160th frame image
图 17 第240帧图像处理结果 Fig.17 Processing results of the 240th frame image
表 1 最优阈值 Tab. 1 Optimum threshold values
图 18 处理效率 Fig.18 Processing efficiency

图 19表 2给出了对图 17(a)的分割结果,结合图 17(b)说明:单阈值Otsu方法虽然耗时仅12.6 ms,但是在分割水下对接图像时易将占据大多数区域的背景混淆成前景。多阈值穷举Otsu方法可以精确地提取对象,但是耗时29 s,远远超出了实时性要求。而QHWOA-Otsu方法不但可以精确地提取对象,在耗时上也仅为16.4 ms,虽然无法避免恶劣的不均匀光照影响,但并不影响4个关键轮廓所在连通域的分割。

图 19 图像分割效果 Fig.19 Effect of image segmentation
表 2 图像分割结果 Tab. 2 Results of image segmentation

图 20显示QHWOA-Otsu方法分割图 17(a)过程中某2个个体迭代时的状态、动作和奖罚值。其中包围猎物/探索猎物、泡泡网攻击、Lévy游走和差分进化的状态值及动作值为1、2、3和4。

图 20 Q学习结果 Fig.20 Results of Q-learning

根据水下对接图像的关键点在图像像素坐标系中坐标的算法输出值与真实值得到关键点横纵坐标像素提取误差分布。对300帧水下对接图像处理后得到关键点像素提取误差分布,如图 21所示。

图 21 关键点像素提取误差 Fig.21 Errors of keypoint extraction in pixel

图 21显示左上和左下关键点像素提取误差在4个像素内。右上和右下关键点像素提取误差较大,可能是受到不均匀光照的影响。

为了验证QHWOA-Otsu方法在分割水下对接图像时的性能,分别利用QHWOA、WOA[10]、SCA[12]、CS[13]以及GWO[31]算法优化式(3) 目标函数$ f $来分割图 14(a)~17(a),种群数量为30,迭代次数为100,其他参数如表 3所示。算法独立运行30次后$ f $的平均值和标准差如表 4所示,最优结果加粗表示。图 22给出了$ f $的平均收敛曲线。

表 3 参数设置 Tab. 3 Parameters setting
表 4 目标函数值 Tab. 4 Objective function values
图 22 不同算法的收敛曲线 Fig.22 Convergence curves of different algorithms

表 4$ f $的平均值结果显示除了$ K=6 $时的分割图 16(a)之外,QHWOA算法较其他算法均能获得最优的平均目标函数值,表明以Otsu为目标函数的QHWOA算法具有极高的收敛精度。标准差结果表明QHWOA算法在$ K=6 $时的分割图 15(a)~17(a)$ K=4 $时的分割图 15(a)中稳定性仅劣于CS算法,但整体的稳定性依然优越。

图 22显示,QHWOA算法在迭代初期的寻优效率极高,且在整个迭代中有更高的收敛精度和更快的收敛速度。这主要得益于能提高种群多样性、规避局部最优的更新策略和Q学习的动态调整。

6.2 视觉定位误差

视觉定位误差分析流程如下所示:

第1步:模拟ARV与中继器相对位移为$ (x_{\rm O}, $ $ y_{\rm O}, $ $ z_{\rm O}) $时的相对倾斜角度$ (\psi_{\rm O}, $ $ \theta_{\rm O}, $ $ \varphi_{\rm O})_{i} $$ i $ $ = $ $ 1, $ $ 2, $ $ \cdots, 15 625 $,其中$ \psi_{\rm O} =-30:2.5:30 $$ \theta_{\rm O} =-30:2.5: $ $ 30 $$ \varphi_{\rm O} =-30:2.5:30 $。由式(25) 计算相对位姿$ [{\mathit{\boldsymbol{R}}}_{\rm O}, {\mathit{\boldsymbol{t}}}_{\rm O}]_{i} $

第2步:由式(28) 求$ [{\mathit{\boldsymbol{R}}}_{\rm O}, {\mathit{\boldsymbol{t}}}_{\rm O}]_{i} $下关键点在像素坐标系中的坐标$ {\mathit{\boldsymbol{U}}}_{i} $,并与上节得到的关键点像素提取误差相加:

$ \begin{align} {\mathit{\boldsymbol{U}}}_{ik} ={\mathit{\boldsymbol{U}}}_{i} +{\mathit{\boldsymbol{V}}}_{k} \end{align} $ (30)

其中,$ i=1, 2, \cdots, 15 625 $$ k=1, 2, \cdots, 300 $$ {\mathit{\boldsymbol{V}}}_{k} $为第$ k $帧对接图像的关键点像素提取误差。

第3步:由$ {\mathit{\boldsymbol{U}}}_{ik} $$ (X^{\rm W}, Y^{\rm W}, Z^{\rm W}) $,采用SRPnP算法求相对位姿解算误差$ (x_{\rm e}, y_{\rm e}, z_{\rm e}, \psi_{\rm e}, \theta_{\rm e}, \varphi_{\rm e})_{ik} $,记为$ {\mathit{\boldsymbol{E}}}_{ik} $。由式(29) 求$ S_{{ikr}} $$ i=1, 2, \cdots, 15 625 $$ k $ $ = $ $ 1, $ $ 2, $ $ \cdots, 300 $$ r=1, 2, \cdots, 6 $

第4步:由式(31) 计算ARV与中继器在相对位移$ (x_{\rm O}, y_{\rm O}, z_{\rm O}) $下的$ {\mathit{\boldsymbol{d}}} $值和$ (x_{\rm e}, y_{\rm e}, z_{\rm e}, \psi_{\rm e}, \theta_{\rm e}, \varphi_{\rm e}) $

$ \begin{equation} \begin{aligned} G_{ir} & =\min\limits_{c\in [1, 300]} S_{icr} \\ d_{r} & =\min\limits_{q\in [1, 15625]} G_{qr} \\ J_{ir} & =\underset{c\in [1, 300]}{\rm absmax}\; E_{icr} \\ e_{r} & =\underset{q\in [1, 15625]}{\rm absmax}\; J_{qr} \end{aligned} \end{equation} $ (31)

其中$ \min $$ \rm{absmax} $表示查找矩阵中最小元素和绝对值最大元素,$ {\mathit{\boldsymbol{e}}} $表示$ (x_{\rm O}, y_{\rm O}, z_{\rm O}) $下的$ (x_{\rm e}, y_{\rm e}, z_{\rm e}, \psi_{\rm e}, $ $ \theta_{\rm e}, $ $ \varphi_{\rm e}) $

图 23给出$ z_{\rm O} $为1700 mm、2000 mm、2500 mm、3000 mm、3500 mm和4000 mm且$ x_{\rm O} $$ y_{\rm O} $$ - $800 ~800 mm时的$ {\mathit{\boldsymbol{d}}} $值分布,可以看出$ {\mathit{\boldsymbol{d}}} $值均大于0,即相对位姿解算误差$ (x_{\rm e}, y_{\rm e}, z_{\rm e}, \psi_{\rm e}, \theta_{\rm e} , \varphi_{\rm e}) $满足水下对接精度要求。

图 23 d值分布 Fig.23 Distribution of d

图 24给出$ x_{\rm O} $$ y_{\rm O} $分布在$ - $800~800 mm时,$ z_{\rm O} $$ {\mathit{\boldsymbol{e}}} $值中绝对值最大的$ x_{\rm e}, y_{\rm e}, z_{\rm e}, \psi_{\rm e}, \theta_{\rm e}, \varphi_{\rm e} $的关系。

图 24 相对位姿解算最大误差 Fig.24 Maximum errors of relative pose calculation

图 24显示$ z_{\rm O} $为1.7~4 m时,$ \mathit{\boldsymbol{e}} $值中$ x_{\rm e}, $ $ y_{\rm e} $$ - $12~$ - $37 mm,$ z_{\rm e} $在16~81 mm,$ \psi_{\rm e}, \theta_{\rm e} $在1.1$ ^{\circ} $~ 3.0$ ^{\circ} $$ \varphi_{\rm e} $在0.6$ ^{\circ} $~1.2$ ^{\circ} $

6.3 对接结果

对接时,定位算法输出ARV与中继器的相对位姿并实时反馈给水面工作人员,水面工作人员根据定位算法输出ARV与中继器的相对位姿来调整ARV姿态,而不再是根据对接图像来人工判断ARV与中继器的大概位姿。其中每次对接时ARV均从实验水池左侧出发,对接到悬停在水池右侧的中继器中,水池长12 m,宽8 m,如图 25所示。

图 25 对接场景 Fig.25 Docking scene

对接10次,其中采用定位算法辅助引导对接5次,某次定位算法辅助引导对接过程中相对位姿的解算曲线如图 26所示,定位算法辅助引导ARV从距离中继器4.2 m到距离中继器1.7 m消耗时间仅为70 s,小于不使用定位算法辅助对接时的平均耗时125 s。

图 26 相对位姿解算曲线 Fig.26 Curves of relative pose calculation
7 结论(Conclusion)

针对ARV水下近距离对接定位问题,基于反光带方案设计了一种水下对接视觉定位算法。首先为鲸鱼优化算法引入动态惯性权重、Lévy游走和差分进化策略,利用Q学习的动态学习能力改进混合鲸鱼优化算法,提高算法的收敛精度与收敛速度。进一步利用QHWOA算法优化Otsu目标函数来分割对接图像。然后提出基于PCA降维的关键点提取算法来输出关键点在图像像素坐标系中的坐标。最后采用SRPnP算法快速解算ARV与中继器的相对位姿,实现水下定位。在水下环境开展了ARV对接实验,计算了关键点像素提取误差和视觉定位误差,分析表明:算法在水下对接场景可以准确获取关键点信息,并且在视觉定位上能够输出满足水下对接精度和实时性要求的定位信息,可以引导ARV与中继器对接,提升水下对接效率。

然而,本文关键点提取是在分割图像必须包含反光带关键轮廓所在连通域的前提下针对反光带轮廓设计的,当工程应用中图像发生拖影变形时,将无法提取正确关键轮廓。在后续的工作中将改进关键点提取算法。并且,所提方法在水下对接时,较恶劣的不均匀光照会导致关键点像素提取误差过大,从而造成定位误差过大。在后续的工作中将对这一问题进行改进,减小不均匀光照对水下对接图像分割的影响。

参考文献(References)
[1]
赵俊海, 张美荣, 王帅, 等. ROV中继器的应用研究及发展趋势[J]. 中国造船, 2014, 55(3): 222-232.
Zhao J H, Zhang M R, Wang S, et al. Application and development trend of tether management system (TMS) for ROV[J]. Shipbuilding of China, 2014, 55(3): 222-232. DOI:10.3969/j.issn.1000-4882.2014.03.025
[2]
郑荣, 吕厚权, 于闯, 等. AUV与自主移动坞站对接的技术研究及系统设计实现[J]. 机器人, 2019, 41(6): 713-721.
Zheng R, Lü H Q, Yu C, et al. Technical research, system design and implementation of docking between AUV and autonomous mobile dock station[J]. Robot, 2019, 41(6): 713-721.
[3]
Li D J, Zhang T, Yang C J. Terminal underwater docking of an autonomous underwater vehicle using one camera and one light[J]. Marine Technology Society Journal, 2016, 50(6): 58-68.
[4]
Zhong L J, Li D J, Lin M W, et al. A fast binocular localisation method for AUV docking[J]. Sensors, 2019, 19(7). DOI:10.3390/s19071735
[5]
Palomeras N, Vallicrosa G, Mallios A, et al. AUV homing and docking for remote operations[J]. Ocean Engineering, 2018, 154: 106-120. DOI:10.1016/j.oceaneng.2018.01.114
[6]
Palomeras N, Penalver A, Massot Campos M, et al. I-AUV docking and panel intervention at sea[J]. Sensors, 2016, 16(10). DOI:10.3390/s16101673
[7]
王丙乾, 唐元贵. 面向ARV水下对接的视觉引导信息特征点匹配算法研究[J]. 海洋技术学报, 2018, 37(5): 9-15.
Wang B Q, Tang Y G. Research on feature matching algorithm of visual-guidance-information for ARV underwater docking[J]. Journal of Ocean Technology, 2018, 37(5): 9-15.
[8]
魏志祥, 吴超. 面向ARV的视觉辅助水下对接方法研究[J]. 海洋工程, 2021, 39(1): 91-99, 152.
Wei Z X, Wu C. Study on docking method of ARV based on monocular vision[J]. The Ocean Engineering, 2021, 39(1): 91-99, 152.
[9]
Yan Z P, Zhang J Z, Tang J L. Modified water wave optimization algorithm for underwater multilevel thresholding image segmentation[J]. Multimedia Tools and Applications, 2020, 79(43-44): 32415-32448. DOI:10.1007/s11042-020-09664-1
[10]
Abd El Aziz M, Ewees A A, Hassanien A E. Whale optimization algorithm and moth-flame optimization for multilevel thresholding image segmentation[J]. Expert Systems with Applications, 2017, 83: 242-256. DOI:10.1016/j.eswa.2017.04.023
[11]
Yin P Y. Multilevel minimum cross entropy threshold selection based on particle swarm optimization[J]. Applied Mathematics and Computation, 2007, 184(2): 503-513. DOI:10.1016/j.amc.2006.06.057
[12]
Oliva D, Hinojosa S, Abd El Aziz M, et al. Context based image segmentation using antlion optimization and sine cosine algorithm[J]. Multimedia Tools and Applications, 2018, 77(19): 25761-25797. DOI:10.1007/s11042-018-5815-x
[13]
Agrawal S, Panda R, Bhuyan S, et al. Tsallis entropy based optimal multilevel thresholding using cuckoo search algorithm[J]. Swarm and Evolutionary Computation, 2013, 11: 16-30. DOI:10.1016/j.swevo.2013.02.001
[14]
Samma H, Lim C P, Saleh J M. A new reinforcement learning-based memetic particle swarm optimizer[J]. Applied Soft Computing, 2016, 43: 276-297. DOI:10.1016/j.asoc.2016.01.006
[15]
Zamli K Z, Din F, Ahmed B S, et al. A hybrid Q-learning sine-cosine-based strategy for addressing the combinatorial test suite minimization problem[J]. PLoS ONE, 2018, 13(5). DOI:10.1371/journal.pone.0195675
[16]
Lang C B, Jia H M. Kapur's entropy for color image segmentation based on a hybrid whale optimization algorithm[J]. Entropy, 2019, 21(3). DOI:10.3390/e21030318
[17]
Ewees A A, Abd El Aziz M, Oliva D. Image segmentation via multilevel thresholding using hybrid optimization algorithms[J]. Journal of Electronic Imaging, 2018, 27(6). DOI:10.1117/1.JEI.27.6.063008
[18]
Otsu N. A threshold selection method from gray-level histograms[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1979, 9(1): 62-66. DOI:10.1109/TSMC.1979.4310076
[19]
Merzban M H, Elbayoumi M. Efficient solution of Otsu multilevel image thresholding: A comparative study[J]. Expert Systems with Applications, 2019, 116: 299-309. DOI:10.1016/j.eswa.2018.09.008
[20]
Mirjalili S, Lewis A. The whale optimization algorithm[J]. Advances in Engineering Software, 2016, 95: 51-67.
[21]
Yang X S, Deb S. Cuckoo search via Lévy flights[C]//World Congress on Nature & Biologically Inspired Computing. Piscataway, USA: IEEE, 2009: 210-214.
[22]
Price K V, Storn R M, Lampinen J A. Differential evolution: A practical approach to global optimization[M]. Berlin, Germany: Springer, 2005.
[23]
Tan Z P, Li K S, Wang Y. An improved cuckoo search algorithm for multilevel color image thresholding based on modified fuzzy entropy[J]. Journal of Ambient Intelligence and Humanized Computing, 2021. DOI:10.1007/s12652-021-03001-6
[24]
刘琛, 林盈, 胡晓敏. 差分演化算法各种更新策略的对比分析[J]. 计算机科学与探索, 2013, 7(11): 983-993.
Liu C, Lin Y, Hu X M. Analyses and comparisons of different update strategies for differential evolution[J]. Journal of Frontiers of Computer Science and Technology, 2013, 7(11): 983-993.
[25]
Watkins C J C H, Dayan P. Q-learning[J]. Machine Learning, 1992, 8(3-4): 279-292.
[26]
Guo M Z, Liu Y, Malec J. A new Q-learning algorithm based on the metropolis criterion[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, 2004, 34(5): 2140-2143.
[27]
Li M M, Wang H F, Yang L F, et al. Fast hybrid dimensionality reduction method for classification based on feature selection and grouped feature extraction[J]. Expert Systems with Applications, 2020, 150. DOI:10.1016/j.eswa.2020.113277
[28]
夏军营. 空间目标的单目视觉位姿测量方法研究[D]. 长沙: 国防科学技术大学, 2012.
Xia J X. Researches on monocular vision based pose measurements for space targets[D]. Changsha: National University of Defense Technology, 2012.
[29]
Fischler M A, Bolles R C. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography[J]. Communications of the ACM, 1981, 24(6): 381-395.
[30]
Wang P, Xu G L, Cheng Y H, et al. A simple, robust and fast method for the perspective-n-point problem[J]. Pattern Recognition Letters, 2018, 108: 31-37.
[31]
Mousavirad S J, Ebrahimpour-Komleh H. Multilevel image thresholding using entropy of histogram and recently developed population-based metaheuristic algorithms[J]. Evolutionary Intelligence, 2017, 10(1-2): 45-75.