| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> 数字图像相关(Digital Image Correlation DIC)中的非线性优化方法IC-GN的数值解计算 -> 正文阅读 |
|
|
[数据结构与算法]数字图像相关(Digital Image Correlation DIC)中的非线性优化方法IC-GN的数值解计算 |
前言由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究,其中需要对别人现有算法的复现和调研,尽管其中很多算法都已经非常成熟,但对于初学者而言即使明白其中的原理,无法上手实践和操作的话,依然无法能够将其完全的应用起来或者在上面进行创新,我希望能将自己作为一个初学者复现他人代码和学习该原理的过程记录下来,方便每一个涉足该领域的人能更快应用这些知识。 本文的论述基础建立在我的前一篇文章数字图像相关(Digital Image Correlation, DIC)中的非线性优化方法(FA-GN与IC-GN)。推荐先通过这篇帖子了解DIC非线性迭代优化方法后,再阅读本文。 数字图像相关专栏目录:
由于本人的论文已经完工,如果本文对你有所帮助,欢迎届时关注或引用我的论文。 内容回顾为保证阅读的通畅,我会将上一篇帖子中IC-GN的算法逻辑在本章节进行简要的回顾与展示,便于在后面的公式推导中方便随时回头查看。
在上一文中我们详细推导了数字图像相关中的非线性迭代优化的算术逻辑:通过在参考图像上设置好子区 f i = F ( x o + Δ x i ) f_{i}=F\left(x^{o}+\Delta x_{i}\right) fi?=F(xo+Δxi?) ,基于给定的一组形函数参数初值 P r c 0 P_{rc}^{0} Prc0?及 P r r 0 P_{rr}^{0} Prr0?,对目标函数(相关标准)不断迭代优化从而得到一个在 P r r = 0 P_{rr}=0 Prr?=0的情况下的最优解 P r c ? P_{rc}^{*} Prc??,从而得到一组在形变图像上与参考子区最佳匹配的形变子区 g i ? = G ( x o + W ( Δ x i , P r c ? ) ) g_{i}^{*}=G\left(x^{o}+\boldsymbol{W}\left(\Delta \boldsymbol{x}_{i}, \boldsymbol{P_{rc}^{*}}\right)\right) gi??=G(xo+W(Δxi?,Prc??)),最终实现参考图像像素点与形变图像像素点的匹配。而我们针对优化 P r c P_{rc} Prc?去使用的高斯牛顿法就被叫做FA-GN,而针对优化 P r r P_{rr} Prr?去使用的高斯牛顿法就被叫做IC-GN。
采用一阶形函数 W S F 1 \boldsymbol{W}^{S F 1} WSF1及 零均值归一化最小距离平方标准(Zero-Normalized Sum of Squared Differences Criterion, ZNSSD) 来构建我们的数学模型
设上一次迭代的到的形函数参数为
P
o
l
d
\boldsymbol{P^{old}}
Pold,由于这一次是针对
P
r
r
P_{rr}
Prr?来做,故求解的增量
Δ
P
\Delta \boldsymbol P
ΔP即为
P
r
r
P_{rr}
Prr?,其每次的起点都是原参考子区,即形函数参数零点,如此我们的目标函数为
C
ZNSSD?
(
Δ
P
)
C_{\text {ZNSSD }}(\boldsymbol{\Delta \boldsymbol P})
CZNSSD??(ΔP),即
一.IC-GN中增量 Δ P \Delta \boldsymbol P ΔP的数值解从内容回顾中,可以知道只要得到增量 Δ P \Delta \boldsymbol P ΔP便可以完成对于迭代的计算,但这里的 Δ P = ? ? C ZNSSD? ( 0 ) ? ? ? C ZNSSD? ( 0 ) ? 1 \Delta \boldsymbol P = -\nabla C_{\text {ZNSSD }}(0)*\nabla \nabla C_{\text {ZNSSD }}(0)^{-1} ΔP=??CZNSSD??(0)???CZNSSD??(0)?1该怎么去书写其数值解,成为了本文的目标。 利用ZNSSD描述中的符号
f
~
,
g
~
\widetilde{f},\widetilde{g}
f
?,g
?对IC-GN方法中的梯度和Hessian进行简化,可以得到
?
?
C
ZNSSD?
(
0
)
=
2
f
~
2
∑
[
d
f
i
d
Δ
P
?
(
d
f
i
d
Δ
P
)
T
]
\nabla\nabla C_{\text {ZNSSD }}(0)=\frac{2}{\widetilde{f}^{2}}\sum \left [ \frac{\mathrm{d}f_{i}}{\mathrm{d}\Delta \boldsymbol P}\cdot \left ( \frac{\mathrm{d}f_{i}}{\mathrm{d}\Delta \boldsymbol P} \right )^{T} \right ]
??CZNSSD??(0)=f
?22?∑[dΔPdfi???(dΔPdfi??)T]根据
Δ
P
\Delta \boldsymbol P
ΔP的公式,则Hessian和梯度中的系数
2
f
~
2
\frac{2}{\widetilde{f}^{2}}
f
?22?被消去,仅需额外计算
d
f
i
d
Δ
P
\frac{\mathrm{d}f_{i}}{\mathrm{d}\Delta \boldsymbol P}
dΔPdfi??即可得到增量
Δ
P
\Delta \boldsymbol P
ΔP的数值结果。利用链式法则有:
因此要完成IC-GN非线性迭代优化数值计算,需要引入的数据有
利用这些数据信息配合上算法,即可完成非线性迭代的数值计算了。同理FA-GN也是如此,利用类似的方法也可以计算得到FA-GN的数值解结果 二.写在最后这部分内容主要是作为辅助,方便大家能更快的通过MATLAB来搭建完整的数字图像相关匹配算法,里面的公式也是我亲自推导验证的,如果存在错误,还希望您可以及时指正,以确保所分享知识的准确性。很多知识的数学原理都是看上去很复杂,但是细细推导也就是高数里很普通的内容,希望能通过这样的方式让自己的知识活学活用起来。 参考引用
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/28 12:40:09- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |