舉報

會員
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.
目錄(284章)
倒序
- 封面
- 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
推薦閱讀
- Node.js 10實戰
- Visual FoxPro程序設計教程(第3版)
- Python編程完全入門教程
- C語言從入門到精通(第4版)
- INSTANT Mercurial SCM Essentials How-to
- Hands-On RESTful Web Services with Go
- Oracle BAM 11gR1 Handbook
- MongoDB權威指南(第3版)
- Linux命令行與shell腳本編程大全(第4版)
- Mastering JavaScript High Performance
- Android開發案例教程與項目實戰(在線實驗+在線自測)
- 區塊鏈底層設計Java實戰
- Python程序設計教程
- Java EE 8 and Angular
- Mastering OpenStack
- Building Microservices with Go
- Serverless從入門到進階:架構、原理與實踐
- MATLAB/Simulink建模與仿真
- Responsive Web Design with HTML5 and CSS3(Second Edition)
- Python大數據與機器學習實戰
- Building Web Applications with Flask
- Xamarin Cross-platform Application Development(Second Edition)
- Pentaho Analytics for MongoDB Cookbook
- Spring Boot開發實戰
- Jupyter入門與實戰
- OCaml語言編程基礎教程
- Boost.Asio C++ Network Programming
- Microsoft Exchange Server PowerShell Essentials
- Raspberry Pi LED Blueprints
- WordPress 5 Cookbook