8000 More content for documentation about visualization and settings by ahojnnes · Pull Request #51 · colmap/glomap · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

More content for documentation about visualization and settings #51

New issue 8000

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ glomap mapper --database_path DATABASE_PATH --output_path OUTPUT_PATH --image_pa
```
For more details on the command line interface, one can type `glomap -h` or `glomap mapper -h` for help.

We also provide a guide on improving the obtained reconstruction, which can be found [here](docs/getting_started.md)

Note:
- GLOMAP depends on two external libraries - [COLMAP](https://github.com/colmap/colmap) and [PoseLib](https://github.com/PoseLib/PoseLib).
With the default setting, the library is built automatically by GLOMAP via `FetchContent`.
Expand Down Expand Up @@ -80,6 +82,22 @@ glomap mapper \
--output_path ./output/south-building/sparse
```

### Visualize and use the results

The results are written out in the COLMAP sparse reconstruction format. Please
refer to [COLMAP](https://colmap.github.io/format.html#sparse-reconstruction)
for more details.

The reconstruction can be visualized using the COLMAP GUI, for example:
```shell
colmap gui --import_path ./output/south-building/sparse/0
```
Alternatives like [rerun.io](https://rerun.io/examples/3d-reconstruction/glomap)
also enable visualization of COLMAP and GLOMAP outputs.

If you want to inspect the reconstruction programmatically, you can use
`pycolmap` in Python or link against COLMAP's C++ library interface.

### Notes

- For larger scale datasets, it is recommended to use `sequential_matcher` or
Expand Down
50 changes: 38 additions & 12 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,46 @@
# Getting started
### Installation and End-to-End Examples
Please refer to the main `README.md`

### Recommended practice
## Installation and end-to-end examples

Please refer to the main `README.md`.

## Recommended settings

The default parameters do not always gaurantee satisfying reconstructions.
Regarding this, there are several things which can generally help
Regarding this, there are several things which can generally help.

### Share camera parameters

If images are known to be taken with the same physical camera under identical
camera settings, or images are well organized and known to be taken by several
cameras, it is higly recommended to share the camera intrinsics as appropriate.
To achieve this, one can set `--ImageReader.single_camera_per_folder` or
`--ImageReader.single_camera_per_image` in `colmap feature_extractor`.

#### Share camera parameters as much as possible
If images are known to be taken with the same camera, or images are well organized and known to be taken by several cameras, it is higly recommended to share the camera intrinsics
To achieve this, one can set `--ImageReader.single_camera_per_folder` or `--ImageReader.single_camera_per_image` in `colmap feature_extractor` to be 1.
### Handle high-resolution or blurry images

#### Allow larger epipolar error
If images are of high resolution, or are blurry, it is worth trying to increase the allowed epipolar error by modifying `--RelPoseEstimation.max_epipolar_error`. For example, make it 4, or 10.
If images have high resolution or are blurry, it is worth trying to increase the
allowed epipolar error by modifying `--RelPoseEstimation.max_epipolar_error`.
For example, increase it to 4 or 10.

### Speedup reconstruction process

#### Cap the number of tracks
If the number of images and points are large, the run-time of global bundle adjustment can be long. In this case, to further speed up the overall reconstruction process, the total number of points can be capped, by changing `--TrackEstablishment.max_num_tracks`. Typically, one image should not need more than 1000 tracks to achieve good performance, so this number can be adjusted to $1000 \times n$.
Afterwards, if a full point cloud is desired (for example, to initialize a Gaussian Splatting), points can be triangulated directly by calling `colmap point_triangulator`.

Note, if the `--skip_retriangulation` is not set true when calling `glomap mapper`, retriangulation should already been performed.
If the number of images and points are large, the run-time of global bundle
adjustment can be long. In this case, to further speed up the overall
reconstruction process, the total number of points can be capped, by changing
`--TrackEstablishment.max_num_tracks`. Typically, one image should not need more
than 1000 tracks to achieve good performance, so this number can be adjusted to
$1000 \times n$. Afterwards, if a full point cloud is desired (for example, to
initialize a Gaussian Splatting), points can be triangulated directly by calling
`colmap point_triangulator`.

Note, if the `--skip_retriangulation` is not set when calling `glomap mapper`,
retriangulation should already been performed.

#### Limit optimization iterations

The number of global positioning and bundle adjustment iterations can be limited
using the `--GlobalPositioning.max_num_iterations` and
`--BundleAdjustment.max_num_iterations` options.
0