猜你喜欢
深度学习与图像识别:原理与实践  [Deep Learning and Image Recognition: Principle and]

深度学习与图像识别:原理与实践 [Deep Learning and Image Recognition: Principle and]

书籍作者:魏溪含 ISBN:9787111630036
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7189
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

这是一部从技术原理、算法和工程实践3个维度系统讲解图像识别的著作,由阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写。

在知识点的选择上,本书广度和深度兼顾,既能让完全没有基础的读者迅速入门,又能让有基础的读者深入掌握图像识别的核心技术;在写作方式上,本书避开了复杂的数学公式及其推导,从问题的前因后果 、创造者的思考过程,利用简单的数学计算来做模型分析和讲解,通俗易懂。更重要的书,本书不仅仅是聚焦于技术,而是将重点放在了如何用技术解决实际的业务问题。

全书一共13章:

第1-2章主要介绍了图像识别的应用场景、工具和工作环境的搭建;

第3-6章详细讲解了图像分类算法、机器学习、神经网络、误差反向传播等图像识别的基础技术及其原理;

第7章讲解了如何利用PyTorch来实现神经网络的图像分类,专注于实操,是从基础向高阶的过渡;

第8-12章深入讲解了图像识别的核心技术及其原理,包括卷积神经网络、目标检测、分割、产生式模型、神经网络可视化等主题;

第13章从工程实践的角度讲解了图像识别算法的部署模式。


作者简介

魏溪含

爱丁堡大学人工智能硕士,阿里巴巴达摩院算法专家,在计算机视觉、大数据领域有8年以上的算法架构和研发经验。
在大数据领域,曾带领团队对阿里巴巴个性化推荐系统进行升级;计算机视觉领域,主导并攻克了光伏EL全自动瑕疵识别的世界难题,并在行为识别领域带领团队参赛打破世界纪录等。

涂铭
阿里巴巴数据架构师,对大数据、自然语言处理、图像识别、Python、Java相关技术有深入的研究,积累了丰富的实践经验。在工业领域曾参与了燃煤优化、设备故障诊断项目,正泰光伏电池片和组件EL图像检测项目;在自然语言处理方面,担任导购机器人项目的架构师,主导开发机器人的语义理解、短文本相似度匹配、上下文理解,以及通过自然语言检索产品库,在项目中构建了NoSQL+文本检索等大数据架构,也同时负责问答对的整理和商品属性的提取,带领NLP团队构建语义解析层。

张修鹏
毕业于中南大学,阿里巴巴技术发展专家,长期从事云计算、大数据、人工智能与物联网技术的商业化应用,在阿里巴巴首次将图像识别技术引入工业,并推动图像识别产品化、平台化,擅于整合前沿技术解决产业问题,主导多个大数据和AI为核心的数字化转型项目成功实施,对技术和商业结合有着深刻的理解。

编辑推荐
适读人群 :1. 有一定python基础的,并且未来想了解或者从事图像识别方面的开发2. 对人工智能,深度学习有兴趣的读者3. 从事计算机视觉相关工作的读者

(1)三位作者均来自阿里巴巴,由达摩院的算法专家领衔,技术积累深厚,业务经验丰富;
(2)从技术原理、算法和工程实践3个维度系统展开,既适合零基础读者快速入门,又适合有基础读者理解其核心技术;
(3)写作方式上避开了艰涩的数学公式及其推导,深入浅出。

前言

为什么要写这本书
随着深度学习技术的发展、计算能力的提升和视觉数据的增长,视觉智能计算技术在许多应用领域如拍照搜索、智能相册、人脸闸机、城市智能交通管理、智慧医疗等都取得了令人瞩目的成绩。因此越来越多的人开始对机器视觉感兴趣,并开始从事这个行业。就图像识别领域来说,运行一个开源的代码并不是什么难事,但搞懂其中的原理确实会稍有些难度。因此本书在每章中都会用相对通俗的语言来介绍算法的背景和原理,并会在读者“似懂非懂”时给出实战案例。实战案例的代码已全部在线下运行通过,代码并不复杂,可以很好地帮助读者理解其中的细节,希望读者在学习理论之后可以亲自动手实践。图像识别的理论和实践是相辅相成的,希望本书可以带领读者走进图像识别的世界。
本书从章节规划到具体的讲述方式,具有以下两个特点:
第一个特点是本书的主要目标读者定位为高校相关专业的本科生(统计学、计算机技术)、图像识别爱好者,以及不具备专业数学知识的人群。图像识别是一系列学科的集合体,它以机器学习、模式识别等知识为基础,因此依赖很多数学知识。本书尽量绕开复杂的数学证明和推导,从问题的前因后果、创造者思考的过程和简单的数学计算的角度来做模型的分析和讲解,目的是以更通俗易懂的方式带领读者入门。另外,在第8~12章的后面都附有参考文献,想要深入了解的读者可以继续阅读。
第二个特点是本书在每章后面都附有实战案例,读者可以结合案例学习,通过实践验证自己想法的价值。在本书的内容编排上,遵循知识点背景介绍—原理剖析—实战案例的介绍方式,同时所有的代码会在书中详细列出或者上传到GitHub,以方便读者下载与调试,帮助读者快速掌握知识点,快速上手,而且这些代码也可以应用到后续实际的开发项目中。在实际项目章节中,选取目前在图像识别领域中比较热门的项目,对之前的知识点进行汇总,帮助读者巩固与提升。


读者对象
统计学或相关IT专业学生
本书的初衷是面向相关专业的学生—拥有大量基于理论知识的认知却缺乏实战经验的人员,让其在理论的基础上深入了解。通过本书,学生可以跟随本书的教程一起操作学习,达到对自己使用的人工智能工具、算法和技术知其然亦知其所以然的目的。
信息科学和计算机科学爱好者
本书是一本近现代科技的历史书,也是一本科普书,还是一本人工智能思想和技术的教科书。通过本书可以了解人工智能领域的前辈们在探索的道路上做出的努力和思考,理解他们不同的观点和思路,有助于开拓自己的思维和视野。
人工智能相关专业的研究人员
本书详细介绍了图像识别的相关知识。通过本书可以了解其理论知识,了解哪些才是项目所需的内容以及如何在项目中实现,能够快速上手。


如何阅读本书
本书从以下几个方面阐述图像识别:
第1章介绍图像识别的一些应用场景,让读者对图像识别有个初步的认识。
第2章主要对图像识别的工程背景做简单介绍,同时介绍了本书后续章节实战案例中会用到的环境,因此该章是实战的基础。
第3~6章是图像识别的技术基础,包括机器学习、神经网络等。该部分的代码主要使用Python实现。没有机器学习基础的同学需要理解这几章之后再往下看,有机器学习基础的同学可以有选择地学习。
第7章是一个过渡章节,虽然第6章中手动用Python实现了神经网络,但由于本书后面的图像识别部分主要使用PyTorch实现,因此使用该章作为过渡,介绍如何使用PyTorch来搭建神经网络。
第8~12章为图像识别的核心。第8章首先介绍了图像中的卷积神经网络与普通神经网络的异同,并给出了常见的卷积神经网络结构。接下来的第9~12章分别介绍了图像识别中的检测、分割、产生式模型以及可视化的问题,并在每章后面给出相应的实战案例。
第13章简单介绍了图像识别的工业部署模式,以帮助读者构建一个更完整的知识体系。
第8~12章包含参考文献,主要是本书中介绍的一些方法,或者本书中提到但是没有深入说明的方法,感兴趣的读者可以自行查询学习。
关于附件的使用方法:除了第1章外,本书的每一章都有对应的源数据和完整代码,这些内容可在本书中直接找到,有些代码需要从GitHub中下载,地址为https://github.com/image_recognition/learning-recognition。需要注意的是,为了让读者更好地了解每行代码的含义,在注释信息中使用了中文标注,每个程序文件的编码格式都是UTF-8。
勘误和支持
由于本书的作者水平及撰稿时间有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者可通过发送电子邮件到[email protected][email protected]联系并反馈建议或意见。


致谢
首先非常感谢我的家人,由于业余时间常常被工作挤占,本书的撰写又用了所剩不多的业余时间,因此少了很多陪伴家人的时间,感谢他们的理解、支持和鼓励。
撰写一本书,将自己的知识重新梳理后分享给读者,在技术发展的道路上帮助到其他人,这件事情是非常有价值的,因此也非常感谢两位合著者涂铭、张修鹏。
感谢机械工业出版社华章公司的杨福川老师,以及全程参与审核、校验等工作的张锡鹏、孙海亮老师等出版工作者,是他们的辛勤付出才能保

目录

前言
第1章 机器视觉在行业中的应用1
1.1 机器视觉的发展背景1
1.1.1 人工智能1
1.1.2 机器视觉2
1.2 机器视觉的主要应用场景3
1.2.1 人脸识别3
1.2.2 视频监控分析4
1.2.3 工业瑕疵检测5
1.2.4 图片识别分析6
1.2.5 自动驾驶/驾驶辅助7
1.2.6 三维图像视觉8
1.2.7 医疗影像诊断8
1.2.8 文字识别9
1.2.9 图像/视频的生成及设计9
1.3 本章小结10
第2章 图像识别前置技术11
2.1 深度学习框架11
2.1.1 Theano11
2.1.2 Tensorflow12
2.1.3 MXNet13
2.1.4 Keras13
2.1.5 PyTorch14
2.1.6 Caffe14
2.2 搭建图像识别开发环境15
2.2.1 Anaconda15
2.2.2 conda18
2.2.3 Pytorch的下载与安装19
2.3 Numpy使用详解20
2.3.1 创建数组20
2.3.2 创建Numpy数组22
2.3.3 获取Numpy属性24
2.3.4 Numpy数组索引25
2.3.5 切片25
2.3.6 Numpy中的矩阵运算26
2.3.7 数据类型转换27
2.3.8 Numpy的统计计算方法28
2.3.9 Numpy中的arg运算29
2.3.10 FancyIndexing29
2.3.11 Numpy数组比较30
2.4 本章小结31
第3章 图像分类之KNN算法32
3.1 KNN的理论基础与实现32
3.1.1 理论知识32
3.1.2 KNN的算法实现33
3.2 图像分类识别预备知识35
3.2.1 图像分类35
3.2.2 图像预处理36
3.3 KNN实战36
3.3.1 KNN实现MNIST数据分类36
3.3.2 KNN实现Cifar10数据分类41
3.4 模型参数调优44
3.5 本章小结48
第4章 机器学习基础49
4.1 线性回归模型49
4.1.1 一元线性回归50
4.1.2 多元线性回归56
4.2 逻辑回归模型57
4.2.1 Sigmoid函数58
4.2.2 梯度下降法59
4.2.3 学习率的分析61
4.2.4 逻辑回归的损失函数63
4.2.5 Python实现逻辑回归66
4.3 本章小结68
第5章 神经网络基础69
5.1 神经网络69
5.1.1 神经元70
5.1.2 激活函数72
5.1.3 前向传播76
5.2 输出层80
5.2.1 Softmax80
5.2.2 one-hotencoding82
5.2.3 输出层的神经元个数83
5.2.4 MNIST数据集的前向传播83
5.3 批处理85
5.4 广播原则87
5.5 损失函数88
5.5.1 均方误差88
5.5.2 交叉熵误差89
5.5.3 Mini-batch90
5.6 最优化91
5.6.1 随机初始化91
5.6.2 跟随梯度(数值微分)92
5.7 基于数值微分的反向传播98
5.8 基于测试集的评价101
5.9 本章小结104
第6章 误差反向传播105
6.1 激活函数层的实现105
6.1.1 ReLU反向传播实现106
6.1.2 Sigmoid反向传播实现106
6.2 Affine层的实现107
6.3 Softmaxwithloss层的实现108
6.4 基于数值微分和误差反向传播的比较109
6.5 通过反向传播实现MNIST识别111
6.6 正则化惩罚114
6.7 本章小结115
第7章 PyTorch实现神经网络图像分类116
7.1 PyTorch的使用116
7.1.1 Tensor116
7.1.2 Variable117
7.1.3 激活函数118
7.1.4 损失函数120
7.2 PyTorch实战122
7.2.1 PyTorch实战之MNIST分类122
7.2.2 PyTorch实战之Cifar10分类125
7.3 本章小结128
第8章 卷积神经网络129
8.1 卷积神经网络基础129
8.1.1 全连接层129
8.1.2 卷积层130
8.1.3 池化层134
8.1.4 批规范化层135
8.2 常见卷积神经网络结构135
8.2.1 AlexNet136
8.2.2 VGGNet138
8.2.3 GoogLeNet140
8.2.4 ResNet142
8.2.5 其他网络结构144
8.3 VGG16实现Cifar10分类145
8.3.1 训练146
8.3.2 预测及评估149
8.4 本章小结152
8.5 参考文献152
第9章 目标检测153
9.1 定位+分类153
9.2 目标检测155
9.2.1 R-CNN156
9.2.2 Fast R-CNN160
9.2.3 Faster R-CNN162
9.2.4 YOLO165
9.2.5 SSD166
9.3 SSD实现VOC目标检测167
9.3.1 PASCAL VOC数据集167
9.3.2 数据准备170
9.3.3 构建模型175
9.3.4 定义Loss178
9.3.5 SSD训练细节181
9.3.6 训练186
9.3.7 测试189
9.4 本章小结190
9.5 参考文献191
第10章 分割192
10.1 语义分割193
10.1.1 FCN193
10.1.2 UNet实现裂纹分割196
10.1.3 SegNet209
10.1.4 PSPNet210
10.2 实例分割211
10.2.1 层叠式212
10.2.2 扁平式212
10.3 本章小结213
10.4 参考文献214
第11章 产生式模型215
11.1 自编码器215
11.2 对抗生成网络215
11.3 DCGAN及实战217
11.3.1 数据集218
11.3.2 网络设置220
11.3.3 构建产生网络221
11.3.4 构建判别网络223
11.3.5 定义损失函数224
11.3.6 训练过程224
11.3.7 测试227
11.4 其他GAN230
11.5 本章小结235
11.6 参考文献235
第12章 神经网络可视化236
12.1 卷积核236
12.2 特征层237
12.2.1 直接观测237
12.2.2 通过重构观测239
12.2.3 末端特征激活情况243
12.2.4 特征层的作用244
12.3 图片风格化245
12.3.1 理论介绍245
12.3.2 代码实现247
12.4 本章小结255
12.5 参考文献255
第13章 图像识别算法的部署模式257
13.1 图像算法部署模式介绍257
13.2 实际应用场景和部署模式的匹配262
13.3 案例介绍264
13.4 本章小结265

产品特色