Mastering OpenCV With Practical Computer Vision Projects: Step-by-step Tutorials to Solve Common Real-world Computer Vision Problems for Desktop or Mobile, from Augmented Reality and Number Plate Recognition to Face Recognition and 3d Head Tracking (英語) ペーパーバック – 2012/12/3
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
This is the definitive advanced tutorial for OpenCV, designed for those with basic C++ skills. The computer vision projects are divided into easily assimilated chapters with an emphasis on practical involvement for an easier learning curve.
- Allows anyone with basic OpenCV experience to rapidly obtain skills in many computer vision topics, for research or commercial use
- Each chapter is a separate project covering a computer vision problem, written by a professional with proven experience on that topic.
- All projects include a step-by-step tutorial and full source-code, using the C++ interface of OpenCV.
Computer Vision is fast becoming an important technology and is used in Mars robots, national security systems, automated factories, driver-less cars, and medical image analysis to new forms of human-computer interaction. OpenCV is the most common library for computer vision, providing hundreds of complex and fast algorithms. But it has a steep learning curve and limited in-depth tutorials.
Mastering OpenCV with Practical Computer Vision Projects is the perfect book for developers with just basic OpenCV skills who want to try practical computer vision projects, as well as the seasoned OpenCV experts who want to add more Computer Vision topics to their skill set or gain more experience with OpenCV's new C++ interface before migrating from the C API to the C++ API.
Each chapter is a separate project including the necessary background knowledge, so try them all one-by-one or jump straight to the projects you're most interested in.
Create working prototypes from this book including real-time mobile apps, Augmented Reality, 3D shape from video, or track faces & eyes, fluid wall using Kinect, number plate recognition and so on.
Mastering OpenCV with Practical Computer Vision Projects gives you rapid training in nine computer vision areas with useful projects.
What you will learn from this book
- Perform Face Analysis including simple Face & Eye & Skin Detection, Fisherfaces Face Recognition, 3D Head Orientation, complex Facial Feature Tracking.
- Do Number Plate Detection and Optical Character Recognition (OCR) using Artificial Intelligence (AI) methods including SVMs and Neural Networks
- Learn Augmented Reality for desktop and iPhone or iPad using simple artificial markers or complex markerless natural images
- Generate a 3D object model by moving a plain 2D camera, using 3D Structure from Motion (SfM) camera reprojection methods
- Redesign desktop real-time computer vision applications to more suitable Android & iOS mobile apps
- Use simple image filter effects including cartoon, sketch, paint, and alien effects
- Execute Human-Computer Interaction with an XBox Kinect sensor using the whole body as a dynamic input
Each chapter in the book is an individual project and each project is constructed with step-by-step instructions, clearly explained code, and includes the necessary screenshots.
Who this book is written for
You should have basic OpenCV and C/C++ programming experience before reading this book, as it is aimed at Computer Science graduates, researchers, and computer vision experts widening their expertise.
Daniel Lélis Baggio
Daniel Lélis Baggio started his work in computer vision through medical image processing at InCor (Instituto do Coração Heart Institute) in São Paulo, where he worked with intra-vascular ultrasound image segmentation. Since then, he has focused on GPGPU and ported the segmentation algorithm to work with NVIDIA's CUDA. He has also dived into six degrees of freedom head tracking with a natural user interface group through a project called ehci (http://code.google.com/p/ehci/). He now works for the Brazilian Air Force.
A big plus is that for the most part it uses the new OpenCV C++ interface. I say "mostly" because the authors also demonstrate projects for mobile devices - one for Android and one for iOS, which I really enjoyed reading.
If you're looking for theory, you will find a bit in this book, but not much. I found the level that things were explained quite good, because you could understand what the code in the book does, but didn't necessarily have to be able to implement or understand the math behind them. The theoretical explanations have varying quality - sometimes they're right on the money, easy to understand and precisely relevant for what you're doing, and sometimes it's more than necessary. For the most part, I thought the authors did a good job of explaining what they were doing and why without forcing the reader to mire through lots of computer vision explanations that might not be interesting for somebody who's just wanting to implement a project that uses computer vision techniques. In every chapter, it was clear that the author really knew what he was talking about and many explanations you'll find in this book will be more concise and clear than what you'll find elsewhere.
From a programming standpoint, the book is a bit of a potpourri. There are lots of really good tips for working with OpenCV in general and the authors always point you to further documetation. Also, besides the full example code used in the book, there are some nice utilities included that you might want to use for your own projects. A few chapters have very concise, clear code that's easy to follow and well-designed. In other places I felt that the code was much more quick and dirty. There's some using directives, which are a pet peeve for me, as well as really big try blocks, writing to globals, and unnecessary casting. In a lot of places, you'll notice the authors using the functions from the old C interface, even though they're writing in C++. In some places, you'll also find that the code is a bit redundant and difficult to extend, but that might actually be an advantage for a beginner who's more interested in seeing how to get something done than understanding complex but elegant design patterns. Taken as a whole, there is some nice code in the book, but there's also some very ugly code here too, depending on what part you're reading. It all implements the algorithms described in the chapters, however, and that is the focus of the book. It's definitely not a collection of best programming practices, but on the other hand, that's not what it's trying to be. You will find good recipes that contain lots of examples that you can apply to your own code, and they're explained well enough to make that easy for you too.
I encourage you to read all the chapters of this book if you buy it. I read it with the intent of learning some techniques for my own projects, but although I could have done that by reading just a few chapters, I was glad to have read the whole thing. There are good tips and examples for working with OpenCV in general, and I found the sections on head pose estimation and face recognition very inspiring for my own work, even though I don't work with facial recognition at all. The book may not be a programming guide, but it definitely is a guide to computer vision and it shows you how to get very, very far, just by using OpenCV. It was well worth my time.
Bottom line - a good departure point for experienced OpenCV programmers who want to start their own projects.