This repository serves as the home for the course SENG 499 offered at the University of Victoria in the Summer of 2016. The proposed project is to implement a system capabale of generating and continuously updating triangular meshes through the use of a RGBD camera, such as the Microsoft Kinect. Similar work has been done in the following papers.
- KinectFusion: Real-Time Dense Surface Mapping and Tracking
- DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time
Tested on
- Windows 10 (MinGW64)
- Ubuntu 14.04 and 16.04
- OS/X It builds with no warnings once the Mac build system is merged, but the tests fail horribly due to some issue we suspect with Boost.Compute & OpenCL on Mac OSX.
- Eigen 3
- Get the header-only Catch by copying catch.hpp to SENG499/include/catch.hpp
- Requires g++-5 and/or g++-6 (future proofing in travis-ci build matrices)
- OpenCV
- Boost
- Boost.Compute
This includes instructions for installing direct project dependencies and also for build environment dependencies. After installing all systems, cmake should work in your environment.
#####Command Line Tools for XCode
xcode-select --install
#####Boost Install Homebrew if not already installed
brew install boost
#####Boost.Compute
git clone https://github.com/boostorg/compute.git
copy headers to project: sudo cp -r ./compute/include/boost/* /usr/local/include/boost
#####Catch
git clone https://github.com/philsquared/Catch.git
copy headers to project: sudo cp ./Catch/single_include/catch.hpp /usr/local/include
#####OpenCV Download from here
Extract to location of your choice and open terminal there
cmake .
make
make install
#####lippcv Download from here
Extract and copy lib/* to /usr/local/lib
#####Eigen3
brew install eigen
sudo ln -s /usr/local/include/eigen3/Eigen /usr/local/include/Eigen
#####pkg-config
brew install pkg-config
Note: once #69 is merged in this process should build the entire project without errors. Warnings are still possible because of symlink issues. #69 contains details.
- Download MinGW-w64 GCC v5.3.0 (POSIX threads, SEH exceptions) from here
- Extract to
C:\MinGW
- Add
C:\MinGW\bin
to your path - Open command prompt and verify that
g++ --version
displays output which begins withg++.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 5.3.0
- Download from here
- Copy
Eigen
directory toC:\MinGW\x86_64-w64-mingw32\include
#####OpenCV
- Download and compile OpenCV (instructions here)
- Copy OpenCV headers to
C:\MinGW\x86_64-w64-mingw32\include
- Create directory called
bin
in repository, copy all OpenCV DLLs thereto
#####Boost
- Download and compile Boost (instructions here)
- Copy Boost headers to
C:\MinGW\x86_64-w64-mingw32\include
- Copy files called
libboost_*.a
toC:\MinGW\lib
#####Boost.Compute
git clone https://github.com/boostorg/compute.git
Copy ./compute/include/boost/*
to C:\MinGW\x86_64-w64-mingw32\include\boost
#####Catch
git clone https://github.com/philsquared/Catch.git
Copy ./Catch/single_include/catch.hpp
to C:\MinGW\x86_64-w64-mingw32\include
Since we are using travis-ci it is possible that issues can be resolved by referencing the .travis.yml file on the master branch for solution inspirations.
git clone https://github.com/RobertLeahy/DynFu.git
cd DynFu
mkdir -p include
wget -O include/catch.hpp https://raw.githubusercontent.com/philsquared/Catch/master/single_include/catch.hpp
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-5 libeigen3-dev libboost-all-dev libopencv-dev
Once the dependencies are satisfied...
cd DynFu
cmake .
make
Available at http://seng499.rleahy.ca/
Use Doxygen and GraphViz
sudo apt-get install graphviz doxygen
cd SENG499
doxygen
- Project Management - waffle.io
- Continuous Integration - travis-ci
- Datasets - MSRC RGB-D Dataset 7-Scenes
Currently, no outside contributions are being accepted as the coursework is required to be our own.
See the file LICENSE in the root of the repository.