matlab牛顿法_2D-DIC | 二维数字图像相关法原理介绍 — 以开源算法Ncorr为例
原文链接2D-DIC | 二维数字图像相关法原理介绍 —以开源算法Ncorr为例mp.weixin.qq.com欢迎各位朋友关注数字图像相关法DIC小站,本小站公众号旨在推广数字图像相关法的研究和应用。【引言】数字图像相关法(DIC)是一种利用在物体表面喷涂随机散斑,通过在物体变形前后的散斑图像中精确匹配对应点,测量变形位移等数据的非接触式光学测量方法。相比其它传统的接...
原文链接
2D-DIC | 二维数字图像相关法原理介绍 — 以开源算法Ncorr为例mp.weixin.qq.com
欢迎各位朋友关注数字图像相关法DIC小站,本小站公众号旨在推广数字图像相关法的研究和应用。
【引言】
数字图像相关法(DIC)是一种利用在物体表面喷涂随机散斑,通过在物体变形前后的散斑图像中精确匹配对应点,测量变形位移等数据的非接触式光学测量方法。相比其它传统的接触式测量技术,其优势明显,目前已在众多领域得到了广泛的应用,如实验力学、材料力学、生物力学、机械加工以及土木工程等。
常用的技术可分为二维数字图像相关法(2D-DIC)、三维数字图像相关法(3D-DIC)和数字体相关法(DVC)等。为了推广上述三种常见技术相关开源算法软件的使用,本小站将会结合相应的开源算法软件进行原理讲解,希望大家能在理解技术原理的同时,也能加深对算法的理解,了解开源软件的使用。
【2D-DIC原理简介】
2D-DIC可以测量变形物体在平面二维空间中的位移,进而可通过位移数据计算应变等信息,可用于分析物体的变形过程中的力学性能,主要应用于全场位移、变形、振幅、模态等信息的测量。
本文将结合一个近年来较为流行的开源2D-DIC算法软件——Ncorr[1],进行2D-DIC相关的算法原理讲解,简单介绍该开源软法软件的使用流程,在后面的文章中还将详细介绍Ncorr的Matlab和C++代码。
【Ncorr简介】
Ncorr是Vanderbilt University的工程师Justin Blaber在其就读于Georgia Institute of Technology硕士期间开发的一款用于进行2D-DIC分析的软件,相关文章于2015年在《Experimental Mechanics》期刊上[3],目前谷歌学术显示该文章已被引500多次,其中包括众多领域的优秀期刊。Ncorr集成了基于子区的DIC算法、非线性优化、可靠性引导DIC算法以及应变计算等当时比较稳定可靠的算法,本文接下来将会对其中的核心算法进行介绍,主要参考链接[1]和论文[3].
【Ncorr中核心算法】
以下各个步骤中都涉及较为复杂的理论知识,因此本文中只进行简要的介绍,后续文章中会分别对其进行更为详解的讲解。
1. 子区变形
Ncorr中实现的2D-DIC算法是基于子区变形,如下图所示,以每个计算点为中心,在参考图像上选取一定区域作为当前计算点的子区,通过子区内的像素点,构造一定的互相关函数,进行非线性最小二乘求解,计算位移和应变等数据。
上图中显示的是正方形子区,但子区形状可以是任意形状的,只要其包含当前计算点即可。在实际应用中,为了便于计算,一般选用规则形状的子区,例如在Ncorr中选用的以计算点为圆心的圆形子区。
Ncorr中设定当前目标图像中像素点的位移相对于参考图像中对应子区中像素点的位移存在线性一阶变换,由此可得到如下像素坐标关系:
定义如下待求解变形参数向量:
其中u 和v 分别是x和y方向上对应的位移量,后面4个参数分别为u 和v 在x和y方向上的偏导数。
2. 互相关系数
求解上述变形参数向量(2)的关键在于构造参考图像子区和当前变形图像子区之间的互相关矩阵,比较两个子区中各个像素灰度值的相似度,常见的互相关系数有归一化积相关系数(NCC)和归一化误差平方和相关系数(SSD)。
Ncorr中选用的是SSD互相关系数,通过非线性优化方法求解最小化SSD互相关系数,实现亚像素精度的位移求解。
3. 非线性优化
DIC中基于子区的非线性优化方法主要包括以下三个步骤:
(1)初始位移值计算。该步骤主要通过整像素搜索实现,获得非线性优化的初始位移值。此外还可以通过快速傅里叶变换、特征匹配等方法得到初始位移值。
(2)迭代求解亚像素位移。对非线性方程的泰勒展开,然后用迭代最小二乘的方法求解亚像素位移,其中常用的方法有前向高斯牛顿法(FA-GN)和反向高斯牛顿法(IC-GN)。IC-GN算法以其更为高效的计算效率被广泛使用,Ncorr中使用的也是基于IC-GN的非线性优化算法求解亚像素位移。
(3)亚像素坐标灰度插值。在迭代求解亚像素位移的过程中,需要获取散斑图像中亚像素位置区域的灰度值,这就需要通过周围整像素坐标的灰度值进行插值。
4. 可靠性引导的DIC算法(RG-DIC)
为了计算全场所有计算点的位移,Ncorr采用可靠性引导的DIC算法[4],通过可靠性引导初始值在邻近计算点之间进行扩散,进而实现准确高效的全场位移计算。下图所示是可靠性引导DIC算法的流程图,也是Ncorr中执行DIC分析的流程图。
5. 全场应变计算
因为应变的计算需要对位移进行微分,所以其计算过程较为复杂。首先需要对计算得到的位移数据进行平滑,然后可以通过不同应变计算公式,计算不同的应变。如下所示为格林-拉格朗日应变的计算公式:
本文只讲解了Ncorr中的核心算法,Ncorr的具体实现中还包括算法细节的处理,在后续的Ncorr算法代码讲解的文章中,会对具体的实现进行更为详细的介绍。
声明: 为了方便介绍Ncorr算法原理,本文中用到的图片部分来自于Ncorr网站[1],如有不当之处,望指出更正。
【参考】
[1] http://www.ncorr.com/index.php.
[2] http://justinblaber.org/.
[3] Blaber, J., Adair, B. & Antoniou, A. Ncorr: Open-Source 2D Digital Image Correlation Matlab Software. Exp Mech 55, 1105–1122 (2015). https://doi.org/10.1007/s11340-015-0009-1.
[4] Bing Pan, "Reliability-guided digital image correlation for image deformation measurement." Optical Society of America (2009).
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)