Skip to content

Commit 834b1fe

Browse files
committed
Improve README.md
1 parent 066137d commit 834b1fe

7 files changed

Lines changed: 28 additions & 26 deletions

File tree

README.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ In addition to tutorial slides, example codes are provided in the purpose of edu
55

66
* Download [tutorial slides](https://github.com/sunglok/3dv_tutorial/releases/download/misc/3dv_slides.pdf)
77
* Download [example codes in a ZIP file](https://github.com/sunglok/3dv_tutorial/archive/master.zip)
8-
* Check [how to run example codes](https://github.com/sunglok/3dv_tutorial/blob/master/HOWTO_RUN.md)
8+
* Read [how to run example codes](https://github.com/sunglok/3dv_tutorial/blob/master/HOWTO_RUN.md)
99

1010
### What does its name come from?
1111
* The main title, _An Invitation to 3D Vision_, came from [a legendary book by Yi Ma, Stefano Soatto, Jana Kosecka, and Shankar S. Sastry](http://vision.ucla.edu/MASKS/). We wish that our tutorial will be the first gentle invitation card for beginners to 3D vision and its applications.
@@ -14,22 +14,22 @@ In addition to tutorial slides, example codes are provided in the purpose of edu
1414
### Examples
1515
* __Single-view Geometry__
1616
* Camera Projection Model
17-
* Object Localization and Measurement: [object_localization.cpp][] (result)
18-
* Image Formation: [image_formation.cpp][] (result: [0](https://drive.google.com/file/d/0B_iOV9kV0whLY2luc05jZGlkZ2s/view?usp=sharing), [1](https://drive.google.com/file/d/0B_iOV9kV0whLS3M4S09ZZHpjTkU/view?usp=sharing), [2](https://drive.google.com/file/d/0B_iOV9kV0whLV2dLZHd0MmVkd28/view?usp=sharing), [3](https://drive.google.com/file/d/0B_iOV9kV0whLS1ZBR25WekpMYjA/view?usp=sharing), [4](https://drive.google.com/file/d/0B_iOV9kV0whLYVB0dm9Fc0dvRzQ/view?usp=sharing))
19-
* Geometric Distortion Correction: [distortion_correction.cpp][] ([result](https://www.youtube.com/watch?v=HKetupWh4V8))
17+
* Object Localization and Measurement: [object_localization.cpp][] (result: [image](https://drive.google.com/open?id=10Lche-1HHazDeohXEQK443ruDTAmIO4E))
18+
* 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))
19+
* Geometric Distortion Correction: [distortion_correction.cpp][] (result: [video](https://www.youtube.com/watch?v=HKetupWh4V8))
2020
* General 2D-3D Geometry
21-
* Camera Calibration: [camera_calibration.cpp][] ([result](https://drive.google.com/file/d/0B_iOV9kV0whLZ0pDbWdXNWRrZ00/view?usp=sharing))
22-
* Camera Pose Estimation (Chessboard): [pose_estimation_chessboard.cpp][] ([result](https://www.youtube.com/watch?v=4nA1OQGL-ig))
21+
* Camera Calibration: [camera_calibration.cpp][] (result: [text](https://drive.google.com/file/d/0B_iOV9kV0whLZ0pDbWdXNWRrZ00/view))
22+
* Camera Pose Estimation (Chessboard): [pose_estimation_chessboard.cpp][] (result: [video](https://www.youtube.com/watch?v=4nA1OQGL-ig))
2323
* Camera Pose Estimation (Book): [pose_estimation_book1.cpp][]
2424
* Camera Pose Estimation and Calibration: [pose_estimation_book2.cpp][]
25-
* Camera Pose Estimation and Calibration w/o Initially Given Camera Parameters: [pose_estimation_book3.cpp][] ([result](https://www.youtube.com/watch?v=GYp4h0yyB3Y))
25+
* Camera Pose Estimation and Calibration w/o Initially Given Camera Parameters: [pose_estimation_book3.cpp][] (result: [video](https://www.youtube.com/watch?v=GYp4h0yyB3Y))
2626
* __Two-view Geometry__
2727
* Planar 2D-2D Geometry (Projective Geometry)
28-
* Perspective Distortion Correction: [perspective_correction.cpp][] (result: [original](https://drive.google.com/file/d/0B_iOV9kV0whLVlFpeFBzYWVadlk/view?usp=sharing), [rectified](https://drive.google.com/file/d/0B_iOV9kV0whLMi1UTjN5QXhnWFk/view?usp=sharing))
29-
* Planar Image Stitching: [image_stitching.cpp][] ([result](https://drive.google.com/file/d/0B_iOV9kV0whLOEQzVmhGUGVEaW8/view?usp=sharing))
30-
* 2D Video Stabilization: [video_stabilization.cpp][] ([result](https://www.youtube.com/watch?v=be_dzYicEzI))
28+
* 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))
29+
* Planar Image Stitching: [image_stitching.cpp][] (result: [image](https://drive.google.com/file/d/0B_iOV9kV0whLOEQzVmhGUGVEaW8/view))
30+
* 2D Video Stabilization: [video_stabilization.cpp][] (result: [video](https://www.youtube.com/watch?v=be_dzYicEzI))
3131
* General 2D-2D Geometry (Epipolar Geometry)
32-
* Monocular Visual Odometry (Epipolar Version): [visual_odometry_epipolar.cpp][]
32+
* Visual Odometry (Monocular, Epipolar Version): [vo_epipolar.cpp][]
3333
* Triangulation (Two-view Reconstruction): [triangulation.cpp][]
3434
* __Multi-view Geometry__
3535
* Bundle Adjustment
@@ -39,16 +39,18 @@ In addition to tutorial slides, example codes are provided in the purpose of edu
3939
* Global SfM: [sfm_global.cpp][]
4040
* Incremental SfM: [sfm_inc.cpp][]
4141
* Feature-based Visual Odometry and SLAM
42-
* Epipolar Version: [visual_odometry_epipolar.cpp][]
43-
* Stereo Version
44-
* PnP and BA Version
45-
* SLAM Version
42+
* Visual Odometry (Monocular, Epipolar Version): [vo_epipolar.cpp][]
43+
* Visual Odometry (Stereo Version)
44+
* Visual Odometry (Monocular, PnP and BA Version)
45+
* Visual SLAM (Monocular Version)
4646
* Direct Visual Odometry and SLAM
47+
* Visual Odometry (Monocular, Direct Version)
4748
* c.f. The above examples need [Ceres Solver][] for bundle adjustment.
4849
* __Correspondence Problem__
4950
* Line Fitting with RANSAC: [line_fitting_ransac.cpp][]
5051
* Line Fitting with M-estimators: [line_fitting_m_est.cpp][]
5152
* **Appendix**
53+
* Line Fitting
5254
* Planar Homograph Estimation
5355
* Fundamental Matrix Estimation
5456

@@ -88,7 +90,7 @@ The authors thank the following contributors and projects.
8890
[perspective_correction.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/perspective_correction.cpp
8991
[image_stitching.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/image_stitching.cpp
9092
[video_stabilization.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/video_stabilization.cpp
91-
[visual_odometry_epipolar.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/visual_odometry_epipolar.cpp
93+
[vo_epipolar.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/vo_epipolar.cpp
9294
[triangulation.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/triangulation.cpp
9395
[bundle_adjustment_global.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/bundle_adjustment_global.cpp
9496
[bundle_adjustment_inc.cpp]: https://github.com/sunglok/3dv_tutorial/blob/master/src/bundle_adjustment_inc.cpp

msvs/3dv_tutorial.sln

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 16
44
VisualStudioVersion = 16.0.29215.179
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "video_stabilization", "video_stabilization\video_stabilization.vcxproj", "{5CCD570B-06A1-48B8-A7EF-756587CA45C0}"
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vo_epipolar", "vo_epipolar\vo_epipolar.vcxproj", "{5549C427-BA0F-48AF-B3A0-029A8B57E71F}"
77
EndProject
8-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "visual_odometry_epipolar", "visual_odometry_epipolar\visual_odometry_epipolar.vcxproj", "{5549C427-BA0F-48AF-B3A0-029A8B57E71F}"
8+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "video_stabilization", "video_stabilization\video_stabilization.vcxproj", "{5CCD570B-06A1-48B8-A7EF-756587CA45C0}"
99
EndProject
1010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "triangulation", "triangulation\triangulation.vcxproj", "{F3C46820-CF91-48EF-94E1-5ADB573D8D8B}"
1111
EndProject
@@ -47,14 +47,14 @@ Global
4747
Release|x64 = Release|x64
4848
EndGlobalSection
4949
GlobalSection(ProjectConfigurationPlatforms) = postSolution
50-
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Debug|x64.ActiveCfg = Debug|x64
51-
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Debug|x64.Build.0 = Debug|x64
52-
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Release|x64.ActiveCfg = Release|x64
53-
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Release|x64.Build.0 = Release|x64
5450
{5549C427-BA0F-48AF-B3A0-029A8B57E71F}.Debug|x64.ActiveCfg = Debug|x64
5551
{5549C427-BA0F-48AF-B3A0-029A8B57E71F}.Debug|x64.Build.0 = Debug|x64
5652
{5549C427-BA0F-48AF-B3A0-029A8B57E71F}.Release|x64.ActiveCfg = Release|x64
5753
{5549C427-BA0F-48AF-B3A0-029A8B57E71F}.Release|x64.Build.0 = Release|x64
54+
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Debug|x64.ActiveCfg = Debug|x64
55+
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Debug|x64.Build.0 = Debug|x64
56+
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Release|x64.ActiveCfg = Release|x64
57+
{5CCD570B-06A1-48B8-A7EF-756587CA45C0}.Release|x64.Build.0 = Release|x64
5858
{F3C46820-CF91-48EF-94E1-5ADB573D8D8B}.Debug|x64.ActiveCfg = Debug|x64
5959
{F3C46820-CF91-48EF-94E1-5ADB573D8D8B}.Debug|x64.Build.0 = Debug|x64
6060
{F3C46820-CF91-48EF-94E1-5ADB573D8D8B}.Release|x64.ActiveCfg = Release|x64

msvs/visual_odometry_epipolar/visual_odometry_epipolar.vcxproj renamed to msvs/vo_epipolar/vo_epipolar.vcxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
</Link>
9393
</ItemDefinitionGroup>
9494
<ItemGroup>
95-
<ClCompile Include="..\..\src\visual_odometry_epipolar.cpp" />
95+
<ClCompile Include="..\..\src\vo_epipolar.cpp" />
9696
</ItemGroup>
9797
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
9898
<ImportGroup Label="ExtensionTargets">

msvs/visual_odometry_epipolar/visual_odometry_epipolar.vcxproj.user renamed to msvs/vo_epipolar/vo_epipolar.vcxproj.user

File renamed without changes.

src/sfm_global.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ int main()
166166
printf("3DV Tutorial: Camera %zd's (f, cx, cy) = (%.3f, %.1f, %.1f)\n", j, cameras[j][6], cameras[j][7], cameras[j][8]);
167167

168168
// Store the 3D points to an XYZ file
169-
FILE* fpts = fopen("sfm_global(point).txt", "wt");
169+
FILE* fpts = fopen("sfm_global(point).xyz", "wt");
170170
if (fpts == NULL) return -1;
171171
for (size_t i = 0; i < Xs.size(); i++)
172172
{

src/sfm_inc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ int main()
347347
printf("3DV Tutorial: Camera %zd's (f, cx, cy) = (%.3f, %.1f, %.1f)\n", j, cameras[j][6], cameras[j][7], cameras[j][8]);
348348

349349
// Store the 3D points to an XYZ file
350-
FILE* fpts = fopen("sfm_inc(point).txt", "wt");
350+
FILE* fpts = fopen("sfm_inc(point).xyz", "wt");
351351
if (fpts == NULL) return -1;
352352
for (size_t i = 0; i < Xs.size(); i++)
353353
{
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ int main()
99
int min_inlier_num = 100;
1010

1111
// Open a file to write camera trajectory
12-
FILE* camera_traj = fopen("visual_odometry_epipolar.xyz", "wt");
12+
FILE* camera_traj = fopen("vo_epipolar.xyz", "wt");
1313
if (camera_traj == NULL) return -1;
1414

1515
// Open a video and get the initial image

0 commit comments

Comments
 (0)