2. 东华理工大学测绘与空间信息工程学院, 江西南昌 330013;
3. 中国科学院海洋研究所海洋地质与环境重点实验室, 山东青岛 266071;
4. 中国科学院海洋大科学研究中心, 山东青岛 266071
2. School of Surveying and Geoinformation Engineering, East China University of Technology, Nanchang, Jiangxi, 330013, China;
3. Key Laboratory of Marine Geology and Environment, Institute of Oceanography, Chinese Academy of Sciences, Qingdao, Shandong, 266071, China;
4. Center for Ocean Mega-Science, Chinese Academy of Sciences, Qingdao, Shandong, 266071, China
随着海洋探测技术的不断发展和进步,人类对海洋的探索已经逐步由浅海走向深海。为更深入地了解深海底环境,运用水下机器人(ROV、AUV)进行深海底探测已经成为一种常规手段[1]。单幅视频图像仅能获取和记录有限距离和视角内的海底信息[2],为了构建海底大范围全景图像以便更加充分、全面地了解海底的整体环境,需要对这些视频图像数据进行快速高效的拼接处理。通过拼接处理得到的大幅面海底图像,不仅可以帮助海洋考古学家重建调查区内特征事件序列,为海洋生物学家提供栖息地的立体影像记录,同时还可以为海洋地质研究人员提供更直观精细的微地貌特征,从而能更加准确定位海底热液喷口位置、了解烟囱状态及其周边海底环境[3, 4]。
早在20世纪80年代后期,美国伍兹霍尔海洋研究所深潜实验室就致力于采用特定系统预处理水下场景图像、手动拼接图像,该方法后来在其他研究机构得到广泛应用[5]。Haywood[6]提出计算机辅助海底图像拼接系统,以高精度定位数据为基础进行图像拼接,无需对影像进行分析。Maki等[7]基于同步定位与制图的概念,提出一种特定的导航方案用于AUV海底图像拼接。Marks等[8]提出一种海底图像自动拼接方法,假定图像只有很小的旋转和缩放,建立四参数约束的半刚性运动模型。Pizarro[9]提出的海底图像拼接方法处理数据量较大,主要关注精确度和平滑度,不能满足实时性要求。Singh等[10]对几种海底拍摄平台中的光照效果、功率以及相机与光源的距离进行分析,将基于陆地应用的空间算法改进后应用于海底图像拼接。Leone等[11]和Gracias等[12]提出全自动化海底图像拼接方法。谢雨来[13]提出基于加速稳健特征(Speeded Up Robust Features,SURF)算法的水下图像实时配准方法。葛中锋[14]提出水下影像快速拼接算法。吴冬梅等[15]则提出基于尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)算法的海底图像自动拼接方法。张宇超[16]提出一种基于SIFT算法的水下电荷耦合器件(Charge-Coupled Device, CCD)的图像拼接技术。Li等[17]提出一种快速多摄像头视频拼接算法。何国权[2]提出针对海底AUV序列图像的拼接和质量评估方法,该方法未对亮度不均匀问题进行平滑处理,仅适用于两张图像拼接。徐聪聪[18]在对水下图像进行预处理的基础上,提出准确度高、实时性好的基于SURF的水下图像拼接方法。
国内外学者虽然对海底视频图像拼接提出了各种不同的方法,但基本上都采用基于特征点的匹配技术,仅适用于海底特定拍摄环境的视频图像数据,在应用场景、计算效率、实时性或鲁棒性方面均存在一定的局限性。针对海底的特殊环境而获取的海底视频图像呈现获取难度较高、覆盖面积小、光照不均匀、数据量大、特征点稀少等独有的特点。本文借鉴无人机影像拼接方法,引入姿态和位置数据,构建一种基于水下机器人的海底视频图像拼接处理方法,即对视频图像进行方位纠正,基于坐标数据进行位置拼接,通过融合匀色处理,最终得到海底全景拼接图像。
1 数据来源本文采用2014年12月中国科学院海洋研究所雅浦海山综合调查航次中水下机器人拍摄的太平洋雅浦岛弧T4海山区海底高清视频图像,拍摄时水下机器人位于海底一千多米深处,离海底高度约为2-3 m。水下机器人配备的高清数码相机图像分辨率为3 648×2 736像素,焦距为6.1-30.5 mm,光圈为f2.8-f4.5,在水中拍摄视角为60°。水下机器人还配备了Bowtech LED光源系统,可以输出4 200 lm的光通量。
考虑到水下机器人的安全问题,且高清数码相机的安装支架较短,为提高水下机器人的作业效率,高清数码相机直接进行海底视频拍摄,拍摄时利用超短基线定位系统记录水下机器人的实时位置、信标高程、姿态传感器记录角度以及离底高度等信息。
2 拼接流程与数据处理方法针对水下机器人拍摄的视频图像数据以及定位、姿态数据,本文设计了一种基于实时位置与姿态数据的水下机器人海底视频图像拼接和处理流程(图 1)。
2.1 卡尔曼滤波算法
图 1的辅助数据处理需要读取定位数据。通过提取水下机器人的定位记录数据,发现水下机器人记录的部分航迹数据存在明显偏离主航迹线的跳点,因此需要对这部分跳点数据进行过滤。本文采用卡尔曼(Kalman)滤波算法对原始航迹数据进行过滤预处理,以获得稳定、准确的轨迹。Kalman滤波算法属于一种软件滤波方法,其基本思想是以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。Kalman滤波算法根据建立的系统方程和观测方程求出需要处理的信号最小均方误差的估计,该算法可以有效地抑制定位信息误差的发散,使定位轨迹更加稳定,精确度更高[19, 20]。
2.2 图像空间分辨率的确定方法为便于进行图像拼接,需计算出每帧图像在海底的覆盖范围。利用焦距以及相机距离海底的高度,采用投影公式即可计算出图像的覆盖范围。由于拍摄相机距离海底的高度测量精度较差,因此本文采用图像匹配并结合定位数据的方法计算图像的空间分辨率(图 1),从而进一步计算得到每帧图像在海底的覆盖范围。利用每帧图像的经纬度信息,经投影转换为平面坐标后可以计算出相邻拍摄位置之间的距离。由于拍摄时的视频记录时间只能精确到秒,而视频每秒帧率为25,因此精确计算出每帧图像的拍摄位置比较困难。本文提出一种近似估算的方法,即粗略算出相邻两张图像的偏移,通过内插的方法得到拍摄时两张图像之间的距离。由于水下视频拍摄时光线不均匀,水底目标成像无法保证全部清晰,导致并非所有水下拍摄的图像都能够提取大量的特征点。因此本文假设水下机器人运行稳定,并且航行时与海底的距离大致保持在一定高度(2-3 m),使得每张图像覆盖的海底范围基本一致。利用某一部分图像之间的匹配关系,即可粗略计算出图像的空间分辨率。图 2为连续两幅图像中同一像素的移动位置。
图 2连续两幅图像的投影坐标分别为(x1, y1)、(x2, y2),同一像素在两幅图像中的平移量,即图像平移量为(m2-m1, n2-n1),图像的移动距离为(x2-x1, y2-y1),则可获X,Y方向的空间分辨率分别为
$ \left\{\begin{array}{l} a=\left(x_2-x_1\right) /\left(m_2-m_1\right) \\ b=\left(y_2-y_1\right) /\left(n_2-n_1\right) \end{array}, \right. $ | (1) |
取平均值(a+b)/2作为整幅图像的海底空间分辨率,进而可获得每帧图像的海底覆盖范围。
2.3 拉普拉斯金字塔影像融合算法由于水下拍摄时一般使用外部光源进行照明,视频图像出现较剧烈的明暗变化,呈现出边缘部分较暗、中心部分较亮的特点,导致拼接后的图像明显出现灰度不连续的情况,影响视觉观察效果。
根据图 1的图像拼接和匀色处理流程,结合最佳缝合线法,本文采用拉普拉斯金字塔影像融合算法进行拼接后的融合处理[21-24],该算法以拉普拉斯金字塔分解和复原技术为基础,能够实现融合的自动化处理,得到整体匀色后的拼接图像。算法流程分为以下3个步骤。
① 构造高斯金字塔。设原图像G0为高斯金字塔的零层(底层),高斯金字塔的第l层记为Gl。先将Gl-1和一个有低通特性的窗口函数w(m, n)卷积,然后把卷积结果作隔行隔列的降采样,即
$ G_l=\sum\nolimits_{m=-2}^2 \sum\nolimits_{n=-2}^2 w(m, n) \times G_{l-1}(2 i+m, \\2 j+n) \text {, } $ | (2) |
其中,0 < l < N,0≤i≤Cl,0≤j≤Rl;N为金字塔总层数;Cl和Rl分别为金字塔第l层图像的行数与列数。w(m, n)函数定义如下:
$ \left\{\begin{array}{l} w(m, n)=\hat{w}(m) * \hat{w}(n) \\ \hat{w}(0)=a \\ \hat{w}(1)=\hat{w}(-1)=\frac{1}{4} \\ \hat{w}(2)=\hat{w}(-2)=\frac{1}{4}-\frac{a}{2} \end{array}, \right. $ | (3) |
其中,a的取值为0.3-0.6。
各层分别融合后相加,为了保证图像相加时大小一致,需要利用插值方法对高斯金字塔中每一层小的图像插入一个值,使它的尺寸扩大成其前一个图像的尺寸。EXPAND函数定义如下:
$ \left\{\begin{array}{l} G_{l, 0}=G_l \\ G_{l, k}=\operatorname{EXPAND}\left[G_{l, k-1}\right] \\ G_{l, k}(i, j)=4 \sum\nolimits_{m=-2}^2 \sum\nolimits_{n=-2}^2 G_{l, k-1} \cdot, \\ \quad\left(\frac{2 i+m}{2}, \frac{2 j+n}{2}\right) \end{array}\right. $ | (4) |
其中,0 < k < N。
② 利用EXPAND函数运算,实现拉普拉斯金字塔分解:
$ \left\{\begin{array}{l} L_N=G_N \\ L_l=G_l-\operatorname{EXPAND}\left[G_{l+1}\right]=G_l-G_{l+1, 1} \end{array}, \right. $ | (5) |
其中,0 < l < N,L0,L1,…,LN记为拉普拉斯金字塔。L0可以通过G0和G1执行一次EXPAND运算后求差得到。
③ 拉普拉斯金字塔反变换。对上述过程逆向变换即可重构G0。取GN=LN,由公式(5)可以看出,GN-1为LN执行一次EXPAND运算后和LN-1相加得到。依次类推,可以重构得到G0。
3 基于水下机器人的海底视频图像拼接根据前文提出的整个拼接处理流程,将上述提出的数据预处理方法应用到具体的海底视频图像拼接处理中,基于一定的假设条件最终得到基于水下机器人的海底视频图像拼接结果。
3.1 定位与姿态数据处理为获取拼接所需要的视频图像准确的位置和姿态信息,需要对定位信息进行预处理。利用编制的小程序从原始记录的文件中提取出经纬度信息以及姿态数据,并将其转换为十进制格式后进行存储。图 3为水下机器人水下航行记录的定位数据中的航迹。从图 3可以看出,水下机器人记录的数据大部分是连续稳定的,少部分数据明显偏离了航行的轨迹。
根据视频中记录的时间信息,将其与定位、姿态数据中的时间戳一一对应,可以得到拍摄时刻每帧图像的定位与姿态信息。因定位与姿态数据记录的时间与视频图像的时间间隔不完全一致,因此需要对定位与姿态数据进行插值处理。
图 4展示了原始航迹经过Kalman滤波和插值运算后,截取的部分较为连续稳定的航迹。插值处理后数据文件中的每一行均保存了对应的经纬度,与视频图像文件存储于同一个目录,便于程序的读写。
3.2 视频图像数据处理
为得到拼接需要的时间序列图像,需要从视频数据中截取出图像帧数据,并获得该帧图像对应的时间。调用OpenCV2的python接口函数进行算法编程,利用CV2读取视频文件,并且每隔3 s (每秒25帧)保存一张图像。为方便连续帧图像的提取,在处理过程中将原始视频记录的vob格式转换为avi格式。
图像拼接需要有统一的基准,本文以平面坐标为基准,但拍摄时记录的坐标系是大地坐标系,因此需要将大地坐标转换为平面坐标。将WGS84 (World Geodetic System 1984)作为投影的基准面,利用通用横轴墨卡托(Universal Transverse Mercator,UTM)投影将实际拍摄视频图像的大地坐标系进行投影转换,得到平面坐标系。此外,拍摄时水下机器人也记录了其姿态信息,即姿态数据的3个角度分别为heading、pitch、roll,其中heading为水下机器人的航向角,pitch为俯仰角度,roll为旋转角度。在水下拍摄的视频有时比较模糊,不能提供大量的特征点进行特征匹配,导致获取水下地形数据的难度较大。本文假设海底没有地形起伏,仅通过heading角度来进行视频图像真实航行方向的校正,为了使拼接处理更为简单,暂不考虑pitch和roll参数的影响。图 5为根据水下机器人姿态数据中某个时刻对应的heading角度(数据读取为257.15°)对原始图像进行旋转处理后的结果,经过处理后视频图像的方位恢复到水下机器人行驶的方向。
3.3 海底图像空间分辨率的确定
结合拍摄记录的时间戳与水下机器人航迹的投影坐标(图 6)可以看出,水下机器人在拍摄时是自东向西移动,即X坐标数值由大到小。
选取带特征地物连续的两张图像(图 7)可以看出,图中红色圆圈标记的特征地物相对于水下机器人的位置发生了变化,根据这两张图像的位置变化可粗略推算出每张图像覆盖的面积。
两张图像对应的UTM投影坐标分别为(804 832.270 6,980 381.989 7)和(804 831.297 7, 980 381.966 9),计算得到的平移量分别为0.973 0、0.227 5 m。
根据特征点匹配得到的图像偏移量为(24,70)像素,由于水下机器人是自东向西行驶,所以图像上的Y方向对应的是平面坐标的X。因此,可粗略计算得到每个像素对应的空间分辨率分别为0.014、0.009 m,取两者平均值0.012 m作为拼接时的图像空间分辨率。
3.4 海底视频图像拼接依据前文提出的拉普拉斯金字塔影像融合算法,基于位置的视频图像拼接方法,运用C++语言调用OpenCV和GDAL函数库进行算法编程,实现基于水下机器人的海底视频图像拼接。图 8为9张视频图像融合匀色前后的拼接效果。未经过融合匀色处理的拼接图像有明显的接缝,且整体灰度不均匀[图 8(a)];而经过融合匀色处理后的拼接图像消除了明显的接缝效应,整体匀色视觉效果也有较大的改善[图 8(b)]。通过实验发现,当视频图像数据量较少时,整个拼接处理效率较高;但当数据量达到上百张后,拼接效率明显下降。因此,后期还需要对程序进行优化,以期能达到相对快速的拼接处理。
4 结论
本文对基于水下机器人的海底视频图像数据拼接技术进行了探讨,提出了整套具体的拼接技术流程和方法。通过对视频图像数据进行预处理,结合预处理后的姿态与定位数据完成基于位置的视频图像拼接,并借助特定的融合匀色处理算法对拼接结果进行优化,从而得到最终的全景拼接图像。具体结论如下:①借鉴无人机影像拼接技术并结合海底拍摄的视频图像自身的特点,提出了一套基于水下机器人的视频图像拼接处理流程;②提出采用卡尔曼滤波算法、插值算法对水下机器人航迹数据中的跳点和缺失数据进行预处理,基于一定的假设条件提出一种视频图像空间分辨率的确定方法;③为恢复近乎真实的海底地貌特征,消除图像拼接缝以及图像本身的光照不均匀问题,提出采用拉普拉斯金字塔影像融合算法对拼接图像整体进行融合匀色处理,取得了较好的效果。
本文完成了海底视频图像的拼接试验,图像本身清晰度较高,取得了较好的拼接效果,但是所提方法还存在一定的局限性,例如,假设原始视频图像拍摄时高度相对恒定,未对图像拼接结果质量、精度、可靠性和通用性等方面进行定性或定量化的分析和评价,因此还需要获取更多复杂拍摄场景下海底视频图像数据,进一步验证本文所提方法的适用性。随着海洋探测的不断深入,水下机器人探测将会获取海量的海底视频图像资料,而且对大幅面海底视频图像拼接图的应用需求会逐渐增多,拍摄的海底环境会更加复杂多变,如何将这些在复杂海底环境下拍摄的海量视频图像数据实时、快速、高效地自动化拼接起来是今后面临的一大挑战,后续可以提出一种较为通用的海底视频图像自动化拼接方法,同时对拼接后的图像质量进行定量或定性分析和评价,为海洋探测科研人员积累更多高质量的大范围全景图像资料提供基础。
[1] |
RICHMOND K. Real-time visual mosaicking and navigation on the seafloor [D]. Palo Alto: Stanford University, 2009.
|
[2] |
何国权. 深海AUV序列图像拼接关键技术研究[D]. 杭州: 浙江理工大学, 2015.
|
[3] |
SINGH H, CAN A, EUSTICE R, et al. Seabed AUV offers new platform for high-resolution imaging[J]. Eos, Transactions American Geophysical Union, 2004, 85(31): 289-296. |
[4] |
LUDVIGSEN M, SORTLAND B, JOHNSEN G, et al. Applications of geo-referenced underwater photo mosaics in marine biology and archaeology[J]. Oceanography, 2007, 20(4): 140-149. DOI:10.5670/oceanog.2007.14 |
[5] |
HUMPHRIS S E, KLEINROCK M C. Detailed morpho-logy of the TAG active hydrothermal mound: insights into its formation and growth[J]. Geophysical Research Letters, 1996, 23(23): 3443-3446. DOI:10.1029/96GL03079 |
[6] |
HAYWOOD R M. Acquisition of a micro scale photo- graphic survey using an autonomous submersible [C]// Proceedings of OCEANS' 86 Conference. Washington, DC, USA: IEEE, 1986: 1423-1426.
|
[7] |
MAKI T, KONDO H, URA T, et al. Photo mosaicing of tagiri shallow vent area by the AUV "Tri-Dog 1" using a slam-based navigation scheme [C]//Proceedings of OCEANS 2006 Conference. Boston, MA, USA: IEEE, 2006: 1-6.
|
[8] |
MARKS R L, ROCK S M, LEE M J. Real-time video mosaicking of the ocean floor[J]. IEEE Journal of Oceanic Engineering, 1995, 20(3): 229-241. DOI:10.1109/48.393078 |
[9] |
PIZARRO O, SINGH H. Toward large-area mosaicing for underwater scientific applications[J]. IEEE Journal of Oceanic Engineering, 2003, 28(4): 651-672. DOI:10.1109/JOE.2003.819154 |
[10] |
SINGH H, HOWLAND J, PIZARRO O. Advances in large-area photo mosaicking underwater[J]. IEEE Journal of Oceanic Engineering, 2004, 29(3): 872-886. DOI:10.1109/JOE.2004.831619 |
[11] |
LEONE A, DISTANTE C, MASTROLIA A, et al. A fully automated approach for underwater mosaicking [C]//Proceedings of OCEANS 2006 Conference. Boston, MA, USA: IEEE, 2006: 1-6.
|
[12] |
GRACIAS N, SANTOS-VICTOR J. Automatic mosaic creation of the ocean floor [C]//Proceedings of OCEANS' 98 Conference. Nice, France: IEEE, 1998, 1: 257-262.
|
[13] |
谢雨来. 水下图像实时拼接方法的研究[D]. 天津: 天津大学, 2010.
|
[14] |
葛中峰. 水下视频影像复原与拼接方法研究[D]. 青岛: 中国海洋大学, 2012.
|
[15] |
吴冬梅, 郭晶, 王军. 基于SIFT算法的海底图像自动拼接[J]. 陕西理工学院学报(自然科学版), 2013, 29(3): 33-38. |
[16] |
张宇超. 基于SIFT算法的水下多CCD图像拼接技术[D]. 青岛: 中国海洋大学, 2014.
|
[17] |
LI Q Z, ZHANG Y, ZANG F N. Fast multicamera video stitching for underwater wide field-of-view observation[J]. Journal of Electronic Imaging, 2014, 23(2): 023008. DOI:10.1117/1.JEI.23.2.023008 |
[18] |
徐聪聪. 基于SURF特征的水下图像拼接技术研究[D]. 青岛: 中国海洋大学, 2015.
|
[19] |
王曹. 基于卡尔曼滤波算法的AUV定位系统研究[D]. 邯郸: 河北工程大学, 2022.
|
[20] |
曹春萍, 罗玲莉. 基于卡尔曼滤波算法的室内无线定位系统[J]. 计算机系统应用, 2011, 20(11): 76-79. |
[21] |
BURT P J, ADELSON H. A multiresolution spline with application to image mosaics[J]. ACM Transactions on Graphics, 1983, 2(4): 217-236. DOI:10.1145/245.247 |
[22] |
余美晨, 孙玉秋, 王超. 基于拉普拉斯金字塔的图像融合算法研究[J]. 长江大学学报(自然科学版), 2016, 13(34): 21-26. |
[23] |
徐圣滨, 李立华, 何小海, 等. 基于拉普拉斯金字塔融合的岩心图像拼接算法[J/OL]. 计算机系统应用, 2022: 1-6(2022-11-21)[2022-12-04]. https://kns.cnki.net/kcms/detail/11.2854.TP.20221118.1703.001.html.
|
[24] |
王晓丽, 戴华阳, 余涛, 等. 基于多分辨率融合的无人机图像拼接匀色研究[J]. 测绘通报, 2013, 435(6): 27-30. |