Real Time 3D Reconstruction from Monocular Video

1st week

  • Revision of the classic literature: the Bible of 3D Reconstruction by @hartley2003multiple
    • Fundamental matrix:
  • Essential matrix, considering the intrinsic parameters in $\mathbf{K}$:
  • Revision of Blender python API taken into consideration to integrate PhD results with Blender

  • Revision and compilation of OpenCV code, including CUDA 1.3 compilation for an old GTX 285

    • Using the 3.0 upcoming version from master branch with improved OpenCL support
    • More information at OpenCV code page

2nd week

  • Installing a basic WebCam with a resolution of 1280x720 WebCam Creative HD Live Sync

  • Calibration using OpenCV tool based on @zhang2000flexible

  • Searching for Open Source solutions to solve KLT traking

    • GPU-KLT+FLOW from @zach2008fast
    • CuKLT from @kim2009realtime
    • Study of the best GPU implementation in terms of performance (CUDA vs GLSL)
  • Finally OpenCV's implementation of goodFeaturesToTrack has been adopted since it is the simplest (just three basic methods) and the latest one of all

    • It is based on the method described by @shi1994good
cv::goodFeaturesToTrack(curFrame, curPts, npoints, 0.001, minDist);
cv::cornerSubPix(curFrame, curPts, cv::Size(subPixWinSize, subPixWinSize), cv::Size(-1,-1), termcrit);
cv::calcOpticalFlowPyrLK(prevFrame, curFrame, prevPts, curPts, status, err, cv::Size(winSize, winSize), 3, termcrit, 0, 0.001);

3rd and 4th week

  • Starting the creation of a source code project
    • Creating a Git repository to maintain control version
  • Learning and using CMake project configuration to manage dependecies and compile sources
    • Used by the most popular open source projects such as OpenCV, PCL and Blender
  • Adquisiton of basic dataset to test video tracking

References