| # Set to 0 if you do not have a GPU. | |
| USE_GPU=0 | |
| # Path to a directory `base/` with images in `base/images/`. | |
| DATASET_PATH=$1 | |
| # Recommended CAMERA values: OPENCV for perspective, OPENCV_FISHEYE for fisheye. | |
| CAMERA=${2:-OPENCV} | |
| # Run COLMAP. | |
| ### Feature extraction | |
| colmap feature_extractor \ | |
| --database_path "$DATASET_PATH"/database.db \ | |
| --image_path "$DATASET_PATH"/images \ | |
| --ImageReader.single_camera 1 \ | |
| --ImageReader.camera_model "$CAMERA" \ | |
| --SiftExtraction.use_gpu "$USE_GPU" | |
| ### Feature matching | |
| colmap exhaustive_matcher \ | |
| --database_path "$DATASET_PATH"/database.db \ | |
| --SiftMatching.use_gpu "$USE_GPU" | |
| ## Use if your scene has > 500 images | |
| ## Replace this path with your own local copy of the file. | |
| ## Download from: https://demuc.de/colmap/#download | |
| # VOCABTREE_PATH=/usr/local/google/home/bmild/vocab_tree_flickr100K_words32K.bin | |
| # colmap vocab_tree_matcher \ | |
| # --database_path "$DATASET_PATH"/database.db \ | |
| # --VocabTreeMatching.vocab_tree_path $VOCABTREE_PATH \ | |
| # --SiftMatching.use_gpu "$USE_GPU" | |
| ### Bundle adjustment | |
| # The default Mapper tolerance is unnecessarily large, | |
| # decreasing it speeds up bundle adjustment steps. | |
| mkdir -p "$DATASET_PATH"/sparse | |
| colmap mapper \ | |
| --database_path "$DATASET_PATH"/database.db \ | |
| --image_path "$DATASET_PATH"/images \ | |
| --output_path "$DATASET_PATH"/sparse \ | |
| --Mapper.ba_global_function_tolerance=0.000001 | |
| ### Image undistortion | |
| ## Use this if you want to undistort your images into ideal pinhole intrinsics. | |
| # mkdir -p "$DATASET_PATH"/dense | |
| # colmap image_undistorter \ | |
| # --image_path "$DATASET_PATH"/images \ | |
| # --input_path "$DATASET_PATH"/sparse/0 \ | |
| # --output_path "$DATASET_PATH"/dense \ | |
| # --output_type COLMAP | |
| # Resize images. | |
| cp -r "$DATASET_PATH"/images "$DATASET_PATH"/images_2 | |
| pushd "$DATASET_PATH"/images_2 | |
| ls | xargs -P 8 -I {} mogrify -resize 50% {} | |
| popd | |
| cp -r "$DATASET_PATH"/images "$DATASET_PATH"/images_4 | |
| pushd "$DATASET_PATH"/images_4 | |
| ls | xargs -P 8 -I {} mogrify -resize 25% {} | |
| popd | |
| cp -r "$DATASET_PATH"/images "$DATASET_PATH"/images_8 | |
| pushd "$DATASET_PATH"/images_8 | |
| ls | xargs -P 8 -I {} mogrify -resize 12.5% {} | |
| popd |