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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视觉SLAM十四讲学习笔记——ch9后端1

發(fā)布時間:2023/12/10 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视觉SLAM十四讲学习笔记——ch9后端1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 9.1理論部分
  • 9.2實踐部分
    • 9.2.1 利用ceres進行BA優(yōu)化(多個相機和路標點)
    • 9.2.2利用g2o進行BA優(yōu)化(多個相機和路標點)
    • 調試遇到問題bug
  • 參考博客

9.1理論部分

推薦參考博文推導:

  • 視覺SLAM十四講學習筆記——第九講 后端優(yōu)化(1)
  • slam十四講-ch9(后端1)-卡爾曼濾波器公式推導及BA優(yōu)化代碼實現(xiàn)【注釋】(應該是ch13前面最難的部分了)
  • 9.2實踐部分

    9.2.1 利用ceres進行BA優(yōu)化(多個相機和路標點)

    代碼及詳細注釋如下:

    #include <iostream> #include <ceres/ceres.h> #include "common.h" #include "SnavelyReprojectionError.h"using namespace std; //求解最小二乘的函數(shù) void SolveBA(BALProblem &bal_problem);int main(int argc, char **argv) {if (argc != 2) {cout << "usage: bundle_adjustment_ceres bal_data.txt" << endl;return 1;}BALProblem bal_problem(argv[1]);//讀入數(shù)據(jù)bal_problem.Normalize();//進行歸一化處理bal_problem.Perturb(0.1, 0.5, 0.5);//利用Perturb加入噪聲bal_problem.WriteToPLYFile("initial.ply");//將優(yōu)化前的數(shù)據(jù)(相機和3d點) 保存在initial.ply文件中SolveBA(bal_problem);//求解最小二乘問題bal_problem.WriteToPLYFile("final.ply");//將優(yōu)化后的數(shù)據(jù)(相機和3d點) 保存在final.ply文件中return 0; } //重點 void SolveBA(BALProblem &bal_problem) {const int point_block_size = bal_problem.point_block_size();const int camera_block_size = bal_problem.camera_block_size();//注意這里獲得待優(yōu)化系數(shù)首地址的時候要用mutable_points()和mutable_cameras()// 因為這兩個函數(shù)指向的地址的內容是允許改變的(優(yōu)化系數(shù)肯定要變的啦)double *points = bal_problem.mutable_points();//獲得待優(yōu)化系數(shù)3d點 points指向3d點的首地址double *cameras = bal_problem.mutable_cameras();//獲得待優(yōu)化系數(shù)相機 cameras指向相機的首地址// Observations is 2 * num_observations long array observations// [u_1, u_2, ... u_n], where each u_i is two dimensional, the x// and y position of the observation.const double *observations = bal_problem.observations();//獲得觀測數(shù)據(jù) observations指向觀測數(shù)據(jù)的首地址ceres::Problem problem;//要用循環(huán)for (int i = 0; i < bal_problem.num_observations(); ++i) {ceres::CostFunction *cost_function;// Each Residual block takes a point and a camera as input// and outputs a 2 dimensional Residualcost_function = SnavelyReprojectionError::Create(observations[2 * i + 0], observations[2 * i + 1]);// If enabled use Huber's loss function.ceres::LossFunction *loss_function = new ceres::HuberLoss(1.0);//核函數(shù)// Each observation corresponds to a pair of a camera and a point// which are identified by camera_index()[i] and point_index()[i]// respectively.//bal_Problem.point_index()這返回的是一個地址指向索引號的首地址double *camera = cameras + camera_block_size * bal_problem.camera_index()[i];double *point = points + point_block_size * bal_problem.point_index()[i];//構建最小二乘問題problem.AddResidualBlock(cost_function, loss_function, camera, point);}/*cost_function,//代價函數(shù)loss_function,//核函數(shù)camera,//待優(yōu)化的相機point//待優(yōu)化的3d點*/// show some information here ...std::cout << "bal problem file loaded..." << std::endl;std::cout << "bal problem have " << bal_problem.num_cameras() << " cameras and "<< bal_problem.num_points() << " points. " << std::endl;std::cout << "Forming " << bal_problem.num_observations() << " observations. " << std::endl;std::cout << "Solving ceres BA ... " << endl;//配置求解器ceres::Solver::Options options;//這里有很多配置選項可以填options.linear_solver_type = ceres::LinearSolverType::SPARSE_SCHUR;//消元options.minimizer_progress_to_stdout = true;//輸出到coutceres::Solver::Summary summary;ceres::Solve(options, &problem, &summary);std::cout << summary.FullReport() << "\n"; }

    結果如下:

    Header: 16 22106 83718bal problem file loaded... bal problem have 16 cameras and 22106 points. Forming 83718 observations. Solving ceres BA ... iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time0 1.842900e+07 0.00e+00 2.04e+06 0.00e+00 0.00e+00 1.00e+04 0 9.82e-02 3.01e-011 1.449093e+06 1.70e+07 1.75e+06 2.16e+03 1.84e+00 3.00e+04 1 2.54e-01 5.56e-012 5.848543e+04 1.39e+06 1.30e+06 1.55e+03 1.87e+00 9.00e+04 1 1.55e-01 7.11e-013 1.581483e+04 4.27e+04 4.98e+05 4.98e+02 1.29e+00 2.70e+05 1 1.56e-01 8.67e-014 1.251823e+04 3.30e+03 4.64e+04 9.96e+01 1.11e+00 8.10e+05 1 1.53e-01 1.02e+005 1.240936e+04 1.09e+02 9.78e+03 1.33e+01 1.42e+00 2.43e+06 1 1.62e-01 1.18e+006 1.237699e+04 3.24e+01 3.91e+03 5.04e+00 1.70e+00 7.29e+06 1 1.65e-01 1.35e+007 1.236187e+04 1.51e+01 1.96e+03 3.40e+00 1.75e+00 2.19e+07 1 1.52e-01 1.50e+008 1.235405e+04 7.82e+00 1.03e+03 2.40e+00 1.76e+00 6.56e+07 1 1.53e-01 1.65e+009 1.234934e+04 4.71e+00 5.04e+02 1.67e+00 1.87e+00 1.97e+08 1 1.49e-01 1.80e+0010 1.234610e+04 3.24e+00 4.31e+02 1.15e+00 1.88e+00 5.90e+08 1 1.49e-01 1.95e+0011 1.234386e+04 2.24e+00 3.27e+02 8.44e-01 1.90e+00 1.77e+09 1 1.54e-01 2.10e+0012 1.234232e+04 1.54e+00 3.44e+02 6.69e-01 1.82e+00 5.31e+09 1 1.57e-01 2.26e+0013 1.234126e+04 1.07e+00 2.21e+02 5.45e-01 1.91e+00 1.59e+10 1 1.55e-01 2.42e+0014 1.234047e+04 7.90e-01 1.12e+02 4.84e-01 1.87e+00 4.78e+10 1 1.62e-01 2.58e+0015 1.233986e+04 6.07e-01 1.02e+02 4.22e-01 1.95e+00 1.43e+11 1 1.57e-01 2.74e+0016 1.233934e+04 5.22e-01 1.03e+02 3.82e-01 1.97e+00 4.30e+11 1 1.60e-01 2.90e+0017 1.233891e+04 4.25e-01 1.07e+02 3.46e-01 1.93e+00 1.29e+12 1 1.52e-01 3.05e+0018 1.233855e+04 3.59e-01 1.04e+02 3.15e-01 1.96e+00 3.87e+12 1 1.53e-01 3.20e+0019 1.233825e+04 3.06e-01 9.27e+01 2.88e-01 1.98e+00 1.16e+13 1 1.51e-01 3.35e+0020 1.233799e+04 2.61e-01 1.17e+02 2.16e-01 1.97e+00 3.49e+13 1 1.50e-01 3.50e+0021 1.233777e+04 2.18e-01 1.22e+02 1.15e-01 1.97e+00 1.05e+14 1 1.47e-01 3.65e+0022 1.233760e+04 1.73e-01 1.10e+02 9.32e-02 1.89e+00 3.14e+14 1 1.50e-01 3.80e+0023 1.233746e+04 1.37e-01 1.14e+02 1.27e-01 1.98e+00 9.41e+14 1 1.46e-01 3.95e+0024 1.233735e+04 1.13e-01 1.17e+02 3.82e-01 1.96e+00 2.82e+15 1 1.53e-01 4.10e+00 WARNING: Logging before InitGoogleLogging() is written to STDERR W0429 14:34:55.045905 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.25 1.233735e+04 0.00e+00 1.17e+02 0.00e+00 0.00e+00 1.41e+15 1 6.03e-02 4.16e+00 W0429 14:34:55.095809 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.26 1.233735e+04 0.00e+00 1.17e+02 0.00e+00 0.00e+00 3.53e+14 1 4.98e-02 4.21e+0027 1.233725e+04 9.50e-02 1.20e+02 2.02e-01 1.99e+00 1.06e+15 1 1.43e-01 4.35e+0028 1.233718e+04 6.92e-02 5.84e+01 4.77e-01 1.70e+00 3.18e+15 1 2.16e-01 4.57e+00 W0429 14:34:55.524346 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.29 1.233718e+04 0.00e+00 5.84e+01 0.00e+00 0.00e+00 1.59e+15 1 6.97e-02 4.64e+0030 1.233714e+04 3.65e-02 6.13e+01 7.39e-01 1.93e+00 4.77e+15 1 1.50e-01 4.79e+00 W0429 14:34:55.733259 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.31 1.233714e+04 0.00e+00 6.13e+01 0.00e+00 0.00e+00 2.38e+15 1 5.86e-02 4.85e+0032 1.233711e+04 3.32e-02 6.05e+01 5.42e-01 2.00e+00 7.15e+15 1 1.45e-01 4.99e+00 W0429 14:34:55.938537 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.33 1.233711e+04 0.00e+00 6.05e+01 0.00e+00 0.00e+00 3.57e+15 1 6.03e-02 5.05e+00 W0429 14:34:55.988092 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.34 1.233711e+04 0.00e+00 6.05e+01 0.00e+00 0.00e+00 8.94e+14 1 4.95e-02 5.10e+0035 1.233708e+04 3.14e-02 6.14e+01 2.30e-01 2.00e+00 2.68e+15 1 1.40e-01 5.24e+0036 1.233706e+04 2.41e-02 3.85e+02 6.15e+00 1.62e+00 8.04e+15 1 1.50e-01 5.39e+00 W0429 14:34:56.335259 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.37 1.233706e+04 0.00e+00 3.85e+02 0.00e+00 0.00e+00 4.02e+15 1 5.77e-02 5.45e+0038 1.233756e+04 -5.04e-01 3.85e+02 3.06e+01 -5.59e+01 1.01e+15 1 7.26e-02 5.52e+0039 1.233704e+04 1.68e-02 2.03e+01 3.41e-01 1.86e+00 3.02e+15 1 1.49e-01 5.67e+0040 1.234161e+04 -4.57e+00 2.03e+01 5.84e+01 -6.04e+02 1.51e+15 1 8.34e-02 5.75e+0041 1.233702e+04 1.51e-02 2.10e+01 2.66e-01 2.00e+00 4.52e+15 1 1.45e-01 5.90e+00 W0429 14:34:56.842923 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.42 1.233702e+04 0.00e+00 2.10e+01 0.00e+00 0.00e+00 2.26e+15 1 5.78e-02 5.96e+00 W0429 14:34:56.895454 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.43 1.233702e+04 0.00e+00 2.10e+01 0.00e+00 0.00e+00 5.65e+14 1 5.25e-02 6.01e+0044 1.233701e+04 1.48e-02 2.08e+01 1.18e-01 1.99e+00 1.70e+15 1 1.41e-01 6.15e+00 W0429 14:34:57.093436 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.45 1.233701e+04 0.00e+00 2.08e+01 0.00e+00 0.00e+00 8.48e+14 1 5.71e-02 6.21e+0046 1.233700e+04 1.42e-02 2.08e+01 1.47e-01 1.99e+00 2.54e+15 1 1.49e-01 6.35e+00 W0429 14:34:57.300102 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.47 1.233700e+04 0.00e+00 2.08e+01 0.00e+00 0.00e+00 1.27e+15 1 5.78e-02 6.41e+0048 1.233698e+04 1.39e-02 2.19e+01 5.90e-01 2.00e+00 3.82e+15 1 1.62e-01 6.57e+00 W0429 14:34:57.515491 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.49 1.233698e+04 0.00e+00 2.19e+01 0.00e+00 0.00e+00 1.91e+15 1 5.29e-02 6.63e+00 W0429 14:34:57.563660 11724 levenberg_marquardt_strategy.cc:115] Linear solver failure. Failed to compute a step: CHOLMOD warning: Matrix not positive definite.50 1.233698e+04 0.00e+00 2.19e+01 0.00e+00 0.00e+00 4.77e+14 1 4.82e-02 6.68e+00Solver Summary (v 2.0.0-eigen-(3.3.4)-lapack-suitesparse-(5.1.2)-cxsparse-(3.1.9)-eigensparse-no_openmp)Original Reduced Parameter blocks 22122 22122 Parameters 66462 66462 Residual blocks 83718 83718 Residuals 167436 167436Minimizer TRUST_REGIONSparse linear algebra library SUITE_SPARSE Trust region strategy LEVENBERG_MARQUARDTGiven Used Linear solver SPARSE_SCHUR SPARSE_SCHUR Threads 1 1 Linear solver ordering AUTOMATIC 22106,16 Schur structure 2,3,9 2,3,9Cost: Initial 1.842900e+07 Final 1.233698e+04 Change 1.841667e+07Minimizer iterations 51 Successful steps 36 Unsuccessful steps 15Time (in seconds): Preprocessor 0.203083Residual only evaluation 0.549531 (37)Jacobian & residual evaluation 2.340715 (36)Linear solver 3.013938 (50) Minimizer 6.475674Postprocessor 0.005911 Total 6.684669Termination: NO_CONVERGENCE (Maximum number of iterations reached. Number of iterations: 50.)

    9.2.2利用g2o進行BA優(yōu)化(多個相機和路標點)

    代碼及詳細注釋如下:

    #include <g2o/core/base_vertex.h> #include <g2o/core/base_binary_edge.h> #include <g2o/core/block_solver.h> #include <g2o/core/optimization_algorithm_levenberg.h> #include <g2o/solvers/csparse/linear_solver_csparse.h> #include <g2o/core/robust_kernel_impl.h> #include <iostream>#include "common.h" #include "sophus/se3.hpp"using namespace Sophus; using namespace Eigen; using namespace std;/// 姿態(tài)和內參的結構,定義一個結構體表示相機 相機9維 struct PoseAndIntrinsics {PoseAndIntrinsics() {}//顯示構造進行賦值,把數(shù)據(jù)集的內容賦值過去/// set from given data addressexplicit PoseAndIntrinsics(double *data_addr) {rotation = SO3d::exp(Vector3d(data_addr[0], data_addr[1], data_addr[2]));translation = Vector3d(data_addr[3], data_addr[4], data_addr[5]);focal = data_addr[6];k1 = data_addr[7];k2 = data_addr[8];}/// 將估計值放入內存 //set_to函數(shù)是將優(yōu)化的系數(shù)放進內存void set_to(double *data_addr) {auto r = rotation.log();for (int i = 0; i < 3; ++i) data_addr[i] = r[i];for (int i = 0; i < 3; ++i) data_addr[i + 3] = translation[i];data_addr[6] = focal;data_addr[7] = k1;data_addr[8] = k2;}SO3d rotation; //李群 旋轉Vector3d translation = Vector3d::Zero(); //平移double focal = 0;//焦距double k1 = 0, k2 = 0; //畸變系數(shù) };/// 位姿加相機內參的頂點,9維,前三維為so3,接下去為t, f, k1, k2 //定義兩個頂點 一個是 相機(PoseAndIntrinsics) 一個是路標點(3d點) //頂點 :相機(PoseAndIntrinsics) class VertexPoseAndIntrinsics : public g2o::BaseVertex<9, PoseAndIntrinsics> { public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW;VertexPoseAndIntrinsics() {}//重置virtual void setToOriginImpl() override {_estimate = PoseAndIntrinsics();//給待優(yōu)化系數(shù)賦上初始值}//更新virtual void oplusImpl(const double *update) override {_estimate.rotation = SO3d::exp(Vector3d(update[0], update[1], update[2])) * _estimate.rotation;_estimate.translation += Vector3d(update[3], update[4], update[5]);_estimate.focal += update[6];_estimate.k1 += update[7];_estimate.k2 += update[8];}/// 根據(jù)估計值投影一個點Vector2d project(const Vector3d &point) {Vector3d pc = _estimate.rotation * point + _estimate.translation;pc = -pc / pc[2]; //把相機坐標歸一化double r2 = pc.squaredNorm(); //相機坐標歸一化后的模的平方double distortion = 1.0 + r2 * (_estimate.k1 + _estimate.k2 * r2);return Vector2d(_estimate.focal * distortion * pc[0],_estimate.focal * distortion * pc[1]);}//存盤和讀盤 : 留空virtual bool read(istream &in) {}virtual bool write(ostream &out) const {} };//頂點 :路標點(3d點) class VertexPoint : public g2o::BaseVertex<3, Vector3d> { public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW;VertexPoint() {}//重置virtual void setToOriginImpl() override {_estimate = Vector3d(0, 0, 0); //待優(yōu)化系數(shù)的初始化}//更新virtual void oplusImpl(const double *update) override {_estimate += Vector3d(update[0], update[1], update[2]);}//存盤和讀盤 : 留空virtual bool read(istream &in) {}virtual bool write(ostream &out) const {} };//定義邊 這里面邊的定義比前幾章的要簡單很多 class EdgeProjection :public g2o::BaseBinaryEdge<2, Vector2d, VertexPoseAndIntrinsics, VertexPoint> { public:EIGEN_MAKE_ALIGNED_OPERATOR_NEW;//計算殘差virtual void computeError() override {auto v0 = (VertexPoseAndIntrinsics *) _vertices[0];auto v1 = (VertexPoint *) _vertices[1];auto proj = v0->project(v1->estimate());_error = proj - _measurement;}//存盤和讀盤 : 留空// use numeric derivativesvirtual bool read(istream &in) {}virtual bool write(ostream &out) const {}};void SolveBA(BALProblem &bal_problem);int main(int argc, char **argv) {if (argc != 2) {cout << "usage: bundle_adjustment_g2o bal_data.txt" << endl;return 1;}BALProblem bal_problem(argv[1]);//傳入數(shù)據(jù)bal_problem.Normalize();//對數(shù)據(jù)進行歸一化bal_problem.Perturb(0.1,0.5,0.5);//給數(shù)據(jù)加上噪聲(相機旋轉、相機平移、路標點)bal_problem.WriteToPLYFile("initial_g2o.ply");SolveBA(bal_problem);//求解BAbal_problem.WriteToPLYFile("final_g2o.ply");return 0; }void SolveBA(BALProblem &bal_problem) {/獲得 相機和點的維度const int point_block_size = bal_problem.point_block_size();const int camera_block_size = bal_problem.camera_block_size();//獲得相機和點各自參數(shù)的首地址double *points = bal_problem.mutable_points();double *cameras = bal_problem.mutable_cameras();//構建圖優(yōu)化// pose dimension 9, landmark is 3typedef g2o::BlockSolver<g2o::BlockSolverTraits<9, 3>> BlockSolverType;//兩個頂點的維度typedef g2o::LinearSolverCSparse<BlockSolverType::PoseMatrixType> LinearSolverType;// use LMauto solver = new g2o::OptimizationAlgorithmLevenberg(g2o::make_unique<BlockSolverType>(g2o::make_unique<LinearSolverType>()));g2o::SparseOptimizer optimizer;optimizer.setAlgorithm(solver);//設置求解器optimizer.setVerbose(true);//打開調試輸出/// build g2o problem//獲得觀測值的首地址const double *observations=bal_problem.observations();//加入頂點//因為頂點有很多個,所以需要容器//容器 vertex_pose_intrinsics 和 vertex_points存放兩頂點的地址vector<VertexPoseAndIntrinsics *> vertex_pose_intrinsics;vector<VertexPoint *> vertex_points;for (int i = 0; i < bal_problem.num_cameras(); ++i) {VertexPoseAndIntrinsics *v = new VertexPoseAndIntrinsics();double *camera = cameras + camera_block_size * i;//獲得每個相機的首地址v->setId(i);//設置編號v->setEstimate(PoseAndIntrinsics(camera));//傳入待優(yōu)化的系數(shù) 此處為相機optimizer.addVertex(v);//加入頂點vertex_pose_intrinsics.push_back(v);}for (int i = 0; i < bal_problem.num_points(); ++i) {VertexPoint *v = new VertexPoint();//獲得每個路標點的首地址double *point = points + point_block_size * i;v->setId(i + bal_problem.num_cameras());v->setEstimate(Vector3d(point[0], point[1], point[2]));//傳入待優(yōu)化的系數(shù) 此處為路標點// g2o在BA中需要手動設置待Marg的頂點v->setMarginalized(true);//設置邊緣化optimizer.addVertex(v);//加入頂點vertex_points.push_back(v);//將頂點一個一個放回到容器里面}// edgefor (int i = 0; i < bal_problem.num_observations(); ++i) {EdgeProjection *edge = new EdgeProjection;// edge->setId(i);//設置編號edge->setVertex(0,vertex_pose_intrinsics[bal_problem.camera_index()[i]]);//加入頂點edge->setVertex(1,vertex_points[bal_problem.point_index()[i]]);//加入頂點edge->setMeasurement(Sophus::Vector2d(observations[2*i+0],observations[2*i+1]));//設置觀測數(shù)據(jù)edge->setInformation(Eigen::Matrix2d::Identity());//設置信息矩陣edge->setRobustKernel(new g2o::RobustKernelHuber());//設置核函數(shù)optimizer.addEdge(edge);//加入邊}optimizer.initializeOptimization();optimizer.optimize(40);//優(yōu)化后在存到內從中去// set to bal problemfor (int i = 0; i < bal_problem.num_cameras(); ++i) {double *camera =cameras + camera_block_size*i;auto vertex = vertex_pose_intrinsics[i];//把優(yōu)化后的頂點地址給vertexauto estimate = vertex->estimate();//這樣estimate就指向了優(yōu)化后的相機結構體 此時estimate本質上指向了 相機結構體estimate.set_to(camera);//這樣camera就指向了優(yōu)化后的相機(利用了相機結構體的set_to()函數(shù))}for (int i = 0; i < bal_problem.num_points(); ++i) {double *point = points + point_block_size * i;auto vertex = vertex_points[i];for (int k = 0; k < 3; ++k) point[k] = vertex->estimate()[k];}//經(jīng)過上面的兩個循環(huán)后,原來待優(yōu)化的系數(shù)就被優(yōu)化完畢了,并且優(yōu)化后的系數(shù) 還是存放在 bal_problem.mutable_cameras()和 bal_problem.mutable_points() 所對應的地址中}

    結果如下:

    Header: 16 22106 83718iteration= 0 chi2= 8894423.022949 time= 0.324563 cumTime= 0.324563 edges= 83718 schur= 1 lambda= 227.832660 levenbergIter= 1 iteration= 1 chi2= 1772145.050517 time= 0.284179 cumTime= 0.608742 edges= 83718 schur= 1 lambda= 75.944220 levenbergIter= 1 iteration= 2 chi2= 752585.293391 time= 0.30358 cumTime= 0.912323 edges= 83718 schur= 1 lambda= 25.314740 levenbergIter= 1 iteration= 3 chi2= 402814.243627 time= 0.293005 cumTime= 1.20533 edges= 83718 schur= 1 lambda= 8.438247 levenbergIter= 1 iteration= 4 chi2= 284879.378894 time= 0.289516 cumTime= 1.49484 edges= 83718 schur= 1 lambda= 2.812749 levenbergIter= 1 iteration= 5 chi2= 238356.214415 time= 0.283434 cumTime= 1.77828 edges= 83718 schur= 1 lambda= 0.937583 levenbergIter= 1 iteration= 6 chi2= 193550.755079 time= 0.286116 cumTime= 2.06439 edges= 83718 schur= 1 lambda= 0.312528 levenbergIter= 1 iteration= 7 chi2= 146859.909574 time= 0.281158 cumTime= 2.34555 edges= 83718 schur= 1 lambda= 0.104176 levenbergIter= 1 iteration= 8 chi2= 122887.700218 time= 0.272719 cumTime= 2.61827 edges= 83718 schur= 1 lambda= 0.069451 levenbergIter= 1 iteration= 9 chi2= 97810.139925 time= 0.275721 cumTime= 2.89399 edges= 83718 schur= 1 lambda= 0.046300 levenbergIter= 1 iteration= 10 chi2= 80329.940265 time= 0.267307 cumTime= 3.1613 edges= 83718 schur= 1 lambda= 0.030867 levenbergIter= 1 iteration= 11 chi2= 65663.994405 time= 0.321365 cumTime= 3.48266 edges= 83718 schur= 1 lambda= 0.020578 levenbergIter= 1 iteration= 12 chi2= 55960.726637 time= 0.29458 cumTime= 3.77724 edges= 83718 schur= 1 lambda= 0.013719 levenbergIter= 1 iteration= 13 chi2= 53275.547797 time= 0.282115 cumTime= 4.05936 edges= 83718 schur= 1 lambda= 0.009146 levenbergIter= 1 iteration= 14 chi2= 35983.312124 time= 0.395526 cumTime= 4.45488 edges= 83718 schur= 1 lambda= 0.006097 levenbergIter= 2 iteration= 15 chi2= 32091.891518 time= 0.57566 cumTime= 5.03054 edges= 83718 schur= 1 lambda= 0.016259 levenbergIter= 3 iteration= 16 chi2= 31156.262647 time= 0.383858 cumTime= 5.4144 edges= 83718 schur= 1 lambda= 0.021679 levenbergIter= 2 iteration= 17 chi2= 30773.139623 time= 0.311891 cumTime= 5.72629 edges= 83718 schur= 1 lambda= 0.014453 levenbergIter= 1 iteration= 18 chi2= 29079.563460 time= 0.381047 cumTime= 6.10734 edges= 83718 schur= 1 lambda= 0.012488 levenbergIter= 2 iteration= 19 chi2= 28484.154313 time= 0.420185 cumTime= 6.52752 edges= 83718 schur= 1 lambda= 0.016651 levenbergIter= 2 iteration= 20 chi2= 28445.405201 time= 0.316267 cumTime= 6.84379 edges= 83718 schur= 1 lambda= 0.011101 levenbergIter= 1 iteration= 21 chi2= 27170.592543 time= 0.334324 cumTime= 7.17811 edges= 83718 schur= 1 lambda= 0.011118 levenbergIter= 2 iteration= 22 chi2= 26748.191194 time= 0.333374 cumTime= 7.51149 edges= 83718 schur= 1 lambda= 0.014824 levenbergIter= 2 iteration= 23 chi2= 26675.118188 time= 0.26431 cumTime= 7.7758 edges= 83718 schur= 1 lambda= 0.009883 levenbergIter= 1 iteration= 24 chi2= 26087.985781 time= 0.338879 cumTime= 8.11468 edges= 83718 schur= 1 lambda= 0.010281 levenbergIter= 2 iteration= 25 chi2= 25875.818536 time= 0.410122 cumTime= 8.5248 edges= 83718 schur= 1 lambda= 0.013708 levenbergIter= 2 iteration= 26 chi2= 25831.564925 time= 0.285147 cumTime= 8.80994 edges= 83718 schur= 1 lambda= 0.009139 levenbergIter= 1 iteration= 27 chi2= 25568.344873 time= 0.341496 cumTime= 9.15144 edges= 83718 schur= 1 lambda= 0.011118 levenbergIter= 2 iteration= 28 chi2= 25455.865005 time= 0.34611 cumTime= 9.49755 edges= 83718 schur= 1 lambda= 0.011781 levenbergIter= 2 iteration= 29 chi2= 25454.942053 time= 0.331617 cumTime= 9.82917 edges= 83718 schur= 1 lambda= 0.007854 levenbergIter= 1 iteration= 30 chi2= 25260.709796 time= 0.356176 cumTime= 10.1853 edges= 83718 schur= 1 lambda= 0.009148 levenbergIter= 2 iteration= 31 chi2= 25171.392636 time= 0.345109 cumTime= 10.5305 edges= 83718 schur= 1 lambda= 0.009425 levenbergIter= 2 iteration= 32 chi2= 25104.160294 time= 0.420982 cumTime= 10.9514 edges= 83718 schur= 1 lambda= 0.008637 levenbergIter= 2 iteration= 33 chi2= 25042.986799 time= 0.406712 cumTime= 11.3581 edges= 83718 schur= 1 lambda= 0.008765 levenbergIter= 2 iteration= 34 chi2= 24984.677998 time= 0.43978 cumTime= 11.7979 edges= 83718 schur= 1 lambda= 0.005949 levenbergIter= 2 iteration= 35 chi2= 24943.879912 time= 0.419768 cumTime= 12.2177 edges= 83718 schur= 1 lambda= 0.007933 levenbergIter= 2 iteration= 36 chi2= 24886.075504 time= 0.426047 cumTime= 12.6437 edges= 83718 schur= 1 lambda= 0.005674 levenbergIter= 2 iteration= 37 chi2= 24868.088225 time= 0.414774 cumTime= 13.0585 edges= 83718 schur= 1 lambda= 0.007565 levenbergIter= 2 iteration= 38 chi2= 24833.053138 time= 0.431343 cumTime= 13.4899 edges= 83718 schur= 1 lambda= 0.008448 levenbergIter= 2 iteration= 39 chi2= 24815.047826 time= 0.440435 cumTime= 13.9303 edges= 83718 schur= 1 lambda= 0.009766 levenbergIter= 2

    利用MeshLab顯示點云文件,final.py.initial.py

    調試遇到問題bug

    本章調試遇到bug和第8章基本一致,此外還遇到fmt報錯問題,都可以通過修改CmakeList調試通過
    修改如下:set(CMAKE_CXX_FLAGS "-O3 -std=c++11")改為set(CMAKE_CXX_FLAGS "-std=c++14 -O2 ${SSE_FLAGS} -msse4"),在每一個target_link_libraries末尾加上 fmt.

    cmake_minimum_required(VERSION 2.8)project(bundle_adjustment) set(CMAKE_BUILD_TYPE "Release") #set(CMAKE_CXX_FLAGS "-O3 -std=c++11") set(CMAKE_CXX_FLAGS "-std=c++14 -O2 ${SSE_FLAGS} -msse4")LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)Find_Package(G2O REQUIRED) Find_Package(Eigen3 REQUIRED) Find_Package(Ceres REQUIRED) Find_Package(Sophus REQUIRED) Find_Package(CSparse REQUIRED)SET(G2O_LIBS g2o_csparse_extension g2o_stuff g2o_core cxsparse)include_directories(${PROJECT_SOURCE_DIR} ${EIGEN3_INCLUDE_DIR} ${CSPARSE_INCLUDE_DIR})add_library(bal_common common.cpp) add_executable(bundle_adjustment_g2o bundle_adjustment_g2o.cpp) add_executable(bundle_adjustment_ceres bundle_adjustment_ceres.cpp)target_link_libraries(bundle_adjustment_ceres ${CERES_LIBRARIES} bal_common fmt) target_link_libraries(bundle_adjustment_g2o ${G2O_LIBS} bal_common fmt)

    參考博客

    slam十四講-ch9(后端1)-卡爾曼濾波器公式推導及BA優(yōu)化代碼實現(xiàn)【注釋】(應該是ch13前面最難的部分了)

    總結

    以上是生活随笔為你收集整理的视觉SLAM十四讲学习笔记——ch9后端1的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    狠狠干我 | 久久精品视频免费观看 | 国产精品一区二区av日韩在线 | 国产在线观看不卡 | 免费高清看电视网站 | 人人干人人干人人干 | 日韩av中文在线 | 亚洲精品黄色 | 在线国产片 | 日日操网站 | 欧美另类性 | 五月天婷亚洲天综合网精品偷 | 一区二区三区四区在线 | 日韩欧美一区二区三区在线 | 欧美精品久久久久a | 丁香婷婷色综合亚洲电影 | 亚洲三级视频 | 在线视频 影院 | 久久久久久久久久久精 | 伊人天天色 | 欧美日韩国产一二三区 | 天天操天天舔天天干 | 日韩精品免费在线 | 在线免费高清一区二区三区 | 国产精品一区久久久久 | 日日碰夜夜爽 | 国产精品久久久久久久久久了 | 婷婷av综合 | 久久久精品欧美 | 狠狠操精品 | 麻豆国产视频 | 国产精品综合在线观看 | 亚洲精品久久激情国产片 | 麻豆va一区二区三区久久浪 | 中文字幕资源站 | 中文字幕欧美日韩va免费视频 | 日韩精品一区二区不卡 | 国产一区二区成人 | 国产喷水在线 | 欧美电影黄色 | 香蕉久久久久久av成人 | 久久久久久久久久久久影院 | 日日夜夜免费精品视频 | 国产99久久精品一区二区300 | 亚洲伊人色 | 永久免费观看视频 | bbbb操bbbb| 日韩精品一区二区三区高清免费 | 成人在线电影观看 | 97电影网站 | 国产精品成久久久久 | 日韩欧美在线免费观看 | 一区二区三区在线影院 | 日韩免费精品 | 国产午夜麻豆影院在线观看 | 国产小视频免费在线网址 | 91精品推荐 | 亚洲国产精品999 | 天堂久久电影网 | 奇米影视777四色米奇影院 | 久久国产精品一国产精品 | 小草av在线播放 | 国产精品xxxx18a99 | 99婷婷 | 久久99精品国产99久久 | 四虎在线观看网址 | 国产私拍在线 | 亚洲国产精品久久久久婷婷884 | 在线 影视 一区 | 国产日韩在线看 | 最新日韩中文字幕 | 视频三区在线 | 中文字幕888 | av中文字幕日韩 | 国产精品久久久久久一二三四五 | 天天躁日日躁狠狠躁av中文 | 91一区二区三区在线观看 | 精品专区 | 看黄色91| 精品国产乱码久久久久久久 | 国产成人免费高清 | 99久久精品国产一区二区成人 | 尤物一区二区三区 | 久久久综合香蕉尹人综合网 | 美女视频黄色免费 | 友田真希x88av | 欧美一区二区三区在线观看 | 97免费在线观看视频 | 色妞久久福利网 | 久久刺激视频 | 182午夜在线观看 | 欧美激情视频在线观看免费 | 免费看色网站 | 久热电影 | 丁香六月天婷婷 | 中文一二区 | 激情婷婷在线 | 中文字幕在线网 | 久久精品久久99精品久久 | 国内精品在线观看视频 | 国产69久久精品成人看 | 99精品在线直播 | av三级在线看 | 欧美黑人性猛交 | 欧美性生活久久 | 国产原创中文在线 | 久 久久影院 | 亚洲爽爽网| 久草网在线 | 久久久免费精品视频 | 午夜在线日韩 | 久久久久中文 | 日本狠狠干 | 国精产品999国精产品视频 | 国产精品9999久久久久仙踪林 | 中文字幕免费久久 | 日韩av看片 | 亚洲欧美日韩国产精品一区午夜 | 91最新网址 | 久久久资源 | 特黄色大片 | 亚洲色影爱久久精品 | www国产在线| 香蕉影院在线播放 | 天天插夜夜操 | 色婷婷狠狠操 | 久久免费观看少妇a级毛片 久久久久成人免费 | 午夜精品久久久久久99热明星 | av黄色成人| 免费精品在线视频 | 91激情视频在线 | 黄色录像av | 91热爆视频| 欧美日韩一区二区三区视频 | 99免费视频| 国产中文字幕一区二区三区 | 在线 影视 一区 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 中文字幕激情 | 国产成人一区二区三区 | 91丨九色丨首页 | 日日夜夜天天射 | 婷婷综合 | 亚洲理论电影 | 欧美一级淫片videoshd | 国产精品观看在线亚洲人成网 | 日韩一二三区不卡 | 在线不卡视频 | 伊人色综合久久天天网 | 欧美国产不卡 | 久久亚洲福利视频 | 日韩在线免费电影 | 超级av在线 | 日韩av看片| 91精品国产一区二区在线观看 | 国产亚洲在 | 国产日韩一区在线 | 精品国产视频在线 | 亚洲精品久久久久中文字幕二区 | 91大神电影 | 一区二区三区免费播放 | 亚洲精品久久在线 | 一区二区三区中文字幕在线观看 | www.成人sex | 久久桃花网 | 国产美女久久久 | 久久在线| 亚洲欧美国产精品18p | 在线三级av | 色噜噜狠狠色综合中国 | 亚州性色 | 精品视频在线观看 | 在线观看免费高清视频大全追剧 | 免费在线观看毛片网站 | 久久久精品国产一区二区 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲精品久久久久久国 | 国产精品不卡在线观看 | 久久美女高清视频 | 久久国产高清 | 中文字幕第一 | 久久人人97超碰com | 久久av免费 | 亚洲国产手机在线 | 国产三级午夜理伦三级 | 午夜精品一区二区三区四区 | 免费三级骚 | 精品一区二区6 | 国产第一页在线观看 | 深夜免费福利在线 | 久久国产女人 | 色视频在线免费 | 黄色三级免费片 | 日韩av中文在线 | av超碰在线 | 精品国产视频在线观看 | 欧洲色吧 | 亚洲综合成人av | 国产精品一区一区三区 | 四虎影视久久久 | 69国产成人综合久久精品欧美 | 欧美日韩久久不卡 | 亚洲国产精品久久久久久 | 国产尤物在线视频 | 中文字幕视频一区 | 91香蕉久久 | 超碰在线中文字幕 | 亚洲精品国产麻豆 | 国产成人精品一区二区三区在线 | 久久久国产精华液 | 看片网站黄色 | 日韩欧美一区二区不卡 | 操久 | 九九热在线观看视频 | 五月婷婷在线播放 | 久久国产视频网站 | 欧美成人基地 | 国产成人黄色av | 国产在线1区 | 超碰在线人人97 | 亚洲天堂在线观看完整版 | 国产精品99久久久精品 | 国产亚洲精品久久 | 啪啪小视频网站 | 丁香五月网久久综合 | 91豆麻精品91久久久久久 | 久久理论影院 | 92精品国产成人观看免费 | 一区二区三区视频在线 | 人人干人人模 | 国产在线精品国自产拍影院 | 欧美日韩大片在线观看 | 日韩精品最新在线观看 | 开心激情婷婷 | 久久伊人热 | 国产精品成人自产拍在线观看 | 日韩免费一区二区在线观看 | 欧美成人免费在线 | 亚洲国产美女久久久久 | 99久久精品午夜一区二区小说 | jizzjizzjizz亚洲| 日免费视频 | 国产97免费| 337p日本欧洲亚洲大胆裸体艺术 | 免费国产视频 | 国外成人在线视频网站 | 在线观看免费av片 | 中文字幕 国产专区 | 久久少妇免费视频 | 亚洲精品国产成人 | a级一a一级在线观看 | 免费看久久久 | 成 人 免费 黄 色 视频 | 国产精品视频在线观看 | 日韩精品字幕 | 精品国产一区二区三区四 | 亚洲成色777777在线观看影院 | 最新av在线免费观看 | 午夜视频一区二区 | 手机av永久免费 | 国产精品第十页 | 人人爱夜夜操 | 免费在线播放黄色 | 久草在线综合网 | 麻豆传媒视频在线 | 亚洲伊人色 | 视频国产在线观看18 | 欧美少妇的秘密 | 综合色站导航 | 国产精品成人一区二区三区吃奶 | 久久99免费观看 | 午夜影院先 | 亚洲专区视频在线观看 | 亚洲国产精彩中文乱码av | 亚洲精品99久久久久久 | 国产精品久久久电影 | 国产69精品久久久久久久久久 | 亚洲精品乱码白浆高清久久久久久 | 亚洲国产小视频在线观看 | 久久66热这里只有精品 | 在线 精品 国产 | 久草免费在线观看视频 | 欧美一级特黄aaaaaa大片在线观看 | 亚洲在线日韩 | 福利电影久久 | 日韩视频图片 | 免费成人在线网站 | 日韩性久久 | 日韩r级电影在线观看 | 国产精品一区二区三区四区在线观看 | 欧美一区二区三区在线看 | 亚洲一本视频 | 伊人电影天堂 | 久热电影| 国内精品在线观看视频 | 麻豆国产网站 | 17videosex性欧美 | 国产一区二区在线免费播放 | 成人免费看黄 | 国产中文字幕三区 | 天天操天天草 | 在线成人高清电影 | 色噜噜日韩精品一区二区三区视频 | 久久久久久久免费 | 九色91av| 2020天天干天天操 | 永久免费观看视频 | 色综合久久综合中文综合网 | 久久久免费视频播放 | av解说在线观看 | 亚洲三级在线免费观看 | 91亚州| 久久久久久毛片精品免费不卡 | 国产三级香港三韩国三级 | 日韩av不卡在线播放 | 丁香六月婷婷综合 | 午夜在线免费观看视频 | 亚洲乱码国产乱码精品天美传媒 | 奇米影视在线99精品 | 日韩精品专区在线影院重磅 | 午夜精品99久久免费 | 国产一区二区三区免费在线观看 | 成人国产网站 | 成人动态视频 | 久久一区二区免费视频 | 国产自产高清不卡 | 亚洲黄色激情小说 | 欧美一区三区四区 | 免费观看黄 | 福利区在线观看 | 欧美福利视频 | 精品久久网 | 97夜夜澡人人双人人人喊 | 香蕉视频免费在线播放 | 欧美另类xxx| 91传媒视频在线观看 | 深爱激情婷婷网 | 久久综合欧美精品亚洲一区 | 午夜久久影视 | 欧美日韩国产二区 | 亚洲精品国偷拍自产在线观看 | 亚洲影院一区 | 99久精品| 男女啪啪网站 | 久久伊99综合婷婷久久伊 | 成人国产网站 | 天天射天天干天天操 | 波多野结衣在线中文字幕 | 国产一级片不卡 | 深夜免费小视频 | 精品久久久久久久久久久久 | 五月激情亚洲 | 黄色av在| 欧美日韩精品在线观看视频 | 97人人澡人人爽人人模亚洲 | www.天天干.com | 五月天国产 | 日韩一区二区三区高清在线观看 | wwwav视频 | 韩国av一区二区三区 | 99精品99 | 精品在线视频观看 | 99视频在线精品国自产拍免费观看 | 黄色大全在线观看 | 懂色av懂色av粉嫩av分享吧 | 国产中文a | www.天天射 | 日本婷婷色 | 国产99亚洲 | 国产精品手机播放 | 色午夜 | 免费三级网 | 久久精品99国产国产 | 色婷婷久久久综合中文字幕 | 最近中文字幕国语免费高清6 | 国产九九热视频 | 九色精品免费永久在线 | 亚洲国产欧美一区二区三区丁香婷 | 五月婷婷六月丁香 | 国产一区二区在线免费播放 | 99久久99久国产黄毛片 | 在线a视频| 欧美在线99 | 天天射网| 日韩欧美综合精品 | 日韩欧美在线免费 | www.黄色片网站 | 欧美精品国产精品 | 久久久久久毛片 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 久久人人精品 | 一区二区视频在线观看免费 | 国产免费午夜 | 亚洲精品男人的天堂 | 日韩中文字幕91 | 欧美一区二区视频97 | 国产精品久久久久影视 | 日本在线观看中文字幕 | 97电影在线观看 | 成人av在线资源 | 天天躁日日躁狠狠 | 国产成视频在线观看 | 国产69精品久久久久99尤 | 操操操com | 久草在线久 | 日韩高清dvd | 天天草天天爽 | 97超级碰碰碰碰久久久久 | 亚洲精品午夜aaa久久久 | 狠狠的操你 | 国产香蕉视频在线观看 | 91理论片午午伦夜理片久久 | 激情久久一区二区三区 | 激情 亚洲| 99视频在线观看一区三区 | 久草影视在线观看 | 久草视频手机在线 | 亚洲黄色免费 | 国产精品一区免费在线观看 | 91网在线看| 欧美激情一区不卡 | 涩涩网站在线看 | 国产精品毛片一区二区在线 | 97av精品 | 天天操天天干天天摸 | 天天弄天天操 | 色综合综合 | 99精品在线视频观看 | 亚洲精品婷婷 | 国产麻豆视频免费观看 | 免费人做人爱www的视 | 国产大片免费久久 | 国产精品综合久久久 | 91亚洲网站 | 色在线免费视频 | 国产精品久久久久久久久久三级 | 日本在线成人 | 91九色视频在线 | 国产精品欧美久久 | av在线影视 | 国产在线观看91 | 久久久香蕉视频 | www.狠狠操.com | 久久草在线精品 | 麻豆国产在线视频 | 亚洲精品合集 | 久久久久久久久久电影 | 欧美日韩亚洲第一页 | 国产精品成人一区二区三区 | 日韩黄色免费电影 | 国产精品伦一区二区三区视频 | 成人观看 | 亚洲三级在线免费观看 | 1024手机基地在线观看 | 国产原创av在线 | 香蕉视频久久 | 日韩电影在线观看一区 | 91久久精品一区二区三区 | 亚洲国产午夜精品 | 亚洲国产精久久久久久久 | 日韩美在线观看 | 日韩欧美在线国产 | 久久综合久久综合九色 | 美女网站视频免费都是黄 | 国产色视频一区 | 午夜视频在线观看一区二区 | 97精品国产91久久久久久 | 在线一区二区三区 | 中文字幕资源站 | 丁香激情婷婷 | 久久精品电影 | 18岁免费看片 | 99免费在线视频 | 97av精品 | 9ⅰ精品久久久久久久久中文字幕 | 日日干网 | 久久国产免费看 | 国产亚洲精品久久久久久大师 | 91在线看免费 | 免费中午字幕无吗 | 中文字幕在线播出 | 亚洲 欧美变态 另类 综合 | 在线观看岛国av | 99精品久久久久 | 丁香六月婷婷开心 | 国产美女视频免费 | 又紧又大又爽精品一区二区 | 国产精品一区二区三区电影 | 午夜视频二区 | 最近更新好看的中文字幕 | 亚洲国产理论片 | 国产不卡一 | www.99在线观看 | 美女视频黄是免费的 | 人人精品 | 亚洲毛片视频 | 免费一级片在线观看 | 国产视频二区三区 | 91黄色视屏 | 天天射天天射 | 三级a毛片 | 亚洲一级在线观看 | 免费观看性生交大片3 | 日本护士撒尿xxxx18 | 在线视频区 | 国产啊v在线观看 | 国产正在播放 | 五月婷婷另类国产 | 久久国产精品99国产 | 中文字幕欧美日韩va免费视频 | 亚洲美女在线一区 | 综合国产视频 | 久久久久久久毛片 | 成人av电影免费观看 | 五月开心色 | 精品国产一区二区三区蜜臀 | 国产热re99久久6国产精品 | 国产精品三级视频 | 激情综合五月天 | 日韩xxxxxxxxx | 色婷婷综合在线 | 婷婷色中文网 | 91av原创 | 精品免费观看视频 | japanesexxxxfreehd乱熟 | 国产黄色一级大片 | 久久综合给合久久狠狠色 | 久久尤物电影视频在线观看 | 免费a视频| 狠狠狠色丁香综合久久天下网 | 亚洲精品在线视频播放 | 在线成人观看 | 精品久久久免费视频 | 免费三级大片 | 中文字幕免费成人 | 丁香色婷婷 | 在线观看 国产 | 色婷婷成人网 | 久久免费黄色 | 黄色毛片视频免费观看中文 | 免费视频91 | 中文在线资源 | 91免费的视频在线播放 | 免费观看91视频 | 国内一级片在线观看 | www.久久久com | 亚洲在线黄色 | 精品亚洲欧美无人区乱码 | 欧美日韩天堂 | 精品毛片一区二区免费看 | 99在线观看 | 亚洲免费不卡 | 人成电影网 | 久久9999久久免费精品国产 | 99久久精品久久久久久清纯 | 欧美一级激情 | 欧美日韩视频在线观看一区二区 | 成人免费在线电影 | 亚洲韩国一区二区三区 | 99热在线精品观看 | 国产精品99视频 | 丁香六月婷婷激情 | 在线观看久久久久久 | 国产一区在线免费 | 国产免费又爽又刺激在线观看 | www.黄色小说.com| 99久久精品无码一区二区毛片 | 日韩特级毛片 | 91av视频在线免费观看 | 久久久影院官网 | 三级黄在线 | 18性欧美xxxⅹ性满足 | 粉嫩av一区二区三区免费 | 欧美性久久久 | 婷婷丁香色 | 国产97av| 四虎免费在线观看 | 国产xvideos免费视频播放 | 日韩中文在线播放 | 国产一区二区在线免费观看 | 久爱精品在线 | 激情图片区 | 国产精品久久久久影院日本 | 在线99| 欧美成人性网 | 最新国产福利 | 一级一级一片免费 | 久久tv视频 | 99热超碰在线 | 91污视频在线 | 天堂av免费观看 | 国产精品亚洲片夜色在线 | 国产亚洲精品久久久久久 | 热久久免费视频精品 | 91香蕉嫩草 | 国内揄拍国内精品 | 婷婷色影院 | 国产99久久精品一区二区永久免费 | 夜色成人网| 日韩欧美一区二区三区在线 | 久久国产视频网 | 91九色在线 | 91麻豆福利 | 一区二区三区在线不卡 | 日日夜夜噜| 成人免费视频网站在线观看 | 91xav| 国产aa精品| 亚洲午夜精品电影 | 午夜精品一二三区 | 久久国产高清 | 亚洲精品视频在 | 日日夜夜噜 | 久久国产精品视频免费看 | 日日干精品 | 亚洲精品九九 | 密桃av在线| 国内精品亚洲 | 欧美激情精品久久久久久免费印度 | 亚洲精选国产 | 国产一区不卡在线 | 成人国产精品一区二区 | 91九色性视频 | 最近中文国产在线视频 | 在线观看的a站 | 成人久久| 在线黄频 | 免费精品国产va自在自线 | 91网页版在线观看 | 五月激情av | 91精品视频一区二区三区 | 91av综合| 九九视频这里只有精品 | 亚洲成人av影片 | 午夜婷婷在线播放 | 91成人网页版| 久久久久久久久久久久av | 色婷婷综合在线 | 精品国产99| 91精品爽啪蜜夜国产在线播放 | 久久草av| av网站在线免费观看 | 色爱区综合激月婷婷 | 伊人五月天 | 国产精品成人自产拍在线观看 | 国产美女在线精品免费观看 | 午夜精品一区二区三区四区 | 91在线文字幕 | 国产精品a成v人在线播放 | 国产精品不卡在线播放 | 五月亚洲| 在线观看亚洲精品 | 黄网站大全| 97人人澡人人添人人爽超碰 | 亚洲午夜精品久久久 | 中文字幕免费高 | 国产视频高清 | 中文字幕电影高清在线观看 | 午夜婷婷在线观看 | 国产偷v国产偷∨精品视频 在线草 | 日日摸日日碰 | 久久久污 | 视频一区二区三区视频 | 国产成人av| 亚洲成av人影片在线观看 | 国产小视频在线免费观看视频 | 日本久久久久久久久久久 | 久久国产精品一区二区 | 综合亚洲视频 | 久久狠狠一本精品综合网 | 久久高清国产 | 国产精品第二页 | 久久综合五月天婷婷伊人 | 亚洲综合欧美日韩狠狠色 | 狠狠色丁香久久婷婷综合丁香 | 天天天综合 | 97综合在线 | 区一区二区三在线观看 | 激情五月六月婷婷 | 国产精品手机在线 | 国模精品一区二区三区 | 欧美精品免费视频 | 尤物一区二区三区 | 中文字幕av日韩 | 久草网站在线观看 | 国产黄色一级片在线 | 亚洲综合欧美精品电影 | 欧美精品中文字幕亚洲专区 | 99久久精品免费看国产四区 | 激情久久伊人 | 国产精品久久久久久吹潮天美传媒 | 国产原厂视频在线观看 | 久久论理| 欧美va天堂va视频va在线 | 黄色大片视频网站 | 六月丁香六月婷婷 | 久久视频网 | 色综合久久久久综合 | 中文字幕av免费在线观看 | 中国一区二区视频 | 三级av在线免费观看 | 久久综合九色综合久99 | 久久人人97超碰国产公开结果 | 久草在线播放视频 | 国产视频观看 | 日韩视| 成人一区影院 | 九九九九精品九九九九 | 国产精品成人在线观看 | 天天综合区| 久久视频99| 日日色综合 | 日韩精品视频一二三 | 免费三级a | 黄色大片免费播放 | 久久电影日韩 | 爱爱av网 | 在线不卡的av| 免费看毛片在线 | av在线短片| 精品国产乱码一区二 | 日韩黄色大片在线观看 | 国产精品亚州 | 国产精品中文字幕av | 日韩免费视频线观看 | 国产对白av| 狠狠干网站| 日韩欧美一区二区三区在线 | 亚洲深爱激情 | 日韩av伦理片 | av中文天堂在线 | 日韩久久久久久久久 | 日批在线观看 | 98久久| 免费在线观看91 | av一二三区 | 成人午夜电影久久影院 | 91在线精品观看 | 乱男乱女www7788 | 日韩av一区二区三区在线观看 | 在线天堂v| 国产99精品在线观看 | 亚洲美女精品区人人人人 | 人人射| 五月婷婷在线观看视频 | 六月丁香六月婷婷 | 在线看毛片网站 | 91在线www| 91精品在线免费观看视频 | 在线观看国产永久免费视频 | 久热爱| 日韩av一卡二卡三卡 | 欧美性做爰猛烈叫床潮 | 精品一区二区亚洲 | 久久精品亚洲精品国产欧美 | 亚洲涩涩色 | 亚洲2019精品 | 欧美日韩在线免费视频 | 91免费网站在线观看 | 欧美综合国产 | 国产精品男女啪啪 | 人人爽人人搞 | www.午夜色.com | 在线观看免费av片 | 国产精品日韩精品 | 99久久毛片 | 亚洲精品在线国产 | 欧美贵妇性狂欢 | 香蕉视频在线免费 | 国产69精品久久99的直播节目 | 黄a网站 | 成人欧美在线 | 99久久99热这里只有精品 | 波多野结衣亚洲一区二区 | 久久综合久久综合久久综合 | 狠狠色伊人亚洲综合网站野外 | 免费在线观看成人小视频 | 91视频久久 | 婷婷六月丁香激情 | 亚洲三级在线播放 | 国产精品女同一区二区三区久久夜 | 在线观看免费观看在线91 | 91免费高清视频 | 亚洲成人av免费 | 91视频传媒 | 福利电影久久 | 97精品伊人 | 国产精品美 | 五月婷婷久 | 亚洲最新av在线网站 | 麻豆成人精品视频 | 久热免费 | 国产精品6999成人免费视频 | 国产色婷婷在线 | 精品视频亚洲 | 日韩精品免费在线 | www麻豆视频| 美女视频黄在线观看 | 九九视频在线播放 | 久久精品牌麻豆国产大山 | 美女久久久久久久久久 | www天天干com | 欧美日韩免费在线观看视频 | 中文字幕视频在线播放 | 国产精品久久久久久久久久 | 91大神在线观看视频 | www婷婷| 中文字幕成人av | 99精品影视 | 国产精品久久久久久久久岛 | 国产午夜三级一二三区 | 日日操夜夜操狠狠操 | 欧美久久久久久久久久久 | 99久久99久国产黄毛片 | 免费观看黄 | 91在线九色| 久久新 | 国产中文字幕一区二区 | 日韩毛片在线播放 | 91高清视频 | 米奇狠狠狠888 | 中文字幕亚洲欧美 | 亚洲国产三级在线观看 | 欧美男同网站 | 精品久久久影院 | 久久国产精品99久久久久久老狼 | 国产免费一区二区三区最新 | 中文字幕在线观看播放 | 欧美一二三视频 | 日韩av一区二区在线影视 | 国产精品久久久久久久久久久久冷 | 草久电影 | 国产精品日韩欧美一区二区 | 国产黄色一级片 | 色婷婷99 | 色悠悠久久综合 | 久久久久福利视频 | 中文久久精品 | 最近中文字幕国语免费高清6 | 久草在线资源观看 | 精品a在线| 成人av电影在线 | 西西大胆啪啪 | 久久这里有精品 | 综合激情久久 | 精品99999 | 久久tv | 国产精品久久久久久久久久直播 | 99免在线观看免费视频高清 | 丁香激情五月婷婷 | 午夜91视频 | 国产亚洲成av人片在线观看桃 | 国产精品18久久久久久不卡孕妇 | 国产精品福利久久久 | 在线观看视频一区二区三区 | 精品久久久久国产免费第一页 | 成人av影院在线观看 | 嫩草av影院 | 狠狠综合久久av | 日韩免费在线视频观看 | 干 操 插 | 顶级欧美色妇4khd | 精品99久久| 黄色免费观看 | 91视频免费网站 | 波多野结衣在线播放一区 | 欧美大片aaa| 久久99精品久久久久婷婷 | 色六月婷婷 | 99视频在线精品国自产拍免费观看 | 美女视频又黄又免费 | 天天操天天色天天 | 色婷婷电影网 | 亚洲精品美女视频 | 欧美美女激情18p | 天堂av网在线 | 欧美午夜性 | 国产精品一区二区吃奶在线观看 | 欧美a级片网站 | 久久综合免费 | 欧美在线观看视频 | 亚洲一级片在线看 | 国产97av| 欧美视频日韩 | 狠狠操导航 | 欧美成年性 | 99免费在线视频观看 | 国产 欧美 日韩 | 欧美黑人性爽 | 在线观看你懂的网址 | 九七人人干 | www.成人精品 | 欧美一级免费黄色片 | 亚洲六月丁香色婷婷综合久久 | 日韩av专区 | 亚洲精品乱码白浆高清久久久久久 | 在线播放 日韩专区 | www.色午夜.com | 色综合a | 国产黄色精品 | 色视频在线看 | 视色网站 | 操久| 久草精品视频在线观看 | 黄色的视频 | 五月天六月色 | www久久 | 久草91视频 | 欧美日韩xxx | 色99色| 久久1电影院| 超碰人人舔 | 五月婷在线视频 | 日韩女同av | 97色视频在线 | 久久精品艹 | 亚洲天堂毛片 | 日韩专区一区二区 | 欧美日韩国产免费视频 | a级国产乱理论片在线观看 特级毛片在线观看 | 人人干网 | 在线观看国产麻豆 | 最近的中文字幕大全免费版 | 黄色片毛片| 日本三级久久 | 日日夜夜精品视频天天综合网 | 中文字幕国产精品一区二区 | 国产成人久 | av三区在线 | 日韩中文字幕第一页 | 主播av在线 | 亚洲一区二区天堂 | 久久国产精品一区二区三区四区 | 人人干网 | 日韩高清在线一区二区 | 中文av资源站 | 亚洲精品乱码久久久一二三 | 在线观看欧美成人 | 久久精品免费电影 | 欧美日韩国产精品一区二区亚洲 | 色婷婷a| 成人视屏免费看 | 亚洲aⅴ在线 | 日韩av专区| 99久久爱 | 久久婷婷五月综合色丁香 | 久久激情影院 | 精品视频资源站 | 天天干天天干天天色 | 免费国产黄线在线观看视频 | 中文在线免费视频 | 国产精品大片在线观看 | 国产精品 国产精品 | 99精品视频在线观看视频 | 国产精品久久久免费看 | 日韩欧美91 | 欧美精品一区二区在线播放 | 日韩精品一区二区三区免费观看视频 | www色片 | 日韩高清在线一区二区 | 国产日产精品一区二区三区四区 | 亚洲乱亚洲乱亚洲 | 亚洲综合视频在线 | 99激情网| 免费久久视频 | 日韩欧美在线观看一区二区三区 | 超碰个人在线 | 日韩免费一区二区三区 | 国产偷在线 | 久久99精品波多结衣一区 | 伊人狠狠色丁香婷婷综合 | 久草精品视频 | 国产亲近乱来精品 | 日本黄色片一区二区 | 久久久国产成人 | 99这里只有久久精品视频 | 亚洲精品美女久久久 | 97中文字幕 | 97狠狠操 | 干天天 | 国产一区高清在线观看 | 操操操日日日干干干 | 久久国产精品99久久人人澡 | 99视频精品免费视频 | 久久精品香蕉 | 精品免费久久久久久 | 免费观看不卡av | 激情视频在线观看网址 | 在线观看黄色小视频 | 国产亚洲精品久久久久久大师 | 国产日韩视频在线 | 免费成人在线观看 | 中文字幕在线观看视频网站 | 国产一区网 | 狠狠色丁香久久婷婷综合_中 | 欧美 国产 视频 | 在线播放 日韩专区 | 国产精品一区二区三区电影 |