I came, I saw, I took a photograph. The NASA rover Curiosity is filming Mars. Computer Vision looks like the next big trend.
Kurt Demaagd, Anthony Oliver, Nathan Oostendorp and Katherine Scott have produced ‘Practical Computer Vision with SimpleCV’, The Simple Way to Make Technology See, published by O’Reilly.
Disclaimer: O’Reilly gave me a free copy of the ebook to review. I shall definitely be keeping it. The book is really simply written but it provoked my imagination in an area of technology that right now is wide open.
What is Computer Vision?
Computer Vision is using cameras and computers to take pictures and analyze things. Consider the more sophisticated image processes of GIMP, Photoshop and PaintShop: edge detection, masking, layering, manipulating. Apply to the moving images of a camera. Combine with other techniques that we know the eye and brain use, apply some (artificial) intelligence. Grail: Perception itself.
What is the difference between SimpleCV and OpenCV?
OpenCV is the collection of algorithms and implementations, mostly written in C, that represent our
collective knowledge on Computer Vision so far. Originally curated by Intel, now open source because we can all be stakeholders in this and the algorithms are simply too precious and too important not to share.
SimpleCV is a high-level framework or wrapper built on top of OpenCV, written in Python. OpenCV is compiled, complicated and ever-changing. SimpleCV is interpreted, simple, and lags slightly behind the state-of-the-art but is nevertheless an excellent learning. experimenting and prototyping tool.
My only concern is that SimpleCV is not event-driven. Vision works by catching something at the edge of the
eye then swivelling focus to study it. Proper emulation of that needs a system of interrupts.
The level of the book?
This book uses SimpleCV, not OpenCV, and it is pitched at a really basic level. Until chapter 10 the authors
cover nothing but building blocks. But by then the reader has a good understanding of what the python
scripting can do. There are illustrated applications that struck me as simultaneously clever examples of
image interpretation but also clear demonstrations of how mechanistic computer algorithms fall far short of
what the living eye can do. It is only in the appendices that the book hints at what you might be able to
achieve with CV.
Is the website a resource of the book or is the book a resource of the website?
I read the book first, then turned to the website second. The full Python and SimpleCV development stack
environment is a 120MG download; it all played nicely for me and within a couple of hours I had a grainy
photo of myself on the webcam up and running and analysed in various ways for features.
Others will come to the SimpleCV framework first, then buy the book as a manual and a way to provide the
authors some small reward for their intense contributions in this open source environment.
What is the current state of the art?
O’Reilly’s last book on this was ‘OpenCv’ by Gary Bradski and Adrian Kaehler, in 2008. Developments over the last 4 years include: accurate speed recording and number plate recognition in traffic control, facebook recognition in social media, smile detection on cameras, image combining in Google Earth.
If they publish again after another 4 years, you will see machine-driven cars, ambient Glasses/Goggles informers. There is also room for progress in areas that we now understand quite well in terms of the eye and the brain. Like: responding faster to movement on the edge of vision, picking out the bright red in a scene, selectively applying fast fourier transformations, adapting to darkness levels and still seeing the same things.
I urge you to buy this book. Advance the science. Climb on the bandwagon. Think of it as a rover called Curiosity.