2. 自然资源部北海局,山东 青岛 266061
2. North China Sea Branch, Ministry of Natural Resources, Qingdao 266061, China
作为水下资源探索的一个重要工具,水下机器人需要承担各种各样的科研任务。由于自身携带能源的限制以及对数据传输的要求,需要及时回到母船补充能源,这种方式需要花费大量的人力和物力[1]。而且,目前大多数的AUV作业在各个流程操作方面,基本都是依赖于人员的操作。而水下对接技术能够实现对水下机器人进行充电,数据传输和扩大活动范围的功能,减少人力物力,因此如何发展自主的水下对接回收技术成为关键。
目前,在水下对接过程中,水下机器人所采用的传感器方式主要分为4种:1)电磁传感方式,2)声学传感方式,3)光学传感方式,4)视觉传感方式[2]。对于声学和电磁学导引方式,一般是用于距离较长、精度要求不是特别高的过程。光学和视觉的导引方式相对于上述2种传感器,作业的范围有限,通常在几十米的距离之内,但视觉的导引精度很高,抗外界干扰能力、鲁棒性较强,适用于多变的水下环境,常常用于短距离的水下对接[3]。基于视觉的水下对接系统主要包括对接站、安装在水下机器人上的摄像机和对接算法。国内外已经有很多科研机构对自主航行器视觉引导进行了研究、试验:1)Li et al.(2015)在一个圆锥体形状的对接台边缘放置了4个540 mm的绿灯,实现了良好的水下绿灯传播[4]。2)Maki等(2015)利用3盏绿灯和1盏红灯的三维地标进行水下对接。
水下对接引导算法主要承担检测和位置估计的作用[5],传统的水下对接检测算法主要分为两大类:1)基于二值化。Park等首先通过预先定义的固定阈值对图像进行二值化,然后使用卷积去除噪声;2)基于特征。Li等[6]以基于特征的检测方法为例,首先采用Meanshift算法提取光源面积,然后利用该算法对轮廓特征进行识别。相对于上文提到的手动或者依赖先验知识的算法,基于深度学习的目标检测算法相较于其他算法适用性更广,效果更好。所以提出一种基于卷积神经网络的目标检测算法用于水下对接,相对于传统方法,具有准确度高、鲁棒性强的优点,对对接效率来讲也有一定性的提升。水下对接引导算法的创新性如下:
1)设计一个基于神经网络的目标检测框架,用于水下对接过程。首先使用神经网络目标检测算法检测物体,获取物体的大致位置,得到感兴趣区域,然后通过分割算法得到特征点的位置,最后通过位姿估计获得对接站与水下机器人之间的相对位姿。
2)改进了YOLOv3算法的特征提取网络以及检测层,能够提高计算精度,以及准确度。
设计的水下对接引导算法流程如图2所示。
YOLO算法是通过将检测任务看作是回归问题来进行处理[7]。这种思想的好处是对物体的检测速度很快,算法效率高,而且能够有效的区分背景、学习物体的泛化特征。所以本文设计了一种基于YOLOv3改进的水下中继器目标检测算法,作为水下对接导引的目标检测模型。
1.2 改进型YOLOv3水下对接目标检测算法在神经网络训练过程中,由于卷积和降采样操作的存在,特征信息会丢失,借鉴DenseNet[10]的思想,在DarkNet-53的基础上将ResNet替换成DenseNet,可以缓解由于层数过多而导致的梯度消失问题,提升网络性能。DenseBlock结构如图3所示。
图中,
${X_n} = {Y_n}\left( {\left[ {{X_0},{X_1}, \cdots {X_{n - 1}}} \right]} \right)\text{。}$ | (1) |
式中:
由表1可以看出,改进的算法首先将输入的
通过特征网络后,分别得到
改进的YOLOv3的损失函数为:
$l\left( \theta \right) = {\lambda _1}{l_1}\left( \theta \right) + {\lambda _2}{l_2}\left( \theta \right) + {\lambda _3}{l_3}\left( \theta \right)\text{,}$ | (2) |
损失函数主要包括坐标误差和置信度误差,主要可以为3部分,第1部分为坐标误差,具体公式为:
$\begin{split}{l_1}\left( \theta \right) =& \mathop \sum \limits_{i = 1}^{{G^2}} \mathop \sum \limits_{b = 1}^B l_{i,b}^{dock}\left[{\left({x_{i,b}} - \widehat {{x_{i,b}}}\right)^2} + {\left( {{y_{i,b}} - \widehat {{y_{i,b}}}} \right)^2}\right] +\\ &\mathop \sum \limits_{i = 1}^{{G^2}} \mathop \sum \limits_{b = 1}^B l_{i,b}^{dock}\left[{\left(\sqrt {{w_{i,b}}} - \sqrt {\widehat {{w_{i,b}}}} \right)^2} + {\left(\sqrt {{h_{i,b}}} - \sqrt {\widehat {{h_{i,b}}}} \right)^2}\right]\text{,}\end{split}$ | (3) |
式中
第2部分和第3部分为置信度误差:
${l_2}\left( \theta \right)\!=\! - \!\!\mathop \sum \limits_{i = 1}^{{G^2}}\!\! \mathop \sum \limits_{b = 1}^B l_{i,b}^{dock}\!\left[\widehat {{C_i}}\log ({C_i}) \!+\! \left(1 \!-\! \widehat {{C_i}}\right)\log \left(1 \!-\! \widehat {{C_i}}\right)\right]\text{,}$ | (4) |
${l_3}\left( \theta \right)= - \mathop \sum \limits_{i = 1}^{{G^2}} \mathop \sum \limits_{b = 1}^B l_{i,b}^{nodock}\left[\widehat {{C_i}}\log \left({C_i}\right) + \left(1 - \widehat {{C_i}}\right)\log \left(1 - \widehat {{C_i}}\right)\right]\text{。}$ | (5) |
式中:
在第1部分中,解释了如何利用改进的YOLOv3算法得到对接站在二维图像中的位置。在这一部分,提供一种方法用来恢复水下机器人和对接站之间的三维位置,实现对水下机器人的定位。
第1部分利用目标检测算法可以得到感兴趣区域,在提取出中继器的大致位置之后,为了进一步进行位姿估计,需要得到导引灯的坐标位置,为此采用基于阈值分割的方法进行特征点提取,阈值分割法是图像分割中最常用的办法,它是通过设定特定的阈值把图像中的像素分为若干个等级,利用需要提取的目标与背景之间的阈值差异,来进行提取目标的方法[12]。由于点光源的中心灰度值较高,其他位置的灰度值随点光源的距离增大而减少。如果图像进行分割后,恰好有4个连通域,说明满足要求。如果阈值过小,会使得连通域小于4,然后可逐步增大阈值,使条件满足。流程如图5所示。
利用自适应分割方法成功的得到了4个连通域。但进行下一步位姿转换时,需要用到导引灯圆心坐标。基于形态学的角度来分析导引灯,可以得到结论:从特征点(导引灯中心)向外延伸的导引灯连通域,基本是成圆形。所以为了准确的得到圆心位置,可以把边界的统计矩作为检测边界,利用形态学方法求取[14]。
2.2 坐标转换将特征点由图像坐标系转换到世界坐标系的过程,需要用到3个坐标系:1)图像坐标系,2)相机坐标系,3)世界坐标系。转换关系为:
$\left[ {\begin{array}{*{20}{c}} u \\ v \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\dfrac{1}{{dx}}}&0&{{u_0}} \\ 0&{\dfrac{1}{{dy}}}&{{v_0}} \\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x \\ y \\ 1 \end{array}} \right]\text{。}$ | (6) |
式中:
相机坐标系{
世界坐标系{
接下来,解释在相机坐标系和目标坐标系之间的转换,图像坐标和相机坐标之间的转换关系为:
${Z^c}\left[ {\begin{array}{*{20}{c}} x \\ y \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} f&0&0&0 \\ 0&f&0&0 \\ 0&0&1&0 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X^c}} \\ {{Y^c}} \\ {{Z^c}} \\ 1 \end{array}} \right]\text{,}$ | (7) |
即
${Z^c}\left[ {\begin{array}{*{20}{c}} u \\ v \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{k_x}}&0&{{u_0}}&0 \\ 0&{{k_y}}&{{v_0}}&0 \\ 0&0&1&0 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X^c}} \\ {{Y^c}} \\ {{Z^c}} \\ 1 \end{array}} \right]\text{。}$ | (8) |
其中:
$\left[ {\begin{array}{*{20}{c}} {{X^c}} \\ {{Y^c}} \\ {{Z^c}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} R&t \\ {{0^T}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X^t}} \\ {{Y^t}} \\ {{Z^t}} \\ 1 \end{array}} \right]\text{,}$ | (9) |
其中
所以图像坐标到世界坐标之间的转换关系为:
${Z^c}\left[ {\begin{array}{*{20}{c}} u \\ v \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{k_x}}&0&{{u_0}}&0 \\ 0&{{k_y}}&{{v_0}}&0 \\ 0&0&1&0 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} R&t \\ {{0^T}}&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X^t}} \\ {{Y^t}} \\ {{Z^t}} \\ 1 \end{array}} \right]\text{。}$ | (10) |
求解姿态矩阵
为了对水下对接引导算法进行验证,设计了标定板以及引导光源作为对接装置的模拟,并在此基础上制作了DOCK数据集,用于对目标检测算法的训练、验证。按照VOC格式制作数据集。数据集分为训练集和测试集,其中训练集816张,测试集200张。如表2所示。
对接模拟装置如图7所示,在矩形板4个角上布置LED灯模拟引导灯方案[16]。对改进的YOLOv3目标检测网络进行训练,软件配置为:GTX1050Ti,intel i5CPU,64GB内存,操作系统win10。模型训练的超参数为:批次大小为6,本次训练的迭代轮数为1500。通过选定
由图8可知,在训练过程中,一开始损失值(loss)较高,不断波动,随着训练过程进行,损失值不断减小。到了200个epoch的附近,损失值趋于收敛,中间有小部分波动,最后loss值趋于稳定。
选取200张模拟水下环境的模拟对接版的照片,进行检测,可以看出提出的改进YOLOv3模型检测准确率达到了91.5%,能够较好完成水下对接导引过程中的检测任务。而且,从图9的检测结果可以看出,检测算法对于对接模拟板有很好的检测结果。
为了验证水下对接引导算法的可行性,以及改进后的目标检测算法的有效性,通过模拟水下机器人与中继器从远到近的对接过程,采集模拟标定板的图片,进行自整定阈值分割算法处理,并进行与传统算法的特征点提取准确率对比。
自整定分割的效果图如图10和图11所示。可以看出能够较准确分割出特征点在图像中的位置,进而进行坐标转换,从而减少后续位姿估计的误差,并选取20张照片进行特征点提取准确率试验验证。由表4的特征提取准确率可以看出,基于YOLOv3改进的水下对接视觉引导方案能够更好减少背景信息的干扰,在准确性方面能够很好完成任务,提高特征点提取的准确率。所以设计的水下对接引导算法能够很好的应用到水下对接。
为了更好减少无关的背景信息干扰,完成近距离水下对接,设计一种基于神经网络的水下对接引导算法。改进的YOLOv3目标检测算法很好地完成了对中继器在二维图像中的目标定位,准确分割了背景信息与感兴趣区域,具有更好的鲁棒性、准确性。然后通过特征点提取,坐标转换完成对对接板的位姿估计。实验以对接板模拟中继器,通过选取不同距离的参考点来验证方案的有效性。实验结果表明:1)基于神经网络的目标检测算法可以准确完成对中继器在二维图像中的目标提取。2)位姿估计方案能够有效准确完成特征点提取,坐标转换。未来的研究方向是基于提出的算法框架进行水下实际对接实验,并进行数据分析及算法改进,将该技术应用到实际工程中去。
[1] |
BELLINGHAM J. G. (2016) Autonomous underwater vehicle docking. In: Dhanak, M. R. and Xiros, N. I. (eds) Springer International Publishing, 387–406.
|
[2] |
LI Y, JIANG Y, CAO J, et al. Auv docking experiments based on vision positioning using two cameras[J]. Ocean Engineering, 2015, 110: 163-173. DOI:10.1016/j.oceaneng.2015.10.015 |
[3] |
MAKI T, SHIROKU R, SATO Y, et al. (2013) Docking method for hovering type auvs by acoustic and visual positioning[C]// In: 2013 IEEE International Underwater Technology Symposium(UT), Tokyo, Japan, 5–8 March 2013, 1–6.
|
[4] |
H. SINGH, G. JAMES. Docking for an autonomous ocean sampling network[J]. IEEE Journal of Oceanic Engineering, 2001, 498-514. |
[5] |
ZENG A, YU Kuanting, SONG Shuran, et al. Multi-view self-supervised deep learning for 6d pose estimation in the amazon picking challenge[C]// IEEE International Conference on Robotics and Automation. Piscataway, NJ: IEEE Press, 2017: 1386−1383.
|
[6] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//IEEE Conference on Computer Vision & Pattern Recognition. IEEE Computer Society, 2014: 580−587.
|
[7] |
GIRSHICK R B. Fast R-CNN[C]//The IEEE International Conference on Computer Vision (ICCV), 2015: 1440–1448.
|
[8] |
DAI J, LI Y, HE K, et al. R-FCN: object detection via region-based fully convolutional networks[C]//Conference and Workshop on Neural Information Processing Systems, 2016: 379–387.
|
[9] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017: 7263−7271.
|
[10] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//European Conference on Computer Vision. 2016: 21–37.
|
[11] |
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition(CVPR). IEEE Computer Society, 2016: 770−778.
|
[12] |
HUANG G, LIU Z, LAURENS V D M. Densely connected convolutional networks[C]//IEEE conference on Computer Vision and Pattern Recognition, 2017: 2261−2269.
|
[13] |
王丙乾, 唐元贵. 面向ARV水下对接的视觉引导信息特征点匹配算法研究[J]. 海洋技术学报, 2018, 37(5): 9-15. |
[14] |
ZHANG Z. Flexible camera calibration by viewing a plane from unknown orientations[C]// Proceedings of the Seventh IEEE International Conference on Computer Vision. IEEE, 1999.
|
[15] |
ZHANG Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. DOI:10.1109/34.888718 |
[16] |
伊文康, 高宏伟. 基于视觉的水下机器人自主对接引导算法研究[D]. 沈阳: 沈阳理工大学, 2017.
|