Mastering OpenCV with Practical Computer Vision Projects
Formats:
save 15%!
save 37%!
Free Shipping!
| Also available on: |
|
- 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
Book Details
Language : EnglishPaperback : 340 pages [ 235mm x 191mm ]
Release Date : December 2012
ISBN : 1849517827
ISBN 13 : 9781849517829
Author(s) : Daniel Lélis Baggio, Shervin Emami, David Millán Escrivá, Khvedchenia Ievgen, Naureen Mahmood, Jason Saragih, Roy Shilkrot
Topics and Technologies : All Books, Open Source, Web Graphics & Video
Table of Contents
PrefaceChapter 1: Cartoonifier and Skin Changer for Android
Chapter 2: Marker-based Augmented Reality on iPhone or iPad
Chapter 3: Marker-less Augmented Reality
Chapter 4: Exploring Structure from Motion Using OpenCV
Chapter 5: Number Plate Recognition Using SVM and Neural Networks
Chapter 6: Non-rigid Face Tracking
Chapter 7: 3D Head Pose Estimation Using AAM and POSIT
Chapter 8: Face Recognition using Eigenfaces or Fisherfaces
Index
- Chapter 1: Cartoonifier and Skin Changer for Android
- Accessing the webcam
- Main camera processing loop for a desktop app
- Generating a black-and-white sketch
- Generating a color painting and a cartoon
- Generating an "evil" mode using edge filters
- Generating an "alien" mode using skin detection
- Skin-detection algorithm
- Showing the user where to put their face
- Implementation of the skin-color changer
- Porting from desktop to Android
- Setting up an Android project that uses OpenCV
- Color formats used for image processing on Android
- Input color format from the camera
- Output color format for display
- Adding the cartoonifier code to the Android NDK app
- Reviewing the Android app
- Cartoonifying the image when the user taps the screen
- Saving the image to a file and to the Android picture gallery
- Showing an Android notification message about a saved image
- Changing cartoon modes through the Android menu bar
- Reducing the random pepper noise from the sketch image
- Showing the FPS of the app
- Using a different camera resolution
- Customizing the app
- Summary
- Chapter 2: Marker-based Augmented Reality on iPhone or iPad
- Creating an iOS project that uses OpenCV
- Adding OpenCV framework
- Including OpenCV headers
- Application architecture
- Marker detection
- Marker identification
- Grayscale conversion
- Image binarization
- Contours detection
- Candidates search
- Marker code recognition
- Reading marker code
- Marker location refinement
- Placing a marker in 3D
- Camera calibration
- Marker pose estimation
- Rendering the 3D virtual object
- Creating the OpenGL rendering layer
- Rendering an AR scene
- Summary
- References
- Chapter 3: Marker-less Augmented Reality
- Marker-based versus marker-less AR
- Using feature descriptors to find an arbitrary image on video
- Feature extraction
- Definition of a pattern object
- Matching of feature points
- PatternDetector.cpp
- Outlier removal
- Cross-match filter
- Ratio test
- Homography estimation
- Homography refinement
- Putting it all together
- Pattern pose estimation
- PatternDetector.cpp
- Obtaining the camera-intrinsic matrix
- Pattern.cpp
- Application infrastructure
- ARPipeline.hpp
- ARPipeline.cpp
- Enabling support for 3D visualization in OpenCV
- Creating OpenGL windows using OpenCV
- Video capture using OpenCV
- Rendering augmented reality
- ARDrawingContext.hpp
- ARDrawingContext.cpp
- Demonstration
- main.cpp
- Summary
- References
- Chapter 4: Exploring Structure from Motion Using OpenCV
- Structure from Motion concepts
- Estimating the camera motion from a pair of images
- Point matching using rich feature descriptors
- Point matching using optical flow
- Finding camera matrices
- Reconstructing the scene
- Reconstruction from many views
- Refinement of the reconstruction
- Visualizing 3D point clouds with PCL
- Using the example code
- Summary
- References
- Chapter 5: Number Plate Recognition Using SVM and Neural Networks
- Introduction to ANPR
- ANPR algorithm
- Plate detection
- Segmentation
- Classification
- Plate recognition
- OCR segmentation
- Feature extraction
- OCR classification
- Evaluation
- Summary
- Chapter 6: Non-rigid Face Tracking
- Overview
- Utilities
- Object-oriented design
- Data collection: Image and video annotation
- Training data types
- Annotation tool
- Pre-annotated data (The MUCT dataset)
- Geometrical constraints
- Procrustes analysis
- Linear shape models
- A combined local-global representation
- Training and visualization
- Facial feature detectors
- Correlation-based patch models
- Learning discriminative patch models
- Generative versus discriminative patch models
- Accounting for global geometric transformations
- Training and visualization
- Face detection and initialization
- Face tracking
- Face tracker implementation
- Training and visualization
- Generic versus person-specific models
- Summary
- References
- Chapter 7: 3D Head Pose Estimation Using AAM and POSIT
- Active Appearance Models overview
- Active Shape Models
- Getting the feel of PCA
- Triangulation
- Triangle texture warping
- Model Instantiation – playing with the Active Appearance Model
- AAM search and fitting
- POSIT
- Diving into POSIT
- POSIT and head model
- Tracking from webcam or video file
- Summary
- References
- Chapter 8: Face Recognition using Eigenfaces or Fisherfaces
- Introduction to face recognition and face detection
- Step 1: Face detection
- Implementing face detection using OpenCV
- Loading a Haar or LBP detector for object or face detection
- Accessing the webcam
- Detecting an object using the Haar or LBP Classifier
- Detecting the face
- Step 2: Face preprocessing
- Eye detection
- Eye search regions
- Step 3: Collecting faces and learning from them
- Collecting preprocessed faces for training
- Training the face recognition system from collected faces
- Viewing the learned knowledge
- Average face
- Eigenvalues, Eigenfaces, and Fisherfaces
- Step 4: Face recognition
- Face identification: Recognizing people from their face
- Face verification: Validating that it is the claimed person
- Finishing touches: Saving and loading files
- Finishing touches: Making a nice and interactive GUI
- Drawing the GUI elements
- Checking and handling mouse clicks
- Summary
- References
Daniel Lélis Baggio
Shervin Emami
David Millán Escrivá
Khvedchenia Ievgen
Naureen Mahmood
Jason Saragih
Roy Shilkrot
Code Downloads
Download the code and support files for this book.
Submit Errata
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Errata
- 1 submitted: last submission 02 Jan 2013Readers can obtain the latest code bundle from: https://github.com/MasteringOpenCV/code
Sample chapters
You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.
- 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
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.
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.
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.

