日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】

發(fā)布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 前言
  • 一.數(shù)字圖像相關(guān)(Digital Image Correlation)
  • 二.相關(guān)運算
    • 1.數(shù)學(xué)模型
    • 2.形函數(shù)
    • 3.相關(guān)標準
    • 其他知識
  • 三.ADIC2D代碼解釋
    • 1.ImgCorr
    • 2.SubCorr
  • 四.寫在最后
  • 參考引用


前言

由于本人近期正在展開數(shù)字圖像相關(guān)技術(shù)用于測量材料形變方向的研究,其中需要對別人現(xiàn)有算法的復(fù)現(xiàn)和調(diào)研,盡管其中很多算法都已經(jīng)非常成熟,但對于初學(xué)者而言即使明白其中的原理,無法上手實踐和操作的話,依然無法能夠?qū)⑵渫耆膽?yīng)用起來或者在上面進行創(chuàng)新,我希望能將自己作為一個初學(xué)者復(fù)現(xiàn)他人代碼和學(xué)習(xí)該原理的過程記錄下來,方便每一個涉足該領(lǐng)域的人能更快應(yīng)用這些知識。

本文所復(fù)現(xiàn)的論文——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

由于官方數(shù)據(jù)集可能存在變動或者被墻,這里提供一下我已經(jīng)上傳好的版本
數(shù)據(jù)集地址:

  • 百度云:鏈接:https://pan.baidu.com/s/1In4ZAFRIzfWIxoBSMAYGYQ
    提取碼:8xmi

  • 谷歌云盤:https://drive.google.com/file/d/1JUTGmZirxXHYg4fPno-wE3YUmyTqWKzI/view?usp=sharing

數(shù)字圖像相關(guān)專欄目錄:

  • Matlab實現(xiàn)二維數(shù)字圖像相關(guān)(2D Digital Image Correlation, 2D-DIC)【ADIC2D代碼復(fù)現(xiàn)及原理介紹】
  • 數(shù)字圖像相關(guān)(Digital Image Correlation, DIC)中的非線性優(yōu)化方法(FA-GN與IC-GN)
  • 數(shù)字圖像相關(guān)(Digital Image Correlation, DIC)中的非線性優(yōu)化方法IC-GN的數(shù)值解計算
  • 用MATLAB繪制隨機散斑圖案【源碼+正確的橢圓旋轉(zhuǎn)公式】
  • 這篇論文是讓我真正想要將自己正在做的這些事進行記錄的源動力,因為這篇文章的作者也是考慮到盡管數(shù)字圖像相關(guān)技術(shù)很成熟,但是網(wǎng)絡(luò)上缺乏可以實操的源碼便于理解,從而將簡化的代碼以及對于原理的解釋共享在網(wǎng)絡(luò)上便于他人學(xué)習(xí)。非常感謝Devan Atkinson,Thorsten Becker兩位作者對于他們知識成果的共享。我將在這里將我學(xué)到的東西以中文的形式以方便國內(nèi)的學(xué)者進行進一步的研究。

    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

    一.數(shù)字圖像相關(guān)(Digital Image Correlation)

    數(shù)字圖像相關(guān)技術(shù)(Digital Image Correlation, DIC) 是廣泛應(yīng)用于剛體結(jié)構(gòu)形變檢測的視覺測量技術(shù)。它通過在被測物表面投影或繪制隨機散斑圖案,定義圖像的相似度函數(shù),對物體形變前后的兩幅圖像進行分析即可得到采樣點的位移場,從而得到形變2。數(shù)字圖像相關(guān)技術(shù)按照其測量的維數(shù),可以被分為二維數(shù)字圖像相關(guān)(Two-Dimensional Digital Image Correlation, 2D-DIC)三維數(shù)字圖像相關(guān)(Three-Dimensional Digital Image Correlation, 3D-DIC)3。如圖所示4就是2D-DIC獲取形變后子區(qū)位移場的過程。

    對于數(shù)字圖像相關(guān)而言,其流程可以分為標定、相關(guān)運算、位移變換以及最后根據(jù)實際需要計算應(yīng)變或者其他信息四個步驟,標定就是通過一系列拍攝的特定圖案的圖片,利用標定算法求解出相機圖像坐標系與真實世界坐標系下的映射關(guān)系,之后我單獨寫一篇來分享好了,這里主要分享一下相關(guān)運算的流程與推導(dǎo)。

    二.相關(guān)運算

    數(shù)字圖像相關(guān)的本質(zhì)就是在參考圖像上設(shè)置好子區(qū)后,找到形變后圖片上對應(yīng)的已經(jīng)產(chǎn)生過位移的子區(qū),從而計算出形變子區(qū)相對于參考子區(qū)在圖像坐標系上的位移,最終利用標定好的映射關(guān)系求解出該區(qū)域在實際物理空間中的位移,最后利用得到的位移計算得到所拍攝表面所發(fā)生的形變。在這個過程中參考子區(qū)是已知的,但形變后的圖片上原本的子區(qū)必然發(fā)生了變化,其具體位置是未知的,因此如何才能找到和原先參考子區(qū)對應(yīng)的那塊區(qū)域(求解這一未知量)正是關(guān)鍵所在,這正是相關(guān)運算所做的事情。

    1.數(shù)學(xué)模型

    我強烈建議大家能一起推導(dǎo)一次這一部分,對于理解相關(guān)運算有很大的作用!!

    首先設(shè)參考圖像FFF,它很多時候代表了t=0t=0t=0時刻所拍攝到的散斑圖案,其上的參考子區(qū)設(shè)為fff

    子區(qū)的排布有很多種,可以加步進那樣整列排布,也可以隨機的點選;子區(qū)的形狀也可以各種各樣,矩形、圓型,只要保證相關(guān)運算所處理的所有子區(qū)為同一種形狀、大小的即可。

    接下來設(shè)形變圖像GGG,其上的形變子區(qū)ggg,如下為一個在相機圖像坐標系下的示意圖1

    圖中左上角的矩形框即為參考子區(qū),右下角的平行四邊形即為形變子區(qū),其中參考子區(qū)fff中心點為x0=[x0y0]T\boldsymbol{x}^{0}=\left[\begin{array}{ll}x_{0} & y_{0}\end{array}\right]^{T}x0=[x0??y0??]T(后面的公式表達請注意上下標),參考子區(qū)上的其他像素點為xi=[xiyi]T\boldsymbol{x}^{i}=\left[\begin{array}{ll}x_{i} & y_{i}\end{array}\right]^{T}xi=[xi??yi??]T。以中心點x0\boldsymbol{x}^{0}x0作為參考,我們可以得到
    xi=Δxix0+xo=[xiyi]=[ΔxiΔyi]+[x0y0]\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=[xi?yi??]=[Δxi?Δyi??]+[x0y0?]其中Δxix0\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}Δxix0表示x0\boldsymbol{x}^{0}x0xi\boldsymbol{x}^{i}xi的坐標偏移。現(xiàn)在我們設(shè)置形變子區(qū)中與之前xi\boldsymbol{x}^{i}xi相對應(yīng)的當前坐標點為xi′=[xi′yi′]T\boldsymbol{x}^{i'} =\left[\begin{array}{ll}x_{i}' & y_{i}'\end{array}\right]^{T}xi=[xi??yi??]T,與之前中心點x0\boldsymbol{x}^{0}x0相對應(yīng)的形變子區(qū)中心點為xd\boldsymbol{x}^ozvdkddzhkzdxd。與上式同理,我們同樣可以得到xi′\boldsymbol{x}^{i'}xi的表達式為
    xi′=Δxi′x0+xo=[xi′yi′]=[Δxi′Δyi′]+[x0y0]\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=[xi?yi??]=[Δxi?Δyi??]+[x0y0?]其中Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxix0表示x0\boldsymbol{x}^{0}x0xi′\boldsymbol{x}^{i'}xi的坐標偏移。注意,沒有使用形變子區(qū)中心點作為參考點,是有兩個原因的,第一個原因是由于本身xd\boldsymbol{x}^ozvdkddzhkzdxd對于我們來說依然是未知點,它只不過是一個xi′\boldsymbol{x}^{i'}xi特例罷了,這里需要用一個已知點作為參考,還有一個原因會在形函數(shù)推導(dǎo)那一部分提到,這里先不引入。

    在這個式子當中,最重要的就是計算這里的Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxix0,因為在獲得這個值后就找到形變后與之前子區(qū)一一對應(yīng)的像素點坐標,從而可以計算整個子區(qū)圖像的位移場,最后即可計算該區(qū)域的形變或者受力了。而這個未知量的求解,需要引入一個有限元分析中的概念——形函數(shù)(Shape Function)。對于一個區(qū)域或者一個單元,其形變是可以通過數(shù)學(xué)模型來進行表示的,而這個用于描述的數(shù)學(xué)模型就是形函數(shù)(圖像處理中常見的仿射變換實質(zhì)就是一個形函數(shù))。形函數(shù)的階數(shù)越高,則可以描述的形變就越復(fù)雜。因此對于Δxi′x0\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}Δxix0是可以用形函數(shù)來表達的,這里設(shè)形函數(shù)關(guān)系為WWW形函數(shù)參數(shù)(Shape Function Parameters, SFPs)為PPP,我們有
    Δxi′x0=W(Δxix0,P)\Delta \boldsymbol{x}^{i'} \boldsymbol{x}^{0}=W(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0},P)Δxix0=W(Δxix0,P)
    那么現(xiàn)在關(guān)系式就全部建立完成了,接下來,如何建立這個形函數(shù)以及如何知道最合適的形函數(shù)參數(shù)成為了下一步的目標,首先是形函數(shù)的建立,這需要根據(jù)實際情況選擇合適階數(shù)的形函數(shù)關(guān)系,留到下一章進行探討。那么如何知道最合適的形函數(shù)參數(shù)呢?這就需要用到數(shù)字圖像相關(guān)最核心的內(nèi)容——相關(guān)運算。在信號與系統(tǒng)中,評判兩個信號的相似程度就是對他們進行相關(guān)運算,二維圖像實質(zhì)也是一種信號,因此評判參考子區(qū)和形變子區(qū)是否相似也是可以用相關(guān)運算的。

    這樣的話我們就可以將兩者相關(guān)運算作為一個目標函數(shù)(其結(jié)果為相關(guān)標準,用于衡量兩者的相似性, Correlation Criterion),通過建立好的形函數(shù)關(guān)系式以及一組形函數(shù)參數(shù)初值P0P_{0}P0?,通過對相關(guān)標準的梯度下降法迭代求解,即可以找到一組最合適的形函數(shù)參數(shù)最優(yōu)解P?P^{*}P?,此時所得到的形變子區(qū)就是與真實的形變情況最為接近的,從而實現(xiàn)了參考子區(qū)與形變子區(qū)之間的匹配!

    二維數(shù)字圖像本身是對于光強的一種采樣,即本身是離散點,考慮到匹配的精度,需要對形變圖像進行插值,以實現(xiàn)亞像素級別的匹配。經(jīng)過插值運算后,參考子區(qū)和形變子區(qū)都可以寫成函數(shù)的形式,即
    fi=F(xo+Δxix0)f_{i}=F\left(\boldsymbol x^{o}+\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}\right) fi?=F(xo+Δxix0)gi=G(xo+W(Δxix0,P))g_{i}=G\left(\boldsymbol x^{o}+\boldsymbol{W}\left(\Delta \boldsymbol{x}^{i} \boldsymbol{x}^{0}, \boldsymbol{P}\right)\right)gi?=G(xo+W(Δxix0,P))將上面的推導(dǎo)進行歸納,整個運算的實質(zhì)就是通過給定一組形函數(shù)參數(shù)初值P0P_{0}P0?,對目標函數(shù)(相關(guān)標準)不斷迭代優(yōu)化從而得到一組最優(yōu)解P?P^{*}P?

    2.形函數(shù)

    在二維數(shù)字圖像相關(guān)中,最常采用的形函數(shù)有0階形函數(shù)(WSF0W^{SF0}WSF0)、1階形函數(shù)(WSF1W^{SF1}WSF1)和2階形函數(shù)(WSF2W^{SF2}WSF2)。階數(shù)越高,能描述的形變就越復(fù)雜,但待求解的的位置量也會越多。如圖所示的就是這三種形函數(shù)的示意圖1

    0階形函數(shù):只能描述位移變化,無法描述拉伸或者扭曲(速度較快,適合用于小形變系統(tǒng)的實時檢測)
    WSF0(Δxix0,PSF0)=[10u01v][ΔxiΔyi1]\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]WSF0(Δxix0,PSF0)=[10?01?uv?]???Δxi?Δyi?1????
    1階形函數(shù):能描述子區(qū)位移和拉伸(仿射變換),但不能描述扭曲(適合用于小形變系統(tǒng))
    WSF1(Δxix0,PSF1)=[1+uxuyuvx1+vyv][ΔxiΔyi1]\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] WSF1(Δxix0,PSF1)=[1+ux?vx??uy?1+vy??uv?]???Δxi?Δyi?1????
    2階形函數(shù):能描述子區(qū)位移、拉伸和扭曲(適合用于大形變系統(tǒng))
    WSF2(Δxix0,PSF2)=[12uxxuxy12uyy1+uxuyu12vxxvxy12vyyvx1+vyv][Δxi2ΔxiΔyiΔyi2ΔxiΔyi1]\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] WSF2(Δxix0,PSF2)=[21?uxx?21?vxx??uxy?vxy??21?uyy?21?vyy??1+ux?vx??uy?1+vy??uv?]?????????Δxi2?Δxi?Δyi?Δyi2?Δxi?Δyi?1??????????由上述式子我們可以得到不同階數(shù)形函數(shù)需要求解的參數(shù)為:
    PSF0=[uv]T\boldsymbol{P}^{S F 0}=\left[\begin{array}{llllllllllll} u & v\end{array}\right]^{T}PSF0=[u?v?]TPSF1=[uuxuyvvxvy]T\boldsymbol{P}^{S F 1}=\left[\begin{array}{llllllllllll} u & u_{x} & u_{y} & v & v_{x} & v_{y} \end{array}\right]^{T}PSF1=[u?ux??uy??v?vx??vy??]TPSF2=[uuxuyuxxuxyuyyvvxvyvxxvxyvyy]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} PSF2=[u?ux??uy??uxx??uxy??uyy??v?vx??vy??vxx??vxy??vyy??]T那這里的每一項參數(shù)代表什么呢?從上一節(jié)的內(nèi)容,我們可以知道,對于參考子區(qū)中任意一個像素點,其對應(yīng)的形變子區(qū)上的映射點坐標都可以寫成參考子區(qū)對應(yīng)點的坐標值+X/YX/YX/Y方向的偏移量的形式。同時,由于兩個點本身相關(guān),因此這個偏移量和參考子區(qū)對應(yīng)點坐標是有關(guān)系的。因此,我們可以得到以下關(guān)系式,設(shè)參考子區(qū)上的某一點f(x,y)f(x,y)f(x,y),設(shè)其在形變子區(qū)上的映射點為g(x~,y~)g(\widetilde{x},\widetilde{y})g(x,y?),我們有:
    x~=x+u(x,y)\widetilde{x}=x+u(x,y)x=x+u(x,y)y~=y+v(x,y)\widetilde{y}=y+v(x,y)y?=y+v(x,y)對兩式進行二階泰勒展開5,我們可以獲得
    x~=x0+u+uxΔx+uyΔy+12uxxΔx2+12uyyΔy2+uxyΔ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 yx~=x0?+u+ux?Δx+uy?Δy+21?uxx?Δx2+21?uyy?Δy2+uxy?ΔxΔyy~=y0+v+UxΔx+vyΔy+12vxxΔx2+12vyyΔy2+vxyΔ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 yy~?=y0?+v+Ux?Δx+vy?Δy+21?vxx?Δx2+21?vyy?Δy2+vxy?ΔxΔy形函數(shù)的參數(shù)就是展開式中各項的系數(shù),值得注意的是,展開式中的常數(shù)項(x0,y0)(x_{0},y_{0})(x0?,y0?),考慮到每一個子區(qū)只會計算一個形函數(shù),因此單一子區(qū)內(nèi)各點的計算均要使用相同的常數(shù)項,這也正是上一節(jié)中每個點均以參考子區(qū)中心點坐標作為參考的原因了。

    在實際進行相關(guān)運算的過程中,需要根據(jù)實際情況選擇合適的形函數(shù),形函數(shù)選擇的越好則計算得到的形變子區(qū)越接近真實情況,計算的值也會更加準確!

    3.相關(guān)標準

    相關(guān)標準在相關(guān)運算中相當于最后的評價函數(shù),選擇合適的相關(guān)標準對于迭代優(yōu)化的速度有很大作用。一個評價函數(shù)的好壞我個人認為是要滿足快收斂足夠“凸”“抗噪聲”,快收斂使得整體優(yōu)化能盡快逼近最優(yōu)解。足夠“凸”使得每次迭代優(yōu)化步進都會很大,同時最優(yōu)解點確實夠好。而抗噪聲則確保了所逼近的最優(yōu)解點和實際情況相符,而不是由于噪聲導(dǎo)致的異常值,減小誤差。這一塊我自己還不太能吃透,就直接搬結(jié)果吧。

    在Bing Pan等人的文章Equivalence of digital image correlation criteria for pattern matching6中介紹了各種相關(guān)標準的算術(shù)推導(dǎo)以及相互之間的轉(zhuǎn)換,其中最好的三種相關(guān)標準為零均值歸一化互相關(guān)標準(Zero-Normalized Cross-Correlation Criterion, ZNCC)、零均值歸一化最小距離平方標準(Zero-Normalized Sum of Squared Differences Criterion, ZNSSD)和最優(yōu)化參數(shù)的距離平方標準(Parametric Sum of Squared Difference, PSSDab)7

    這三種標準相互之間可以互相轉(zhuǎn)換,在對最終結(jié)果的推導(dǎo)上是一致的。Bing Pan等人還在文章中測試分別使用PSSD與ZNSSD作為相關(guān)標準時候的計算效率,PSSD會更好一些。當然選用哪種標準還是要看實際情況來選擇。

    其他知識

    考慮篇幅 (我太懶了而且沒搞太懂) ,相關(guān)運算的其他知識點我就在這里提一嘴,之后有空再單獨寫帖子補充吧。

  • 由于需要對形變圖像進行精確插值,目前最常采用的插值運算為雙三次b樣條插值(bicubic b-spline interpolation)
  • 上述的三種相關(guān)標準,對于高頻噪聲都比較敏感,因此需要對參考圖像和形變圖像都進行高斯濾波,濾除高頻噪聲(具體的參數(shù)需要研究,由于低通濾波器會將很多紋理模糊)
  • 基于相關(guān)標準來優(yōu)化形函數(shù)參數(shù)實質(zhì)是個非線性優(yōu)化問題,目前最常采用的計算方式為逆合成高斯-牛頓法——IC-GN算法(Inverse compositional Gauss-Newton method),推薦閱讀數(shù)字圖像相關(guān)(Digital Image Correlation, DIC)中的非線性優(yōu)化方法(FA-GN與IC-GN)
  • 優(yōu)化的開始需要提供一組形函數(shù)參數(shù)初值,這組初值越接近最優(yōu)解,迭代速度提升也就越快,同時其合理性也決定了所得最優(yōu)解與真實值之間的誤差(因為優(yōu)化等于一個尋找峰頂?shù)倪^程,我們想要的是最高的峰頂,但如果初值位置不位于最高峰,則找到的峰頂并不是最理想的)。
  • 三.ADIC2D代碼解釋

    在github上下載好源碼,根據(jù)readme下載好需要的數(shù)據(jù)集,我們即可完成對于ADIC2D項目的部署,注:我是在Matlab 2018a上進行的調(diào)試。如圖,是部署好后的各文件含義

    整個項目的調(diào)用關(guān)系及框架如圖所示

    部署完成之后直接運行runme.m文件即可,數(shù)據(jù)集的選擇、ADIC2D算法輸入?yún)?shù)均可在文件開頭進行修改。具體可修改參數(shù)如下:

    % runme.m參數(shù)輸入部分解釋 Sample=3; % EN:which sample to analyse CH:選擇使用的數(shù)據(jù)集序號1——3 FileNames=ImageNamesLoad(Sample); % load appropriate images for chosen sample Mask=ones(size(im2double(imread(FileNames{1})))); % EN:define a mask that includes all pixels of the image CH:設(shè)定一個蒙版決定使用圖片中的那些區(qū)域,即ROI% Function inputs (which set up the DIC analysis) GaussFilter=[0.4,5];% 高斯濾波參數(shù)[sigma, kernal size],用于濾除高頻噪聲 StepSize=5; % 子區(qū)步進 SubSize=41; % 子區(qū)大小 SubShape='Circle'; % 子區(qū)形狀 SFOrder=1; % 形函數(shù)階數(shù)(0,1,2) RefStrat=0; % 子區(qū)開始編號 StopCritVal=1e-4; % 停止迭代的標準 WorldCTs=0; % 世界坐標系下的標定點位置 ImageCTs=0; % 圖像坐標系下的標定點位置 rho=0; % 標定板厚度(mm)

    之后runme.m會調(diào)用ADIC2D算法函數(shù)將讀入的數(shù)據(jù)集進行處理,之后會輸出處理好的數(shù)據(jù)集結(jié)構(gòu)體。runme.m的后半部分是利用輸出的數(shù)據(jù)結(jié)果進行顯示和計算誤差,包括某副圖像子區(qū)沿X/YX/YX/Y方向的位移情況、位移結(jié)果的均方根誤差等。這部分代碼都比較易讀,直接說一下ADIC2D及其子函數(shù)的算法邏輯吧

    1.ImgCorr

    ImgCorr函數(shù)就是按照上一個大章節(jié)中的思路來書寫的,下面是它的算法概要

    2.SubCorr

    SubCorr函數(shù)是利用IC-GN的方法來優(yōu)化形函數(shù)參數(shù),直到得到最優(yōu)解,從而輸出最佳匹配的形變子區(qū)信息,具體代碼邏輯請參照論文1及其源碼,這里僅展示其算法框架圖

    四.寫在最后

    這是我在自己做課題過程中讀到的一篇寫的很通透的論文,數(shù)字圖像相關(guān)其實是很成熟的技術(shù)了,但是就目前看來在國內(nèi),這一塊的研究還很少,即使是有相關(guān)的應(yīng)用也大都是照搬理論,并沒有對于這種技術(shù)詳細的描述和深入的解釋。本人也是個小白,希望能通過這篇帖子將這種技術(shù)說的稍微清楚些,其中如果有任何理解上的偏差和錯誤還望業(yè)界的大佬能多多指正,確保輸出的知識足夠準確和客觀。之后我把自己的課題理清楚后,應(yīng)該會寫一個小的demo作為分享,方便相關(guān)學(xué)者們能更快的理解和使用這種技術(shù)。最后非常感謝Atkinson D, Becker T對于這份知識的分享。

    推薦個應(yīng)用該技術(shù)的網(wǎng)站,方便大家進一步深入
    http://www.ncorr.com/index.php/dic-algorithms

    參考引用


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

  • 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. ??

  • 周軼昊. 基于雙目視覺的物體表面三維復(fù)雜運動重建及其應(yīng)用[D].復(fù)旦大學(xué),2012. ??

  • 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). ??

  • 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. ??

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

  • 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. ??

  • 總結(jié)

    以上是生活随笔為你收集整理的Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。