-
A framework for RANSAC
RANSAC is short for Random SAmple Consensus, which is an iterative method to estimate parameters of a mathematical model from a set of observed data that contains outliers. It can be incorporated to estimate many key matrices in vision, such as homography, fundamental/essential matrix, etc. This post aims to develop a general framework so that RANSAC could be easier applied to existing estimation algorithms. The code is modified from the code originally written by Ziv Yaniv.
-
Estimation of camera pose
There are multiple ways of estimating camera position and orientation, typical approaches include
- camera pose from point correspondences
- camera pose from Fundamental matrix
-
VLFeat wrapper
The keypoint detector and descriptor classes implemented are a wrapper of the amazing vlfeat functionalities. There are three separated classes, they are:
-
Triangulation
Problem definition
Given camera matrices (\(P, P'\)), or fundamental matrix \(F\), and measured image points \(x\) and \(x'\), estimate the 3D point \(X\) that minimizes some cost function.
-
Git cheatsheet
Exclude a directory
Create a
.gitignore
file in root, and add the directory name in itdir_name/
-
An introduction to the `mex` file and useful implementations
I use mostly Matlab to test my algorithms, it’s super easy to implement and fast enough for matrix computation. However, for some computationally heavy tasks that is hard to implement as matrix computation, I would normally turn to C++ for its efficiency. Thus I need an additional
mex
file so that my Matlab code can use the C++ code. To do so, most of the job required is to convert matlab data into C++ data, and I create some methods just for this purpose so that I don’t need to do this all over again next time. So here it is. -
C++ implementation of a image class
The internal data structure used to store image is a vector of
unsigned char
. Here are a list of basic functionalities included in theImage
class -
Change to the al-folio theme
This Jekyll theme is developed by Maruan Al-Shedivat, which is modified from the original template -folio developed by Lia Bogoev. Thanks to those two for this clean, and simplistic design.
-
C++ implementation of a numeric class
One of the most widely used matrix and linear algebra library is Eigen. This is a header only library, thus no compiling or installation needed. I decided to write a wrapper class based on this library, so here it is.
-
Estimation of fundamental matrix
The epipolar geometry is the intrinsic projective geometry between two views, which is independent of scene structure, and only depends on the camera’s internal parameters and relative pose.