1. 引言
高精度面内位移检测[1]-[3]是结构健康实时监测、高精度加工等领域的核心技术之一,其测量结果直接关系到产品质量控制与技术创新能力。为满足高精度、非接触的测量需求,以数字图像相关法(Digital Image Correlation, DIC)为代表的光学测量技术应运而生。DIC技术由日本的YAMAGUCHI及美国South Carolina大学的PETERS等人[1]-[3]提出。随着工业界对测量精度要求的不断提高,研究人员普遍采用“先整像素匹配,后亚像素细化”的策略,并通过持续改进亚像素搜索算法[4]-[10]以提升测量精度,取得了显著进展。
近年来,光流法作为一种基于图像序列分析的技术,已被引入微位移测量领域[11] [12],并在亚像素位移估计方面展现出显著潜力[13]-[15]。该方法通过分析连续图像帧之间像素强度的时空变化,直接计算每个像素的运动矢量,从而实现高精度的亚像素级位移识别。研究表明,光流法在特定条件下能达到高于DIC的测量精度。然而,光流法也存在明显局限性,由于大位移情况下图像信息缺失易出现误差。
另一方面,研究人员发现通过分析图像相位信息可以获得精准的整数位移量。该方法基于二维小波变换[16]提取图像中的奇异点,通过匹配位移前后奇异点的位置变化实现位移测量[17]。为克服光流法大位移情况下失效的局限,本文提出一种全新的适用于全范围的高精度位移测量方法。该算法首先稳健地估计整数像素位移,再利用光流法对残余亚像素位移进行精细估计,将光流法在亚像素位移测量中的高精度优势扩展至全范围位移检测。本方法为高精度、大动态范围的面内位移测量提供了一种新思路。
2. 原理
本文基于Lucas-Kanade (LK)算法的约束条件进行光流场计算。
时刻的位置
,像素点在
时刻的位置变为
,根据亮度恒定性假设,有
(1)
将
泰勒展开并忽略二阶以上的高阶项,得
(2)
由于
,得到光流基本方程:
(3)
其中
。
LK算法是一种局部光流算法,其基本假设是在一个小的空间邻域内,运动矢量保持恒定。定义该区域内的加权误差函数为:
(4)
其中,
为权重函数。邻域内的每一个像素点都对应一个光流基本方程,将其表示为矩阵形式:
(5)
其中,
,
,
。为最小化加权误差,对
求导,最终得到光流矢量的解为:
(6)
可得到图像中每个像素点的匹配结果,如图1。
Figure 1. Three-dimensional distribution of pixel displacements based on Lucas-Kanade optical flow algorithm
图1. Lucas-Kanade光流法下各像素点位移量三维视图
光流法依赖于匹配位移前后图像中亮度恒定的像素点,匹配到的像素点越多,位移测量越准确。然而,当位移量较大时,图像中相同亮度的像素点数量减少,原图像中的像素点可能大量移出图像区域,导致匹配失败,从而显著影响光流法的测量精度。因此可以先通过分析相位信息获取精准的整数位移量,以此方法尽可能为光流法提供适合工作的亚位移范围。
此方法通过二维方向小波小波变换实现位移量的提取。二维小波变换是将小波母函数经过平面位移,坐标旋转和尺度伸缩后,与二维信号进行内积,其表达式为:
(7)
为尺度因子,
为平移参数,
为旋转角度,
为二维图像信号,
为频域坐标,
为小波母函数,
为旋转矩阵。
本文选取二维复Morlet小波作为方向小波的母函数,其定义为
(8)
其中
,
,
是为了满足容许条件,
在
时可以忽略。当
时,最适于检测
方向的奇异点,其傅里叶变换为:
(9)
对位移前的图像分别进行
方向和
方向的小波变换,提取两方向的相位图。在
方向相位图中提取实部零值线,在
方向相位图中提取虚部零值线,二者交汇形成相位奇异网格图,网格交点即为奇异点,如图2。
Figure 2. (a) Zero lines in x direction; (b) Zero lines in y direction; (c) Phase singular grid diagram
图2. (a) x方向的零值线图;(b) y方向的零值线图;(c) 相位奇异网格图
对位移后的图像进行相同处理,得到对应的相位奇异网格图。再将位移前后的相位奇异网格图重叠,以此方便匹配位移前与位移后的奇异点。本文采用的是利用图像梯度的方法求出粗略位移来为奇异点的匹配做指引。将位移前后的图像变成梯度特征图,使用归一化互相关找到与第一张图最匹配的位置以此求出粗略位移。由于该方法较为简单且易受噪声干扰,可能出现整数像素级的误差。因此在指引奇异点匹配时设置奇异点找寻半径为3pixel,增大位移前后奇异点的匹配概率,匹配得到的奇异点对如图3所示。由于位移过程中有部分图像区域丢失,导致部分位移前图像边缘的奇异点无法配对,图像中心区域的像素点更易配对。
Figure 3. Singular point matching before and after displacement
图3. 位移前后奇异点匹配图
针对于面内位移测量,需要先估计出准确的整数像素位移,将大范围位移问题转化为小范围位移问题,进而利用光流法实现高精度亚像素位移估计。
具体实现步骤如下:首先,在位移前的参考图像中选取包含目标测量点的子图像作为参考子图;同时,在位移后的目标图像中,依据初始位置截取相同空间范围的子图像作为初始目标子图。对上述两幅子图像提取相位信息,提取并匹配图像中的奇异点,计算得到整数像素位移量
。该位移量反映了目标点在图像平面内的整数移动。
随后,依据该整数位移量,在位移后的目标图像中进行补偿截取,即从目标图像中偏移
的位置重新截取一幅新的子图像。该新子图像与位移前的参考子图之间在空间位置上已基本对齐,残余的位移差仅为亚像素级别。此时,两幅图像之间的亮度分布高度相似,满足光流法对小位移、高亮度一致性的适用条件。
在此基础上,采用Lucas-Kanade光流法对这两幅图像进行亚像素位移估计,得到残余位移
。该过程利用局部邻域内的亮度梯度信息,通过加权最小二乘求解得到高精度的亚像素位移场。最终,将两部分位移结果进行叠加,得到完整的亚像素位移估计:
(10)
该混合测量框架的核心优势在于:先求出的整数位移量可为光流法提供了可靠的初始对齐,将大范围位移测量问题转化为小范围精细估计问题,有效避免了光流法因位移过大导致的匹配失效。因此该方法实现了对大动态范围、高精度面内位移的稳健测量。
3. 仿真与实验
为验证算法性能表现,本文采用手机照片图(如图4(a)所示)。手机照片图为作者自己拍摄的风景图,此风景图细节丰富可为算法提供纹理需求。再设置一套成像系统,由CMOS相机、成像镜头、稳定照明光源,样品台组成(如图4(b)所示)。由成像系统拍摄一系列
移动(
)的标有数字的玻璃圆片移动照片作为实验图像进行测试(如图5(a)所示)。
实验选取图像中300 pixel × 300 pixel的子图像(如图5(b)所示),以减少算法的计算时间。由于小波变换中
影响网格形状,随着
的增大而更加规则,由于本文只需要通过奇异点匹配求出整数位移,应使得网格更加规则便于进行匹配,因此可以使得
尽量大一些。
与
对网格大小有影响,
越大网格越小,
越大网格越大。为使奇异点数量稍微多一些,得到的整数位移更加可靠,本文采用较大的
与较小的
。实际小波变换的参数选取范围
可以为15~20、
可以为5~15、
可以为5~10。本文小波变换的参数选取为
、
、
。
Figure 4. (a) Mobile phone photo; (b) Imaging system
图4. (a) 手机照片图;(b) 成像系统
Figure 5. (a) A glass disc with numbered markings in the imaging system; (b) Sub-image
图5. (a) 成像系统下标有数字的玻璃圆片;(b) 子图像
Table 1. Comparison and error statistics of the new algorithm and pyramid optical flow method on shifted mobile phone images
表1. 手机照片图平移后本文算法与金字塔光流法对比结果与误差表
|
本文算法 |
位移误差绝对值 |
金字塔光流法 |
位移误差绝对值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 2. Experimental comparison and errors of proposed algorithm vs. pyramid optical flow on glass disc
表2. 玻璃圆片实验中本文算法与金字塔光流法对比结果与误差表
|
本文算法 |
位移误差绝对值 |
金字塔光流法 |
位移误差绝对值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我们将本文算法与金字塔LK光流法在仿真与实验中的表现进行对比(如表1、表2所示)。其具体分析如下:
(1) 在亚像素至十几像素的小位移范围内,本文提出的新型算法展现出远超金字塔光流法的测量精度。以设定位移
像素为例,在手机照片图仿真中,本文算法的测量误差仅为
像素,而金字塔光流法的误差则达
像素。随着位移量的增大,金字塔光流法的性能急剧恶化直至完全失效,而本文算法则保持了惊人的稳定性和精度。当位移达到数十甚至上百像素时,金字塔光流法的失效尤为显著:对于
的位移,金字塔光流法测得结果为
,误差高达
像素,已完全偏离真值;而本文算法的误差仅
像素。对于超过100像素的极大位移,如
,金字塔光流法的结果
已毫无参考价值;而本文算法依然能提供
的高精度结果。这一对比根本原因在于大位移导致图像帧间信息大量丢失,严重违反了金字塔光流法所依赖的“亮度恒定”与“小位移”假设。而本文算法通过估计并补偿整数像素位移,将问题转化为一个残余的亚像素级小位移问题,从而完美绕过了金字塔光流法的理论瓶颈。
(2) 在玻璃圆片实验中,由于实际位移中玻璃上的光照会随着移动而发生变化,同时二维精密位移台有微弱抖动的现象,本文算法在测量
的系列位移时结果误差较大,没有实现手机照片图仿真的精度,但依旧将100像素内的位移量的测量误差控制在0.06像素以内。而金字塔光流法在测量实验位移时几乎完全失效。
(3) 综合上述两组,本文提出的算法在整个宽泛的位移范围内,均表现出一致的、卓越的测量精度。其测量误差普遍低于0.06像素,且不随位移量增大而衰减。相比之下,金字塔光流法的误差不仅绝对值大,且随位移增大呈指数级增长,在超过约20像素后即基本失效。
(4) 本文算法的时间与金字塔光流法的计算时间相差不大,本文算法的时间约在40秒左右,其中计算整数位移的时间为20秒左右,而金字塔光流法的计算时间在60秒左右。由于光流法计算出子图像中所有像素点的位移量,因此计算时间与子图像所取尺寸大小呈正相关。为减少算法计算时间,不宜取太大尺寸的子图像。同时实际位移量越大,算法计算所需时间越长。
(5) 本文算法更适合计算带有丰富纹理信息的图像中的面内位移,不适宜应用于纹理极少、细节极少的图像。
为检验算法在不同噪声水平、光照变化等干扰下的性能表现,本文将生成不同噪声水平与光照变化的散斑图用于算法的检验。散斑图尺寸为
、散斑点数为2000、散斑半径为4像素。维持散斑图的
不变,只改变信噪比的值并使用本文算法计算表1中的设定位移量,散斑图如图6所示,计算结果如表3所示。观察发现噪声水平对算法计算结果有一定的影响,噪声太大会影响算法的精度。但无论噪声水平再大,算法计算结果的误差也可以维持在0.03像素以内。
Figure 6. (a)
Speckle pattern; (b)
Speckle pattern; (c)
Speckle pattern
图6. (a)
散斑图;(b)
散斑图;(c)
散斑图
Figure 7. (a)
Speckle pattern; (b)
Speckle pattern; (c)
Speckle pattern
图7. (a)
散斑图;(b)
散斑图;(c)
散斑图
再维持散斑图的
不变,只改变散斑图亮度并使用本文算法计算表1中的设定位移量,散斑图如图7所示,计算结果如表4所示。观察发现不同光照情况下算法精度差别不大,光照对算法影响不大。
Table 3. Computation results and errors of the proposed algorithm under different noise conditions
表3. 不同噪声情况下本文算法计算结果与误差表
|
位移误差绝对值 |
|
位移误差绝对值 |
|
位移误差绝对值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 4. Measurement results and errors of the proposed algorithm under different illumination conditions
表4. 不同光照情况下本文算法计算结果与误差表
|
位移误差绝对值 |
|
位移误差绝对值 |
|
位移误差绝对值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. 结论
本文针对大动态范围高精度位移测量中精度与范围难以兼顾的问题,提出一种全新的适用于全范围的高精度位移测量方法。该方法首先利用二维小波变换提取相位信息鲁棒估计整数像素级位移,依据此整数位移,对位移后的目标图像进行补偿截取,采用Lucas-Kanade光流法得到残余位移,最终得到完整的亚像素精度的位移量。仿真与实验结果表明,该算法在亚像素至上百像素的位移范围内均可实现稳定测量,误差始终低于0.06像素,尤其在大位移场景下依然保持亚像素级精度,有效解决了现阶段大部分方法在动态范围与测量精度之间的固有矛盾,为高精度、大动态范围的面内位移测量提供了一种新的可行思路。
NOTES
*通讯作者。