基于图像的多视角立体视觉三维重建(五)——捆绑调整之非线性优化算法

本文探讨了三维重建中非线性优化的重要性,介绍了梯度下降法、牛顿法、高斯牛顿法和LM算法的原理及应用。在优化过程中,这些方法用于提升相机参数和三维点坐标的精度。LM算法作为一种改进的牛顿法,结合了梯度下降和牛顿法的优点,通过调整信赖域来平衡收敛速度和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

  在三维重建过程中,得到三维点与相机内外参数之后,需要同时对三维点位置和相机参数进行非线性优化,得到更精确的相机参数与三维点坐标数据,常用的非线性优化方法有:梯度下降法,牛顿法,高斯牛顿法,LM算法

优化问题描述:

捆绑调整是一个无约束非线性最小优化问题

Alt

前提知识

Alt

梯度下降法

梯度下降法是在当前点进行一阶展开,在展开点处进行局部平面拟合

Alt

其中 ▽ g ( θ t ) = J ( θ t ) \bigtriangledown g(\theta_{t})=J(\theta_{t}) g(θt)=J(θt),则有 δ θ = − λ J ( θ t ) \delta\theta=-\lambda J(\theta_{t}) δθ=λJ(θt)
式中 δ θ \delta\theta δθ为参数 θ \theta θ的偏移量, λ \lambda λ为学习率, J ( θ t ) J(\theta_{t}) J(θt)为雅可比矩阵.

牛顿法

在这里插入图片描述

高斯牛顿法

  牛顿法在每次迭代都需计算Hessien矩阵的逆矩阵,计算量大,高斯牛顿法使用雅可比矩阵来计算近似Hessien矩阵,减少计算量(只有最小二乘问题才能使用高斯牛顿法)
优化目标简单记为:
min ⁡ θ g ( θ ) = ∑ i = 0 n ∣ ∣ u i ^ − μ θ i ∣ ∣ 2 \min \limits_{\theta}g(\theta) = \sum_{i=0}^n ||\hat{u_{i}}-\mu_{\theta_{i}}||^{2} θming(θ)=i=0n∣∣ui^μθi2
  其中 u i ^ 是像平面上图像特征匹配的点坐标 \hat{u_{i}}是像平面上图像特征匹配的点坐标 ui^是像平面上图像特征匹配的点坐标 μ θ i \mu_{\theta_{i}} μθi表示投影到像平面的点坐标,投影点坐标参数 θ i \theta_{i} θi决定, θ i \theta_{i} θi包含三维点坐标和相机参数。

r i = μ θ i − u i ^ r_{i}=\mu_{\theta_{i}}-\hat{u_{i}} ri=μθiui^
r = [ r 1 , r 2 . . . r n ] T r=[r_{1},r_{2}...r_{n}]^{T} r=[r1,r2...rn]T
则有: g ( θ ) = r T r g(\theta) = r^{T}r g(θ)=rTr
对上式两边对当前的参数 θ \theta θ求偏导:
▽ g ( θ ) = [ ∂ g ∂ θ 1 , ∂ g ∂ θ 2 . . . ∂ g ∂ θ m ] T . ∂ g ∂ θ j = 2 ∑ i = 0 m r i ∂ r i ∂ θ j \bigtriangledown g(\theta)=[\frac{\partial g}{\partial \theta_{1}}, \frac{\partial g}{\partial \theta_{2}}... \frac{\partial g}{\partial \theta_{m}}]^{T}\\.\\\frac{\partial g}{\partial \theta_{j}}= 2\sum_{i=0}^m r_{i}\frac{\partial r_{i}}{\partial \theta_{j}} g(θ)=[θ1g,θ2g...θmg]T.θjg=2i=0mriθjri

则上式可以转换成雅可比矩阵的形式:
▽ g ( θ ) = 2 J T r \bigtriangledown g(\theta)=2J^{T}r g(θ)=2JTr
由雅克比矩阵求Hession矩阵:

Alt

上式表明Hession矩阵可以用J矩阵来近似

由牛顿法的表达式:
在这里插入图片描述
H = 2 ( J T J + O ) H=2(J^{T}J+O) H=2(JTJ+O) ▽ g ( θ ) = 2 J T r \bigtriangledown g(\theta)=2J^{T}r g(θ)=2JTr代入得:
δ θ = − ( J T J + O ) − 1 J T r \delta\theta=-(J^{T}J+O)^{-1}J^{T}r δθ=(JTJ+O)1JTr
一般而言,O表达式中的 r i j r_{ij} rij≈0,可以将O近似舍弃得:
δ θ = − ( J T J ) − 1 J T r \delta\theta=-(J^{T}J)^{-1}J^{T}r δθ=(JTJ)1JTr
由于 J T J J^{T}J JTJ有可能是非正定,所以要引入Levenberg-Marquart修正

LM算法特点与优势

  LM算法是一种“信赖阈”的方法,当收敛速度较快时,增大信赖域,使算法趋向于牛顿法;当收敛速度较慢时,减小信赖域,使算法趋向于最速梯度法

  LM针对高斯牛顿算法的改进:
    1.求解 δ θ \delta\theta δθ时,对其设置了信赖域
    2.求得 δ θ \delta\theta δθ之后对其近似效果进行量化,并根据量化结果对信赖域进行调整,从而重新计算增量 δ θ \delta\theta δθ,直到近似效果量化结果达到了阈值

LM修订牛顿法:
  其中 α k \alpha_{k} αk可以视为线性搜索的步长,后面的代表搜索的方向,可以设置信赖域,在信赖域内,可以增大步长,信赖域外可以减小步长。
θ k = θ k + 1 − α k H ( θ k − 1 ) − 1 ▽ g ( θ k − 1 ) \theta_{k} = \theta_{k+1}-\alpha_{k} H(\theta_{k-1})^{-1}\bigtriangledown g(\theta_{k-1}) θk=θk+1αkH(θk1)1g(θk1)
  Hession矩阵可能为非正定矩阵,需要进行修正,对Hession矩阵加上 μ I \mu I μI即:
θ k = θ k + 1 − α k ( H ( θ k − 1 ) + μ I ) − 1 ▽ g ( θ k − 1 ) \theta_{k} = \theta_{k+1}-\alpha_{k} (H(\theta_{k-1})+\mu I)^{-1}\bigtriangledown g(\theta_{k-1}) θk=θk+1αk(H(θk1)+μI)1g(θk1)
如果 μ \mu μ为0,那就退化为牛顿法,如果 μ \mu μ为∞,则H失去贡献意义,退化成梯度下降法。
H = 2 ( J T J + O ) H=2(J^{T}J+O) H=2(JTJ+O) ▽ g ( θ ) = 2 J T r \bigtriangledown g(\theta)=2J^{T}r g(θ)=2JTr r = u ^ − μ θ r=\hat{u}-\mu_{\theta} r=u^μθ代入得:
θ k = θ k + 1 − α k ( J T J + μ I ) − 1 J T ( u ^ − μ θ ) \theta_{k} = \theta_{k+1}-\alpha_{k} (J^{T}J+\mu I)^{-1}J^{T}(\hat{u}-\mu_{\theta}) θk=θk+1αk(JTJ+μI)1JT(u^μθ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV科研随想录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值