A visual mapping framework developed based on iPhone RGB images, TOF information, and Arkit pose data.This framework is developed on the basis of colmap.
[1]Cui H, Gao X, Shen S, et al. HSfM: Hybrid structure-from-motion[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1212-1221.
[2]Chatterjee A, Govindu V M. Efficient and robust large-scale rotation averaging[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 521-528.
Dependencies from the default Ubuntu repositories:
sudo apt-get install \
git \
cmake \
ninja-build \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libboost-test-dev \
libeigen3-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgflags-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libceres-dev
mkdir build
cd build
cmake ..
make
After compiling, the colmap executable will be generated. You can check all available commands by running help.
./build/src/exe/colmap help
We have provided IOS data collection software in another repository. You can refer to:ios-data-collector.
Due to the fact that data collection is usually done through video, there are a large number of redundant images in the data, we first use the pose transformation of VIO Pose to extract keyframes from the original data.
There are two main parameters that control the extraction of keyframes:
- Keyframe.rot_change( unit degree) for relative pose changes between adjacent frames.
- Keyframe.pos_change(unit m) for relative position changes between adjacent frames.
Run keyframe extractor
./build/src/exe/colmap keyframe --project_path=./config/keyframe.ini
Test data can be downloaded here:Test Data Link(password:um0i).
We use the same method to extract SIFT feature points from the image, and simultaneously store the depth information of each feature point in the database.
Run feature extraction
./build/src/exe/colmap feature_extractor --project_path=./config/feature_extractor.ini
By default, we use the vocabulary tree for feature matching.
./build/src/exe/colmap vocab_tree_matcher --project_path=./config/vocab_tree_matcher.ini
The hybrid mapper is mainly used to complete the reconstruction with rgb, depth and VIO attitude information simultaneously.
./build/src/exe/colmap hybrid_mapper --project_path=./config/hybrid_mapper.ini