logo资料库

OpenCV 3 Blueprints.pdf

第1页 / 共514页
第2页 / 共514页
第3页 / 共514页
第4页 / 共514页
第5页 / 共514页
第6页 / 共514页
第7页 / 共514页
第8页 / 共514页
资料共514页,剩余部分请下载后查看
OpenCV 3 Blueprints
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Basic installation guides
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Getting the Most out of Your Camera System
Coloring the light
Capturing the subject in the moment
Rounding up the unusual suspects
Supercharging the PlayStation Eye
Supercharging the ASUS Xtion PRO Live and other OpenNI-compliant depth cameras
Supercharging the GS3-U3-23S6M-C and other Point Grey Research cameras
Shopping for glass
Summary
2. Photographing Nature and Wildlife with an Automated Camera
Planning the camera trap
Controlling a photo camera with gPhoto2
Writing a shell script to unmount camera drives
Setting up and testing gPhoto2
Writing a shell script for exposure bracketing
Writing a Python script to wrap gPhoto2
Finding libgphoto2 and wrappers
Detecting the presence of a photogenic subject
Detecting a moving subject
Detecting a colorful subject
Detecting the face of a mammal
Processing images to show subtle colors and motion
Creating HDR images
Creating time-lapse videos
Further study
Summary
3. Recognizing Facial Expressions with Machine Learning
Introducing facial expression recognition
Facial expression dataset
Finding the face region in the image
Extracting the face region using a face detection algorithm
Extracting facial landmarks from the face region
Introducing the flandmark library
Downloading and compiling the flandmark library
Detecting facial landmarks with flandmark
Visualizing the landmarks in an image
Extracting the face region
Software usage guide
Feature extraction
Extracting image features from facial component regions
Contributed features
Advanced features
Visualizing key points for each feature type
Computing the distribution of feature representation over k clusters
Clustering image features space into k clusters
Computing a final feature for each image
Dimensionality reduction
Software usage guide
Classification
Classification process
Splitting the dataset into a training set and testing set
Support vector machines
Training stage
Testing stage
Multi-layer perceptron
Training stage
Define the network
Train the network
Testing stage
K-Nearest Neighbors (KNN)
Training stage
The testing stage
Normal Bayes classifier
Training stage
Testing stage
Software usage guide
Evaluation
Evaluation with different learning algorithms
Evaluation with different features
Evaluation with a different number of clusters
System overview
Further reading
Compiling the opencv_contrib module
Kaggle facial expression dataset
Facial landmarks
What are facial landmarks?
How do you detect facial landmarks?
How do you use facial landmarks?
Improving feature extraction
K-fold cross validation
Summary
4. Panoramic Image Stitching Application Using Android Studio and NDK
Introducing the concept of panorama
The Android section – an application user interface
The setup activity layout
Capturing the camera frame
Using the Camera API to get the camera frame
Implementing the Capture button
Implementing the Save button
Integrating OpenCV into the Android Studio
Compiling OpenCV Android SDK to the Android Studio project
Setting up the Android Studio to work with OpenCV
Importing the OpenCV Android SDK
Creating a Java and C++ interaction with Java Native Interface (JNI)
Compiling OpenCV C++ with NDK/JNI
Implementing the OpenCV Java code
Implementing the OpenCV C++ code
Application showcase
Further improvement
Summary
5. Generic Object Detection for Industrial Applications
Difference between recognition, detection, and categorization
Smartly selecting and preparing application specific training data
The amount of training data
Creating object annotation files for the positive samples
Parsing your positive dataset into the OpenCV data vector
Parameter selection when training an object model
Training parameters involved in training an object model
The cascade classification process in detail
Step 1 – grabbing positive and negative samples
Step 2 – precalculation of integral image and all possible features from the training data
Step 3 – firing up the boosting process
Step 4 – saving the temporary result to a stage file
The resulting object model explained in detail
HAAR-like wavelet feature models
Local binary pattern models
Visualization tool for object models
Using cross-validation to achieve the best model possible
Using scene specific knowledge and constraints to optimize the detection result
Using the parameters of the detection command to influence your detection result
Increasing object instance detection and reducing false positive detections
Obtaining rotation invariance object detection
2D scale space relation
Performance evaluation and GPU optimizations
Object detection performance testing
Optimizations using GPU code
Practical applications
Summary
6. Efficient Person Identification Using Biometric Properties
Biometrics, a general approach
Step 1 – getting a good training dataset and applying application-specific normalization
Step 2 – creating a descriptor of the recorded biometric
Step 3 – using machine learning to match the retrieved feature vector
Step 4 – think about your authentication process
Face detection and recognition
Face detection using the Viola and Jones boosted cascade classifier algorithm
Data normalization on the detected face regions
Various face recognition approaches and their corresponding feature space
Eigenface decomposition through PCA
Linear discriminant analysis using the Fisher criterion
Local binary pattern histograms
The problems with facial recognition in its current OpenCV 3 based implementation
Fingerprint identification, how is it done?
Implementing the approach in OpenCV 3
Iris identification, how is it done?
Implementing the approach in OpenCV 3
Combining the techniques to create an efficient people-registration system
Summary
7. Gyroscopic Video Stabilization
Stabilization with images
Stabilization with hardware
A hybrid of hardware and software
The math
The camera model
The Camera motion
Rolling shutter compensation
Image warping
Project overview
Capturing data
Recording video
Recording gyro signals
Android specifics
Threaded overlay
Reading media files
Calibration
Data structures
Reading the gyroscope trace
The training video
Handling rotations
Rotating an image
Accumulated rotations
The calibration class
Undistorting images
Testing calibration results
Rolling shutter compensation
Calibrating the rolling shutter
Warping with grid points
Unwarping with calibration
What's next?
Identifying gyroscope axes
Estimating the rolling shutter direction
Smoother timelapses
Repository of calibration parameters
Incorporating translations
Additional tips
Use the Python pickle module
Write out single images
Testing without the delta
Summary
Index
OpenCV 3 Blueprints
Table of Contents OpenCV 3 Blueprints Credits About the Authors About the Reviewers www.PacktPub.com Support files, eBooks, discount offers, and more Why subscribe? Free access for Packt account holders Preface What this book covers What you need for this book Basic installation guides Who this book is for Conventions Reader feedback Customer support Downloading the example code Downloading the color images of this book Errata Piracy Questions 1. Getting the Most out of Your Camera System Coloring the light Capturing the subject in the moment Rounding up the unusual suspects Supercharging the PlayStation Eye Supercharging the ASUS Xtion PRO Live and other OpenNI-compliant depth cameras Supercharging the GS3-U3-23S6M-C and other Point Grey Research cameras Shopping for glass
Summary 2. Photographing Nature and Wildlife with an Automated Camera Planning the camera trap Controlling a photo camera with gPhoto2 Writing a shell script to unmount camera drives Setting up and testing gPhoto2 Writing a shell script for exposure bracketing Writing a Python script to wrap gPhoto2 Finding libgphoto2 and wrappers Detecting the presence of a photogenic subject Detecting a moving subject Detecting a colorful subject Detecting the face of a mammal Processing images to show subtle colors and motion Creating HDR images Creating time-lapse videos Further study Summary 3. Recognizing Facial Expressions with Machine Learning Introducing facial expression recognition Facial expression dataset Finding the face region in the image Extracting the face region using a face detection algorithm Extracting facial landmarks from the face region Introducing the flandmark library Downloading and compiling the flandmark library Detecting facial landmarks with flandmark Visualizing the landmarks in an image Extracting the face region Software usage guide Feature extraction
Extracting image features from facial component regions Contributed features Advanced features Visualizing key points for each feature type Computing the distribution of feature representation over k clusters Clustering image features space into k clusters Computing a final feature for each image Dimensionality reduction Software usage guide Classification Classification process Splitting the dataset into a training set and testing set Support vector machines Training stage Testing stage Multi-layer perceptron Training stage Define the network Train the network Testing stage K-Nearest Neighbors (KNN) Training stage The testing stage Normal Bayes classifier Training stage Testing stage Software usage guide Evaluation Evaluation with different learning algorithms Evaluation with different features Evaluation with a different number of clusters
System overview Further reading Compiling the opencv_contrib module Kaggle facial expression dataset Facial landmarks What are facial landmarks? How do you detect facial landmarks? How do you use facial landmarks? Improving feature extraction K-fold cross validation Summary 4. Panoramic Image Stitching Application Using Android Studio and NDK Introducing the concept of panorama The Android section – an application user interface The setup activity layout Capturing the camera frame Using the Camera API to get the camera frame Implementing the Capture button Implementing the Save button Integrating OpenCV into the Android Studio Compiling OpenCV Android SDK to the Android Studio project Setting up the Android Studio to work with OpenCV Importing the OpenCV Android SDK Creating a Java and C++ interaction with Java Native Interface (JNI) Compiling OpenCV C++ with NDK/JNI Implementing the OpenCV Java code Implementing the OpenCV C++ code Application showcase Further improvement Summary 5. Generic Object Detection for Industrial Applications
Difference between recognition, detection, and categorization Smartly selecting and preparing application specific training data The amount of training data Creating object annotation files for the positive samples Parsing your positive dataset into the OpenCV data vector Parameter selection when training an object model Training parameters involved in training an object model The cascade classification process in detail Step 1 – grabbing positive and negative samples Step 2 – precalculation of integral image and all possible features from the training data Step 3 – firing up the boosting process Step 4 – saving the temporary result to a stage file The resulting object model explained in detail HAAR-like wavelet feature models Local binary pattern models Visualization tool for object models Using cross-validation to achieve the best model possible Using scene specific knowledge and constraints to optimize the detection result Using the parameters of the detection command to influence your detection result Increasing object instance detection and reducing false positive detections Obtaining rotation invariance object detection 2D scale space relation Performance evaluation and GPU optimizations Object detection performance testing Optimizations using GPU code Practical applications Summary 6. Efficient Person Identification Using Biometric Properties Biometrics, a general approach Step 1 – getting a good training dataset and applying application-specific normalization
分享到:
收藏