توضیحاتی در مورد کتاب :
با الگوریتمهای بینایی رایانهای سنتی و رویکردهای یادگیری عمیق آشنا شوید و با OpenCV و سایر چارچوبهای یادگیری ماشینی برنامههای کاربردی در دنیای واقعی بسازید. انسانها یادگیری خود را در زمینههای مختلف بینایی کامپیوتر پیادهسازی کنید. مفاهیم پیشرفته در OpenCV مانند یادگیری ماشین، شبکه عصبی مصنوعی و واقعیت افزوده را کاوش کنید. به طور فزاینده ای در پایتون برای توسعه پذیرفته می شود. این کتاب شما را با طیف گسترده ای از پروژه های متوسط تا پیشرفته با استفاده از آخرین نسخه چارچوب و زبان، OpenCV 4 و Python 3.8، به جای پوشش دادن مفاهیم اصلی OpenCV در دروس تئوری، آشنا می کند. این نسخه دوم به روز شده شما را از طریق کار بر روی پروژه های عملی مستقل راهنمایی می کند که بر مفاهیم ضروری OpenCV مانند پردازش تصویر، تشخیص اشیا، دستکاری تصویر، ردیابی اشیا و بازسازی صحنه سه بعدی، علاوه بر یادگیری آماری و شبکه های عصبی تمرکز دارند. شما با مفاهیمی مانند فیلترهای تصویر، حسگر عمق کینکت و تطبیق ویژگی ها شروع خواهید کرد. با پیشروی، نه تنها با بازسازی و تجسم یک صحنه به صورت سه بعدی عمل می کنید، بلکه یاد می گیرید که اشیاء برجسته بصری را ردیابی کنید. این کتاب به شما کمک می کند تا با نشان دادن نحوه تشخیص علائم راهنمایی و رانندگی و احساسات روی چهره، مهارت های خود را بیشتر بسازید. بعداً نحوه تراز کردن تصاویر و شناسایی و ردیابی اشیاء با استفاده از شبکه های عصبی را خواهید فهمید. در پایان این کتاب OpenCV Python، تجربه عملی به دست آورده اید و در توسعه برنامه های بینایی کامپیوتری پیشرفته با توجه به نیازهای تجاری خاص مهارت خواهید داشت. آنچه یاد خواهید گرفت ایجاد جلوه های بصری در زمان واقعی با استفاده از فیلترها و تکنیک های دستکاری تصویر مانند جاخالی دادن و سوزاندن ژست های دست در زمان واقعی و انجام تجزیه و تحلیل شکل دست بر اساس خروجی سنسور مایکروسافت کینکت یادگیری استخراج ویژگی و تطبیق ویژگی ها ردیابی اشیاء دلخواه دلخواه بازسازی صحنه دنیای واقعی سه بعدی با استفاده از حرکت دوربین دو بعدی و تکنیک های بازپرداخت دوربین تشخیص چهره با استفاده از طبقه بندی آبشاری و شناسایی احساسات در چهره انسان با استفاده از پرسپترون های چندلایه طبقه بندی، بومی سازی و تشخیص اشیاء با شبکه های عصبی عمیق این کتاب کیست برای این کتاب برای کاربران سطح متوسط OpenCV است که به دنبال افزایش مهارت های خود با توسعه برنامه های کاربردی پیشرفته هستند. آشنایی با مفاهیم OpenCV و کتابخانه های پایتون و دانش اولیه زبان برنامه نویسی پایتون فرض می شود.
فهرست مطالب :
Cover
Title Page
Copyright and Credits
About Packt
Contributors
Table of Contents
Preface
Chapter 1: 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
Chapter 2: 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
Chapter 3: 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
Chapter 4: 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
Chapter 5: 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
Chapter 6: 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
Chapter 7: 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
Chapter 8: 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
Chapter 9: 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
Chapter 10: 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
Appendix A: Profiling and Accelerating Your Apps
Accelerating with Numba
Accelerating with the CPU
Understanding Numba, CUDA, and GPU acceleration
Appendix B: Setting Up a Docker Container
Defining a Dockerfile
Working with a GPU
Other Books You May Enjoy
Index
توضیحاتی در مورد کتاب به زبان اصلی :
Get to grips with traditional computer vision algorithms and deep learning approaches, and build real-world applications with OpenCV and other machine learning frameworks Key Features Understand how to capture high-quality image data, detect and track objects, and process the actions of animals or humans Implement your learning in different areas of computer vision Explore advanced concepts in OpenCV such as machine learning, artificial neural network, and augmented reality Book Description OpenCV is a native cross-platform C++ library for computer vision, machine learning, and image processing. It is increasingly being adopted in Python for development. This book will get you hands-on with a wide range of intermediate to advanced projects using the latest version of the framework and language, OpenCV 4 and Python 3.8, instead of only covering the core concepts of OpenCV in theoretical lessons. This updated second edition will guide you through working on independent hands-on projects that focus on essential OpenCV concepts such as image processing, object detection, image manipulation, object tracking, and 3D scene reconstruction, in addition to statistical learning and neural networks. You'll begin with concepts such as image filters, Kinect depth sensor, and feature matching. As you advance, you'll not only get hands-on with reconstructing and visualizing a scene in 3D but also learn to track visually salient objects. The book will help you further build on your skills by demonstrating how to recognize traffic signs and emotions on faces. Later, you'll understand how to align images, and detect and track objects using neural networks. By the end of this OpenCV Python book, you'll have gained hands-on experience and become proficient at developing advanced computer vision apps according to specific business needs. What you will learn Generate real-time visual effects using filters and image manipulation techniques such as dodging and burning Recognize hand gestures in real-time and perform hand-shape analysis based on the output of a Microsoft Kinect sensor Learn feature extraction and feature matching to track arbitrary objects of interest Reconstruct a 3D real-world scene using 2D camera motion and camera reprojection techniques Detect faces using a cascade classifier and identify emotions in human faces using multilayer perceptrons Classify, localize, and detect objects with deep neural networks Who this book is for This book is for intermediate-level OpenCV users who are looking to enhance their skills by developing advanced applications. Familiarity with OpenCV concepts and Python libraries, and basic knowledge of the Python programming language are assumed.