Owen Ackerman



Here is a quick outline of some of the ideas that have influenced projects I’ve completed in the field of computer vision and machine learning. A full explanation and documentation of each project can be found on github here: GITHUB



Feature matching, image warping and panoramas


Feature matching is how we relate two images to each other. Through identifying several key features, like a corner or a dot, we can overlay two separate images of overlapping scenes by relating their key features. We can match features using SIFT, the scale invariant feature transform algorithm. First we can define a key feature as one with a large “contrast”, this means a large difference in the values of pixels, such as a border. We can filter out “bad” features as those which don’t have enough contrast, (using EigenValues to determine if there is enough contrast in enough directions, read harris corner detection). We then find the orientation of the feature so that we can compare it to other features. Once we have the key points of two images, we can filter for key points that are only shared between the 2 images.
 



Now comes image warping. Usually when we take 2 pictures of the same scene, they’re at different angles, this is especially true for panoramic images. So in order to map 2 images onto each other, we define a homography, a 3d warping transformation of the image. Now, we solve for the optimal warping of one image to line up with the second. We do this with a least squares algorithm that optimizes for the number of overlapping key points between the two images. The result looks as follows.

 


We can do this as an iterative process and stitch multiple images together!

Here’s the result.





TODO: Explanation of Facial recognition with Machine learning