基于双目立体视觉的海上吊装定位研究
2022-08-26萧昊菁曹旭阳
萧昊菁 曹旭阳
大连理工大学 大连 116024
0 引言
在海洋运输、海洋工程建设、海洋资源开采等领域中,船舶起重机是必不可少的作业装备。受海洋风浪的影响,起重船在实际作业过程中,会产生横摇、纵摇、艏摇等6个自由度的复杂运动,导致物资在悬空期间发生不可控的位姿变化,影响物资的安全补给[1],故开发一套具有海上吊装定位能力的装置有着巨大的工程应用价值。
视觉测量技术具有高精度,非接触,实时在线检测的特点。近几年来,在图像识别、快速跟踪、多相机立体视觉领域取得了重要成果[2]。视觉测量作为非接触测量,被测物体的运动状态不会发生改变,且检测对象不局限于人眼所能看到的范围,红外遥感图像、雷达微波图像,依然可以观测[3]。
鉴于视觉测量在定位方面具有传统传感器所不具备的优越性,考虑将其应用到海上吊装定位系统中。目前,在物体三维测量领域里,视觉测量的产品主要以3种形式出现,分别是单目、双目和多目视觉。单目视觉的应用较为普遍,该方法的优点是结构简单、相机标定容易。但其需要借助惯性传感器提供的数据,且难以获得准确的深度位置信息[4];多目视觉有较高的定位精度,但操作复杂,维护困难,而且价格高昂[5]。双目视觉可直接获得目标物体的三维深度信息,且其在进行位姿测量方面具有效率高、精度合适、系统结构简单、成本低等优点,在虚拟现实、机器人导航及非接触式测量等许多方向均具有重要的应用价值[6]。
针对于上述情况,通过对双目立体视觉定位方法的研究,结合海上复杂的吊装环境需要,以Sift尺度空间为基础对被吊物特征提取算法进行优化,采用Lucas-Kanade算法对被吊物进行目标追踪,最终利用SGBM算法对被吊物进行立体匹配,并求取被吊物的实时三维坐标。实验表明,该方法能够计算得到被吊物在吊装过程中与目标点的相对位置,为指导海上吊装作业提供数据支撑。
1 双目视觉定位方法原理介绍
如图1所示,视觉定位的基本原理是利用摄像机获取被吊物在吊装过程中局部环境信息,通过图像算法处理得到被吊物与目标点之间的三维位置关系进而指导起重作业。
图1 双目视觉定位方法示意图
双目立体视觉定位方法是通过从2个视角观察被吊物[7],利用三角几何原理计算感知图像中的视差,获取被吊物三维坐标信息。指导起重机在吊装过程中的运动和方向控制,使被吊物能精确吊装到目标位置,从而保障海上船用起重机吊装作业的安全性与稳定性。
其工作流程如图2所示,具体实施步骤主要可分为3步:首先,由相机获得被吊物的图像并通过sift尺度空间进行预处理识别被吊物特征点;然后利用Lucas-Kanade光流估计法追踪被吊物运动路径;再通过SGBM算法计算被吊物的立体信息,确定被吊物与目标点之间的相对三维坐标,进而通过上位机转化为电信号输出,指导起重机的作业。
图2 双目视觉定位方法工作流程图
2 定位算法概述
2.1 Sift尺度空间原理
本装置应用的场景为海上吊装,需识别的吊装位置随波浪浮沉,忽大忽小,为了使计算机能对被吊物在不同尺度下有统一的认知,通过高斯金字塔建立图像不同尺度的尺度空间,分析被吊物在不同尺度下均存在的特点。
接下来建立差分高斯金字塔提取图像中的特征点:将每个像素点要和其图像域(同一尺度空间)和尺度域(相邻的尺度空间)的所有相邻点进行比较,当其大于(或者小于)所有相邻点时,将该点作为特征点。
如图3所示,将中间的检测点和其所在图像的3×3邻域8个像素点,以及其相邻的上下2层的3×3领域18个像素点,共26个像素点进行比较,得出图像的特征点。
图3 特征点提取示意图
每个特征点可以得到位置、尺度和方向3个信息(x,y,σ,θ)。
其中,点L(x,y)的梯度的模m(x,y)为
具有多个方向的关键点可以被复制成多份,然后将方向值分别赋给复制后的特征点,1个特征点就产生了多个坐标、尺度相等,但是方向不同的特征点。计算每个梯度方向的累加值,即可形成1个种子点,即每个特征点由4个种子点组成,每个种子点有8个方向的向量信息。如图4所示,1个特征点就可产生32维的Sift特征向量。
图4 32维的sift特征向量示意图
通过特征向量表示特征点的方法可筛选出图像中的特征点,采用Sift尺度空间算法可以得出图像中的中心点、边缘角点等后续视觉检测工作中需要识别的特征点。
2.2 Lucas-Kanade光流估计
经过Sift尺度空间原理特征提取后,得到被吊物的特征点及相关特征信息,基于特征点可对被吊物进行目标追踪。
光流就是像素在某时刻运动的瞬时速度,利用这个瞬时速度可以估计到上一帧该像素点在下一帧的对应位置[8]。假设1个像素在第1帧的光强度为I(x,y,t),当其移动了(dx,dy)的距离到下一帧用了dt的时间。由于是同一个像素点的移动,该像素在运动前后的光强度是不变的,即
式中的Ix、Iy、It均可由图像数据求得,而(u,v)即为所求光流矢量。
Lucas-Kanade光流估计是通过对摄像机采集到的图像序列进行重采样和去噪预处理,利用光流法计算出各点的光流值,得出各点的光流场。然后对光流场进行阈值分割,区分出前景与背景,得出目标区域。经过区域连通便可识别出目标区域并统计其特征信息[9]。流程如图5所示。
图5 Lucas-Kanade光流目标追踪流程图
2.3 SGBM算法
完成目标追踪后,对识别出的目标使用SGBM算法进行视差图计算。SGBM算法核心步骤为:选取匹配基元;构建基于多个方向的扫描线的代价能量和函数;求取能量代价和函数的最优解[10]。OpenCV中SGMB算法的实现主要分为以下4个步骤:
1)预处理
采用水平Sobel算子把图像做处理,其中Sobel算子为
2)代价计算
使用采样方法对经预处理得到的图像梯度信息计算梯度代价、使用采样方法对源图像计算SAD代价。如图6所示,计算方法为输入左右视图2幅图像,对左视图,依次扫描,选定1个锚点:构造一个类似于卷积核的小窗口,用窗口覆盖左视图的图像,选择出窗口覆盖区域内的所有像素点;同样用窗口覆盖右视图的图像并选择出覆盖区域的像素点;将左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对值之和;移动右边图像的窗口,重复设定范围内像素点的处理;将范围内SAD值最小的窗口定义为左视图锚点的最佳匹配的像素块。
图6 SAD代价计算示意图
3)动态规划
在像素点周围,以45°为间隔设置8个路径。在每个方向上按照动态规划的思想进行能量累积,然后将各个方向上的匹配代价相加得到总的匹配代价为
式中:L为当前路径累积的代价函数,P1、P2为像素点与相邻点视差存在较小和较大差异情况下的平滑惩罚。
4)后处理
在完成动态规划后,需要对窗口进行唯一性检测,最低代价对应的视差值才是该像素点的视差,否则该像素点的视差为0。接着对视差图中空白的部分进行亚像素插值,通过得到的左视察图计算右视差图。
经过SGBM获得视差映射后,通过简单的矩阵相乘可提取物体的深度信息,即可输出所需的三维点阵。
3 实验研究
3.1 模拟实验平台
为了验证文中方法的可行性、准确性以及实时性,搭建模拟实验平台进行结果验证。采用一组GM37-545型直流减速电机来模拟海浪运动下被吊物的晃动;采用长130 mm,宽75 mm,高90 mm的纸箱模拟被吊物,如图7所示。被吊物上装有姿态传感器可实时测量计算当前的空间坐标与双目视觉计算结果相比对;如图8所示,采用CAM-AR0135-3T16双目相机进行数据采集,连接计算机进行计算测量。
图7 模拟被吊物
图8 实验双目相机
3.2 算法仿真实验和结果分析
采用Python3.7和OpenCV3.4库进行算法仿真实验。被吊物摆动的过程中选取了摆动过程中的几张图片,利用算法进行三维坐标计算。首先,对图片进行图像预处理,利用sift尺度空间方法进行特征点提取,然后利用Lucas-Kanade光流估计对被吊物进行跟踪,最后用SGBM算法计算出图像的视差图并输出三维坐标。
识别后的部分视差对比图如图9所示。实验中被吊物X轴摆幅在±50 mm、Y轴摆幅在±20 mm、Z轴摆幅在±170 mm。被吊物在不同位姿下三维识别坐标与测量值的误差对比如表1~表3所示。
图9 识别后的视差对比图
由表1~表3分析可知,算法可以很好地识别出被吊物并计算出其三维坐标,虽与实际真值之间存在一定误差,但误差值在可控范围内,可以满足实际工作需求。
表1 X轴向结果对比 mm
表3 Z轴向结果对比 mm
表2 Y轴向结果对比 mm
4 结语
为了研究海上吊装过程中被吊物的定位及位姿变化过程,提出了一种可应用于海上吊装的双目视觉立体定位方法。本文基于现有双目视觉立体定位原理,结合Sift尺度空间原理、Lucas-Kanade光流估计、SGBM算法等方法搭建了模拟实验平台。获取实验数据并进行数据分析,实验证明双目立体视觉定位方法能够得到被吊物的三维位姿,为海上吊装精准作业提供检测方法。