舉報(bào)

會(huì)員
OpenCV 4 with Python Blueprints
Dr. Menua Gevorgyan Arsen Mamikonyan Michael Beyeler 著
更新時(shí)間:2021-06-24 16:50:46
開會(huì)員,本書免費(fèi)讀 >
OpenCVisanativecross-platformC++libraryforcomputervision,machinelearning,andimageprocessing.ItisincreasinglybeingadoptedinPythonfordevelopment.Thisbookwillgetyouhands-onwithawiderangeofintermediatetoadvancedprojectsusingthelatestversionoftheframeworkandlanguage,OpenCV4andPython3.8,insteadofonlycoveringthecoreconceptsofOpenCVintheoreticallessons.Thisupdatedsecondeditionwillguideyouthroughworkingonindependenthands-onprojectsthatfocusonessentialOpenCVconceptssuchasimageprocessing,objectdetection,imagemanipulation,objecttracking,and3Dscenereconstruction,inadditiontostatisticallearningandneuralnetworks.You’llbeginwithconceptssuchasimagefilters,Kinectdepthsensor,andfeaturematching.Asyouadvance,you’llnotonlygethands-onwithreconstructingandvisualizingascenein3Dbutalsolearntotrackvisuallysalientobjects.Thebookwillhelpyoufurtherbuildonyourskillsbydemonstratinghowtorecognizetrafficsignsandemotionsonfaces.Later,you’llunderstandhowtoalignimages,anddetectandtrackobjectsusingneuralnetworks.BytheendofthisOpenCVPythonbook,you’llhavegainedhands-onexperienceandbecomeproficientatdevelopingadvancedcomputervisionappsaccordingtospecificbusinessneeds.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Working with a GPU
- Defining a Dockerfile
- Setting Up a Docker Container
- Understanding Numba CUDA and GPU acceleration
品牌:中圖公司
上架時(shí)間:2021-06-24 15:29:35
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時(shí)間:2021-06-24 16:50:46
- Other Books You May Enjoy
- Working with a GPU
- Defining a Dockerfile
- Setting Up a Docker Container
- Understanding Numba CUDA and GPU acceleration
- Accelerating with the CPU
- Accelerating with Numba
- Profiling and Accelerating Your Apps
- Summary
- Seeing the app in action
- Defining the main class of the tracker
- Associating detections with trackers
- Implementing a Kalman filter
- Converting boundary boxes to observations
- Using a box tracker with the Kalman filter
- Understanding the Kalman filter
- Implementing a Sort tracker
- Tracking detected objects
- Training SSD- and YOLO-like networks
- Learning about Intersection over Union
- Single-pass detectors
- The sliding-window approach
- The single-object detector
- Understanding object detectors
- Using other detectors
- Detecting objects with SSD
- Preparing the main script
- Planning the app
- Getting started
- Learning to Detect and Track Objects
- Dataset attribution
- Summary
- Seeing inference in action
- Training the model
- Understanding backpropagation
- Preparing the model
- Localizing with CNNs
- Training and evaluating the classifier
- Preparing the pet type and breed classifier
- Learning about transfer learning
- Understanding CNNs
- Classifying with CNNs
- Creating a TensorFlow dataset
- Downloading and parsing the dataset
- Preparing the dataset
- Preparing an inference script
- Planning the app
- Getting started
- Learning to Classify and Localize Objects
- Attributions
- Further reading
- Summary
- Putting it all together
- Running the script
- Testing the MLP
- Training the MLP
- Crafting an MLP for facial expression recognition
- Knowing about deep architectures
- Understanding a perceptron
- Understanding MLPs
- Learning about PCA
- Processing the dataset
- Understanding facial emotion recognition
- Storing the data
- Processing the current frame
- Augmenting the basic layout
- Implementing the data collector GUI
- Running the application
- Assembling a training dataset
- Collecting data
- Transforming the face
- Detecting the eyes
- Preprocessing detected faces
- Detecting faces in grayscale images
- Understanding the FaceDetector class
- Using a pre-trained cascade classifier
- Understanding pre-trained cascade classifiers
- Learning about Haar-based cascade classifiers
- Learning about face detection
- Planning the app
- Getting started
- Learning to Recognize Facial Emotions
- Dataset attribution
- Summary
- Improving results with neural networks
- Putting it all together
- Recall
- Precision
- Confusion matrix
- Accuracy
- Testing the SVM
- Training the SVM
- Using SVMs for multiclass classification
- Learning about SVMs
- Mapping HOG descriptor
- Using SURF descriptor
- Understanding color spaces
- Learning about grayscale features
- Understanding common preprocessing
- Learning about dataset feature extraction
- Parsing the dataset
- Understanding the GTSRB dataset
- The testing procedure
- The training procedure
- Briefing on supervised learning concepts
- Planning the app
- Getting started
- Learning to Recognize Traffic Signs
- Dataset attribution
- Summary
- Putting it all together
- Learning about the OpenCV Tracking API
- Automatically tracking all players on a soccer field
- Understanding mean-shift tracking
- Detecting proto-objects in a scene
- Generating a saliency map with the spectral residual approach
- Understanding the natural scene statistics
- Learning about Fourier analysis
- Mapping visual saliency
- Understanding the MultiObjectTracker class
- Implementing the main function
- Setting up the app
- Planning the app
- Understanding visual saliency
- Getting started
- Tracking Visually Salient Objects
- Attributions
- Further reading
- Summary
- Improving panorama stitching
- Blending the images together
- Creating the canvas for the panorama
- Finding camera parameters
- Figuring out relative positions and the final picture size
- Writing script arguments and filtering images
- Understanding panorama stitching
- Displaying HDR images
- Writing an HDR script using OpenCV
- Estimating the camera response function
- Extracting exposure strength from images
- Generating HDR images using multiple exposure images
- ISO speed
- Aperture
- Shutter speed
- Exploring ways to vary exposure
- Understanding high-dynamic-range imaging
- Using gamma correction
- Learning about RAW images
- Understanding the 8-bit problem
- Planning the app
- Getting started
- Using Computational Photography with OpenCV
- Summary
- Learning about structure from motion
- Understanding 3D point cloud visualization
- Reconstructing the scene
- Applying image rectification
- Finding the camera matrices
- Using point matching with optic flow
- Applying point matching with rich feature descriptors
- Estimating the camera motion from a pair of images
- Implementing the SceneReconstruction3D class
- Understanding the main routine function
- Setting up the app
- Finding the camera matrix
- Collecting image and object points
- Initializing the algorithm
- Defining the camera calibration GUI
- Estimating the intrinsic camera parameters
- Understanding the pinhole camera model
- Learning about camera calibration
- Planning the app
- Getting started
- 3D Scene Reconstruction Using Structure from Motion
- Attributions
- Summary
- Seeing the algorithm in action
- Understanding early outlier detection and rejection
- Learning feature tracking
- Warping the image
- Mapping homography estimation
- Visualizing feature matches
- Testing the ratio for outlier removal
- Matching features across images with FLANN
- Understanding feature matching
- Obtaining feature descriptors with SURF
- Detecting features in an image with SURF
- Looking at feature detection
- Learning feature extraction
- Understanding the process flow
- Displaying results
- Running the app – the main() function routine
- Setting up the app
- Planning the app
- Listing the tasks performed by the app
- Getting started
- Finding Objects via Feature Matching and Perspective Transforms
- Summary
- Classifying hand gestures based on the number of extended fingers
- Distinguishing between different causes of convexity defects
- Performing hand gesture recognition
- Finding the convexity defects of a convex hull
- Finding the convex hull of a contour area
- Determining the contour of the segmented hand region
- Performing hand shape analysis
- Finding connected components in a segmentation mask
- Applying morphological closing for smoothening
- Finding the most prominent depth of the image center region
- Understanding hand region segmentation
- Tracking hand gestures in real time
- Running the app and main function routine
- Utilizing OpenNI-compatible sensors
- Accessing the Kinect 3D sensor
- Setting up the app
- Planning the app
- Getting started
- Hand Gesture Recognition Using a Kinect Depth Sensor
- Attributions
- Summary
- Drafting a custom filter layout
- Handling video streams
- Learning about a basic GUI layout
- Understanding the GUI constructor
- Mapping the GUI base class
- Running the app
- Putting it all together
- Combining colors and outlines to produce a cartoon
- Detecting and emphasizing prominent edges
- Using a bilateral filter for edge-aware smoothing
- Cartoonizing an image
- Designing the warming and cooling effect
- Implementing a curve filter using lookup tables
- Using color manipulation via curve shifting
- Generating a warming and cooling filter
- Using an optimized version of a Gaussian blur
- Applying pencil sketch transformation
- Implementing a Gaussian blur with two-dimensional convolution
- Understanding approaches for using dodging and burning techniques
- Creating a black-and-white pencil sketch
- Planning the app
- Getting started
- Fun with Filters
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Code in Action
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the authors
- Contributors
- Why subscribe?
- About Packt
- OpenCV 4 with Python Blueprints Second Edition
- Copyright and Credits
- Title Page
- 封面
- 封面
- Title Page
- Copyright and Credits
- OpenCV 4 with Python Blueprints Second Edition
- About Packt
- Why subscribe?
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Code in Action
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Fun with Filters
- Getting started
- Planning the app
- Creating a black-and-white pencil sketch
- Understanding approaches for using dodging and burning techniques
- Implementing a Gaussian blur with two-dimensional convolution
- Applying pencil sketch transformation
- Using an optimized version of a Gaussian blur
- Generating a warming and cooling filter
- Using color manipulation via curve shifting
- Implementing a curve filter using lookup tables
- Designing the warming and cooling effect
- Cartoonizing an image
- Using a bilateral filter for edge-aware smoothing
- Detecting and emphasizing prominent edges
- Combining colors and outlines to produce a cartoon
- Putting it all together
- Running the app
- Mapping the GUI base class
- Understanding the GUI constructor
- Learning about a basic GUI layout
- Handling video streams
- Drafting a custom filter layout
- Summary
- Attributions
- Hand Gesture Recognition Using a Kinect Depth Sensor
- Getting started
- Planning the app
- Setting up the app
- Accessing the Kinect 3D sensor
- Utilizing OpenNI-compatible sensors
- Running the app and main function routine
- Tracking hand gestures in real time
- Understanding hand region segmentation
- Finding the most prominent depth of the image center region
- Applying morphological closing for smoothening
- Finding connected components in a segmentation mask
- Performing hand shape analysis
- Determining the contour of the segmented hand region
- Finding the convex hull of a contour area
- Finding the convexity defects of a convex hull
- Performing hand gesture recognition
- Distinguishing between different causes of convexity defects
- Classifying hand gestures based on the number of extended fingers
- Summary
- Finding Objects via Feature Matching and Perspective Transforms
- Getting started
- Listing the tasks performed by the app
- Planning the app
- Setting up the app
- Running the app – the main() function routine
- Displaying results
- Understanding the process flow
- Learning feature extraction
- Looking at feature detection
- Detecting features in an image with SURF
- Obtaining feature descriptors with SURF
- Understanding feature matching
- Matching features across images with FLANN
- Testing the ratio for outlier removal
- Visualizing feature matches
- Mapping homography estimation
- Warping the image
- Learning feature tracking
- Understanding early outlier detection and rejection
- Seeing the algorithm in action
- Summary
- Attributions
- 3D Scene Reconstruction Using Structure from Motion
- Getting started
- Planning the app
- Learning about camera calibration
- Understanding the pinhole camera model
- Estimating the intrinsic camera parameters
- Defining the camera calibration GUI
- Initializing the algorithm
- Collecting image and object points
- Finding the camera matrix
- Setting up the app
- Understanding the main routine function
- Implementing the SceneReconstruction3D class
- Estimating the camera motion from a pair of images
- Applying point matching with rich feature descriptors
- Using point matching with optic flow
- Finding the camera matrices
- Applying image rectification
- Reconstructing the scene
- Understanding 3D point cloud visualization
- Learning about structure from motion
- Summary
- Using Computational Photography with OpenCV
- Getting started
- Planning the app
- Understanding the 8-bit problem
- Learning about RAW images
- Using gamma correction
- Understanding high-dynamic-range imaging
- Exploring ways to vary exposure
- Shutter speed
- Aperture
- ISO speed
- Generating HDR images using multiple exposure images
- Extracting exposure strength from images
- Estimating the camera response function
- Writing an HDR script using OpenCV
- Displaying HDR images
- Understanding panorama stitching
- Writing script arguments and filtering images
- Figuring out relative positions and the final picture size
- Finding camera parameters
- Creating the canvas for the panorama
- Blending the images together
- Improving panorama stitching
- Summary
- Further reading
- Attributions
- Tracking Visually Salient Objects
- Getting started
- Understanding visual saliency
- Planning the app
- Setting up the app
- Implementing the main function
- Understanding the MultiObjectTracker class
- Mapping visual saliency
- Learning about Fourier analysis
- Understanding the natural scene statistics
- Generating a saliency map with the spectral residual approach
- Detecting proto-objects in a scene
- Understanding mean-shift tracking
- Automatically tracking all players on a soccer field
- Learning about the OpenCV Tracking API
- Putting it all together
- Summary
- Dataset attribution
- Learning to Recognize Traffic Signs
- Getting started
- Planning the app
- Briefing on supervised learning concepts
- The training procedure
- The testing procedure
- Understanding the GTSRB dataset
- Parsing the dataset
- Learning about dataset feature extraction
- Understanding common preprocessing
- Learning about grayscale features
- Understanding color spaces
- Using SURF descriptor
- Mapping HOG descriptor
- Learning about SVMs
- Using SVMs for multiclass classification
- Training the SVM
- Testing the SVM
- Accuracy
- Confusion matrix
- Precision
- Recall
- Putting it all together
- Improving results with neural networks
- Summary
- Dataset attribution
- Learning to Recognize Facial Emotions
- Getting started
- Planning the app
- Learning about face detection
- Learning about Haar-based cascade classifiers
- Understanding pre-trained cascade classifiers
- Using a pre-trained cascade classifier
- Understanding the FaceDetector class
- Detecting faces in grayscale images
- Preprocessing detected faces
- Detecting the eyes
- Transforming the face
- Collecting data
- Assembling a training dataset
- Running the application
- Implementing the data collector GUI
- Augmenting the basic layout
- Processing the current frame
- Storing the data
- Understanding facial emotion recognition
- Processing the dataset
- Learning about PCA
- Understanding MLPs
- Understanding a perceptron
- Knowing about deep architectures
- Crafting an MLP for facial expression recognition
- Training the MLP
- Testing the MLP
- Running the script
- Putting it all together
- Summary
- Further reading
- Attributions
- Learning to Classify and Localize Objects
- Getting started
- Planning the app
- Preparing an inference script
- Preparing the dataset
- Downloading and parsing the dataset
- Creating a TensorFlow dataset
- Classifying with CNNs
- Understanding CNNs
- Learning about transfer learning
- Preparing the pet type and breed classifier
- Training and evaluating the classifier
- Localizing with CNNs
- Preparing the model
- Understanding backpropagation
- Training the model
- Seeing inference in action
- Summary
- Dataset attribution
- Learning to Detect and Track Objects
- Getting started
- Planning the app
- Preparing the main script
- Detecting objects with SSD
- Using other detectors
- Understanding object detectors
- The single-object detector
- The sliding-window approach
- Single-pass detectors
- Learning about Intersection over Union
- Training SSD- and YOLO-like networks
- Tracking detected objects
- Implementing a Sort tracker
- Understanding the Kalman filter
- Using a box tracker with the Kalman filter
- Converting boundary boxes to observations
- Implementing a Kalman filter
- Associating detections with trackers
- Defining the main class of the tracker
- Seeing the app in action
- Summary
- Profiling and Accelerating Your Apps
- Accelerating with Numba
- Accelerating with the CPU
- Understanding Numba CUDA and GPU acceleration
- Setting Up a Docker Container
- Defining a Dockerfile
- Working with a GPU
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時(shí)間:2021-06-24 16:50:46