摄影测量中的计算机视觉之bundle adjustment

每个图像中穿过一束从投影中心发出连接到测量点的射线.
通过连接这些来自多个图片的光束,可以组成空间射线网络.
使用合适的相机配置,这个网络在几何上是稳定的.
对所有的投影矩阵和所有的目标点之间的射线的数值调整,就叫光束法平差.

非线性方法需要好的估值.

最小的全局误差
世界坐标系点X经过投影矩阵P转化后的的PX和摄像机坐标系点x之间的距离.
为什么不是相等的? 因为有图像噪声的存在.
先把一个相机中所有的点的误差加起来,共m个.
再把所有相机中的点加起来,共n个.
所以所有的点加起来一共是m*n个距离.
如何使这些和最小,就是我们要解决的问题.

1 由于每个相机的*度为11,而每个目标点的*度为3.
所以设计跨n幅摄图的m个的点的重构需要至少最小化3m+11n个参数.
齐次P矩阵需要12个参数?为啥. 11或12是取决于摄像机如何参数化.

2 我们老师教的是把第一个相机对应的投影矩阵P归一化,作为参照标准.
剩下的n-1个矩阵需要12*(n-1)个参数.
然后一共m个点,所以3m个参数.
加起来是12*(n-1)+3m个参数.
谁能告诉我区别?

稀疏方法
如何减少计算的复杂度?
把参数分成两部分,一部分是表示P的参数集, 另一部分是表示点X的参数集.
之前有写过A是design Matrix.
行代表一个对象, 列代表对象所对应的各个参数.

这里的行代表一个相机坐标系下的所有点,假设3个相机,一共4个目标点吧.
i = 3; j =4.

第1-4行是第一个相机下的这4个目标点.
第5-8行是第二个相机下的这4个目标点.
第9-12行是第三个相机下的这4个目标点.

第1-4列代表第一个相机对应的投影矩阵P1.
第5-8列代表第二个相机对应的投影矩阵P2.
第9-12列代表第三个相机对应的投影矩阵P3.
第一行第1-4列是第一个相机的第一个点对应的投影矩阵.
由于第一个相机下的所有点对应的投影矩阵都相等,所以第1-4行的第1-4列都相等.

第13列是每个相机下的第一个点的三维坐标.
第14列是每个相机下的第二个点的三维坐标.
第15列是每个相机下的第三个点的三维坐标.
第16列式每个相机下的第四个点的三维坐标.
第13列第1行:这个block里面存储的是第一个相机的第一个点对应的三维坐标. 这个block其实是2行4列的矩阵,因为x是相机坐标系下的点,是homogeneous的,所以就是(u,v,w)->(u/w,v/w) 就两个参数,所以就两行,而X是世界坐标系下的点,是inhomogeneous的,是(X,Y,Z,W)所以就有四个参数.
为啥一个homogeneous一个inhomogeneous???
因为用齐次坐标的话,x误差的维度是3维,但是最后一维我们设定为1,因此不应该考虑它的误差项。因此我们一般在优化时候使用非齐次坐标,因此误差项为二维。最终目标是为了修正x.

摄影测量中的计算机视觉之bundle adjustment

这里用到的是Ax=b, 不是homogeneous,是Inhomogeneous Equation Systems.
由于A不一定是方阵,所以先左乘一个A的转置.
摄影测量中的计算机视觉之bundle adjustment
然后就可以得到x.
摄影测量中的计算机视觉之bundle adjustment
再用SVD解A??? 我无法理解了.

参考:
https://wlsdzyzl.top/2019/01/18/SLAM——视觉里程计(三)PnP/