日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

深蓝学院《从零开始手写VIO》作业六

發(fā)布時(shí)間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深蓝学院《从零开始手写VIO》作业六 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

深藍(lán)學(xué)院《從零開始手寫VIO》作業(yè)五

  • 深藍(lán)學(xué)院《從零開始手寫VIO》作業(yè)六
    • 1. 證明題
    • 2. 代碼題

深藍(lán)學(xué)院《從零開始手寫VIO》作業(yè)六

1. 證明題

證明Dy=0Dy=0Dy=0的最優(yōu)解yyy等于DTDD^TDDTD的最小奇異值對(duì)應(yīng)的奇異值向量

矩陣DTDD^TDDTD的奇異值分解如下:
D?D=∑i=14σi2uiuj?\mathbf{D}^{\top} \mathbf{D}=\sum_{i=1}^{4} \sigma_{i}^{2} \mathbf{u}_{i} \mathbf{u}_{j}^{\top} D?D=i=14?σi2?ui?uj??
回顧我們的原始問題如下:
求解D2n×4y4×1=0D_{2n×4}y_{4×1}=0D2n×4?y4×1?=0,這是一個(gè)超定方程,本質(zhì)上求解得到的是一個(gè)最小二乘解,使用如下表示:
min?y∣∣Dy∣∣2=(Dy)T(Dy)=yTDTDy\min _{y} ||Dy||^2 = (Dy)^T(Dy) = y^TD^TDyymin?Dy2=(Dy)T(Dy)=yTDTDy
其中∣∣y∣∣=1||y|| = 1y=1

yyy可以由DTDD^TDDTD的奇異值向量線性組合得到,也就是可以表示成如下形式
y=∑i=14kiui=kiui+vy = \sum_{i=1}^{4} k_iu_i = k_iu_i+vy=i=14?ki?ui?=ki?ui?+v
其中v=∑j=1,j=?i4kjujv=\sum_{j=1,j\not=i}^{4}k_ju_j v=j=1,j?=i4?kj?uj?
ki,kj∈Rk_i,k_j \in Rki?,kj?R
容易知道uiu_iui?vvv正交。
yyy代入yTDTDyy^TD^TDyyTDTDy得到
min?y∣∣Dy∣∣2=(kiui+v)TDTD(kiui+v)=ki2uiTDTDui+vTDTDv+kiuiTDTDv+kivTDTDui\min _{y} ||Dy||^2 = (k_iu_i+v)^TD^TD(k_iu_i+v) = k_i^2u_i^TD^TDu_i+ v^TD^TDv + k_iu_i^TD^TDv +k_iv^TD^TDu_iymin?Dy2=(ki?ui?+v)TDTD(ki?ui?+v)=ki2?uiT?DTDui?+vTDTDv+ki?uiT?DTDv+ki?vTDTDui?

由于uiu_iui?vvv正交,所以后兩項(xiàng)為0;并且Dui=σiuiDu_i = \sigma_iu_iDui?=σi?ui?,帶入得到
min?y∣∣Dy∣∣2=(kiui+v)TDTD(kiui+v)=ki2uiTDTDui+vTDTDv=ki2σi2∣∣ui∣∣2+vTDTDv>=ki2σi2∣∣ui∣∣2\min _{y} ||Dy||^2 = (k_iu_i+v)^TD^TD(k_iu_i+v) = k_i^2u_i^TD^TDu_i+ v^TD^TDv = k_i^2\sigma_i^2||u_i||^2 + v^TD^TDv >= k_i^2\sigma_i^2||u_i||^2ymin?Dy2=(ki?ui?+v)TDTD(ki?ui?+v)=ki2?uiT?DTDui?+vTDTDv=ki2?σi2?ui?2+vTDTDv>=ki2?σi2?ui?2
當(dāng)且僅當(dāng)v=0v=0v=0的時(shí)候等號(hào)成立。
如果想取得最小值,則σi=σ4\sigma_i=\sigma_4σi?=σ4?,也就是取得最小奇異值的時(shí)候,目標(biāo)函數(shù)取得最小值,此時(shí)
y=k4u4+v=k4u4y = k_4u_4+v=k_4u_4y=k4?u4?+v=k4?u4?
由于∣∣y∣∣=1||y||=1y=1,所以k4=1k_4=1k4?=1,所以
y=u4y = u_4y=u4?
證明完畢。

2. 代碼題

代碼如下:

/// TODO::homework; 請(qǐng)完成三角化估計(jì)深度的代碼// 遍歷所有的觀測(cè)數(shù)據(jù),并三角化Eigen::Vector3d P_est; // 結(jié)果保存到這個(gè)變量P_est.setZero();/* your code begin */Eigen::MatrixXd matD = ConstructMatrixD(camera_pose);Eigen::BDCSVD<Eigen::MatrixXd> bcdsvd(matD.transpose()*matD, Eigen::ComputeFullV | Eigen::ComputeFullU);auto singular_values = bcdsvd.singularValues();auto matU = bcdsvd.matrixU();auto matV = bcdsvd.matrixV();// result 1auto tmp_y = matU.rightCols(1);auto real_y = tmp_y/tmp_y(3);// result2double s = matD.maxCoeff();Eigen::Matrix4d scale_mat = Eigen::Matrix4d::Identity()/s;auto matD_new = matD*scale_mat;Eigen::BDCSVD<Eigen::MatrixXd> bcdsvd_new(matD_new.transpose()*matD_new, Eigen::ComputeFullV | Eigen::ComputeFullU);auto matU_new = bcdsvd_new.matrixU();auto tmp_y_new = scale_mat*matU_new.rightCols(1); //結(jié)果一樣auto real_y_new = tmp_y_new/tmp_y_new(3);/* your code end */

結(jié)果如下:

ground truth: -2.9477 -0.330799 8.43792 [normal solve] your result1: -2.9477 -0.330799 8.43792 1 [using Scale solve] your result2: -2.9477 -0.330799 8.43792 1

總結(jié)

以上是生活随笔為你收集整理的深蓝学院《从零开始手写VIO》作业六的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。