bundle adjustment 光束法平差

2021-08-21 09:27:20 字數 1029 閱讀 2295

推薦文獻->bundle adjustment method using sparse bfgs solution

這篇**是一篇介紹了光束法平差的原理的sci,今年(2023年)剛發表的,來自北大的**。文章分析了ba的原理,並介紹了高斯牛頓和lm的**和不足之處,最後這篇**提出了一種基於擬牛頓法(bfgs)的ba解算方法。

一、 構造優化方程

下面兩個公式從**中截圖。通過反投影方程,將相機pose c 和landmark p 投影到座標,

二、從非線性方程經歷泰勒展開 到 線性方程

上面的公式(3)是乙個非線性方程,然後對非線性方程進行泰勒展開,轉化為線性方程,如下面的方程所示:

三、分析高斯牛頓(gauss-newton)和lm方法的由來和缺點

看到上面的這個方程,大家應該就明白了gn和lm方法的問題。hessian矩陣中第二項被忽略就是gn方法;如果把第二項變成阻尼(u),就是lm方法。

作者很清楚的展示出來,兩種方法的問題之處。此時,我們就明白了為啥,在優化任務中,容易出現發散的問題。**指出,原因在於:每乙個方法的方程能不能很好的近似這個問題。

四、提出一種稀疏的bfgs方法

這篇**保留hessian矩陣的第一項(jacobian轉秩*jacobian),使用擬牛頓方法(bfgs)來求解第二項。

未完待續。

Bundle Adjustment光束平差法概述

給出從不同視角拍攝的,描述同乙個場景的一系列,bundle adjustment可以根據所有點在影象中的投影作為標準,同時提煉出描述場景結構的3d點座標 相對運動引數和相機的光學引數。通常在每個基於feature的3d場景重建演算法中都要用到bundle adjustment,作為每個基於特徵的多視...

Eigne實現光束法平差

include include include include include include include sophus se3.h using namespace std using namespace eigen using namespace cv typedef vector vecve...

基於opencv2的相片拼接(光束法平差)

主要是供無人機的相片使用,原理這裡就不詳述了。直接貼 qt 4 5作為資料讀入支援 include include include include include using namespace std using namespace cv int main int argc,char argv a...