|
Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA: Effective techniques for processing complex image data in real time using GPUs Bhaumik Vaidya (著) 出版社: Packt Publishing (2018/9/26) 発売日: 2018/9/26 ペーパーバック: 380ページ ISBN-10: 1789348293 ISBN-13:978-1789348293 amazon.co.jp amazon.com O'Reilly Higher Education source code: github (cached zip file, local access only) code 動画: http://bit.ly/2PZOYcH color image: packtpub (cached pdf file, local access only) |
Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Code in Action Conventions used Get in touch Reviews
Technical requirements Introducing CUDA Parallel processing Introducing GPU architecture and CUDA CUDA architecture CUDA applications CUDA development environment CUDA-supported GPU NVIDIA graphics card driver Standard C compiler CUDA development kit Installing the CUDA toolkit on all operating systems Windows Linux Mac A basic program in CUDA C Steps for creating a CUDA C program on Windows Steps for creating a CUDA C program on Ubuntu Summary Questions
Technical requirements CUDA program structure Two-variable addition program in CUDA C A kernel call Configuring kernel parameters CUDA API functions Passing parameters to CUDA functions Passing parameters by value Passing parameters by reference Executing threads on a device Accessing GPU device properties from CUDA programs General device properties Memory-related properties Thread-related properties Vector operations in CUDA Two-vector addition program Comparing latency between the CPU and the GPU code Elementwise squaring of vectors in CUDA Parallel communication patterns Map Gather Scatter Stencil Transpose Summary Questions
Technical requirements Threads Memory architecture Global memory Local memory and registers Cache memory Thread synchronization Shared memory Atomic operations Constant memory Texture memory Dot product and matrix multiplication example Dot product Matrix multiplication Summary Questions
Technical requirements Performance measurement of CUDA programs CUDA Events The Nvidia Visual Profiler Error handling in CUDA Error handling from within the code Debugging tools Performance improvement of CUDA programs Using an optimum number of blocks and threads Maximizing arithmetic efficiency Using coalesced or strided memory access Avoiding thread divergence Using page-locked host memory CUDA streams Using multiple CUDA streams Acceleration of sorting algorithms using CUDA Enumeration or rank sort algorithms Image processing using CUDA Histogram calculation on the GPU using CUDA Summary Questions
Technical requirements Introduction to image processing and computer vision Introduction to OpenCV Installation of OpenCV with CUDA support Installation of OpenCV on Windows Using pre-built binaries Building libraries from source Installation of OpenCV with CUDA support on Linux Working with images in OpenCV Image representation inside OpenCV Reading and displaying an image Reading and displaying a color image Creating images using OpenCV Drawing shapes on the blank image Drawing a line Drawing a rectangle Drawing a circle Drawing an ellipse Writing text on an image Saving an image to a file Working with videos in OpenCV Working with video stored on a computer Working with videos from a webcam Saving video to a disk Basic computer vision applications using the OpenCV CUDA module Introduction to the OpenCV CUDA module Arithmetic and logical operations on images Addition of two images Subtracting two images Image blending Image inversion Changing the color space of an image Image thresholding Performance comparison of OpenCV applications with and without CUDA support Summary Questions
Technical requirements Accessing the individual pixel intensities of an image Histogram calculation and equalization in OpenCV Histogram equalization Grayscale images Color image Geometric transformation on images Image resizing Image translation and rotation Filtering operations on images Convolution operations on an image Low pass filtering on an image Averaging filters Gaussian filters Median filtering High-pass filtering on an image Sobel filters Scharr filters Laplacian filters Morphological operations on images Summary Questions
Technical requirements Introduction to object detection and tracking Applications of object detection and tracking Challenges in object detection Object detection and tracking based on color Blue object detection and tracking Object detection and tracking based on shape Canny edge detection Straight line detection using Hough transform Circle detection Key-point detectors and descriptors Features from Accelerated Segment Test (FAST) feature detector Oriented FAST and Rotated BRIEF (ORB) feature detection Speeded up robust feature detection and matching Object detection using Haar cascades Face detection using Haar cascades From video Eye detection using Haar cascades Object tracking using background subtraction Mixture of Gaussian (MoG) method GMG for background subtraction Summary Questions
Technical requirements Introduction to Jetson TX1 Important features of the Jetson TX1 Applications of Jetson TX1 Installation of JetPack on Jetson TX1 Basic requirements for installation Steps for installation Summary Questions
Technical requirements Device properties of Jetson TX1 GPU Basic CUDA program on Jetson TX1 Image processing on Jetson TX1 Compiling OpenCV with CUDA support (if necessary) Reading and displaying images Image addition Image thresholding Image filtering on Jetson TX1 Interfacing cameras with Jetson TX1 Reading and displaying video from onboard camera Advanced applications on Jetson TX1 Face detection using Haar cascades Eye detection using Haar cascades Background subtraction using Mixture of Gaussian (MoG) Computer vision using Python and OpenCV on Jetson TX1 Summary Questions
Technical requirements Introduction to Python programming language Introduction to the PyCUDA module Installing PyCUDA on Windows Steps to check PyCUDA installation Installing PyCUDA on Ubuntu Steps to check the PyCUDA installation Summary Questions
Technical requirements Writing the first program in PyCUDA A kernel call Accessing GPU device properties from PyCUDA program Thread and block execution in PyCUDA Basic programming concepts in PyCUDA Adding two numbers in PyCUDA Simplifying the addition program using driver class Measuring performance of PyCUDA programs using CUDA events CUDA events Measuring performance of PyCUDA using large array addition Complex programs in PyCUDA Element-wise squaring of a matrix in PyCUDA Simple kernel invocation with multidimensional threads Using inout with the kernel invocation Using gpuarray class Dot product using GPU array Matrix multiplication Advanced kernel functions in PyCUDA Element-wise kernel in PyCUDA Reduction kernel Scan kernel Summary Questions
Technical requirements Histogram calculation in PyCUDA Using atomic operations Using shared memory Basic computer vision operations using PyCUDA Color space conversion in PyCUDA BGR to gray conversion on an image BGR to gray conversion on a webcam video Image addition in PyCUDA Image inversion in PyCUDA using gpuarray Summary Questions
Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Other Books You May Enjoy Leave a review - let other readers know what you think