资讯专栏INFORMATION COLUMN

Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-

nifhlheimr / 1026人阅读

摘要:数字图像相关技术按照其测量的维数,可以被分为二维数字图像相关和三维数字图像相关。注意,没有使用形变子区中心点作为参考点,是有两个原因的,第一个原因是由于本身对于我们来说依然是未知点,它只不过是一个


前言

由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究,其中需要对别人现有算法的复现和调研,尽管其中很多算法都已经非常成熟,但对于初学者而言即使明白其中的原理,无法上手实践和操作的话,依然无法能够将其完全的应用起来或者在上面进行创新,我希望能将自己作为一个初学者复现他人代码和学习该原理的过程记录下来,方便每一个涉足该领域的人能更快应用这些知识。

本文所复现的论文——Atkinson D, Becker T. A 117 Line 2D Digital Image Correlation Code Written in MATLAB[J]. Remote Sensing, 2020, 12(18): 2906.1
GitHub源码地址:https://github.com/SUMatEng/ADIC2D.git


这篇论文是让我真正想要将自己正在做的这些事进行记录的源动力,因为这篇文章的作者也是考虑到尽管数字图像相关技术很成熟,但是网络上缺乏可以实操的源码便于理解,从而将简化的代码以及对于原理的解释共享在网络上便于他人学习。非常感谢Devan Atkinson,Thorsten Becker两位作者对于他们知识成果的共享。我将在这里将我学到的东西以中文的形式以方便国内的学者进行进一步的研究。

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

一.数字图像相关(Digital Image Correlation)

数字图像相关技术(Digital Image Correlation, DIC) 是广泛应用于刚体结构形变检测的视觉测量技术。它通过在被测物表面投影或绘制随机散斑图案,定义图像的相似度函数,对物体形变前后的两幅图像进行分析即可得到采样点的位移场,从而得到形变2。数字图像相关技术按照其测量的维数,可以被分为二维数字图像相关(Two-Dimensional Digital Image Correlation, 2D-DIC)三维数字图像相关(Three-Dimensional Digital Image Correlation, 3D-DIC)3。如图所示4就是2D-DIC获取形变后子区位移场的过程。

对于数字图像相关而言,其流程可以分为标定、相关运算、位移变换以及最后根据实际需要计算应变或者其他信息四个步骤,标定就是通过一系列拍摄的特定图案的图片,利用标定算法求解出相机图像坐标系与真实世界坐标系下的映射关系,之后我多带带写一篇来分享好了,这里主要分享一下相关运算的流程与推导。

二.相关运算

数字图像相关的本质就是在参考图像上设置好子区后,找到形变后图片上对应的已经产生过位移的子区,从而计算出形变子区相对于参考子区在图像坐标系上的位移,最终利用标定好的映射关系求解出该区域在实际物理空间中的位移,最后利用得到的位移计算得到所拍摄表面所发生的形变。在这个过程中参考子区是已知的,但形变后的图片上原本的子区必然发生了变化,其具体位置是未知的,因此如何才能找到和原先参考子区对应的那块区域(求解这一未知量)正是关键所在,这正是相关运算所做的事情。

1.数学模型

我强烈建议大家能一起推导一次这一部分,对于理解相关运算有很大的作用!!

首先设参考图像 F F F,它很多时候代表了 t = 0 t=0 t=0时刻所拍摄到的散斑图案,其上的参考子区设为 f f f

子区的排布有很多种,可以加步进那样整列排布,也可以随机的点选;子区的形状也可以各种各样,矩形、圆型,只要保证相关运算所处理的所有子区为同一种形状、大小的即可。

接下来设形变图像 G G G,其上的形变子区 g g g,如下为一个在相机图像坐标系下的示意图1

图中左上角的矩形框即为参考子区,右下角的平行四边形即为形变子区,其中参考子区 f f f中心点为 x 0 = [ x 0 y 0 ] T /boldsymbol{x}^{0}=/left[/begin{array}{ll}x_{0} & y_{0}/end{array}/right]^{T} x0=[x0y0]T(后面的公式表达请注意上下标),参考子区上的其他像素点为 x i = [ x i y i ] T /boldsymbol{x}^{i}=/left[/begin{array}{ll}x_{i} & y_{i}/end{array}/right]^{T} xi=[xiyi]T。以中心点 x 0 /boldsymbol{x}^{0} x0作为参考,我们可以得到
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] xi=Δxix0+xo=[xiyi]=[ΔxiΔyi]+[x0y0]其中 Δ x i x 0 /Delta /boldsymbol{x}^{i} /boldsymbol{x}^{0} Δxix0表示 x 0 /boldsymbol{x}^{0} x0 x i /boldsymbol{x}^{i} xi的坐标偏移。现在我们设置形变子区中与之前 x i /boldsymbol{x}^{i} xi相对应的当前坐标点为 x i ′ = [ x i ′ y i ′ ] T /boldsymbol{x}^{i"} =/left[/begin{array}{ll}x_{i}" & y_{i}"/end{array}/right]^{T} xi=[xiyi]T,与之前中心点 x 0 /boldsymbol{x}^{0} x0相对应的形变子区中心点为 x d /boldsymbol{x}^{d} xd。与上式同理,我们同样可以得到 x i ′ /boldsymbol{x}^{i"} xi的表达式为
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] xi=Δxix0+xo=[xiyi]=[ΔxiΔyi]+[x0y0]其中 Δ x i ′ x 0 /Delta /boldsymbol{x}^{i"} /boldsymbol{x}^{0} Δxix0表示 x 0 /boldsymbol{x}^{0} x0 x i ′ /boldsymbol{x}^{i"} xi的坐标偏移。注意,没有使用形变子区中心点作为参考点,是有两个原因的,第一个原因是由于本身 x d /boldsymbol{x}^{d} xd对于我们来说依然是未知点,它只不过是一个 x i ′ /boldsymbol{x}^{i"}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124483.html

相关文章

  • Opencv实现图像的加密解密

    摘要:目前常用于图像加密的混沌系统有混沌映射映射分段线形混沌映射映射标准映射映射混沌映射蔡氏混沌混沌系统二维映射混沌系统等。一些混沌加密算法采用了形式比较复杂的混沌系统,速度较慢,无法实现实时的加密。 ...

    andot 评论0 收藏0
  • GitChat · 人工智能 | 肿瘤医疗影像 AI 识别技术实践

    摘要:大数据人工智能分析技术使得医学影像诊断软硬件变得更智能化。通过已训练好的卷积神经网络,能很快地搭建并训练自己的深度学习系统。目前,典型的卷积神经网络是一个多层的可训练的体系结构。使用平均值操作的池化层被称之为平均池化层。 来自 GitChat 作者:王晓明更多IT技术分享,尽在微信公众号:GitChat技术杂谈 进入 GitChat 阅读原文 前言 医学影像与人工智能的结合,是数字医疗...

    songjz 评论0 收藏0
  • GitChat · 人工智能 | 肿瘤医疗影像 AI 识别技术实践

    摘要:大数据人工智能分析技术使得医学影像诊断软硬件变得更智能化。通过已训练好的卷积神经网络,能很快地搭建并训练自己的深度学习系统。目前,典型的卷积神经网络是一个多层的可训练的体系结构。使用平均值操作的池化层被称之为平均池化层。 来自 GitChat 作者:王晓明更多IT技术分享,尽在微信公众号:GitChat技术杂谈 进入 GitChat 阅读原文 前言 医学影像与人工智能的结合,是数字医疗...

    DrizzleX 评论0 收藏0
  • UIView自定义绘制

    摘要:但是,对于一些特殊的情况,我们需要绘制产品狗想要的图形。四与圆角定制类是基于的,准确的说是基于的。应用场景对于某些需要绘制边框的需求,我们可以通过上述三四两种方式绘制边框。对于某些非矩形,并且使用系统不提供的样式显示的,我们需要进行自绘。 许多UIView的子类,如UIButton或UILabel,它们的形状都是系统固定的。但是,对于一些特殊的情况,我们需要绘制产品狗想要的图形。那么...

    sf190404 评论0 收藏0
  • 【opencv-python常用知识速查(二)】

    摘要:本博客为常用知识速查一的第二部分,因为如果博客很长,编辑起来特别卡。高斯模糊对去除图像中的高斯噪声非常有效。 本博客为 【opencv-python常用知识速查(一...

    不知名网友 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<