Sunday, December 23, 2012

Review: Mastering OpenCV with Practical Computer Vision Projects

I got hold of this new book titled "Mastering OpenCV with Practical Computer Vision Projects". Its a really good book if you are familiar with OpenCV and want to try out something very interesting and cool stuff on your desktop/tablet/phone. I have been working on OpenCV for quite a while now. This book covers a variety of projects that could be done with one's OpenCV skills which could be really fun to try out in the real-world. Its a great starting point to flex your OpenCV skills. I bet if you are new to OpenCV, you will find this very exciting once you've understood the code that does all these cool stuff covered in the book (number plate recognition, face recognition, augmented reality, etc).

I personally liked the part on Point Cloud Library and OpenCV. I liked the Chapter 9 where they discussed Kinect and OpenCV. This chapter was provided as a digital download (as a link).

However, these projects have to be taken with a grain of salt. One must understand that, Computer Vision is a very active area of research. There is no single API that does everything and works in every single use-case. Its not like web programming, where you write a piece of code and expect it work as it was designed to. Not everything is provided as an API. For example, you cannot expect the number plate recognition system to work with all kinds of number plates. This specific technique may only work for this specific data-set.

The techniques mentioned in this book are limited with the API OpenCV provides. However, these provide a great starting point if you want to do cool stuff with OpenCV. If you are aware of any other Algorithms that are more efficient (other than the default algorithms implemented in OpenCV available as the part of the framework), you will now know how to put them into better use after reading this book.

If you are not familiar with OpenCV, I suggest you to get book titled "OpenCV 2 Computer Vision Application Programming Cookbook" before trying this book. 

Monday, December 17, 2012

Neural Networks in Octave

I wrote a simple Feed Forward Neural Network in Octave. This is a 2 Hidden Layer Feed Forward Neural Network (200 x 100 and 100 x 50) which was trained on MNIST dataset (2400 training, 2400 testing images). Digit images are of size 28 x 28. I have also trained it on images collected from and an Android device (1000 images = 600 training, 200 testing, 200 cross validation set). I have uploaded the source to my git repo.

You can clone the source using the following command:

I got the following results by comparing it with 1 Hidden Layer Feed Forward Neural Network and Logistic Regression.

Checkout the working of 2 hidden layer network in the following video.