Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA 2018 study notes (0)-Preface

Preface

Computer vision is revolutionizing various industries. OpenCV is the most widely used computer vision tool and can use multiple programming languages. Nowadays, large images need to be processed in real time in computer vision, which is difficult for OpenCV itself. Graphics processing unit (GPU) and CUDA can help on this issue. Therefore, this book provides a detailed overview of integrating OpenCV and CUDA into practical applications. First introduce the use of CUDA to program the GPU, which is very important for computer vision developers who have never used a GPU. Then explain the OpenCV acceleration of GPU and CUDA through some practical examples. When a computer vision application is to be used in real life scenarios, it needs to be deployed on an embedded development board. This book introduces the deployment of OpenCV applications on NVIDIA Jetson Tx1, which is very popular in computer vision and deep learning applications. The last part of the book introduces the concept of PyCUDA, which can be used by computer vision developers who use OpenCV and Python. PyCUDA is a python library that uses the powerful features of CUDA and GPU to accelerate. This book provides a complete guide for developers who use C++ or OpenCV in Python to accelerate their computer vision applications by implementing methods.

Who this book is for

This book is the first choice guide for OpenCV developers who want to learn how to use GPU processing to process more complex image data. Most computer vision engineers or developers will encounter problems when trying to process complex image data in real time. Using GPU to accelerate computer vision algorithms will help them develop algorithms that can process complex image data in real time. Most people think that hardware acceleration can only be done through FPGA and ASIC design. For this, they need knowledge of hardware description languages ​​such as Verilog or VHDL. However, this was true before the invention of CUDA. CUDA took advantage of the powerful features of Nvidia GPUs and could accelerate algorithms by using programming languages ​​such as C++ and Python. This book will help developers learn related concepts by helping them develop practical applications. This book will help developers deploy computer vision applications on embedded platforms (such as Nvidia Jetson TX1).

The main content of this book

Chapter 1, Introduction to CUDA and Introduction to CUDA, introduces the CUDA architecture and how it redefines the parallel processing capabilities of the GPU. Discussed the application of CUDA architecture in real scenes. Describes the development environment for CUDA and how to install it on all operating systems.

Chapter 2, Parallel Programming Using CUDA C, teaches readers to use CUDA to write programs for the GPU. It starts with a simple Hello World program, and then gradually builds to complex examples in CUDA C. It also introduces how the kernel works and how to use device properties, and discusses terms related to CUDA programming.

Chapter 3, Threads, Synchronization and Memory, teaches readers how to call threads from CUDA programs and how multiple threads communicate with each other. It describes how to synchronize when multiple threads work in parallel. It also describes the constant memory and texture memory in detail.

Chapter 4, Advanced Concepts in CUDA, covers advanced concepts such as CUDA streams and CUDA events. It describes how to use CUDA to accelerate sorting algorithms, and focuses on using CUDA to accelerate simple image processing functions.

Chapter 5, Getting Started with OpenCV with CUDA Support, introduces the installation of OpenCV libraries that support CUDA in all operating systems. It explains how to test this installation using a simple program. This chapter discusses the performance comparison between image processing programs executed with and without CUDA support.

Chapter 6, Basic Computer Vision Operations Using OpenCV and CUDA, teaches readers how to use OpenCV to write basic computer vision operations, such as pixel-level operations, filtering and morphological operations on images.

Chapter 7, Use OpenCV and CUDA for object detection and tracking, and learn about the steps to use OpenCV and CUDA to accelerate some real computer vision applications
. It describes feature detection and description algorithms for object detection. This chapter also introduces the use of Haar cascade and video analysis techniques to accelerate face detection, such as background subtraction for object tracking.

Chapter 8, Introduction to Jetson Tx1 Development Board and Installing OpenCV on Jetson TX1, introduces Jetson TX1 embedded platform and how it can be used to accelerate and deploy computer vision applications. It describes using Jetpack to install OpenCV for Tegra on Jetson TX1.

Chapter 9, Deploying computer vision applications on Jetson TX1, including deploying computer vision applications on Jetson Tx1. It teaches readers how to build different computer vision applications and how to connect the camera with Jetson Tx1 for video processing applications.

Chapter 10, Getting Started with PyCUDA, introduces PyCUDA, a Python library for GPU acceleration. It describes the installation process on all operating systems.

Chapter 11, Using PyCUDA, teaches readers how to use PyCUDA to write programs. It describes in detail the concept of data transfer from the host to the device and the kernel. It introduces how to use arrays in PyCUDA and develop complex algorithms.

Chapter 12, Basic Computer Vision Applications Using PyCUDA, introduces the use of PyCUDA to develop and accelerate basic computer vision applications. It describes color space conversion operations, histogram calculations and different arithmetic operations, as examples of computer vision applications.

Make the most of this book

The examples described in this book can be run on Windows, Linux, and macOS. All installation instructions are described in the book. Need a comprehensive understanding of computer vision concepts and programming languages ​​such as C++ and Python. It is best for readers to use Nvidia GPU hardware to execute the examples in this book.

Download sample code

You can download the relevant code of this book through your account at www.packt.com . If you purchased the book elsewhere, you can visit www.packt.com/support to register. The code file will be sent to you directly via email.

You can download the code file as follows:

  1. Log in or register at www.packt.com.
  2. Select the "Support" tab.
  3. Click Code Downloads & Errata.
  4. Enter the name of the book in the "Search" box and follow the instructions on the screen.

After downloading the file, please make sure to use the latest version of the following software to unzip or extract the folder:

  • WinRAR/7-Zip for Windows

  • Zipeg/iZip/UnRarX for Mac

  • 7-Zip/PeaZip for Linux

​​​​​​​The code package of this book is also hosted on Github https://github.com/PacktP ublishing/Hands-On-GPU-Accelerated-Computer-Vision-with-OpenCV-and-CUDA , if the code There is an update, and it will be updated on the existing GitHub repository.

We also provide code packages from other books and videos at https://github.com/PacktPublishing/ . Go take a look!

Download color illustrations

We also provide a PDF file that contains color images of the screenshots/charts used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/978-1-78934-829-3_ColorImages.pdf .

Run code

Please visit the following link to view a video of the code in action: http://bit.ly/2PZOYcH .

Guess you like

Origin blog.csdn.net/qq_26751117/article/details/93619545