韩雨坤,潘 翀,2,*,王文涛,刘 伟
1.北京航空航天大学 流体力学教育部重点实验室,北京 100191 2.北京航空航天大学 宁波创新研究院先进飞行器与空天动力技术创新研究中心,浙江 宁波 315800 3.中国船舶重工集团公司 第七〇二研究所,江苏 无锡 214000
表面形貌测量在地质勘测、变形监测、运动测量等众多工业领域有着广泛的应用。以本文的工程应用背景为例,通过对船舶行驶产生的波浪开展表面测量,可以得到船行波的波面信息,进而分析船舶阻力中兴波阻力的贡献,为船体型线的优化提供参考。传统的表面形貌测量主要通过在待测表面上布置传感器来实现,作为一种单点、接触式测量方法,其测量频率和精度都较高,但难以实现面测量,且接触测量会对待测表面形貌特征产生干扰。基于机器视觉[1]的表面形貌测量可以实现非接触的场测量,具有操作快速便捷、对待测表面无干扰等优势,但测量精度与其使用的三维空间重构算法密切相关。
多目立体视觉是计算机视觉的一种重要形式。以双目立体视觉为例,使用其进行表面形貌测量的流程包括:图像采集、特征提取、多目标定、特征匹配和三维重建[2],即通过两个相机以不同的视角同步拍摄同一目标区域,将待测表面形貌的立体信息转化为二维图像对;利用图像处理技术对图像对中的某种特征进行提取,并将同一特征在不同视角的图像中进行匹配;通过已经建立的图像像素空间到物理空间的映射关系,将同一特征在图像对上的二维像素坐标转化为待测表面的三维空间坐标,实现表面形貌的重构。
在上述表面形貌非接触测量的流程中,多目标定、特征提取与特征匹配是3 个技术难点。在多目标定方面,早期的立体视觉系统大多采用双目测量,但存在表面遮挡、特征点不明显或在某个视角上特征点缺失等问题,会显著影响测量的精度。Ito 等[3]提出基于边缘点进行匹配的三目视觉系统,通过增加第三目图像信息提高特征匹配的准确度,同时还可以有效避免光路遮挡的问题。Gurwitz 等[4]进一步分析了三目立体视觉在表面形貌测量中的优势。但是,增加观测相机也面临着一些技术限制,如传统的小孔成像模型难以适应多相机标定的场景。
在特征提取方面,目前尚无普遍适用的特征提取方法。Lowe[5-6]在总结前人研究的基础上提出了尺度不变特征变换(Scale Invariant Feature Transform,SIFT)算子。该算子在不同尺度空间上查找极值点,提取其位置、尺度、旋转不变量,对畸变、噪声和光强变化等情况具有很强的鲁棒性,被广泛应用于表面形貌测量[7]。但是,包括SIFT 算子在内的大多数特征提取算法难以适用于特征纹理较少的表面,且在多视角成像视差较大时会造成特征识别偏差,影响匹配精度。可采取的方法是向待测表面投射结构化或随机分布的散斑作为可控的特征纹理[8-9],解决自然表面纹理特征不足的问题,在数字图像相关(Digital Image Correlation,DIC)等领域应用广泛[10]。
在特征匹配方面,用特征识别算子识别待测表面特征点时,一般通过核线约束不同视角的特征点进行匹配,但存在相似性准则选取困难[11]的问题;用散斑作为特征纹理时,常通过互相关计算来匹配不同视角的散斑区块,但特征匹配的空间分辨率受到互相关查询窗口[12]的限制。
针对以上3 个难点,本文提出一种新的表面形貌非接触测量方法,其基本思想是:1)应用神经网络算法对多目立体视觉系统进行自适应的多目标定,解决传统标定方法对相机个数的限制问题,通过增加相机个数,提高表面形貌测量的精度;2)向待测表面投射激光散斑作为特征点,解决待测表面形貌特征不明显的问题;3)应用蚁群粒子跟踪测速(Particle Tracking Velocimetry,PTV)算法,实现在多视角成像的图像组中对单一特征点进行匹配,从而有效提高测量的空间分辨率。
基于多目立体视觉和神经网络标定的非接触式表面形貌测量方法的流程如图1所示,分为空间标定和形貌测量两个阶段。在空间标定阶段,固定多台相机的相对位置关系,用其拍摄布置在相机视域中的标靶;通过图像识别算法,获取已知空间坐标的标靶特征点在各相机像平面上的像素坐标;进而使用神经网络算法建立反映各相机像平面之间以及像平面与物理空间之间映射关系的标定神经网络。在形貌测量阶段,将待测表面置于已标定的相机视域中,通过激光器搭配衍射光学元件(Diffractive Optical Element,DOE)向待测模型表面投射伪随机分布的散斑,并用多台相机进行同步拍摄;从所获得的散斑图像中提取散斑点云的像平面坐标,利用各相机像平面之间的映射关系,将不同相机像平面上的散斑点云映射到同一公共像平面,使用蚁群PTV 算法进行散斑点云的匹配;进而使用像平面与物理空间之间的映射关系对匹配的散斑点云进行三维重构,得到其在物理空间中的三维坐标;最后对三维点云坐标进行滤波和插值拟合,获得待测表面的三维形貌。下面对测量流程中的关键步骤和算法逐一进行论述。
图1 表面形貌测量流程图Fig.1 Flow chart of surface topography measurement
对具有复杂形貌的待测表面进行非接触式光学测量时,需要同时考虑相机遮挡、表面特征不明显以及自然光影响等多方面因素,增加相机的个数能够提供更多的冗余信息,从而有效缓解这些因素对测量结果的影响。本文设计的六相机成像系统如图2所示,6 台相机对称布置于待测模型的上方,相机的景深覆盖整个待测表面的深度。激光器置于待测表面上方,通过衍射光学元件向待测模型表面投射伪随机分布的散斑光点作为待匹配的特征点。
图2 多目成像系统示意图Fig.2 Schematic diagram of multi-view imaging system
多相机空间标定是立体视觉的关键环节,直接决定由图像信息还原观测对象深度信息的精度。常用的两种标定模型为小孔模型和多项式模型。小孔模型将光学成像过程简化为小孔成像,具有清晰的物理特征,但对成像系统光学畸变的表征能力有限,难以扩展至多目标定的场景。多项式模型通过多项式函数来拟合像素空间与物理空间的映射关系,具有简洁的数学表达,具备一定的畸变拟合能力,但应用于多目标定时,模型的复杂度将随着相机个数的增多而快速增大。
神经网络是模拟生物神经系统学习过程的一种算法,应用于空间标定具有以下优势[13]:1)空间标定过程的输入与输出关系简单且确定,便于应用神经网络拟合映射关系;2)神经网络具有泛化的高阶拟合能力,更适合处理高畸变场景;3)神经网络具有联合标定能力,输出结果可以同时受到所有输入信息的影响,易于拓展到多目标定。本文使用级联误差反向传播神经网络(BP 神经网络)建立空间标定模型,结构如图3所示。应用神经网络进行形貌测量分为空间标定和三维重构两个步骤。在空间标定阶段,使用第i个特征点已知的物理空间坐标和相机像平面坐标(k=1,···,K,K为多目视觉系统中的相机总数)的标靶特征点作为样本,训练获得空间标定神经网络M,使得在三维重构阶段,将待测表面的特征点在所有相机像平面上的坐标输入空间标定神经网络,输出即为该特征点在物理空间中的三维坐标需要指出的是,M为反向标定空间映射函数,即标定过程从像平面反向到物理空间,与三维重构的方向一致。
图3 BP 神经网络示意图Fig.3 Schematic diagram of back propagation neural network
除建立从物理空间到各相机像平面的映射关系M之外,还需要建立各相机像平面彼此之间的映射关系Fk,其原因和构建方法将在后文阐述。
对神经网络空间标定进行重投影误差评估时,选择间隔均匀的75%标定靶棋盘格角点对神经网络进行训练,将剩余25%角点在各像平面的坐标输入所得神经网络进行重构,得到三维空间坐标并与理论值进行对比,获得标定点在z方向重投影的均方根误差。下文2.3 节将给出实验工况下标定点重投影误差的具体数值。
特征提取,即获取能代表图像局部特征的匹配基元。目前用于图像特征提取的方法很多,匹配基元的选择也多种多样。本文采用激光器搭配衍射光学元件的方法,在待测模型表面投影产生伪随机分布的散斑作为特征点。特征点识别流程如下:对拍摄所得的灰度图像选定环绕待测表面的视野范围区域(ROI 区域),筛除背景,将其他区域灰度值设为0,如图4(a)所示;设定灰度阈值,对图像做二值化处理并进行形态学开运算,所得结果如图4(b)所示;最后,查找连通域,计算各连通域质心的横纵坐标作为第i个特征点在第k个相机像平面的坐标如图4(c)所示的黑色十字。
图4 特征点坐标提取Fig.4 Extraction for coordinates of feature points
PTV 是一种针对流体运动速度场的高分辨率测量方法,其核心算法是将两帧图像中的示踪粒子按照某种匹配准则逐一进行匹配。本文使用PTV 中的示踪粒子匹配技术完成同一特征点在不同视角相机图像上的匹配。运用混合蚁群匹配算法[14]将粒子跨帧位移最短与粒子群分布形态最相似两个匹配准则相混合,构造出最优化目标函数,进而对其使用改进的蚁群算法进行求解,获得两帧图像中示踪粒子的匹配。相比于传统基于最短位移[15]或最相似粒子分布形态[16]的匹配算法,混合蚁群匹配算法具有在大比位移场景下精度更高的优势。本文使用该算法匹配不同视角相机图像中的特征点,其依据是像平面上特征点之间的位置关系和分布形态不会随视角改变而发生显著变化。
为进行不同相机像平面上特征点的相互匹配,首先需要将每一个像平面上的特征点坐标投影到一个公共像平面上,即然后在公共像平面上将所有的(k=1,···,K)使用混合蚁群匹配算法进行匹配。这需要建立不同像平面到公共像平面的映射关系Fk。仿照空间标定函数,Fk仍然可以使用BP 神经网络来表征,其训练过程也和M的训练过程一致,在此不做赘述。PTV 匹配算法如图5所示。简化起见,可以将某一视角(如k=1)的像平面作为公共像平面,将其他像平面上的(k≠1)向其映射,并在公共像平面上进行匹配,获得匹配关系值得注意的是,将匹配后的特征点使用M重构回物理空间时,需要使用特征点在各相机像平面上的坐标,而非其在公共像平面上的坐标。
图5 PTV 匹配算法示意图Fig.5 Schematic diagram of PTV matching algorithm
以船行波的波形测量为应用背景,本文对所发展的表面形貌测量方法的精度进行验证,为此设计了两个仿水波的测试模型:模型A 和模型B,其波形函数、波幅、波长及模型尺寸见表1,模型示意图和坐标系定义见图6。其中,模型A 采用固定波长与波幅的简单正弦波;模型B 为变波长、变波幅的复杂波形。为了模拟船行波的兴波角,模型B 的波峰连线与其边成19.5°夹角。z方向为模型的深度方向。两模型均在边角处预留一小平台用于定位z=0 的参考平面。需要说明的是,两个模型均用不透光材料制作,本文暂不考虑实际水波测量时水的透光性对激光投射散斑提出的技术需求。
图6 实验模型示意图和坐标系定义Fig.6 Schematic diagram of experimental model
表1 实验模型参数Table 1 Parameters of the experimental model
针对以上两个实验模型,搭建如图2所示的实验台开展验证实验。相机(海康威视,MV-CH050-10UM)的分辨率为2448 像素×2448 像素,最大帧率为74 帧/s,镜头(MVL-MF1628M-8M)的等效焦距为16 mm。为评估相机数目对测量精度的影响,分别测试了2 台、3 台与6 台相机等3 种场景。相机的平面布置形式如图7所示,相机光轴和待测表面中心点外法线方向的夹角约为30°。相机的相对位置关系在空间标定和表面形貌测量时保持不变。同步控制器控制多台相机同步工作,相机拍摄的图像通过USB 3.0 数据线发送至计算机进行存储。
图7 相机平面布置形式Fig.7 Schematic diagram of camera layout
空间标定使用具有黑白相间棋盘格的平面标定靶,每个棋盘格均为边长5 mm 的正方形。在空间标定时,将平面标定靶固定在位移台上,置于多目立体视觉系统视野范围的中间,其深度位置与待测体的深度位置相当。调节位移台沿深度方向移动标定靶,使之遍历待测表面的整个厚度范围(Δz=2Amax=40.0 或68.0 mm)。在每一个深度位置上,使用全部相机对标定靶进行拍照,获得21 个z平面上的标定靶图像,从中辨识出32×33 个标定靶角点作为训练集,训练获得反映物理空间与全部相机像平面之间映射关系的BP 神经网络M。使用相同的训练集,训练获得其他相机像平面到第一个相机像平面的BP 神经网络Fk。
在表面形貌测量时,半导体激光器输出波长650 nm 的可见红光,经DOE 在模型A、B 表面分别产生伪随机分布的红色散斑164 和393 个,对应的空间分辨率分别为85 和102 m m2/特征点。使用多目立体视觉系统进行拍摄,对所得图像组按照前述方法进行特征点的提取、匹配与空间定位以及滤波和插值,最终实现待测体表面形貌的精细化测量。
依照1.2 小节所示的方法衡量神经网络空间标定参数的重投影误差,所得结果如表2所示。可以看出:不同相机个数K下,标定点z方向上重投影的均方根误差为0.351~0.033 mm,可认为空间标定精度较高;随着相机个数的增加,重投影误差显著减小。
表2 不同实验工况下的重投影误差Table 2 Reprojection errors under different experimental conditions
此外,对于特征点提取,运用图像形态学处理引入的误差,神经网络模型所具备的联合标定能力可通过多视角随机误差相互补偿的方式有效抑制该输入误差在标定−重构过程中的传播[13]。
实验测试结果如图8所示。图8(a)和(c)为测量模型A 和B所得原始数据及进行后处理并剔除坏点后的数据散点图;图8(b)和(d)为模型表面z方向深度的等高线图。经测量,图8(b)和(d)中波峰/谷(红线)与y轴的夹角分别为0°、19.5°,与模型真值一致,初步证明了实验结果的可信度。为进一步对测量误差进行量化分析,定义深度方向(z方向)的测量均方根误差为:
图8 实验结果Fig.8 Experimental results
其中,zi为 测得的第i个 特征点z坐标真值,zri为将测得的特征点坐标(xi,yi)代入参数方程得到的z坐标理论值,N为特征点总个数。以波峰波谷的高度差作为参考长度,对均方根误差进行无量纲化,即:
表3总结了不同相机个数K下的深度方向均方根误差E。可以看出,增加相机个数明显改善了表面测量的精度;对于表面形貌更为复杂(变波长、变波幅)的模型B,增加相机的效果更为显著:两相机标定时,z方向上的测量误差为5.2%,六相机联合标定时,误差降低至1.9%。
表3 不同实验工况下的实验误差ETable 3 Experimental errors E under different experimental conditions
1)本文提出了一种基于多目立体视觉的非接触式表面形貌测量方法,相比于传统的双目立体视觉系统,其改进之处在于:应用神经网络算法对多目立体视觉系统进行自适应的多目标定,解决了传统标定方法对相机个数的限制问题,降低了标定的复杂程度;通过增加相机个数,提供冗余信息,提高了表面形貌测量的精度;应用蚁群PTV 算法,实现在多视角成像的图像组中对单一特征点进行匹配,有效提高了测量的空间分辨率。
2)通过两个仿水波模型,对所发展的表面形貌测量方法的精度进行了验证,证明了增加相机个数能够显著改善对复杂表面形貌的测量精度,对于复杂仿水波模型,在六相机联合标定的情况下,深度方向的测量误差在1.0%~2.0%的水平。