OpenCV Blueprints: Expand your knowledge of computer vision by building amazing projects with OpenCV!
This GitHub repository contains the source code associated with the PacktPub released book called "OpenCV Blueprints". It contains all the software and data used for each chapter from the book, as wel as guidelines for setting up a stable OpenCV environment to use with this book. All the software is tested and working on Linux, MacOSX and Windows systems. If you do encounter any problems, do not hesitate to open up an issue so we can get back to you with help.
Computer 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. For readers who already know the basics of computer vision programming, this book shows how to capture high-quality data quickly, fuse multiple kinds of data, train reliable recognition and spatial models, and integrate everything into usable and responsive applications.
This book is great for programmers who already have some basic knowledge of OpenCV, and want to tackle increasingly challenging computer vision problems in their careers. 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. We 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 also build Android projects in which we explore 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!
- Build computer vision projects to capture high-quality image data, detect and track objects, process the actions of humans or animals, and much more.
- Discover practical and interesting innovations in computer vision while building atop a mature open-source library, OpenCV 3..
- Familiarize yourself with multiple approaches and theories wherever critical decisions need to be made.
- Select and configure camera systems to see invisible light, fast motion, and distant objects.
- Build a “camera trap”, as used by nature photographers, and process photos to create beautiful effects.
- Build a facial recognition system with various feature extraction techniques and machine learning methods.
- Build a panorama android application using OpenCV stitching module in C++ with NDK support.
- Optimize your object detection model, make it rotation invariant and apply scene specific constraints to make it faster and more robust.
- Build a person identification and registration system based on biometric properties of that person, such as their fingerprint, iris, and face.
- Fuse data from videos and gyroscopes to stabilize videos shot from your mobile phone and create hyperlapse style videos.
This is an advanced book intended for readers who already have some experience in setting up an OpenCV development environment and building applications with OpenCV. The reader is generally comfortable with computer vision concepts, object-oriented programming, graphics programming, IDEs, and the command line. The reader aspires to build computer vision systems that are smarter, faster, more complex, and more practical than the competition.
This book covers a combination of theory and practice. We examine blueprints for specific projects and discuss the principles behind these blueprints so that you can become a better architect of computer vision systems. We consider many components, from optics to AI to UI, along with many requirements, from cost to speed to reliability.
Joseph Howse lives in Canada. During the cold winters, he grows a beard and his four cats grow thick coats of fur. He combs the cats every day. Sometimes the cats pull his beard.Joseph has been writing for Packt Publishing since 2012. His books include OpenCV for Secret Agents, OpenCV Blueprints, Android Application Programming with OpenCV 3, OpenCV Computer Vision with Python, and Python Game Programming by Example.
When he is not writing books or grooming cats, Joseph provides consulting, training, and software development services through his company, Nummist Media http://nummist.com.
Quan Hua is a Software Engineer at Autonomous, a startup company in robotics, where he focuses on developing Computer Vision and Machine Learning applications for Personal robots. He earned a Bachelor of Science degree at the University of Science, Vietnam, specializing in computer vision, and published a research paper in CISIM 2014. As the owner of , he also blogs about various computer vision techniques to share his experience to the community. Steven Puttemans is a PhD research candidate at the Katholieke Universiteit Leuven. He is an enthusiastic researcher whose goal is to combine state-of-the-art computer vision algorithms with real-life industrial problems to provide robust and complete solutions for the industry. His previous projects include TOBCAT , an open source object detection based solution for industrial object detection problems using advanced object categorization techniques.Steven is also an active participant in the OpenCV community. He is a moderator of the OpenCV Q&A Forum, and has submitted or reviewed many bugfixes and improvements for OpenCV 3.0.
More info about Steven’s research, projects and interests can be found at https://stevenputtemans.github.io!
Utkarsh Sinha lives in Bangalore, India and works as a Technical Director at Dreamworks Animation. He earned his Bachelor of Engineering in Computer Science and Master of Science in Mathematics from BITS-Pilani, Goa. He has been working in the field of computer vision for about 6 years as a consultant and as a software engineer at startups.He blogs at http://utkarshsinha.com/ about various topics in technology - most of which revolve around computer vision. He also publishes computer vision tutorials on the internet through his website AI Shack http://aishack.in/. His articles help thousands of people understand concepts in computer vision every day.