基于GPU加速的计算机视觉编程:使用OpenCV和CUDA实时处理复杂图像数据(智能系统与技术丛书)

基于GPU加速的计算机视觉编程:使用OpenCV和CUDA实时处理复杂图像数据(智能系统与技术丛书)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

手把手教你使用OpenCV和CUDA实现GPU加速的计算机视觉项目开发,快速掌握GPU实时处理复杂图像数据的高效技术。

内容简介

本书提供了OpenCV与CUDA集成以实现实际应用的详细概述。首先介绍使用CUDA进行GPU编程的基础知识。然后,通过一些实际的例子讲解如何利用GPU和CUDA实现OpenCV加速。一旦掌握了核心概念,读者将熟悉如何在NVIDIA Jetson TX1上部署OpenCV应用程序,该应用程序在计算机视觉和深度学习应用程序中非常流行。本书的最后几章解释了PyCUDA,这是一个Python库,它利用CUDA和GPU的强大功能来加速。在本书的最后,读者将通过本书的实践方法增强计算机视觉应用程序。

作者简介

作者包米克·维迪雅,一位经验丰富的计算机视觉工程师和导师。他在OpenCV库,尤其是解决觉计算机视觉问题方面做了大量工作。他是大学硕士项目的金牌得主,目前正在攻读计算机视觉算法加速方面的博士学位。他指导了许多计算机视觉和超大规模集成(VLSI)方面的项目。他曾在VLSI领域做过ASIC验证工程师,对硬件架构也有很好的了解。他在声誉良好的期刊上发表了许多研究论文。他和他的博士导师还获得了英伟达Jetson TX1嵌入式开发平台的研究资助。

章节目录

版权信息

前言

作者简介

审稿人简介

第1章 CUDA介绍及入门

1.1 技术要求

1.2 CUDA介绍

1.2.1 并行处理

1.2.2 GPU架构和CUDA介绍

1.2.3 CUDA架构

1.3 CUDA应用程序

1.4 CUDA开发环境

1.4.1 支持CUDA的GPU

1.4.2 CUDA开发工具包

1.5 在所有操作系统上安装CUDA工具包

1.5.1 Windows

1.5.2 Linux

1.5.3 Mac

1.6 一个基本的CUDA C程序

1.6.1 在Windows上创建CUDA C程序的步骤

1.6.2 在Ubuntu上创建CUDA C程序的步骤

1.7 总结

1.8 测验题

第2章 使用CUDA C进行并行编程

2.1 技术要求

2.2 CUDA程序结构

2.2.1 CUDA C中的双变量加法程序

2.2.2 内核调用

2.2.3 配置内核参数

2.2.4 CUDA API函数

2.2.5 将参数传递给CUDA函数

2.3 在设备上执行线程

2.4 在CUDA程序中获取GPU设备属性

2.4.1 通用设备信息

2.4.2 内存相关属性

2.4.3 线程相关属性

2.5 CUDA中的向量运算

2.5.1 两个向量加法程序

2.5.2 对比CPU代码和GPU代码的延迟

2.5.3 对向量的每个元素进行平方

2.6 并行通信模式

2.6.1 映射

2.6.2 收集

2.6.3 分散式

2.6.4 蒙板

2.6.5 转置

2.7 总结

2.8 测验题

第3章 线程、同步和存储器

3.1 技术要求

3.2 线程

3.3 存储器架构

3.3.1 全局内存

3.3.2 本地内存和寄存器堆

3.3.3 高速缓冲存储器

3.4 线程同步

3.4.1 共享内存

3.4.2 原子操作

3.5 常量内存

3.6 纹理内存

3.7 向量点乘和矩阵乘法实例

3.7.1 向量点乘

3.7.2 矩阵乘法

3.8 总结

3.9 测验题

第4章 CUDA中的高级概念

4.1 技术要求

4.2 测量CUDA程序的性能

4.2.1 CUDA事件

4.2.2 NVIDIA Visual Profiler

4.3 CUDA中的错误处理

4.3.1 从代码中进行错误处理

4.3.2 调试工具

4.4 CUDA程序性能的提升

4.4.1 使用适当的块数量和线程数量

4.4.2 最大化数学运算效率

4.4.3 使用合并的或跨步式的访存

4.4.4 避免warp内分支

4.4.5 使用锁定页面的内存

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.4.1 在Windows上安装OpenCV

5.4.2 在Linux上安装OpenCV

5.5 使用OpenCV处理图像

5.5.1 OpenCV中的图像表示

5.5.2 图像的读取和显示

5.5.3 使用OpenCV创建图像

5.5.4 将图像保存到文件

5.6 使用OpenCV处理视频

5.6.1 处理存储在计算机上的视频

5.6.2 处理从网络摄像机读取的视频

5.6.3 将视频保存到磁盘

5.7 使用OpenCV CUDA模块的基本计算机视觉应用程序

5.7.1 OpenCV CUDA模块简介

5.7.2 对图像的算术和逻辑运算

5.7.3 更改图像的颜色空间

5.7.4 图像阈值处理

5.8 OpenCV应用程序使用和不使用CUDA支持的性能比较

5.9 总结

5.10 测验题

第6章 使用OpenCV和CUDA进行基本的计算机视觉操作

6.1 技术要求

6.2 访问图像的各个像素强度

6.3 OpenCV中直方图的计算和均衡

6.4 图像的几何变换

6.4.1 图像大小调整

6.4.2 图像平移与旋转

6.5 对图像进行滤波操作

6.5.1 对图像的卷积运算

6.5.2 对图像进行低通滤波操作

6.5.3 对图像进行高通滤波操作

6.6 图像的形态学操作

6.7 总结

6.8 测验题

第7章 使用OpenCV和CUDA进行对象检测和跟踪

7.1 技术要求

7.2 对象检测和跟踪简介

7.2.1 对象检测和跟踪的应用

7.2.2 对象检测中的挑战

7.3 基于颜色的对象检测和跟踪

7.4 基于形状的对象检测和跟踪

7.4.1 Canny边缘检测

7.4.2 使用Hough变换进行直线检测

7.4.3 对圆形进行检测

7.5 关键点检测器和描述符

7.5.1 加速段测试特征功能检测器

7.5.2 面向FAST和旋转BRIEF的特征检测

7.5.3 加速强特征检测和匹配

7.6 使用Haar级联的对象检测

7.6.1 使用Haar级联进行人脸检测

7.6.2 使用Haar级联进行眼睛检测

7.7 使用背景减法进行对象跟踪

7.7.1 高斯混合法

7.7.2 GMG背景减法

7.8 总结

7.9 测验题

第8章 Jetson TX1开发套件

8.1 技术要求

8.2 Jetson TX1简介

8.2.1 Jetson TX1的重要特性

8.2.2 Jetson TX1的应用

8.3 在Jetson TX1上安装JetPack

8.3.1 安装的基本要求

8.3.2 安装的步骤

8.4 总结

8.5 测验题

第9章 在Jetson TX1上部署计算机视觉应用程序

9.1 技术要求

9.2 Jetson TX1 GPU的设备属性

9.3 Jetson TX1上的基本CUDA程序

9.4 Jetson TX1上的图像处理

9.4.1 编译支持CUDA的OpenCV

9.4.2 读取和显示图像

9.4.3 图像合成

9.4.4 图像阈值处理

9.4.5 Jetson TX1上的图像滤波

9.5 Jetson TX1的摄像机接口

9.6 Jetson TX1上的高级应用程序

9.6.1 使用Haar级联进行人脸检测

9.6.2 使用Haar级联进行眼睛检测

9.6.3 高斯混合背景减法

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.5.1 在PyCUDA中两个数字相加

11.5.2 使用driver类简化加法程序

11.6 使用CUDA事件测量PyCUDA程序的性能

11.6.1 CUDA事件

11.6.2 使用大型数组加法测量PyCUDA的性能

11.7 PyCUDA中的复杂程序

11.7.1 对PyCUDA中的矩阵元素进行平方运算

11.7.2 GPU数组点乘

11.7.3 矩阵乘法

11.8 PyCUDA的高级内核函数

11.8.1 PyCUDA的元素级内核函数

11.8.2 归约内核函数

11.8.3 scan内核函数

11.9 总结

11.10 测验题

第12章 使用PyCUDA的基本计算机视觉应用程序

12.1 技术要求

12.2 PyCUDA中的直方图计算

12.2.1 使用原子操作

12.2.2 使用共享内存

12.3 使用PyCUDA进行基本的计算机视觉操作

12.3.1 PyCUDA中的颜色空间转换

12.3.2 在PyCUDA执行图像合成

12.3.3 在PyCUDA中使用gpuarray进行图像反转

12.4 总结

12.5 测验题

测验题答案

基于GPU加速的计算机视觉编程:使用OpenCV和CUDA实时处理复杂图像数据(智能系统与技术丛书)是2020年由机械工业出版社华章分社出版,作者[美] 包米克·维迪雅。

得书感谢您对《基于GPU加速的计算机视觉编程:使用OpenCV和CUDA实时处理复杂图像数据(智能系统与技术丛书)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
基于Proteus的Arduino可视化编程应用技术 电子书
本书是在总结优质校建设与智能制造专业群的专业教学改革经验、教学科研成果的基础上编写而成的。全书共9个项目,分为入门篇和设计篇,采用“项目引导、任务驱动”的体例组织内容。其中,入门篇由5个项目组成,分为13个任务,主要介绍基于Proteus8.9仿真软件平台的Arduino硬件电路绘制步骤和具体实施、可视化结构流程图的绘制方法。每个任务中可视化结构流程图的绘制是重点,以软件提供的绘制流程图的图框和硬
大学计算机——计算与智能 电子书
本书采用对比联想式、场景理解与模拟、习练式的方式,旨在提高学生理解程序执行、理解复杂系统计算思想的能力。全书分为10章,内容包括什么是计算思维,计算思维基础:0和1与逻辑,计算思维基础:0和1与机器程序,机器程序的执行,程序构造是一种计算思维,程序的基本构造手段:递归与迭代,程序编写:计算思维与计算机语言,理解复杂计算环境:计算思维与管理维等。
从零开始:数字图像处理的编程基础与应用 电子书
本书主要内容共十章:第1章主要介绍OpenCV基础;第2章主要介绍图像预处理;第3章主要介绍图像分割和数学形态学;第4章主要介绍特征提取与匹配;第5章主要介绍模板匹配与轮廓绘制;第6章主要介绍视频录制与目标追踪;第7章主要介绍三维重建;第8章主要介绍距离测量与角点检测;第9章主要介绍图像识别应用,涉及文字识别、二维码识别、人脸识别和车牌识别等内容;第10章主要介绍基于深度学习的图像应用。
Python计算机视觉与深度学习实战 电子书
一本书入门计算机视觉,将深度学习理论融入视觉识别案例,搭建理论与实践的桥梁。
PythonQtGUI与数据可视化编程 电子书
Python PyQt5编写GUI应用程序及数据可视化方法