书籍详情
OpenCV深度学习应用与性能优化实践
作者:吴至文,郭叶军,宗炜,李鹏,赵娟 著
出版社:机械工业出版社
出版时间:2020-07-01
ISBN:9787111656463
定价:¥89.00
购买这本书可以去
内容简介
深度剖析OpenCV DNN模块的架构、原理与加速策略等; 重点介绍了 CPU/GPU加速原理与实现,诸如Intel GPU架构与参考实现,Vukan与OpenCL的加速实现; 详细讲解可视化工具与主流OpenCV深度学习应用,如支付级别人脸识别、图像分类、目标检测等。
作者简介
吴至文 Intel亚太研发有限公司资深图形图像工程师,拥有多年算法开发优化经验,技术领域涵盖显示系统、视觉处理、深度学习框架加速,尤其擅长基于OpenCL和Vulkan的算法设计及优化,是OpenCV DNN模块Vulkan后端的作者、OpenCL后端主要贡献者之一。近期关注深度学习视觉算法开发及其高效部署。 郭叶军 Intel资深图形图像工程师。多年图形芯片驱动开发经验,主要包括OpenGL驱动和OpenCL驱动。目前关注视频分析中的深度学习,是FFmpeg深度学习模块的代码维护者。 宗炜 Intel资深图形图像工程师,长期从事计算机视觉算法与应用、数字图像处理、Camera成像算法开发,在CPU/GPU/ISP异构计算算法设计与优化上经验颇丰,是图像处理与计算机视觉算法开源项目libXCam的维护者和主要贡献者。近期关注低延时、超高分辨率VR视频直播方案的开发和部署。 李鹏 阿里巴巴高级技术专家,原Intel亚太研发有限公司资深图形图像工程师。涉及领域包括显示系统、图形图像处理、深度学习框架加速。是OpenCV DNN模块OpenCL后端主要贡献者之一。 赵娟 Intel高级研发经理,钻研图形图像、视频编解码和视频处理十几年,带领团队深耕视频编解码和处理软硬件加速、深度学习算法分析与设计,致力于让开源软件在图形图像视频市场落地,并组织团队把多年的“干货”整理成书,与视频行业的朋友们一起探讨与成长。
目录
目录
序一
序二
序三
序四
前言
第1章OpenCV和深度学习 1
1.1 OpenCV处理流程 1
1.1.1 OpenCV库 1
1.1.2 OpenCV深度学习应用的典型流程 3
1.2 机器学习的数学视角 5
1.2.1 机器学习和非机器学习 5
1.2.2 从人工神经网络到深度学习 8
1.2.3 破除神秘——神经网络是如何训练的 11
1.3 OpenCV深度学习模块 16
1.3.1 主要特性 16
1.3.2 OpenCV DNN图像分类举例(Python) 17
1.4 本章小结 19
第2章OpenCV深度学习模块解析 20
2.1 深度学习模块分层架构总览 20
2.2 语言绑定和测试层 21
2.2.1 深度学习模块的Python语言绑定 21
2.2.2 深度学习模块的正确性测试和性能测试 23
2.3 API层 30
2.3.1Layer 30
2.3.2Net 32
2.3.3 35
2.4DNN 37
2.4.1 37
2.4.2 推理引擎数据对象管理 43
2.4.3 推理引擎重点层解释 47
2.4.4 层的合并优化 62
2.5 引擎加速层 66
2.5.1 深度学习模块支持的运算目标设备 67
2.5.2 深度学习模块支持的加速后端 68
2.5.3 加速方式的选择 69
2.6 本章小结 70
第3章并行计算与GPU架构 71
3.1 并行计算浅谈 71
3.2 Intel GPU架构及其在并行计算中的应用 74
3.2.1Intel GPU 74
3.2.2SIMD棗AOSSOA 82
3.2.3cl_intel_subgroupsIntel GPU 89
3.3 100
4基于Vulkan的加速实现 101
4.1 初识Vulkan 101
4.2 使用Vulkan加速 102
4.3 Vulkan后端加速过程解析 104
4.3.1 数据对象初始化 105
4.3.2 后端运算节点初始化 108
4.3.3 调用后端运算节点进行前向运算 111
4.3.4 Vulkan后端库 113
4.4 本章小结 119
第5章基于OpenCL的加速实现 120
5.1 OpenCL简介 120
5.2 如何使用OpenCL加速 125
5.3 OpenCL加速详解 128
5.3.1 OpenCL API封装 129
5.3.2 DNN模块的卷积层实现详解 132
5.3.3 ocl4dnn库的卷积运算类详解 134
5.3.4 卷积核函数auto-tuning机制解析 138
5.4 本章小结 143
第6章CPU及第三方库加速的实现 144
6.1 原生CPU加速实现 144
6.1.1 基于多线程技术的加速 147
6.1.2 基于并行指令的加速 153
6.2 Halide后端的实现 157
6.2.1 Halide介绍 158
6.2.2 如何启用Halide 163
6.2.3 Halide后端的实现原理 165
6.3 Intel推理引擎后端的实现 171
6.3.1 Intel推理引擎介绍 171
6.3.2 如何启用推理引擎后端 172
6.3.3 Intel推理引擎后端的实现原理 176
6.4 本章小结 185
第7章可视化工具与性能优化 186
7.1 Netscope:基于Web的Caffe网络可视化工具 186
7.2 TensorBoard:助力TensorFlow程序的理解和调试 188
7.2.1 图的可视化 188
7.2.2 数据的可视化 191
7.2.3 调试的可视化 197
7.3VTuneIntel 199
7.3.1 200
7.3.2Intel VTune 202
7.3.3VTune 211
7.4 程序优化流程总结和建议 213
7.5 本章小结 215
第8章支付级人脸识别项目开发实战 216
8.1 活体检测的概念与方法 216
8.2 支付级人脸识别项目流程 218
8.3 基于OpenCV的支付级人脸识别项目具体实现 220
8.3.1 数据准备 222
8.3.2 活体检测模型训练 230
8.3.3 支付级人脸识别系统实现 238
8.4 本章小结 244
第9章深度学习模块不同场景下的应用实践 245
9.1 图像分类 245
9.1.1 图像分类经典网络结构 245
9.1.2 GoogLeNet 247
9.1.3 图像分类程序源码分析 249
9.1.4 图像分类程序运行结果 255
9.2 目标检测 256
9.2.1 SSD算法解析 256
9.2.2 目标检测程序源码分析 257
9.2.3 目标检测程序运行结果 260
9.3 语义分割 261
9.3.1 FCN模型 262
9.3.2 语义分割程序源码分析 263
9.3.3 语义分割程序运行结果 267
9.4 视觉风格变换 268
9.4.1 视觉风格变换模型 268
9.4.2 视觉风格变换程序源码分析 269
9.4.3 视觉风格变换程序运行结果 271
9.5 本章小结 273
附录AOpenCV的编译安装及patch开发流程 274
附录Bintel_gpu_frequency工具的安装和使用 280
序一
序二
序三
序四
前言
第1章OpenCV和深度学习 1
1.1 OpenCV处理流程 1
1.1.1 OpenCV库 1
1.1.2 OpenCV深度学习应用的典型流程 3
1.2 机器学习的数学视角 5
1.2.1 机器学习和非机器学习 5
1.2.2 从人工神经网络到深度学习 8
1.2.3 破除神秘——神经网络是如何训练的 11
1.3 OpenCV深度学习模块 16
1.3.1 主要特性 16
1.3.2 OpenCV DNN图像分类举例(Python) 17
1.4 本章小结 19
第2章OpenCV深度学习模块解析 20
2.1 深度学习模块分层架构总览 20
2.2 语言绑定和测试层 21
2.2.1 深度学习模块的Python语言绑定 21
2.2.2 深度学习模块的正确性测试和性能测试 23
2.3 API层 30
2.3.1Layer 30
2.3.2Net 32
2.3.3 35
2.4DNN 37
2.4.1 37
2.4.2 推理引擎数据对象管理 43
2.4.3 推理引擎重点层解释 47
2.4.4 层的合并优化 62
2.5 引擎加速层 66
2.5.1 深度学习模块支持的运算目标设备 67
2.5.2 深度学习模块支持的加速后端 68
2.5.3 加速方式的选择 69
2.6 本章小结 70
第3章并行计算与GPU架构 71
3.1 并行计算浅谈 71
3.2 Intel GPU架构及其在并行计算中的应用 74
3.2.1Intel GPU 74
3.2.2SIMD棗AOSSOA 82
3.2.3cl_intel_subgroupsIntel GPU 89
3.3 100
4基于Vulkan的加速实现 101
4.1 初识Vulkan 101
4.2 使用Vulkan加速 102
4.3 Vulkan后端加速过程解析 104
4.3.1 数据对象初始化 105
4.3.2 后端运算节点初始化 108
4.3.3 调用后端运算节点进行前向运算 111
4.3.4 Vulkan后端库 113
4.4 本章小结 119
第5章基于OpenCL的加速实现 120
5.1 OpenCL简介 120
5.2 如何使用OpenCL加速 125
5.3 OpenCL加速详解 128
5.3.1 OpenCL API封装 129
5.3.2 DNN模块的卷积层实现详解 132
5.3.3 ocl4dnn库的卷积运算类详解 134
5.3.4 卷积核函数auto-tuning机制解析 138
5.4 本章小结 143
第6章CPU及第三方库加速的实现 144
6.1 原生CPU加速实现 144
6.1.1 基于多线程技术的加速 147
6.1.2 基于并行指令的加速 153
6.2 Halide后端的实现 157
6.2.1 Halide介绍 158
6.2.2 如何启用Halide 163
6.2.3 Halide后端的实现原理 165
6.3 Intel推理引擎后端的实现 171
6.3.1 Intel推理引擎介绍 171
6.3.2 如何启用推理引擎后端 172
6.3.3 Intel推理引擎后端的实现原理 176
6.4 本章小结 185
第7章可视化工具与性能优化 186
7.1 Netscope:基于Web的Caffe网络可视化工具 186
7.2 TensorBoard:助力TensorFlow程序的理解和调试 188
7.2.1 图的可视化 188
7.2.2 数据的可视化 191
7.2.3 调试的可视化 197
7.3VTuneIntel 199
7.3.1 200
7.3.2Intel VTune 202
7.3.3VTune 211
7.4 程序优化流程总结和建议 213
7.5 本章小结 215
第8章支付级人脸识别项目开发实战 216
8.1 活体检测的概念与方法 216
8.2 支付级人脸识别项目流程 218
8.3 基于OpenCV的支付级人脸识别项目具体实现 220
8.3.1 数据准备 222
8.3.2 活体检测模型训练 230
8.3.3 支付级人脸识别系统实现 238
8.4 本章小结 244
第9章深度学习模块不同场景下的应用实践 245
9.1 图像分类 245
9.1.1 图像分类经典网络结构 245
9.1.2 GoogLeNet 247
9.1.3 图像分类程序源码分析 249
9.1.4 图像分类程序运行结果 255
9.2 目标检测 256
9.2.1 SSD算法解析 256
9.2.2 目标检测程序源码分析 257
9.2.3 目标检测程序运行结果 260
9.3 语义分割 261
9.3.1 FCN模型 262
9.3.2 语义分割程序源码分析 263
9.3.3 语义分割程序运行结果 267
9.4 视觉风格变换 268
9.4.1 视觉风格变换模型 268
9.4.2 视觉风格变换程序源码分析 269
9.4.3 视觉风格变换程序运行结果 271
9.5 本章小结 273
附录AOpenCV的编译安装及patch开发流程 274
附录Bintel_gpu_frequency工具的安装和使用 280
猜您喜欢