舉報

會員
Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
Computervisionhasbeenrevolutionizingawiderangeofindustries,andOpenCVisthemostwidelychosentoolforcomputervisionwithitsabilitytoworkinmultipleprogramminglanguages.Nowadays,incomputervision,thereisaneedtoprocesslargeimagesinrealtime,whichisdifficulttohandleforOpenCVonitsown.ThisiswhereCUDAcomesintothepicture,allowingOpenCVtoleveragepowerfulNVDIAGPUs.ThisbookprovidesadetailedoverviewofintegratingOpenCVwithCUDAforpracticalapplications.Tostartwith,you’llunderstandGPUprogrammingwithCUDA,anessentialaspectforcomputervisiondeveloperswhohaveneverworkedwithGPUs.You’llthenmoveontoexploringOpenCVaccelerationwithGPUsandCUDAbywalkingthroughsomepracticalexamples.Onceyouhavegottogripswiththecoreconcepts,you’llfamiliarizeyourselfwithdeployingOpenCVapplicationsonNVIDIAJetsonTX1,whichispopularforcomputervisionanddeeplearningapplications.ThelastchaptersofthebookexplainPyCUDA,aPythonlibrarythatleveragesthepowerofCUDAandGPUsforaccelerationsandcanbeusedbycomputervisiondeveloperswhouseOpenCVwithPython.Bytheendofthisbook,you’llhaveenhancedcomputervisionapplicationswiththehelpofthisbook'shands-onapproach.
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Chapter 12
- Chapter 11
- Chapter 10
- Chapter 9
品牌:中圖公司
上架時間:2021-08-13 15:15:38
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-08-13 15:49:10
- Other Books You May Enjoy
- Chapter 12
- Chapter 11
- Chapter 10
- Chapter 9
- Chapter 8
- Chapter 7
- Chapter 6
- Chapter 5
- Chapter 4
- Chapter 3
- Chapter 2
- Chapter 1
- Assessments
- Questions
- Summary
- Image inversion in PyCUDA using gpuarray
- Image addition in PyCUDA
- BGR to gray conversion on a webcam video
- BGR to gray conversion on an image
- Color space conversion in PyCUDA
- Basic computer vision operations using PyCUDA
- Using shared memory
- Using atomic operations
- Histogram calculation in PyCUDA
- Technical requirements
- Basic Computer Vision Applications Using PyCUDA
- Questions
- Summary
- Scan kernel
- Reduction kernel
- Element-wise kernel in PyCUDA
- Advanced kernel functions in PyCUDA
- Matrix multiplication
- Dot product using GPU array
- Using gpuarray class
- Using inout with the kernel invocation
- Simple kernel invocation with multidimensional threads
- Element-wise squaring of a matrix in PyCUDA
- Complex programs in PyCUDA
- Measuring performance of PyCUDA using large array addition
- CUDA events
- Measuring performance of PyCUDA programs using CUDA events
- Simplifying the addition program using driver class
- Adding two numbers in PyCUDA
- Basic programming concepts in PyCUDA
- Thread and block execution in PyCUDA
- Accessing GPU device properties from PyCUDA program
- A kernel call
- Writing the first program in PyCUDA
- Technical requirements
- Working with PyCUDA
- Questions
- Summary
- Steps to check the PyCUDA installation
- Installing PyCUDA on Ubuntu
- Steps to check PyCUDA installation
- Installing PyCUDA on Windows
- Introduction to the PyCUDA module
- Introduction to Python programming language
- Technical requirements
- Getting Started with PyCUDA
- Questions
- Summary
- Computer vision using Python and OpenCV on Jetson TX1
- Background subtraction using Mixture of Gaussian (MoG)
- Eye detection using Haar cascades
- Face detection using Haar cascades
- Advanced applications on Jetson TX1
- Reading and displaying video from onboard camera
- Interfacing cameras with Jetson TX1
- Image filtering on Jetson TX1
- Image thresholding
- Image addition
- Reading and displaying images
- Compiling OpenCV with CUDA support (if necessary)
- Image processing on Jetson TX1
- Basic CUDA program on Jetson TX1
- Device properties of Jetson TX1 GPU
- Technical requirements
- Deploying Computer Vision Applications on Jetson TX1
- Questions
- Summary
- Steps for installation
- Basic requirements for installation
- Installation of JetPack on Jetson TX1
- Applications of Jetson TX1
- Important features of the Jetson TX1
- Introduction to Jetson TX1
- Technical requirements
- Introduction to the Jetson TX1 Development Board and Installing OpenCV on Jetson TX1
- Questions
- Summary
- GMG for background subtraction
- Mixture of Gaussian (MoG) method
- Object tracking using background subtraction
- Eye detection using Haar cascades
- From video
- Face detection using Haar cascades
- Object detection using Haar cascades
- Speeded up robust feature detection and matching
- Oriented FAST and Rotated BRIEF (ORB) feature detection
- Features from Accelerated Segment Test (FAST) feature detector
- Key-point detectors and descriptors
- Circle detection
- Straight line detection using Hough transform
- Canny edge detection
- Object detection and tracking based on shape
- Blue object detection and tracking
- Object detection and tracking based on color
- Challenges in object detection
- Applications of object detection and tracking
- Introduction to object detection and tracking
- Technical requirements
- Object Detection and Tracking Using OpenCV and CUDA
- Questions
- Summary
- Morphological operations on images
- Laplacian filters
- Scharr filters
- Sobel filters
- High-pass filtering on an image
- Median filtering
- Gaussian filters
- Averaging filters
- Low pass filtering on an image
- Convolution operations on an image
- Filtering operations on images
- Image translation and rotation
- Image resizing
- Geometric transformation on images
- Color image
- Grayscale images
- Histogram equalization
- Histogram calculation and equalization in OpenCV
- Accessing the individual pixel intensities of an image
- Technical requirements
- Basic Computer Vision Operations Using OpenCV and CUDA
- Questions
- Summary
- Performance comparison of OpenCV applications with and without CUDA support
- Image thresholding
- Changing the color space of an image
- Image inversion
- Image blending
- Subtracting two images
- Addition of two images
- Arithmetic and logical operations on images
- Introduction to the OpenCV CUDA module
- Basic computer vision applications using the OpenCV CUDA module
- Saving video to a disk
- Working with videos from a webcam
- Working with video stored on a computer
- Working with videos in OpenCV
- Saving an image to a file
- Writing text on an image
- Drawing an ellipse
- Drawing a circle
- Drawing a rectangle
- Drawing a line
- Drawing shapes on the blank image
- Creating images using OpenCV
- Reading and displaying a color image
- Reading and displaying an image
- Image representation inside OpenCV
- Working with images in OpenCV
- Installation of OpenCV with CUDA support on Linux
- Building libraries from source
- Using pre-built binaries
- Installation of OpenCV on Windows
- Installation of OpenCV with CUDA support
- Introduction to OpenCV
- Introduction to image processing and computer vision
- Technical requirements
- Getting Started with OpenCV with CUDA Support
- Questions
- Summary
- Histogram calculation on the GPU using CUDA
- Image processing using CUDA
- Enumeration or rank sort algorithms
- Acceleration of sorting algorithms using CUDA
- Using multiple CUDA streams
- CUDA streams
- Using page-locked host memory
- Avoiding thread divergence
- Using coalesced or strided memory access
- Maximizing arithmetic efficiency
- Using an optimum number of blocks and threads
- Performance improvement of CUDA programs
- Debugging tools
- Error handling from within the code
- Error handling in CUDA
- The Nvidia Visual Profiler
- CUDA Events
- Performance measurement of CUDA programs
- Technical requirements
- Advanced Concepts in CUDA
- Questions
- Summary
- Matrix multiplication
- Dot product
- Dot product and matrix multiplication example
- Texture memory
- Constant memory
- Atomic operations
- Shared memory
- Thread synchronization
- Cache memory
- Local memory and registers
- Global memory
- Memory architecture
- Threads
- Technical requirements
- Threads Synchronization and Memory
- Questions
- Summary
- Transpose
- Stencil
- Scatter
- Gather
- Map
- Parallel communication patterns
- Elementwise squaring of vectors in CUDA
- Comparing latency between the CPU and the GPU code
- Two-vector addition program
- Vector operations in CUDA
- Thread-related properties
- Memory-related properties
- General device properties
- Accessing GPU device properties from CUDA programs
- Executing threads on a device
- Passing parameters by reference
- Passing parameters by value
- Passing parameters to CUDA functions
- CUDA API functions
- Configuring kernel parameters
- A kernel call
- Two-variable addition program in CUDA C
- CUDA program structure
- Technical requirements
- Parallel Programming using CUDA C
- Questions
- Summary
- Steps for creating a CUDA C program on Ubuntu
- Steps for creating a CUDA C program on Windows
- A basic program in CUDA C
- Mac
- Linux
- Windows
- Installing the CUDA toolkit on all operating systems
- CUDA development kit
- Standard C compiler
- NVIDIA graphics card driver
- CUDA-supported GPU
- CUDA development environment
- CUDA applications
- CUDA architecture
- Introducing GPU architecture and CUDA
- Parallel processing
- Introducing CUDA
- Technical requirements
- Introducing CUDA and Getting Started with CUDA
- Reviews
- Get in touch
- Conventions used
- Code in Action
- Download the color images
- 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 author
- Contributors
- Packt.com
- Why subscribe?
- Packt Upsell
- Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA
- Copyright and Credits
- Title Page
- 封面
- 封面
- Title Page
- Copyright and Credits
- Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA
- Packt Upsell
- Why subscribe?
- Packt.com
- Contributors
- About the author
- 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
- Download the color images
- Code in Action
- Conventions used
- Get in touch
- Reviews
- Introducing CUDA and Getting Started with CUDA
- 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
- Parallel Programming using CUDA C
- 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
- Threads Synchronization and Memory
- 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
- Advanced Concepts in CUDA
- 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
- Getting Started with OpenCV with CUDA Support
- 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
- Basic Computer Vision Operations Using OpenCV and CUDA
- 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
- Object Detection and Tracking Using OpenCV and CUDA
- 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
- Introduction to the Jetson TX1 Development Board and Installing OpenCV on Jetson TX1
- 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
- Deploying Computer Vision Applications on Jetson TX1
- 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
- Getting Started with PyCUDA
- 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
- Working with PyCUDA
- 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
- Basic Computer Vision Applications Using PyCUDA
- 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
- Assessments
- 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 更新時間:2021-08-13 15:49:10