今天完成了機器人視覺的所有課程以及作業,確實是受益匪淺啊!
最后一個話題是Bundle Adjustment. 機器人視覺學中,最頂尖的方法。
1、基於非線性優化的相機位姿估計
之前已經在擬合一篇中,已經補完了非線性最小二乘擬合問題。Bundle Adjustment,中文是光束平差法,就是利用非線性最小二乘法來求取相機位姿,三維點坐標。在僅給定相機內部矩陣的條件下,對四周物體進行高精度重建。Bundle Adjustment的優化目標依舊是最小重復投影誤差。
與利用non-linear mean square 解三角同,bundle adjustment 中所有的參數,RCX均為變量。N幅圖則有N個位姿,X個點,我們會得到非常大的jacobbian Matrix.本質上,需要使用雅克比矩陣進行梯度下降搜索。詳細見博客——擬合
2、雅克比矩陣
雅克比矩陣的行代表信息,列代表約束
每一行是一個點在該位姿下的誤差,每一列代表f對x分量的偏導數。
q x c 均為變量,q是旋轉四元素,x 是三維點空間坐標,c 是相機光心在世界坐標系下的坐標。J 可以分為三部分,前4列代表對旋轉求導,中間三列代表對c求導,最后三列代表對x求導。其中,對旋轉求導又可以分解為對旋轉矩陣求導X旋轉矩陣對四元素q求導。一旦獲得J的表達式,我們就可以使用Newton-Gaussian 迭代對x尋優了。求導后的數學表達式如下:
如果有兩個相機,則總的雅克比矩陣如下:
通過同時迭代所有的q C X ,最終可以同時得到世界點坐標,相機位姿 == SLAM!!!