Vai al contenuto principale della pagina
| Autore: |
Gao Xiang, L.L.M.
|
| Titolo: |
Introduction to visual SLAM : from theory to practice / / Xiang Gao, Tao Zhang
|
| Pubblicazione: | Singapore : , : Springer, , [2022] |
| ©2022 | |
| Descrizione fisica: | 1 online resource (386 pages) |
| Disciplina: | 621.38456 |
| Soggetto topico: | Wireless localization |
| Computer vision | |
| Sensor networks | |
| Persona (resp. second.): | ZhangTao |
| Nota di contenuto: | Intro -- Preface -- What is This Book Talking About? -- How to Use This Book? -- Source Code -- Targeted Readers -- Style -- Exercises (Self-test Questions) -- Acknowledgments -- Contents -- Part I Fundamental Knowledge -- 1 Introduction to SLAM -- 1.1 Meet ``Little Carrot'' -- 1.1.1 Monocular Camera -- 1.1.2 Stereo Cameras and RGB-D Cameras -- 1.2 Classical Visual SLAM Framework -- 1.2.1 Visual Odometry -- 1.2.2 Backend Optimization -- 1.2.3 Loop Closing -- 1.2.4 Mapping -- 1.3 Mathematical Formulation of SLAM Problems -- 1.4 Practice: Basics -- 1.4.1 Installing Linux -- 1.4.2 Hello SLAM -- 1.4.3 Use CMake -- 1.4.4 Use Libraries -- 1.4.5 Use IDE -- 2 3D Rigid Body Motion -- 2.1 Rotation Matrix -- 2.1.1 Points, Vectors, and Coordinate Systems -- 2.1.2 Euclidean Transforms Between Coordinate Systems -- 2.1.3 Transform Matrix and Homogeneous Coordinates -- 2.2 Practice: Use Eigen -- 2.3 Rotation Vectors and the Euler Angles -- 2.3.1 Rotation Vectors -- 2.3.2 Euler Angles -- 2.4 Quaternions -- 2.4.1 Quaternion Operations -- 2.4.2 Use Quaternion to Represent a Rotation -- 2.4.3 Conversion of Quaternions to Other Rotation Representations -- 2.5 Affine and Projective Transformation -- 2.6 Practice: Eigen Geometry Module -- 2.6.1 Data Structure of the Eigen Geometry Module -- 2.6.2 Coordinate Transformation Example -- 2.7 Visualization Demo -- 2.7.1 Plotting Trajectory -- 2.7.2 Displaying Camera Pose -- 3 Lie Group and Lie Algebra -- 3.1 Basics of Lie Group and Lie Algebra -- 3.1.1 Group -- 3.1.2 Introduction of the Lie Algebra -- 3.1.3 The Definition of Lie Algebra -- 3.1.4 Lie Algebra mathfrakso(3) -- 3.1.5 Lie Algebra mathfrakse(3) -- 3.2 Exponential and Logarithmic Mapping -- 3.2.1 Exponential Map of SO(3) -- 3.2.2 Exponential Map of SE(3) -- 3.3 Lie Algebra Derivation and Perturbation Model -- 3.3.1 BCH Formula and Its Approximation. |
| 3.3.2 Derivative on SO(3) -- 3.3.3 Derivative Model -- 3.3.4 Perturbation Model -- 3.3.5 Derivative on SE(3) -- 3.4 Practice: Sophus -- 3.4.1 Basic Usage of Sophus -- 3.4.2 Example: Evaluating the Trajectory -- 3.5 Similar Transform Group and Its Lie Algebra -- 3.6 Summary -- 4 Cameras and Images -- 4.1 Pinhole Camera Models -- 4.1.1 Pinhole Camera Geometry -- 4.1.2 Distortion -- 4.1.3 Stereo Cameras -- 4.1.4 RGB-D Cameras -- 4.2 Images -- 4.3 Practice: Images in Computer Vision -- 4.3.1 Basic Usage of OpenCV -- 4.3.2 Basic OpenCV Images Operations -- 4.3.3 Image Undistortion -- 4.4 Practice: 3D Vision -- 4.4.1 Stereo Vision -- 4.4.2 RGB-D Vision -- 5 Nonlinear Optimization -- 5.1 State Estimation -- 5.1.1 From Batch State Estimation to Least-Square -- 5.1.2 Introduction to Least-Squares -- 5.1.3 Example: Batch State Estimation -- 5.2 Nonlinear Least-Square Problem -- 5.2.1 The First and Second-Order Method -- 5.2.2 The Gauss-Newton Method -- 5.2.3 The Levernberg-Marquatdt Method -- 5.2.4 Conclusion -- 5.3 Practice: Curve Fitting -- 5.3.1 Curve Fitting with Gauss-Newton -- 5.3.2 Curve Fitting with Google Ceres -- 5.3.3 Curve Fitting with g2o -- 5.4 Summary -- Part II SLAM Technologies -- 6 Visual Odometry: Part I -- 6.1 Feature Method -- 6.1.1 ORB Feature -- 6.1.2 Feature Matching -- 6.2 Practice: Feature Extraction and Matching -- 6.2.1 ORB Features in OpenCV -- 6.2.2 ORB Features from Scratch -- 6.2.3 Calculate the Camera Motion -- 6.3 2D-2D: Epipolar Geometry -- 6.3.1 Epipolar Constraints -- 6.3.2 Essential Matrix -- 6.3.3 Homography -- 6.4 Practice: Solving Camera Motion with Epipolar Constraints -- 6.4.1 Discussion -- 6.5 Triangulation -- 6.6 Practice: Triangulation -- 6.6.1 Triangulation with OpenCV -- 6.6.2 Discussion -- 6.7 3D-2D PnP -- 6.7.1 Direct Linear Transformation -- 6.7.2 P3P -- 6.7.3 Solve PnP by Minimizing the Reprojection Error. | |
| 6.8 Practice: Solving PnP -- 6.8.1 Use EPnP to Solve the Pose -- 6.8.2 Pose Estimation from Scratch -- 6.8.3 Optimization by g2o -- 6.9 3D-3D Iterative Closest Point (ICP) -- 6.9.1 Using Linear Algebra (SVD) -- 6.9.2 Using Non-linear Optimization -- 6.10 Practice: Solving ICP -- 6.10.1 Using SVD -- 6.10.2 Using Non-linear Optimization -- 6.11 Summary -- 7 Visual Odometry: Part II -- 7.1 The Motivation of the Direct Method -- 7.2 2D Optical Flow -- 7.2.1 Lucas-Kanade Optical Flow -- 7.3 Practice: LK Optical Flow -- 7.3.1 LK Flow in OpenCV -- 7.3.2 Optical Flow with Gauss-Newton Method -- 7.3.3 Summary of the Optical Flow Practice -- 7.4 Direct Method -- 7.4.1 Derivation of the Direct Method -- 7.4.2 Discussion of Direct Method -- 7.5 Practice: Direct method -- 7.5.1 Single-Layer Direct Method -- 7.5.2 Multi-layer Direct Method -- 7.5.3 Discussion -- 7.5.4 Advantages and Disadvantages of the Direct Method -- 8 Filters and Optimization Approaches: Part I -- 8.1 Introduction -- 8.1.1 State Estimation from Probabilistic Perspective -- 8.1.2 Linear Systems and the Kalman Filter -- 8.1.3 Nonlinear Systems and the EKF -- 8.1.4 Discussion About KF and EKF -- 8.2 Bundle Adjustment and Graph Optimization -- 8.2.1 The Projection Model and Cost Function -- 8.2.2 Solving Bundle Adjustment -- 8.2.3 Sparsity -- 8.2.4 Minimal Example of BA -- 8.2.5 Schur Trick -- 8.2.6 Robust Kernels -- 8.2.7 Summary -- 8.3 Practice: BA with Ceres -- 8.3.1 BAL Dataset -- 8.3.2 Solving BA in Ceres -- 8.4 Practice: BA with g2o -- 8.5 Summary -- 9 Filters and Optimization Approaches: Part II -- 9.1 Sliding Window Filter and Optimization -- 9.1.1 Controlling the Structure of BA -- 9.1.2 Sliding Window -- 9.2 Pose Graph Optimization -- 9.2.1 Definition of Pose Graph -- 9.2.2 Residuals and Jacobians -- 9.3 Practice: Pose Graph -- 9.3.1 Pose Graph Using g2o Built-in Classes. | |
| 9.3.2 Pose Graph Using Sophus -- 9.4 Summary -- 10 Loop Closure -- 10.1 Loop Closure and Detection -- 10.1.1 Why Loop Closure Is Needed -- 10.1.2 How to Close the Loops -- 10.1.3 Precision and Recall -- 10.2 Bag of Words -- 10.3 Train the Dictionary -- 10.3.1 The Structure of Dictionary -- 10.3.2 Practice: Creating the Dictionary -- 10.4 Calculate the Similarity -- 10.4.1 Theoretical Part -- 10.4.2 Practice Part -- 10.5 Discussion About the Experiment -- 10.5.1 Increasing the Dictionary Scale -- 10.5.2 Similarity Score Processing -- 10.5.3 Processing the Keyframes -- 10.5.4 Validation of the Detected Loops -- 10.5.5 Relationship with Machine Learning -- 11 Dense Reconstruction -- 11.1 Brief Introduction -- 11.2 Monocular Dense Reconstruction -- 11.2.1 Stereo Vision -- 11.2.2 Epipolar Line Search and Block Matching -- 11.2.3 Gaussian Depth Filters -- 11.3 Practice: Monocular Dense Reconstruction -- 11.3.1 Discussion -- 11.3.2 Pixel Gradients -- 11.3.3 Inverse Depth Filter -- 11.3.4 Pre-Transform the Image -- 11.3.5 Parallel Computing -- 11.3.6 Other Improvements -- 11.4 Dense RGB-D Mapping -- 11.4.1 Practice: RGB-D Point Cloud Mapping -- 11.4.2 Building Meshes from Point Cloud -- 11.4.3 Octo-Mapping -- 11.4.4 Practice: Octo-mapping -- 11.5 *TSDF and RGB-D Fusion Series -- 11.6 Summary -- 12 Practice: Stereo Visual Odometry -- 12.1 Why Do We Have a Separate Engineering Chapter? -- 12.2 Framework -- 12.2.1 Data Structure -- 12.2.2 Pipeline -- 12.3 Implementation -- 12.3.1 Implement the Basic Data Structure -- 12.3.2 Implement the Frontend -- 12.3.3 Implement the Backend -- 12.4 Experiment Results -- 13 Discussions and Outlook -- 13.1 Open-Source Implementations -- 13.1.1 MonoSLAM -- 13.1.2 PTAM -- 13.1.3 ORB-SLAM Series -- 13.1.4 LSD-SLAM -- 13.1.5 SVO -- 13.1.6 RTAB-MAP -- 13.1.7 Others -- 13.2 SLAM in Future -- 13.2.1 IMU Integrated VSLAM. | |
| 13.2.2 Semantic SLAM -- Appendix A Gaussian Distribution -- A.1 Gaussian Distribution -- A.2 Transform of Gaussian Variables -- A.2.1 Linear Transform -- A.2.2 Normalized Product -- A.2.3 Joint and Conditional Distribution -- A.3 Example of Joint Distribution -- Appendix B Matrix Derivatives -- B.1 Scalar Function with Vector Variable -- B.2 Vector Function with Vector Variable -- Appendix References. | |
| Titolo autorizzato: | Introduction to visual SLAM ![]() |
| ISBN: | 981-16-4939-1 |
| Formato: | Materiale a stampa |
| Livello bibliografico | Monografia |
| Lingua di pubblicazione: | Inglese |
| Record Nr.: | 996464504303316 |
| Lo trovi qui: | Univ. di Salerno |
| Opac: | Controlla la disponibilità qui |