7 篇文章 5 订阅
9 篇文章 7 订阅
3 篇文章 2 订阅

# 前言

This paper aims to bridge the gap between the theory and implementation of DIC. It does this by firstly presenting the theory for a 2D, subset based DiC framework that is predominantly consistent with current state-of-the-art practices. 1

# 二.相关运算

## 1.数学模型

x i = Δ x i x 0 + x o = [ x i y i ] = [ Δ x i Δ y i ] + [ x 0 y 0 ] \boldsymbol{x}^{i}=\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}+\boldsymbol{x}^{o}=\left[\begin{array}{l} x_{i} \\ y_{i} \end{array}\right]=\left[\begin{array}{l} \Delta x_{i} \\ \Delta y_{i} \end{array}\right]+\left[\begin{array}{l} x^{0} \\ y^{0} \end{array}\right] 其中 Δ x i x 0 \Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0} 表示 x 0 \boldsymbol{x}^{0} x i \boldsymbol{x}^{i} 的坐标偏移。现在我们设置形变子区中与之前 x i \boldsymbol{x}^{i} 相对应的当前坐标点为 x i ′ = [ x i ′ y i ′ ] T \boldsymbol{x}^{i'} =\left[\begin{array}{ll}x_{i}' & y_{i}'\end{array}\right]^{T} ，与之前中心点 x 0 \boldsymbol{x}^{0} 相对应的形变子区中心点为 x d \boldsymbol{x}^{d} 。与上式同理，我们同样可以得到 x i ′ \boldsymbol{x}^{i'} 的表达式为
x i ′ = Δ x i ′ x 0 + x o = [ x i ′ y i ′ ] = [ Δ x i ′ Δ y i ′ ] + [ x 0 y 0 ] \boldsymbol{x}^{i'}=\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}+\boldsymbol{x}^{o}=\left[\begin{array}{l} x_{i}' \\ y_{i}' \end{array}\right]=\left[\begin{array}{l} \Delta x_{i}' \\ \Delta y_{i}' \end{array}\right]+\left[\begin{array}{l} x^{0} \\ y^{0} \end{array}\right] 其中 Δ x i ′ x 0 \Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0} 表示 x 0 \boldsymbol{x}^{0} x i ′ \boldsymbol{x}^{i'} 的坐标偏移。注意，没有使用形变子区中心点作为参考点，是有两个原因的，第一个原因是由于本身 x d \boldsymbol{x}^{d} 对于我们来说依然是未知点，它只不过是一个 x i ′ \boldsymbol{x}^{i'} 特例罢了，这里需要用一个已知点作为参考还有一个原因会在形函数推导那一部分提到，这里先不引入。

Δ x i ′ x 0 = W ( Δ x i x 0 , P ) \Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}=W(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0},P)

f i = F ( x o + Δ x i x 0 ) f_{i}=F\left(\boldsymbol x^{o}+\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}\right) g i = G ( x o + W ( Δ x i x 0 , P ) ) g_{i}=G\left(\boldsymbol x^{o}+\boldsymbol{W}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}\right)\right) 将上面的推导进行归纳，整个运算的实质就是通过给定一组形函数参数初值 P 0 P_{0} ，对目标函数（相关标准）不断迭代优化从而得到一组最优解 P ∗ P^{*}

## 2.形函数

0阶形函数：只能描述位移变化，无法描述拉伸或者扭曲（速度较快，适合用于小形变系统的实时检测）
W S F 0 ( Δ x i x 0 , P S F 0 ) = [ 1 0 u 0 1 v ] [ Δ x i Δ y i 1 ] \boldsymbol{W}^{S F 0}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 0}\right)=\left[\begin{array}{ccc} 1 & 0 & u \\ 0 & 1 & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right]
1阶形函数：能描述子区位移和拉伸（仿射变换），但不能描述扭曲（适合用于小形变系统）
W S F 1 ( Δ x i x 0 , P S F 1 ) = [ 1 + u x u y u v x 1 + v y v ] [ Δ x i Δ y i 1 ] \boldsymbol{W}^{S F 1}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 1}\right)=\left[\begin{array}{ccc} 1+u_{x} & u_{y} & u \\ v_{x} & 1+v_{y} & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right]
2阶形函数：能描述子区位移、拉伸和扭曲（适合用于大形变系统）
W S F 2 ( Δ x i x 0 , P S F 2 ) = [ 1 2 u x x u x y 1 2 u y y 1 + u x u y u 1 2 v x x v x y 1 2 v y y v x 1 + v y v ] [ Δ x i 2 Δ x i Δ y i Δ y i 2 Δ x i Δ y i 1 ] \boldsymbol{W}^{S F 2}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}^{S F 2}\right)=\left[\begin{array}{cccccc} \frac{1}{2} u_{x x} & u_{x y} & \frac{1}{2} u_{y y} & 1+u_{x} & u_{y} & u \\ \frac{1}{2} v_{x x} & v_{x y} & \frac{1}{2} v_{y y} & v_{x} & 1+v_{y} & v \end{array}\right]\left[\begin{array}{c} \Delta x_{i}^{2} \\ \Delta x_{i} \Delta y_{i} \\ \Delta y_{i}^{2} \\ \Delta x_{i} \\ \Delta y_{i} \\ 1 \end{array}\right] 由上述式子我们可以得到不同阶数形函数需要求解的参数为：
P S F 0 = [ u v ] T \boldsymbol{P}^{S F 0}=\left[\begin{array}{llllllllllll} u & v\end{array}\right]^{T} P S F 1 = [ u u x u y v v x v y ] T \boldsymbol{P}^{S F 1}=\left[\begin{array}{llllllllllll} u & u_{x} & u_{y} & v & v_{x} & v_{y} \end{array}\right]^{T} P S F 2 = [ u u x u y u x x u x y u y y v v x v y v x x v x y v y y ] T \boldsymbol{P}^{S F 2}=\left[\begin{array}{llllllllllll} u & u_{x} & u_{y} & u_{x x} & u_{x y} & u_{y y} & v & v_{x} & v_{y} & v_{x x} & v_{x y} & v_{y y} \end{array}\right]^{T} 那这里的每一项参数代表什么呢？从上一节的内容，我们可以知道，对于参考子区中任意一个像素点，其对应的形变子区上的映射点坐标都可以写成参考子区对应点的坐标值+ X / Y X/Y 方向的偏移量的形式。同时，由于两个点本身相关，因此这个偏移量和参考子区对应点坐标是有关系的。因此，我们可以得到以下关系式，设参考子区上的某一点 f ( x , y ) f(x,y) ，设其在形变子区上的映射点为 g ( x ~ , y ~ ) g(\widetilde{x},\widetilde{y}) ，我们有：
x ~ = x + u ( x , y ) \widetilde{x}=x+u(x,y) y ~ = y + v ( x , y ) \widetilde{y}=y+v(x,y) 对两式进行二阶泰勒展开5，我们可以获得
x ~ = x 0 + u + u x Δ x + u y Δ y + 1 2 u x x Δ x 2 + 1 2 u y y Δ y 2 + u x y Δ x Δ y \tilde{x}= x_{0}+u+u_{x} \Delta x+u_{y} \Delta y+\frac{1}{2} u_{x x} \Delta x^{2} +\frac{1}{2} u_{y y} \Delta y^{2}+u_{x y} \Delta x \Delta y y ~ = y 0 + v + U x Δ x + v y Δ y + 1 2 v x x Δ x 2 + 1 2 v y y Δ y 2 + v x y Δ x Δ y \tilde{y}= y_{0}+v+U_{x} \Delta x+v_{y} \Delta y+\frac{1}{2} v_{x x} \Delta x^{2} +\frac{1}{2} v_{y y} \Delta y^{2}+v_{x y} \Delta x \Delta y 形函数的参数就是展开式中各项的系数，值得注意的是，展开式中的常数项 ( x 0 , y 0 ) (x_{0},y_{0}) ，考虑到每一个子区只会计算一个形函数，因此单一子区内各点的计算均要使用相同的常数项，这也正是上一节中每个点均以参考子区中心点坐标作为参考的原因了。

## 其他知识

1. 由于需要对形变图像进行精确插值，目前最常采用的插值运算为双三次b样条插值（bicubic b-spline interpolation）
2. 上述的三种相关标准，对于高频噪声都比较敏感，因此需要对参考图像和形变图像都进行高斯滤波，滤除高频噪声（具体的参数需要研究，由于低通滤波器会将很多纹理模糊）
3. 基于相关标准来优化形函数参数实质是个非线性优化问题，目前最常采用的计算方式为逆合成高斯-牛顿法——IC-GN算法（Inverse compositional Gauss-Newton method），推荐阅读数字图像相关（Digital Image Correlation, DIC）中的非线性优化方法（FA-GN与IC-GN）
4. 优化的开始需要提供一组形函数参数初值，这组初值越接近最优解，迭代速度提升也就越快，同时其合理性也决定了所得最优解与真实值之间的误差（因为优化等于一个寻找峰顶的过程，我们想要的是最高的峰顶，但如果初值位置不位于最高峰，则找到的峰顶并不是最理想的）。

% runme.m参数输入部分解释
Sample=3; % EN:which sample to analyse CH:选择使用的数据集序号1——3

% Function inputs (which set up the DIC analysis)
GaussFilter=[0.4,5];% 高斯滤波参数[sigma, kernal size]，用于滤除高频噪声
StepSize=5;         % 子区步进
SubSize=41;         % 子区大小
SubShape='Circle';  % 子区形状
SFOrder=1;          % 形函数阶数（0,1,2）
RefStrat=0;         % 子区开始编号
StopCritVal=1e-4;   % 停止迭代的标准
WorldCTs=0;         % 世界坐标系下的标定点位置
ImageCTs=0;         % 图像坐标系下的标定点位置
rho=0;              % 标定板厚度（mm）


## 1.ImgCorr

ImgCorr函数就是按照上一个大章节中的思路来书写的，下面是它的算法概要

## 2.SubCorr

SubCorr函数是利用IC-GN的方法来优化形函数参数，直到得到最优解，从而输出最佳匹配的形变子区信息，具体代码逻辑请参照论文1及其源码，这里仅展示其算法框架图

# 四.写在最后

http://www.ncorr.com/index.php/dic-algorithms

# 参考引用

1. Atkinson D, Becker T. A 117 Line 2D Digital Image Correlation Code Written in MATLAB[J]. Remote Sensing, 2020, 12(18): 2906. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

2. Chu T C, Ranson W F, Sutton M A. Applications of digital-image-correlation techniques to experimental mechanics[J]. Experimental mechanics, 1985, 25(3): 232-244. ↩︎

3. 周轶昊. 基于双目视觉的物体表面三维复杂运动重建及其应用[D].复旦大学,2012. ↩︎

4. Khoo S W, Karuppanan S, Tan C S. A review of surface deformation and strain measurement using two-dimensional digital image correlation[J]. Metrology and Measurement Systems, 2016, 23(3). ↩︎

5. Lu H, Cary P D. Deformation measurements by digital image correlation: implementation of a second-order displacement gradient[J]. Experimental mechanics, 2000, 40(4): 393-400. ↩︎

6. Pan B, Xie H, Wang Z. Equivalence of digital image correlation criteria for pattern matching[J]. Applied optics, 2010, 49(28): 5501-5509. ↩︎

7. Sutton M A, Orteu J J, Schreier H. Image correlation for shape, motion and deformation measurements: basic concepts, theory and applications[M]. Springer Science & Business Media, 2009. ↩︎

• 44
点赞
• 116
收藏
• 打赏
• 107
评论
03-24 11
01-06 1398
08-17
01-31 2万+
09-02
11-12 1080

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

ViolentElder

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。