1st week
- Revision of the classic literature: the Bible of 3D Reconstruction by @hartley2003multiple
- 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
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