描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302517900
产品特色
编辑推荐
本书着重介绍深度学习在计算机视觉方面的应用和工程实践。
结合主流深度学习框架PyTorch、TensorFlow、Keras、Chainer、MXNet等进行示例演示。
本书主要基于开源项目,提供示例代码,通过在不同的应用场景下使用不同的主流框架,使读者能够对不同的应用场景及框架有较全面的认识。
通过本书,读者能够了解深度学习在计算机视觉各个方向的应用及*进展。
本书的特点是依托工业环境的实践经验,具备较强的实用性和专业性。适合于广大计算机视觉和深度学习从业者、大学生和研究生,以及对计算机视觉工程领域感兴趣的爱好者学习。
结合主流深度学习框架PyTorch、TensorFlow、Keras、Chainer、MXNet等进行示例演示。
本书主要基于开源项目,提供示例代码,通过在不同的应用场景下使用不同的主流框架,使读者能够对不同的应用场景及框架有较全面的认识。
通过本书,读者能够了解深度学习在计算机视觉各个方向的应用及*进展。
本书的特点是依托工业环境的实践经验,具备较强的实用性和专业性。适合于广大计算机视觉和深度学习从业者、大学生和研究生,以及对计算机视觉工程领域感兴趣的爱好者学习。
内容简介
本书主要介绍了深度学习在计算机视觉方面的应用及工程实践,以Python 3为开发语言,并结合当前主流的深度学习框架进行实例展示。主要内容包括:OpenCV入门、深度学习框架介绍、图像分类、目标检测与识别、图像分割、图像搜索以及图像生成等,涉及到的深度学习框架包括PyTorch、TensorFlow、Keras、Chainer、MXNet等。通过本书,读者能够了解深度学习在计算机视觉各个方向的应用以及*进展。
本书的特点是依托工业环境的实践经验,具备较强的实用性和专业性。适合于广大计算机视觉工程领域的从业者、深度学习爱好者、相关专业的大学生和研究生以及对计算机视觉感兴趣的爱好者
使用。
本书的特点是依托工业环境的实践经验,具备较强的实用性和专业性。适合于广大计算机视觉工程领域的从业者、深度学习爱好者、相关专业的大学生和研究生以及对计算机视觉感兴趣的爱好者
使用。
目 录
目录
第1章 深度学习与计算机视觉1
1.1 图像基础3
1.2 深度学习与神经网络基础4
1.2.1 函数的简单表达5
1.2.2 函数的矩阵表达5
1.2.3 神经网络的线性变换6
1.2.4 神经网络的非线性变换6
1.2.5 深层神经网络6
1.2.6 神经网络的学习过程8
1.3 卷积神经网络CNN9
1.4 基础开发环境搭建14
1.5 本章总结15
第2章 OpenCV入门16
2.1 读图、展示和保存新图17
2.2 像素点及局部图像18
2.3 基本线条操作19
2.4 平移20
2.5 旋转20
2.6 缩放21
2.6.1 邻近插值22
2.6.2 双线性插值22
2.7 翻转23
2.8 裁剪23
2.9 算术操作23
2.10 位操作24
2.11 Masking操作25
2.12 色彩通道分离与融合26
2.13 颜色空间转换27
2.14 颜色直方图28
2.15 平滑与模糊29
2.16 边缘检测31
2.17 人脸和眼睛检测示例32
2.18 本章总结35
第3章 常见深度学习框架36
3.1 PyTorch38
3.1.1 Tensor39
3.1.2 Autograd42
3.1.3 Torch.nn43
3.2 Chainer45
3.2.1 Variable46
3.2.2 Link与Function47
3.2.3 Chain50
3.2.4 optimizers51
3.2.5 损失函数51
3.2.6 GPU的使用52
3.2.7 模型的保存与加载54
3.2.8 FashionMnist图像分类示例54
3.2.9 Trainer59
3.3 TensorFlow与Keras66
3.3.1 TensorFlow66
3.3.2 Keras67
3.4 MXNet与Gluon73
3.4.1 MXNet73
3.4.2 Gluon74
3.4.3 Gluon Sequential74
3.4.4 Gluon Block75
3.4.5 使用GPU76
3.4.6 Gluon Hybrid77
3.4.7 Lazy Evaluation79
3.4.8 Module80
3.5 其他框架81
3.6 本章总结81
第4章 图像分类82
4.1 VGG84
4.1.1 VGG介绍84
4.1.2 MXNet版VGG使用示例85
4.2 ResNet89
4.2.1 ResNet介绍89
4.2.2 Chainer版ResNet示例90
4.3 Inception95
4.3.1 Inception介绍95
4.3.2 Keras版Inception V3川菜分类97
4.4 Xception116
4.4.1 Xception简述116
4.4.2 Keras版本Xception使用示例116
4.5 DenseNet122
4.5.1 DenseNet介绍122
4.5.2 PyTorch版DenseNet使用示例122
4.6 本章总结126
第5章 目标检测与识别128
5.1 Faster RCNN129
5.1.1 Faster RCNN介绍129
5.1.2 ChainerCV版Faster RCNN示例131
5.2 SSD139
5.2.1 SSD介绍139
5.2.2 SSD示例140
5.3 YOLO148
5.3.1 YOLO V1、V2和V3介绍148
5.3.2 Keras版本YOLO V3示例150
5.4 本章总结157
第6章 图像分割158
6.1 物体分割159
6.2 语义分割164
6.2.1 FCN与SegNet166
6.2.2 PSPNet171
6.2.3 DeepLab172
6.3 实例分割176
6.3.1 FCIS177
6.3.2 Mask R-CNN178
6.3.3 MaskLab180
6.3.4 PANet181
6.4 本章总结181
第7章 图像搜索183
7.1 Siamese Network185
7.2 Triplet Network186
7.3 Margin Based Network188
7.4 Keras版Triplet Network示例190
7.4.1 准备数据190
7.4.2 训练文件191
7.4.3 采样文件195
7.4.4 模型训练202
7.4.5 模型测试206
7.4.5 结果可视化210
7.5 本章小结216
第8章 图像生成218
8.1 VAE219
8.1.1 VAE介绍219
8.1.2 Chainer版本VAE示例220
8.2 生成对抗网络GAN221
8.2.1 GAN介绍221
8.2.2 Chainer DCGAN RPG游戏角色生成示例229
8.3 Neural Style Transfer238
8.3.1 Neural Style Transfer介绍238
8.3.2 MXNet多风格转换MSG-Net示例241
8.4 本章总结246
后记247
第1章 深度学习与计算机视觉1
1.1 图像基础3
1.2 深度学习与神经网络基础4
1.2.1 函数的简单表达5
1.2.2 函数的矩阵表达5
1.2.3 神经网络的线性变换6
1.2.4 神经网络的非线性变换6
1.2.5 深层神经网络6
1.2.6 神经网络的学习过程8
1.3 卷积神经网络CNN9
1.4 基础开发环境搭建14
1.5 本章总结15
第2章 OpenCV入门16
2.1 读图、展示和保存新图17
2.2 像素点及局部图像18
2.3 基本线条操作19
2.4 平移20
2.5 旋转20
2.6 缩放21
2.6.1 邻近插值22
2.6.2 双线性插值22
2.7 翻转23
2.8 裁剪23
2.9 算术操作23
2.10 位操作24
2.11 Masking操作25
2.12 色彩通道分离与融合26
2.13 颜色空间转换27
2.14 颜色直方图28
2.15 平滑与模糊29
2.16 边缘检测31
2.17 人脸和眼睛检测示例32
2.18 本章总结35
第3章 常见深度学习框架36
3.1 PyTorch38
3.1.1 Tensor39
3.1.2 Autograd42
3.1.3 Torch.nn43
3.2 Chainer45
3.2.1 Variable46
3.2.2 Link与Function47
3.2.3 Chain50
3.2.4 optimizers51
3.2.5 损失函数51
3.2.6 GPU的使用52
3.2.7 模型的保存与加载54
3.2.8 FashionMnist图像分类示例54
3.2.9 Trainer59
3.3 TensorFlow与Keras66
3.3.1 TensorFlow66
3.3.2 Keras67
3.4 MXNet与Gluon73
3.4.1 MXNet73
3.4.2 Gluon74
3.4.3 Gluon Sequential74
3.4.4 Gluon Block75
3.4.5 使用GPU76
3.4.6 Gluon Hybrid77
3.4.7 Lazy Evaluation79
3.4.8 Module80
3.5 其他框架81
3.6 本章总结81
第4章 图像分类82
4.1 VGG84
4.1.1 VGG介绍84
4.1.2 MXNet版VGG使用示例85
4.2 ResNet89
4.2.1 ResNet介绍89
4.2.2 Chainer版ResNet示例90
4.3 Inception95
4.3.1 Inception介绍95
4.3.2 Keras版Inception V3川菜分类97
4.4 Xception116
4.4.1 Xception简述116
4.4.2 Keras版本Xception使用示例116
4.5 DenseNet122
4.5.1 DenseNet介绍122
4.5.2 PyTorch版DenseNet使用示例122
4.6 本章总结126
第5章 目标检测与识别128
5.1 Faster RCNN129
5.1.1 Faster RCNN介绍129
5.1.2 ChainerCV版Faster RCNN示例131
5.2 SSD139
5.2.1 SSD介绍139
5.2.2 SSD示例140
5.3 YOLO148
5.3.1 YOLO V1、V2和V3介绍148
5.3.2 Keras版本YOLO V3示例150
5.4 本章总结157
第6章 图像分割158
6.1 物体分割159
6.2 语义分割164
6.2.1 FCN与SegNet166
6.2.2 PSPNet171
6.2.3 DeepLab172
6.3 实例分割176
6.3.1 FCIS177
6.3.2 Mask R-CNN178
6.3.3 MaskLab180
6.3.4 PANet181
6.4 本章总结181
第7章 图像搜索183
7.1 Siamese Network185
7.2 Triplet Network186
7.3 Margin Based Network188
7.4 Keras版Triplet Network示例190
7.4.1 准备数据190
7.4.2 训练文件191
7.4.3 采样文件195
7.4.4 模型训练202
7.4.5 模型测试206
7.4.5 结果可视化210
7.5 本章小结216
第8章 图像生成218
8.1 VAE219
8.1.1 VAE介绍219
8.1.2 Chainer版本VAE示例220
8.2 生成对抗网络GAN221
8.2.1 GAN介绍221
8.2.2 Chainer DCGAN RPG游戏角色生成示例229
8.3 Neural Style Transfer238
8.3.1 Neural Style Transfer介绍238
8.3.2 MXNet多风格转换MSG-Net示例241
8.4 本章总结246
后记247
前 言
前言
目前人工智能领域越来越受到公众的关注,因此人工智能算法工程师也渐渐浮出水面,成为招聘网站上一个非常耀眼的岗位,各类创业投资也紧紧围绕着AI主题旋转。
我认为目前人工智能算法工程师主要分为两类。
科学家型:主要研究前沿算法,在各大高校和企业的研究院居多。
工程师型:主要将的算法应用到具体的业务场景,在企业开发部门居多,为本书主要针对对象。
人工智能算法按特征学习的深浅分为机器学习、深度学习,另外也有强化学习方向。按应用场景则可分为:计算机视觉、自然语言和语音处理等。
编写本书主要基于以下事实,笔者在学习机器学习和深度学习的过程中,发现理论方面的书籍十分丰富,包括周志华老师的《机器学习》与Ian Goodfellow的《深度学习》;教学视频也十分丰富,包括斯坦福大学吴恩达教授的CS229与李飞飞教授的CS231,以及台湾大学(National Taiwan University)林轩田老师和李宏毅老师的课程。但是很少有关于一个方向(比如计算机视觉)比较丰富的工程应用书籍,包括当前主流框架的综合介绍,笔者当时从理论到实践走了不少弯路,也踩过不少坑,故希望本书能在这个方面做出一点小小的贡献,成为理论与实践的桥梁,让读者相对容易地迈出由0到1的那一步。
本书主要关注计算机视觉领域,基于开源项目介绍的算法,在此也感谢各位开源人士,借助他们的成果,我们学习到了很多知识,本书各章主要内容如下:
第1章对深度学习与计算机视觉进行简要介绍,也会简单介绍开发环境的搭建。
第2章主要介绍OpenCV的基本操作及部分高级操作,包括人脸和人眼的检测与识别。
第3章着重介绍目前常用的几类深度学习框架,包括PyTorch、Chainer、TensorFlow-Keras和MXNet-Gluon,另外本书中偶尔还会用到ChainerCV和GluonCV。
第4章对图像分类进行了介绍,包括经典的网络类型(VGG、ResNet、Inception、Xception、DenseNet),并展示了部分实践操作。
第5章对目标检测与识别进行了介绍,包括三种主流的网络结构:YOLO、SSD、Faster R-CNN,并展示了实践操作。
第6章介绍图像分割技术,主要从前背景分割(Grab Cut)、语义分割(DeepLab与PSPNet)和实例分割(FCIS、Mask R-CNN、MaskLab、PANet)三个粒度阐述。
第7章介绍图像搜索技术,主要指以图搜图方面(CBIR),以及对应的实践展示。
第8章主要介绍图像生成技术,包括三个大方向:Auto-Encoder、GAN和Neural Style Transfer。
计算机视觉是一个非常大的方向,涉及的内容非常多,本书只涉及了其中部分领域,未涉及OCR、目标追踪、三维重建和光场等方面的内容。
本书面向的主要是已经拥有机器学习和深度学习基础,但在计算机视觉领域实践较少,对各个方向了解较少的读者,其他感兴趣的读者也可作为科普读物。希望本书能为计算机视觉感兴趣的读者打开一扇窗户,引领大家迈出从理论到实践的关键一步。另外由于笔者学识、经验和能力水平所限,书中难免有错误或误解的地方,欢迎广大读者批评指正。
阅读本书需要的知识储备包括以下几种:
线性代数
概率论
统计学
高等数学,主要指函数方面
机器学习
深度学习
Python编程技术(特别需要熟悉Numpy库)
Linux基础知识(可选项)
如果在学习过程中遇到任何问题或不太理解的概念,那么好的方式是通过网络寻找答案,请相信我们所遇到的问题,有很大一部分是大家都会遇到的问题,网上说不定已经有了详细地讨论,这时只需要去发现即可;如果没有找到对应的解决方法,那么在对应的社区提问也是很好的一种方式。
希望读者在阅读本书时,谨记计算机是负责资源调度的,永远会有时间资源和空间资源的平衡问题。GPU的使用就是并行利用空间换取时间,而IO密集型与计算密集型则是另外两个常常遇到的问题。在做深度学习方面的实践时,这些问题都应该考虑到位,特别是面临海量数据的时候,比如上亿级别的图像搜索业务。这些知识在计算机操作系统的书籍当中有非常详细的论述,如果读者希望在计算机领域有长足的发展,那么这是一本基本重要的书籍,建议好好学习。
对于本书的完成,要特别感谢王金柱编辑给予的帮助和指导,感谢体贴的妻子体谅笔者分出部分时间来撰写此书。
读者联系邮箱:[email protected]。
目前人工智能领域越来越受到公众的关注,因此人工智能算法工程师也渐渐浮出水面,成为招聘网站上一个非常耀眼的岗位,各类创业投资也紧紧围绕着AI主题旋转。
我认为目前人工智能算法工程师主要分为两类。
科学家型:主要研究前沿算法,在各大高校和企业的研究院居多。
工程师型:主要将的算法应用到具体的业务场景,在企业开发部门居多,为本书主要针对对象。
人工智能算法按特征学习的深浅分为机器学习、深度学习,另外也有强化学习方向。按应用场景则可分为:计算机视觉、自然语言和语音处理等。
编写本书主要基于以下事实,笔者在学习机器学习和深度学习的过程中,发现理论方面的书籍十分丰富,包括周志华老师的《机器学习》与Ian Goodfellow的《深度学习》;教学视频也十分丰富,包括斯坦福大学吴恩达教授的CS229与李飞飞教授的CS231,以及台湾大学(National Taiwan University)林轩田老师和李宏毅老师的课程。但是很少有关于一个方向(比如计算机视觉)比较丰富的工程应用书籍,包括当前主流框架的综合介绍,笔者当时从理论到实践走了不少弯路,也踩过不少坑,故希望本书能在这个方面做出一点小小的贡献,成为理论与实践的桥梁,让读者相对容易地迈出由0到1的那一步。
本书主要关注计算机视觉领域,基于开源项目介绍的算法,在此也感谢各位开源人士,借助他们的成果,我们学习到了很多知识,本书各章主要内容如下:
第1章对深度学习与计算机视觉进行简要介绍,也会简单介绍开发环境的搭建。
第2章主要介绍OpenCV的基本操作及部分高级操作,包括人脸和人眼的检测与识别。
第3章着重介绍目前常用的几类深度学习框架,包括PyTorch、Chainer、TensorFlow-Keras和MXNet-Gluon,另外本书中偶尔还会用到ChainerCV和GluonCV。
第4章对图像分类进行了介绍,包括经典的网络类型(VGG、ResNet、Inception、Xception、DenseNet),并展示了部分实践操作。
第5章对目标检测与识别进行了介绍,包括三种主流的网络结构:YOLO、SSD、Faster R-CNN,并展示了实践操作。
第6章介绍图像分割技术,主要从前背景分割(Grab Cut)、语义分割(DeepLab与PSPNet)和实例分割(FCIS、Mask R-CNN、MaskLab、PANet)三个粒度阐述。
第7章介绍图像搜索技术,主要指以图搜图方面(CBIR),以及对应的实践展示。
第8章主要介绍图像生成技术,包括三个大方向:Auto-Encoder、GAN和Neural Style Transfer。
计算机视觉是一个非常大的方向,涉及的内容非常多,本书只涉及了其中部分领域,未涉及OCR、目标追踪、三维重建和光场等方面的内容。
本书面向的主要是已经拥有机器学习和深度学习基础,但在计算机视觉领域实践较少,对各个方向了解较少的读者,其他感兴趣的读者也可作为科普读物。希望本书能为计算机视觉感兴趣的读者打开一扇窗户,引领大家迈出从理论到实践的关键一步。另外由于笔者学识、经验和能力水平所限,书中难免有错误或误解的地方,欢迎广大读者批评指正。
阅读本书需要的知识储备包括以下几种:
线性代数
概率论
统计学
高等数学,主要指函数方面
机器学习
深度学习
Python编程技术(特别需要熟悉Numpy库)
Linux基础知识(可选项)
如果在学习过程中遇到任何问题或不太理解的概念,那么好的方式是通过网络寻找答案,请相信我们所遇到的问题,有很大一部分是大家都会遇到的问题,网上说不定已经有了详细地讨论,这时只需要去发现即可;如果没有找到对应的解决方法,那么在对应的社区提问也是很好的一种方式。
希望读者在阅读本书时,谨记计算机是负责资源调度的,永远会有时间资源和空间资源的平衡问题。GPU的使用就是并行利用空间换取时间,而IO密集型与计算密集型则是另外两个常常遇到的问题。在做深度学习方面的实践时,这些问题都应该考虑到位,特别是面临海量数据的时候,比如上亿级别的图像搜索业务。这些知识在计算机操作系统的书籍当中有非常详细的论述,如果读者希望在计算机领域有长足的发展,那么这是一本基本重要的书籍,建议好好学习。
对于本书的完成,要特别感谢王金柱编辑给予的帮助和指导,感谢体贴的妻子体谅笔者分出部分时间来撰写此书。
读者联系邮箱:[email protected]。
缪 鹏
2018年7月1日
评论
还没有评论。