@@ -12,46 +12,65 @@ In addition to tutorial slides, example codes are provided in the purpose of edu
1212
1313### Lecture Slides
1414* [ Section 1. Introduction] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/01_introduction.pdf )
15- * [ Section 2. Single-view Geometry] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/01_introduction .pdf )
16- * Section 3. Two-view Geometry
17- * Section 4. Solving Problems
15+ * [ Section 2. Single-view Geometry] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/02_single-view_geometry .pdf )
16+ * [ Section 3. Two-view Geometry] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/03_two-view_geometry.pdf )
17+ * [ Section 4. Solving Problems] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/04_solving_problems.pdf )
1818* Section 5. Finding Correspondence
1919* Section 6. Multiple-view Geometry
2020* Special Topic) [ Bayesian Filtering] ( https://github.com/mint-lab/filtering_tutorial )
2121* Special Topic) Visual SLAM and Odometry
2222
2323### Example Codes
24- * ** Section 1. Introduction** [[ Slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/01_introduction.pdf )
25- * ** Section 2. Single-view Geometry** [[ Slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/01_introduction.pdf )
26- * Camera Projection Model
27- * Object Localization and Measurement: [ object_localization.cpp] [ ] (result: [ image] ( https://drive.google.com/open?id=10Lche-1HHazDeohXEQK443ruDTAmIO4E ) )
28- * Image Formation: [ image_formation.cpp] [ ] (result: [ image0] ( https://drive.google.com/file/d/0B_iOV9kV0whLY2luc05jZGlkZ2s/view ) , [ image1] ( https://drive.google.com/file/d/0B_iOV9kV0whLS3M4S09ZZHpjTkU/view ) , [ image2] ( https://drive.google.com/file/d/0B_iOV9kV0whLV2dLZHd0MmVkd28/view ) , [ image3] ( https://drive.google.com/file/d/0B_iOV9kV0whLS1ZBR25WekpMYjA/view ) , [ image4] ( https://drive.google.com/file/d/0B_iOV9kV0whLYVB0dm9Fc0dvRzQ/view ) )
29- * Geometric Distortion Correction: [ distortion_correction.cpp] [ ] (result: [ video] ( https://www.youtube.com/watch?v=HKetupWh4V8 ) )
30- * General 2D-3D Geometry
31- * Camera Calibration: [ camera_calibration.cpp] [ ] (result: [ text] ( https://drive.google.com/file/d/0B_iOV9kV0whLZ0pDbWdXNWRrZ00/view ) )
32- * Camera Pose Estimation (Chessboard): [ pose_estimation_chessboard.cpp] [ ] (result: [ video] ( https://www.youtube.com/watch?v=4nA1OQGL-ig ) )
33- * Camera Pose Estimation (Book): [ pose_estimation_book1.cpp] [ ]
34- * Camera Pose Estimation and Calibration: [ pose_estimation_book2.cpp] [ ]
35- * Camera Pose Estimation and Calibration w/o Initially Given Camera Parameters: [ pose_estimation_book3.cpp] [ ] (result: [ video] ( https://www.youtube.com/watch?v=GYp4h0yyB3Y ) )
36- * ** Section 3. Two-view Geometry**
37- * Planar 2D-2D Geometry (Projective Geometry)
38- * Perspective Distortion Correction: [ perspective_correction.cpp] [ ] (result: [ original] ( https://drive.google.com/file/d/0B_iOV9kV0whLVlFpeFBzYWVadlk/view ) , [ rectified] ( https://drive.google.com/file/d/0B_iOV9kV0whLMi1UTjN5QXhnWFk/view ) )
39- * Planar Image Stitching: [ image_stitching.cpp] [ ] (result: [ image] ( https://drive.google.com/file/d/0B_iOV9kV0whLOEQzVmhGUGVEaW8/view ) )
40- * 2D Video Stabilization: [ video_stabilization.cpp] [ ] (result: [ video] ( https://www.youtube.com/watch?v=be_dzYicEzI ) )
41- * General 2D-2D Geometry (Epipolar Geometry)
42- * Visual Odometry (Monocular, Epipolar Version): [ vo_epipolar.cpp] [ ]
43- * Triangulation (Two-view Reconstruction): [ triangulation.cpp] [ ]
44- * ** Section 4. Solving Problems**
24+ * ** Section 1. Introduction** [[ slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/01_introduction.pdf )
25+ * ** Section 2. Single-view Geometry** [[ slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/02_single-view_geometry.pdf )
26+ * Getting Started with 2D
27+ * 3D rotation conversion [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/3d_rotation_conversion.py )
28+ * Pinhole Camera Model
29+ * Object localization [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/object_localization.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/object_localization.cpp )
30+ * Image formation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/image_formation.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/image_formation.cpp )
31+ * Geometric Distortion Models
32+ * Geometric distortion visualization [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/distortion_visualization.py )
33+ * Geometric distortion correction [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/distortion_correction.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/distortion_correction.cpp ) [[ result video]] ( https://www.youtube.com/watch?v=HKetupWh4V8 )
34+ * Camera Calibration
35+ * Camera calibration [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/camera_calibration.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/camera_calibration.cpp )
36+ * Absolute Camera Pose Estimation (a.k.a. perspective-n-point; PnP)
37+ * Pose estimation (chessboard) [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_chessboard.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_chessboard.cpp ) [[ result video]] ( https://www.youtube.com/watch?v=4nA1OQGL-ig )
38+ * Pose estimation (book) [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp )
39+ * Pose estimation (book) with camera calibration [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book2.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book2.cpp )
40+ * Pose estimation (book) with camera calibration without initial K [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book3.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book3.cpp ) [[ result video]] ( https://www.youtube.com/watch?v=GYp4h0yyB3Y )
41+ * ** Section 3. Two-view Geometry** [[ slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/03_two-view_geometry.pdf )
42+ * Planar Homography
43+ * Perspective distortion correction [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp )
44+ * Planar image stitching [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp )
45+ * 2D video stabilization [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp ) [[ result video]] ( https://www.youtube.com/watch?v=be_dzYicEzI )
46+ * Epipolar Geometry
47+ * Epipolar line visualization
48+ * Relative Camera Pose Estimation (a.k.a. Fundamental/Essential Matrix Estimation)
49+ * Monocular visual odometry (epipolar version)
50+ * Triangulation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.py ) [[ cpp]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp )
51+ * ** Section 4. Solving Problems** [[ slides]] ( https://github.com/sunglok/3dv_tutorial/blob/master/slides/04_solving_problems.pdf )
52+ * Solving Linear Equations in 3D Vision
53+ * Affine transformation estimation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/affine_estimation_implement.py )
54+ * Planar homography estimation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/homography_estimation_implement.py )
55+ * Appendix) Image warping using homography [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/image_warping_implement.py )
56+
57+ * Fundamental matrix estimation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/fundamental_mat_estimation_implement.py )
58+ * Triangulation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/triangulation_implement.py )
59+
60+ * Solving Nonlinear Equations in 3D Vision
61+ * Absolute camera pose estimation [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_implement.py )
62+ * Camera calibration [[ python]] ( https://github.com/sunglok/3dv_tutorial/blob/master/examples/camera_calibration_implement.py )
63+
4564* ** Section 5. Finding Correspondence**
46- * Line Fitting with RANSAC: [ line_fitting_ransac.cpp ] [ ]
47- * Line Fitting with M-estimators: [ line_fitting_m_est.cpp ] [ ]
65+ * Line Fitting with RANSAC
66+ * Line Fitting with M-estimators
4867* ** Section 6. Multiple-view Geometry**
4968 * Bundle Adjustment
50- * Global Version: [ bundle_adjustment_global.cpp ] [ ]
51- * Incremental Version: [ bundle_adjustment_inc.cpp ] [ ]
69+ * Global Version
70+ * Incremental Version
5271 * Structure-from-Motion
53- * Global SfM: [ sfm_global.cpp ] [ ]
54- * Incremental SfM: [ sfm_inc.cpp ] [ ]
72+ * Global SfM
73+ * Incremental SfM
5574 * Feature-based Visual Odometry and SLAM
5675 * Visual Odometry (Monocular, Epipolar Version): [ vo_epipolar.cpp] [ ]
5776 * Visual Odometry (Stereo Version)
@@ -82,27 +101,4 @@ The authors thank the following contributors and projects.
82101* [ The KITTI Vision Benchmark Suite] ( http://www.cvlibs.net/datasets/kitti/ ) : The KITTI odometry dataset #07 was used to demonstrate visual odometry and SLAM.
83102* [ Russell Hewett] ( https://courses.engr.illinois.edu/cs498dh3/fa2013/projects/stitching/ComputationalPhotograph_ProjectStitching.html ) : His two hill images were used to demonstrate image stitching.
84103* [ Kang Li] ( http://www.cs.cmu.edu/~kangli/code/Image_Stabilizer.html ) : His shaking CCTV video was used to demonstrate video stabilization.
85- * [ Richard Blais] ( http://www.richardblais.net/ ) : His book cover and video in [ the OpenCV tutorial] ( http://docs.opencv.org/3.1.0/dc/d16/tutorial_akaze_tracking.html ) were used to demonstrate camera pose estimation and augmented reality.
86-
87- [ OpenCV ] : http://opencv.org/
88- [ Ceres Solver ] : http://ceres-solver.org/
89-
90- [ object_localization.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/object_localization.cpp
91- [ image_formation.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/image_formation.cpp
92- [ distortion_correction.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/distortion_correction.cpp
93- [ camera_calibration.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/camera_calibration.cpp
94- [ pose_estimation_chessboard.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_chessboard.cpp
95- [ pose_estimation_book1.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book1.cpp
96- [ pose_estimation_book2.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book2.cpp
97- [ pose_estimation_book3.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/pose_estimation_book3.cpp
98- [ perspective_correction.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/perspective_correction.cpp
99- [ image_stitching.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/image_stitching.cpp
100- [ video_stabilization.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/video_stabilization.cpp
101- [ vo_epipolar.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/vo_epipolar.cpp
102- [ triangulation.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/triangulation.cpp
103- [ bundle_adjustment_global.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/bundle_adjustment_global.cpp
104- [ bundle_adjustment_inc.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/bundle_adjustment_inc.cpp
105- [ sfm_global.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/sfm_global.cpp
106- [ sfm_inc.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/sfm_inc.cpp
107- [ line_fitting_ransac.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/line_fitting_ransac.cpp
108- [ line_fitting_m_est.cpp ] : https://github.com/sunglok/3dv_tutorial/blob/master/examples/line_fitting_m_est.cpp
104+ * [ Richard Blais] ( http://www.richardblais.net/ ) : His book cover and video in [ the OpenCV tutorial] ( http://docs.opencv.org/3.1.0/dc/d16/tutorial_akaze_tracking.html ) were used to demonstrate camera pose estimation and augmented reality.
0 commit comments