Expand your knowledge of computer vision by building amazing projects with OpenCV 3
About This BookBuild computer vision projects to capture high-quality image data, detect and track objects, process the actions of humans or animals, and much moreDiscover practical and interesting innovations in computer vision while building atop a mature open-source library, OpenCV 3Familiarize yourself with multiple approaches and theories wherever critical decisions need to be madeWho This Book Is ForThis book is ideal for you if you aspire to build computer vision systems that are smarter, faster, more complex, and more practical than the competition. This is an advanced book intended for those who already have some experience in setting up an OpenCV development environment and building applications with OpenCV. You should be comfortable with computer vision concepts, object-oriented programming, graphics programming, IDEs, and the command line.
What You Will LearnSelect and configure camera systems to see invisible light, fast motion, and distant objectsBuild a “camera trap”, as used by nature photographers, and process photos to create beautiful effectsDevelop a facial expression recognition system with various feature extraction techniques and machine learning methodsBuild a panorama Android application using the OpenCV stitching module in C++ with NDK supportOptimize your object detection model, make it rotation invariant, and apply scene-specific constraints to make it faster and more robustCreate a person identification and registration system based on biometric properties of that person, such as their fingerprint, iris, and faceFuse data from videos and gyroscopes to stabilize videos shot from your mobile phone and create hyperlapse style videosIn DetailComputer vision is becoming accessible to a large audience of software developers who can leverage mature libraries such as OpenCV. However, as they move beyond their first experiments in computer vision, developers may struggle to ensure that their solutions are sufficiently well optimized, well trained, robust, and adaptive in real-world conditions. With sufficient knowledge of OpenCV, these developers will have enough confidence to go about creating projects in the field of computer vision.
This book will help you tackle increasingly challenging computer vision problems that you may face in your careers. It makes use of OpenCV 3 to work around some interesting projects. Inside these pages, you will find practical and innovative approaches that are battle-tested in the authors' industry experience and research. Each chapter covers the theory and practice of multiple complementary approaches so that you will be able to choose wisely in your future projects. You will also gain insights into the architecture and algorithms that underpin OpenCV's functionality.
We begin by taking a critical look at inputs in order to decide which kinds of light, cameras, lenses, and image formats are best suited to a given purpose. We proceed to consider the finer aspects of computational photography as we build an automated camera to assist nature photographers. You will gain a deep understanding of some of the most widely applicable and reliable techniques in object detection, feature selection, tracking, and even biometric recognition. We will also build Android projects in which we explore the complexities of camera motion: first in panoramic image stitching and then in video stabilization.
By the end of the book, you will have a much richer understanding of imaging, motion, machine learning, and the architecture of computer vision libraries and applications!
Style and approachThis book covers a combination of theory and practice. We examine blueprints for specific projects and discuss the principles behind these blueprints, in detail.