Computers don’t see

But we try hard teaching them.

Book Review: Instant OpenCV for iOS

Disclaimer: I’ve been a reviewer for this book.

About the book

Some context

A few months ago, I was kindly asked to review a book to-appear that was entitled Instant OpenCV for iOS, that is now available (at least as an eBook). The book is edited by Packt Publishing, where I bought a few books before, in particular two previous books about OpenCV, an introductory one (by R. Laganière) and a more application-focused one (by several CV bloggers).

Packt Publishing is one of the very few editors that propose several books about OpenCV. In particular, since the iconic Learning OpenCV by Gary Bradski that you can find in every CV lab, and almost on any CV student desk is now clearly outdated1 and still waiting for its second edition, Packt Publishing has probably the most interesting choice of books on the topic2.

Anyway, I was glad to accept, although the time frame for the review was very short. Imo, a bit too short, especially if you compare to the standard review delays in scientific conferences. But, eh, I was in Taiwan at that time, some sleepless nights and jetlag to fight, so I checked in.

The authors

The book is written by two OpenCV specialists, Alexander Shishkov and Kirill Kornyakov. If you follow OpenCV developer’s site, then you probably know them already, since they are employees of Itseez, the company that supports OpenCV today, and they are the authors of many commits into the library.

So, we have two first class OpenCV connoisseurs here! Furthermore, they work on code optimization for mobile platforms, which can be tricky.

What’s inside

The book is a short one: 96 pages, divided in 17 recipes (about 5 pages per recipe). This is the format of the Instant… series: the goal is to get started very quickly from a few examples.

Each recipe comprises a short description of the task and an overview of the approach (when it is complex), immediately followed by the corresponding code or step-by-step description of the required actions in the Xcode IDE. Then comes a bit of explanation of what the code is doing, and the recipe ends with some suggestions of applications or more advanced steps to pursue.

The recipes are focused enough to be treated in just a few pages: they range from the very simple Getting started with iOS to the complex Optimizing the performance with ARM NEON extensions.

My advice

I have mixed feelings about this book: some things are really cool and interesting, while a part of the book does not seem really useful by trying to reach too many different audience.

I liked…

  • I really liked the most advanced recipes. You can learn a few things that are terribly difficult to find online, especially a Neon optimization how-to and the usage of the Python build script to get your own build of OpenCV.
  • An important part of the book is disclosed here for the first time. This is a big advantage over the collective Practical CV projects that included some material available on the authors’website and even in OpenCV documentation.
  • I’m also a fan of the approach of the book, where you gradually build up some kind of Image Processing library and expand it with more-and-more complicated projects. This teaches you a lot about design at the same time as you learn functions of the library.

That may be embarrassing…

  • On the other hand, I’m definitely not a big fan of the Instant… series format. It seems to me that a recipe starts with a big chunk of code, hard to understand, then you have (some) explanation. At least, I’d have rather interleaved explanation, and ideally I would like a bigger, more peaceful book.
  • Some recipes seem to me overly simplistic. The book tries to introduce iOS development, OpenCV usage and mobile code optimization at the same time. However, my guess is that this is not a book for beginners. Thus, easier parts that are also covered extensively on the Web (such as installing Xcode and running code on an iDevice) should have been dropped to make room for more advanced recipes or more explanation.
  • I believe most of the code examples should be iOS7 compliant, but honestly I didn’t try.

Summary

If you’re an experienced iOS developer or OpenCV user who has decided to get serious with mobile Image Processing (for an augmented reality app maybe?), then this book is definitely for you and will demonstrate you some useful tricks to get the most out of your device. With mobile 3D scanning coming soon, you better be ready!

If you’re a beginner with OpenCV, then you should prefer Laganière’s book, which is still the best introductory book to OpenCV 2 for the time being.

  1. It is tied to OpenCV 1.

  2. I’m not writing that because I reviewed one of their books, I’m writing that because Laganière’s book was one of the very first reliable source to really learn OpenCV 2. Even today, the results for a query on “OpenCV tutorial” are full of tutorials about the version 1.x of the library.

Comments