相機姿態軌跡最小二乘多項式平滑優化(防抖動)

2021-07-11 07:58:44 字數 1629 閱讀 3737

我們看到有大量的抖動在裡面。體現在影象上則是ar物體會有小幅度的波動。這個波動其實很小,如果ar物體比較小的話,這個波動是不明顯的(肉眼幾乎察覺不到)。但是當我們拉遠距離,呈現很大的ar物體時(如車展上的汽車),這個波動肉眼還是能察覺到。另外現在的vr/ar系統裡,減小眩暈感是很重要的,所以有必要使呈現出的虛擬物體更加的穩定。因為ar系統是實時的,而複雜的濾波或者平滑方法會消耗更多的時間,所以我們採用基礎的最小二乘法來消除抖動。這種方法引數少,計算量小,速度快,平滑效果不錯。完整的名字是最小二乘移動視窗多項式平滑,我們用周圍多個帶有不同權重的點來表示其中的乙個點,合理的選擇平滑視窗的大小和多項式的次方數,對於消除抖動的效果和時間消耗極為重要。對於平滑後的資料與原始資料之間的誤差,我們做了相應的資料補償。

首先來看看最小二乘多項式平滑中最重要的兩個引數:平滑視窗大小2m+1,多項式次數n。如下圖所示:

我們先來計算一下m=2(移動視窗大小為5),n=2情況下的權重(係數)矩陣:

方程組(14)可以被表示成矩陣形式(15),然後利用通用解法解線性方程組。

得到b之後,帶入到(14)裡,就得到了每個點如何被周圍2m+1個點表示,同時也得到了權重矩陣:

做了一些實驗,對比分析實驗結果後發現平滑視窗大小為7,多項式次數為1時,平滑效果最佳。大約平滑了20%:

平滑後的資料與原資料之間的誤差是不可避免的,但還是有一些地方的誤差是不必要的,比如一些本身平滑的軌跡,因為受到前後不平滑姿態的影響導致一定的不必要誤差。遇到這種情況,我們便減少平滑後資料與原始資料之間的距離。比如連續k個姿態,波動角度小於一定值,我們便做這種處理:

經過一定的實驗,我們發現連續5個姿態波動cos大於0.8(角度小於arccos(0.8))時減少距離,效果最好:

最終整個平滑過程減少了姿態軌跡的波動,提高了約20%的平滑度,誤差約0.01*50=5畫素(圖中乙個unit為50pixel),耗時0.1毫秒。

數值分析 多項式最小二乘回歸 Python實現

僅供參考 配置環境 coding utf 8 created on thu nov 29 21 09 27 2018 多項式回歸 author hhuaf import matplotlib.pyplot as plt from sklearn.preprocessing import polyno...

最小二乘法 多項式

多項式最小二乘法 基於一元二次方程進行推理 方程式是 f x ax 2 bx c 其中點 n x i,y i 表示多個點資訊,擬合乙個二次方程 其中原理為 i 1 n a x i 2 bx i c y i 2 min 對各個係數求導 i 1 n a x i 2 bx i c y i 2 min 對a...

最小二乘法擬合多項式

最小二乘法擬合多項式 求解 給定資料點 xi yi 用最小二乘法擬合資料的多項式,並求平方誤差。include include include include using namespace std const int maxn 1000 int n,m double b maxn xy doubl...