Building Computer Vision Projects with OpenCV 4 and C++
Implement complex computer vision algorithms and explore deep learning and face detection
David Milln Escriv
Prateek Joshi
Vincius G. Mendona
Roy Shilkrot
BIRMINGHAM - MUMBAI
Building Computer Vision Projects with OpenCV 4 and C++
Copyright 2019 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors nor Packt Publishing or its dealers and distributors will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2019
Production reference: 1220319
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-83864-467-3
www.packtpub.com
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry-leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Packt.com
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.packt.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at customercare@packtpub.com for more details.
At www.packt.com , you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Contributors
About the authors
David Milln Escriv was eight years old when he wrote his first program on an 8086 PC using the BASIC language. He completed his studies in IT from the Universitat Politcnica de Valencia with honors in human-computer interaction supported by computer vision with OpenCV (v0.96). He has a master's degree in artificial intelligence, computer graphics, and pattern recognition, focusing on pattern recognition and computer vision. He also has more than nine years' experience in computer vision, computer graphics, and pattern recognition. He is the author of the Damiles Blog, where he publishes articles and tutorials on OpenCV, computer vision in general, and optical character recognition algorithms.
Prateek Joshi is an artificial intelligence researcher, an author of eight published books, and a TEDx speaker. He has been featured in Forbes 30 Under 30, CNBC, TechCrunch, Silicon Valley Business Journal, and many more publications. He is the founder of Pluto AI, a venture-funded Silicon Valley start-up building an intelligence platform for water facilities. He graduated from the University of Southern California with a Master's degree specializing in Artificial Intelligence. He has previously worked at NVIDIA and Microsoft Research.
Vincius G. Mendona is a computer graphics university professor at Pontifical Catholic University of Paran (PUCPR). He started programming with C++ back in 1998, and ventured into the field of computer gaming and computer graphics back in 2006. He is currently a mentor at the Apple Developer Academy in Brazil, working with, and teaching, metal, machine learning and computer vision for mobile devices. He has served as a reviewer on other Pack books, including OpenNI Cookbook, and Mastering OpenCVand Computer Vision with OpenCV 3 and Qt5. In his research, he has used Kinect, OpenNI, and OpenCV to recognize Brazilian sign language gestures. His areas of interest include mobile, OpenGL, image processing, computer vision, and project management.
Roy Shilkrot is an assistant professor of computer science at Stony Brook University, where he leads the Human Interaction group. Dr. Shilkrot's research is in computer vision, human-computer interfaces, and the cross-over between these two domains, funded by US federal, New York State, and industry grants. Dr. Shilkrot graduated from the Massachusetts Institute of Technology (MIT) with a PhD, and has authored more than 25 peer-reviewed papers published at premier computer science conferences, such as CHI and SIGGRAPH, as well as in leading academic journals such as ACM Transaction on Graphics (TOG) and ACM Transactions on Computer-Human Interaction (ToCHI).
Packt is searching for authors like you
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Preface
OpenCV is one of the best open source computer vision libraries available to developers. With OpenCV, developers can create complete projects for image processing, object detection, and motion detection. This learning path is for absolute beginners who wish to learn how to build OpenCV projects from scratch with working code samples. We will begin with the introduction on computer vision and its basic concepts such as filtering, histograms, Object segmentation, and object detection. As you progress through the course you will then dig deeper into image processing exploring various computer vision algorithms and understand how the latest advancement in machine learning and deep learning enhances the process of object detection. You will put this knowledge to practice by building real-world computer vision applications as you progress through the course.
Later you will get acquainted with the API functionality of OpenCV and gain insights into design choices in a complete computer vision project. You'll also go beyond the basics of computer vision to implement solutions for complex image processing projects such as skin color analysis, face landmark and pose estimation, Augmented reality applications, and Number plate recognition. Finally, towards the end of the learning path, you will learn about certain best practices and common pitfalls to avoid while building computer vision applications.
Next page