作品简介

计算机视觉正在给许多行业带来革命性的变化,OpenCV是使用最广泛的计算机视觉工具之一,能够在多种编程语言中工作。目前,需要在计算机视觉中实时处理较大的图像,而单凭OpenCV是难以做到的。在这方面图形处理器(GPU)和CUDA可以提供帮助。因此,本书提供了一个将OpenCV与CUDA集成的实际应用的详细概述。本书首先解释了用CUDA对GPU编程,这对于从未使用过GPU的计算机视觉开发人员来说是必不可少的。然后通过一些实例说明了如何用GPU和CUDA对OpenCV进行加速。当要在现实生活场景中使用计算机视觉应用程序时,需要将其部署在嵌入式开发板上,本书涵盖了如何在NVIDIA Jetson TX1上部署OpenCV应用程序,这是非常流行的计算机视觉和深度学习应用程序。本书的最后一部分介绍了PyCUDA,结合Python使用OpenCV的计算机视觉开发人员会使用它。PyCUDA是一个Python库,它利用CUDA和GPU的功能来加速。本书为在C++或Python中使用OpenCV的开发人员提供了一个完整的指南,帮助他们通过亲身体验来加速计算机视觉应用程序。

包米克·维迪雅(Bhaumik Vaidya),是一位经验丰富的计算机视觉工程师和导师,在OpenCV库尤其在计算机视觉问题解决方面做了大量工作。他是优秀硕士毕业生,目前正在攻读计算机视觉算法加速方面的博士学位,该算法使用OpenCV和基于GPU的深度学习库构建。他有教学背景,指导过许多计算机视觉和超大规模集成(VLSI)方面的项目。他之前在VLSI领域做过ASIC验证工程师,对硬件架构也有深入了解。他在著名期刊上发表了许多研究论文,还和博士导师共同获得了NVIDIA Jetson TX1嵌入式开发平台的研究资助。

作品目录

  • 前言
  • 作者简介
  • 审稿人简介
  • 第1章 CUDA介绍及入门
  • 1.1 技术要求
  • 1.2 CUDA介绍
  • 1.3 CUDA应用程序
  • 1.4 CUDA开发环境
  • 1.5 在所有操作系统上安装CUDA工具包
  • 1.6 一个基本的CUDA C程序
  • 1.7 总结
  • 1.8 测验题
  • 第2章 使用CUDA C进行并行编程
  • 2.1 技术要求
  • 2.2 CUDA程序结构
  • 2.3 在设备上执行线程
  • 2.4 在CUDA程序中获取GPU设备属性
  • 2.5 CUDA中的向量运算
  • 2.6 并行通信模式
  • 2.7 总结
  • 2.8 测验题
  • 第3章 线程、同步和存储器
  • 3.1 技术要求
  • 3.2 线程
  • 3.3 存储器架构
  • 3.4 线程同步
  • 3.5 常量内存
  • 3.6 纹理内存
  • 3.7 向量点乘和矩阵乘法实例
  • 3.8 总结
  • 3.9 测验题
  • 第4章 CUDA中的高级概念
  • 4.1 技术要求
  • 4.2 测量CUDA程序的性能
  • 4.3 CUDA中的错误处理
  • 4.4 CUDA程序性能的提升
  • 4.5 CUDA流
  • 4.6 使用CUDA加速排序算法
  • 4.7 利用CUDA进行图像处理
  • 4.8 总结
  • 4.9 测验题
  • 第5章 支持CUDA的OpenCV入门
  • 5.1 技术要求
  • 5.2 图像处理和计算机视觉简介
  • 5.3 OpenCV简介
  • 5.4 安装支持CUDA的OpenCV
  • 5.5 使用OpenCV处理图像
  • 5.6 使用OpenCV处理视频
  • 5.7 使用OpenCV CUDA模块的基本计算机视觉应用程序
  • 5.8 OpenCV应用程序使用和不使用CUDA支持的性能比较
  • 5.9 总结
  • 5.10 测验题
  • 第6章 使用OpenCV和CUDA进行基本的计算机视觉操作
  • 6.1 技术要求
  • 6.2 访问图像的各个像素强度
  • 6.3 OpenCV中直方图的计算和均衡
  • 6.4 图像的几何变换
  • 6.5 对图像进行滤波操作
  • 6.6 图像的形态学操作
  • 6.7 总结
  • 6.8 测验题
  • 第7章 使用OpenCV和CUDA进行对象检测和跟踪
  • 7.1 技术要求
  • 7.2 对象检测和跟踪简介
  • 7.3 基于颜色的对象检测和跟踪
  • 7.4 基于形状的对象检测和跟踪
  • 7.5 关键点检测器和描述符
  • 7.6 使用Haar级联的对象检测
  • 7.7 使用背景减法进行对象跟踪
  • 7.8 总结
  • 7.9 测验题
  • 第8章 Jetson TX1开发套件
  • 8.1 技术要求
  • 8.2 Jetson TX1简介
  • 8.3 在Jetson TX1上安装JetPack
  • 8.4 总结
  • 8.5 测验题
  • 第9章 在Jetson TX1上部署计算机视觉应用程序
  • 9.1 技术要求
  • 9.2 Jetson TX1 GPU的设备属性
  • 9.3 Jetson TX1上的基本CUDA程序
  • 9.4 Jetson TX1上的图像处理
  • 9.5 Jetson TX1的摄像机接口
  • 9.6 Jetson TX1上的高级应用程序
  • 9.7 在Jetson TX1上使用Python和OpenCV实现计算机视觉
  • 9.8 总结
  • 9.9 测验题
  • 第10章 PyCUDA入门
  • 10.1 技术要求
  • 10.2 Python编程语言简介
  • 10.3 PyCUDA模块简介
  • 10.4 在Windows上安装PyCUDA
  • 10.5 在Ubuntu上安装PyCUDA
  • 10.6 总结
  • 10.7 测验题
  • 第11章 使用PyCUDA
  • 11.1 技术要求
  • 11.2 编写第一个PyCUDA程序
  • 11.3 从PyCUDA程序访问GPU设备属性
  • 11.4 在PyCUDA中执行线程和块
  • 11.5 PyCUDA中的基本编程概念
  • 11.6 使用CUDA事件测量PyCUDA程序的性能
  • 11.7 PyCUDA中的复杂程序
  • 11.8 PyCUDA的高级内核函数
  • 11.9 总结
  • 11.10 测验题
  • 第12章 使用PyCUDA的基本计算机视觉应用程序
  • 12.1 技术要求
  • 12.2 PyCUDA中的直方图计算
  • 12.3 使用PyCUDA进行基本的计算机视觉操作
  • 12.4 总结
  • 12.5 测验题
  • 测验题答案
展开全部