猜你喜欢
计算机视觉40例从入门到深度学习(OpenCV-Python)

计算机视觉40例从入门到深度学习(OpenCV-Python)

书籍作者:李立宗 ISBN:9787121436857
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4839
创建日期:2023-04-17 发布日期:2023-04-17
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书以OpenCV-Python(the Python API for OpenCV)为工具,以案例为载体,系统介绍了计算机视觉从入门到深度学习的相关知识点。

本书从基础知识、基础案例、机器学习、深度学习和人脸识别5个方面对计算机视觉的相关知识点进行了全面、系统、深入的介绍。书中共介绍了40余个经典的计算机视觉案例,其中既有图像加密、指纹识别、车牌识别、缺陷检测等基于传统技术的计算机视觉经典案例,也有图像分类、目标检测、语义分割、实例分割、风格迁移、姿势识别等基于深度学习的计算机视觉案例,还有表情识别、驾驶员疲劳检测、易容术、性别和年龄识别等基于人脸识别的计算机视觉案例。

在介绍具体的算法原理时,本书尽量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用复杂抽象的公式来介绍。


作者简介

天津职业技术师范大学副教授,研究兴趣为计算机视觉、人工智能等方向。在上述领域的国际会议、期刊公开发表论文十余篇,拥有发明专利一项、软件著作权十余项,主编《OpenCV轻松入门》、《OpenCV编程案例详解》、参编《数字图像处理技术》等十余本图书,在网易云课堂主讲的计算机视觉等系列课程被评为精品课。

编辑推荐

一本书掌握计算机视觉领域的核心应用和关键点!

前言

前言

计算机视觉是目前最热门的研究领域之一,OpenCV-Python集成了OpenCV C++ API和Python的最佳特性,成为计算机视觉领域内极具影响力和实用性的工具。

近年来,我深耕计算机视觉领域,从事课程研发工作,在该领域,尤其是OpenCV-Python方面积累了一些经验,因此经常会收到与该领域相关的咨询,内容涵盖图像处理的基础知识、OpenCV工具的使用、深度学习的具体应用等多个方面。为了更好地把积累的知识以图文的形式分享给大家,我对该领域的知识点进行了系统的整理,编写了本书。希望本书的内容能够为大家在计算机视觉方面的学习提供帮助。

本书的主要特点

本书在内容的安排、组织、设计上遵循了如下思路。

1.适合入门

第1部分对计算机视觉的基础知识进行了全面的梳理,主要包括数字图像基础、Python基础、OpenCV基础。重点对计算机视觉中用到的基础理论、算法、图像处理,Python程序设计基础语法,OpenCV核心函数进行了介绍。该部分内容能够帮助没有计算机视觉基础的读者快速入门,也能够帮助有一定计算机视觉基础的读者对核心知识点进行快速梳理。

2.以案例为载体

按照知识点安排的教材的特点在于“相互独立,完全穷尽”(Mutually Exclusive Collectively Exhaustive,MECE),能够保证介绍的知识点“不重叠,不遗漏”。但是,跟着教材学习可能会存在如下问题:“了解了每一个知识点,但在遇到问题时感觉无从下手,不知道该运用哪些知识点来解决当前问题。”

知识点是一个个小石子,解决问题的思路是能够把许多石子串起来的绳子。绳子可以赋予石子更大的意义和价值,解决问题能够让知识点得以运用。

本书通过案例来介绍相关知识点,尽量避免将案例作为一个孤立的问题来看待,而是更多地考虑知识点之间的衔接、组合、应用场景等。例如,本书采用了多种不同的方式来实现手写数字识别,以帮助大家更好地从不同角度理解和分析问题。本书从案例实战的角度展开,将案例作为一根线,把所有知识点串起来,以帮助读者理解知识点间的关系并将它们组合运用,提高读者对知识点的理解和运用能力。

3.轻量级实现

尽量以简单明了的方式实现一个问题,以更好地帮读者搞清问题的核心和算法。用最简化的方式实现最小可用系统(Minimum Viable Product,MVP),用最低的成本和代价快速验证和迭代一个算法,这样更有利于理解问题、解决问题。在成本最低的前提下,利用现有的资源,以最快的速度行动起来才是最关键的。所以,本书尽可能简化每一个案例,尽量将代码控制在100行左右。希望通过这样的设计,让读者更好地关注算法核心。

4.专注算法

抽象可以帮助读者屏蔽无关细节,让读者能够专注于工具的使用,极大地提高工作效率。OpenCV及很多其他库提供的函数都是封装好的,只需要直接把输入传递给函数,函数就能够返回需要的结果。因此,本书没有对函数做过多介绍,而是将重点放在了实现案例所使用的核心算法上。

5.图解

一图胜千言。在描述关系、流程等一些相对比较复杂的知识点时,单纯使用语言描述,读者一时可能会难以理解。在面对复杂的知识点时,有经验的学习者会根据已有知识点绘制一幅与该知识点有关的图,从而进一步理解该知识点。因为图像能够更加清晰、直观、细致地将知识点的全局、结构、关系、流程、脉络等信息体现出来。本书配有大量精心制作的图表,希望能够更好地帮助读者理解相关知识点。

6.案例全面

本书涉及的40余个案例都是相关领域中比较典型的,涵盖了计算机视觉领域的核心应用和关键知识点。案例主要包括四个方面。

— 基础部分:图像安全(图像加密、图像关键部位打码、隐身术)、图像识别(答题卡识别、手势识别、车牌识别、指纹识别、手写数字识别)、物体计数、图像检索、缺陷检测等。

— 机器学习:KNN实现字符(手写数字、英文字母)识别、数独图像求解(KNN)、SVM手写数字识别、行人检测、艺术画(K均值聚类)等。

— 深度学习:图像分类、目标检测(YOLO算法、SSD算法)、语义分割、实例分割、风格迁移、姿势识别等。

— 人脸识别相关:人脸检测、人脸识别、勾勒五官轮廓、人脸对齐、表情识别、驾驶员疲劳检测、易容术、性别和年龄识别等。

感谢

首先,感谢我的导师高铁杠教授,感谢高教授带我走进了计算机视觉这一领域,以及一直以来给我的帮助。

感谢OpenCV开源库的所有贡献者让OpenCV变得更好,让计算机视觉领域更加精彩。

感谢本书的责任编辑符隆美老师,她积极促成本书的出版,修正了书中的技术性错误,并对本书内容进行了润色。感谢本书的封面设计老师为本书设计了精美的封面。感谢为本书出版而付出辛苦工作的每一位老师。

感谢合作单位天津拨云咨询服务有限公司为本书提供资源支持。

本书出版受天津职业技术师范大学教材支持项目(项目编号:XJJW1970)支持。

感谢家人的爱,我爱你们。

互动方式

限于本人水平,书中存在很多不足之处,欢迎大家提出宝贵的意见和建议,也非常欢迎大家跟我交流关于OpenCV的各种问题,我的邮箱是[email protected]

另外,大家也可以关注我的微信公众号“计算机视觉之光”(微信号cvlight)获取关于本书的配套资源。

李立宗

2022年5月27日于天津


目录

目录
第1部分 基础知识导读篇
第1章 数字图像基础 2
1.1 图像表示基础 2
1.1.1 艺术与生活 2
1.1.2 数字图像 3
1.1.3 二值图像的处理 5
1.1.4 像素值的范围 5
1.1.5 图像索引 7
1.2 彩色图像的表示 8
1.3 应用基础 9
1.3.1 量化 10
1.3.2 特征 10
1.3.3 距离 11
1.3.4 图像识别 13
1.3.5 信息隐藏 15
1.4 智能图像处理基础 16
1.5 抽象 18
第2章 Python基础 21
2.1 如何开始 21
2.2 基础语法 22
2.2.1 变量的概念 22
2.2.2 变量的使用 22
2.3 数据类型 24
2.3.1 基础类型 25
2.3.2 列表 25
2.3.3 元组 28
2.3.4 字典 29
2.4 选择结构 31
2.5 循环结构 35
2.6 函数 39
2.6.1 什么是函数 39
2.6.2 内置函数 41
2.6.3 自定义函数 42
2.7 模块 44
2.7.1 标准模块 44
2.7.2 第三方模块 45
2.7.3 自定义模块 46
第3章 OpenCV基础 47
3.1 基础 47
3.1.1 安装OpenCV 47
3.1.2 读取图像 49
3.1.3 显示图像 50
3.1.4 保存图像 51
3.2 图像处理 52
3.2.1 像素处理 52
3.2.2 通道处理 57
3.2.3 调整图像大小 60
3.3 感兴趣区域 62
3.4 掩模 63
3.4.1 掩模基础及构造 64
3.4.2 乘法运算 65
3.4.3 逻辑运算 66
3.4.4 掩模作为函数参数 68
3.5 色彩处理 69
3.5.1 色彩空间基础 69
3.5.2 色彩空间转换 71
3.5.3 获取皮肤范围 72
3.6 滤波处理 73
3.6.1 均值滤波 75
3.6.2 高斯滤波 78
3.6.3 中值滤波 82
3.7 形态学 84
3.7.1 腐蚀 85
3.7.2 膨胀 88
3.7.3 通用形态学函数 91
第2部分 基础案例篇
第4章 图像加密与解密 94
4.1 加密与解密原理 94
4.2 图像整体加密与解密 96
4.3 脸部打码及解码 98
4.3.1 掩模方式实现 98
4.3.2 ROI方式实现 101
第5章 数字水印 105
5.1 位平面 106
5.2 数字水印原理 114
5.3 实现方法 115
5.4 具体实现 119
5.5 可视化水印 121
5.5.1 ROI 121
5.5.2 加法运算 123
5.6 扩展学习 125
5.6.1 算术运算实现数字水印 125
5.6.2 艺术字 128
第6章 物体计数 131
6.1 理论基础 131
6.1.1 如何计算图像的中心点 131
6.1.2 获取图像的中心点 133
6.1.3 按照面积筛选前景对象 135
6.2 核心程序 138
6.2.1 核函数 138
6.2.2 zip函数 140
6.2.3 阈值处理函数threshold 140
6.3 程序设计 141
6.4 实现程序 142
第7章 缺陷检测 144
7.1 理论基础 144
7.1.1 开运算 144
7.1.2 距离变换函数distanceTransform 146
7.1.3 最小包围圆形 148
7.1.4 筛选标准 149
7.2 程序设计 150
7.3 实现程序 151
第8章 手势识别 153
8.1 理论基础 154
8.1.1 获取凸包 154
8.1.2 凸缺陷 156
8.1.3 凸缺陷占凸包面积比 159
8.2 识别过程 161
8.2.1 识别流程 162
8.2.2 实现程序 165
8.3 扩展学习:石头、剪刀、布的识别 167
8.3.1 形状匹配 167
8.3.2 实现程序 170
第9章 答题卡识别 173
9.1 单道题目的识别 173
9.1.1 基本流程及原理 173
9.1.2 实现程序 178
9.2 整张答题卡识别原理 180
9.2.1 图像预处理 180
9.2.2 答题卡处理 181
9.2.3 筛选出所有选项 189
9.2.4 将选项按照题目分组 190
9.2.5 处理每一道题目的选项 195
9.2.6 显示结果 195
9.3 整张答题卡识别程序 195
第10章 隐身术 201
10.1 图像的隐身术 201
10.1.1 基本原理与实现 201
10.1.2 实现程序 213
10.1.3 问题及优化方向 214
10.2 视频隐身术 215
第11章 以图搜图 217
11.1 原理与实现 218
11.1.1 算法原理 218
11.1.2 感知哈希值计算方法 220
11.1.3 感知哈希值计算函数 224
11.1.4 计算距离 224
11.1.5 计算图像库内所有图像的哈希值 225
11.1.6 结果显示 226
11.2 实现程序 228
11.3 扩展学习 230
第12章 手写数字识别 231
12.1 基本原理 232
12.2 实现细节 233
12.3 实现程序 235
12.4 扩展阅读 236
第13章 车牌识别 238
13.1 基本原理 238
13.1.1 提取车牌 238
13.1.2 分割车牌 240
13.1.3 识别车牌 242
13.2 实现程序 246
13.3 下一步学习 249
第14章 指纹识别 250
14.1 指纹识别基本原理 251
14.2 指纹识别算法概述 251
14.2.1 描述关键点特征 251
14.2.2 特征提取 252
14.2.3 MCC匹配方法 254
14.2.4 参考资料 258
14.3 尺度不变特征变换 258
14.3.1 尺度空间变换 260
14.3.2 关键点定位 266
14.3.3 通过方向描述关键点 267
14.3.4 显示关键点 271
14.4 基于SIFT的指纹识别 273
14.4.1 距离计算 273
14.4.2 特征匹配 274
14.4.3 算法及实现程序 277
第3部分 机器学习篇
第15章 机器学习导读 282
15.1 机器学习是什么 283
15.2 机器学习基础概念 284
15.2.1 机器学习的类型 284
15.2.2 泛化能力 289
15.2.3 数据集的划分 290
15.2.4 模型的拟合 291
15.2.5 性能度量 292
15.2.6 偏差与方差 293
15.3 OpenCV中的机器学习模块 294
15.3.1 人工神经网络 295
15.3.2 决策树 296
15.3.3 EM模块 300
15.3.4 K近邻模块 300
15.3.5 logistic回归 303
15.3.6 贝叶斯分类器 305
15.3.7 支持向量机 308
15.3.8 随机梯度下降 SVM 分类器 310
15.4 OpenCV机器学习模块的使用 312
15.4.1 使用KNN模块分类 312
15.4.2 使用SVM模块分类 314
第16章 KNN实现字符识别 317
16.1 手写数字识别 317
16.2 英文字母识别 319
第17章 求解数独图像 322
17.1 基本过程 322
17.2 定位数独图像内的单元格 323
17.3 构造KNN模型 327
17.4 识别数独图像内的数字 330
17.5 求解数独 332
17.6 绘制数独求解结果 334
17.7 实现程序 335
17.8 扩展学习 338
第18章 SVM数字识别 339
18.1 基本流程 339
18.2 倾斜校正 340
18.3 HOG特征提取 343
18.4 数据处理 348
18.5 构造及使用SVM分类器 351
18.6 实现程序 352
18.7 参考学习 354
第19章 行人检测 355
19.1 方向梯度直方图特征 355
19.2 基础实现 358
19.2.1 基本流程 359
19.2.2 实现程序 359
19.3 函数detectMultiScale参数及优化 360
19.3.1 参数winStride 360
19.3.2 参数padding 362
19.3.3 参数scale 364
19.3.4 参数useMeanshiftGrouping 366
19.4 完整程序 369
19.5 参考学习 370
第20章 K均值聚类实现艺术画 371
20.1 理论基础 371
20.1.1 案例 371
20.1.2 K均值聚类的基本步骤 373
20.2 K均值聚类模块 374
20.3 艺术画 377
第4部分 深度学习篇
第21章 深度学习导读 384
21.1 从感知机到人工神经网络 384
21.1.1 感知机 384
21.1.2 激活函数 385
21.1.3 人工神经网络 387
21.1.4 完成分类 388
21.2 人工神经网络如何学习 389
21.3 深度学习是什么 390
21.3.1 深度的含义 390
21.3.2 表示学习 391
21.3.3 端到端 392
21.3.4 深度学习可视化 393
21.4 激活函数的分类 394
21.4.1 sigmoid函数 394
21.4.2 tanh函数 395
21.4.3 ReLU函数 395
21.4.4 Leaky ReLU函数 396
21.4.5 ELU函数 396
21.5 损失函数 397
21.5.1 为什么要用损失值 397
21.5.2 损失值如何起作用 398
21.5.3 均方误差 399
21.5.4 交叉熵误差 400
21.6 学习的技能与方法 401
21.6.1 全连接 401
21.6.2 随机失活 402
21.6.3 One-hot编码 403
21.6.4 学习率 403
21.6.5 正则化 404
21.6.6 mini-batch方法 405
21.6.7 超参数 406
21.7 深度学习游乐场 406
第22章 卷积神经网络基础 407
22.1 卷积基础 407
22.2 卷积原理 409
22.2.1 数值卷积 409
22.2.2 图像卷积 410
22.2.3 如何获取卷积核 411
22.3 填充和步长 412
22.4 池化操作 413
22.5 感受野 414
22.6 预处理与初始化 416
22.6.1 扩充数据集 416
22.6.2 标准化与归一化 417
22.6.3 网络参数初始化 418
22.7 CNN 418
22.7.1 LeNet 418
22.7.2 AlexNet 419
22.7.3 VGG网络 420
22.7.4 NiN 420
22.7.5 GooLeNet 421
22.7.6 残差网络 423
第23章 DNN模块 426
23.1 工作流程 427
23.2 模型导入 428
23.3 图像预处理 429
23.4 推理相关函数 438
第24章 深度学习应用实践 440
24.1 图像分类 441
24.1.1 图像分类模型 441
24.1.2 实现程序 442
24.2 目标检测 443
24.2.1 YOLO 444
24.2.2 SSD 447
24.3 图像分割 450
24.3.1 语义分割 450
24.3.2 实例分割 453
24.4 风格迁移 458
24.5 姿势识别 460
24.6 说明 463
第5部分 人脸识别篇
第25章 人脸检测 466
25.1 基本原理 466
25.2 级联分类器的使用 469
25.3 函数介绍 470
25.4 人脸检测实现 471
25.5 表情检测 473
第26章 人脸识别 475
26.1 人脸识别基础 475
26.1.1 人脸识别基本流程 475
26.1.2 OpenCV人脸识别基础 476
26.2 LBPH人脸识别 478
26.2.1 基本原理 478
26.2.2 函数介绍 482
26.2.3 案例介绍 482
26.3 EigenFaces人脸识别 484
26.3.1 基本原理 484
26.3.2 函数介绍 485
26.3.3 案例介绍 485
26.4 FisherFaces人脸识别 487
26.4.1 基本原理 487
26.4.2 函数介绍 489
26.4.3 案例介绍 489
26.5 人脸数据库 491
第27章 dlib库 493
27.1 定位人脸 493
27.2 绘制关键点 494
27.3 勾勒五官轮廓 497
27.4 人脸对齐 500
27.5 调用CNN实现人脸检测 502
第28章 人脸识别应用案例 504
28.1 表情识别 504
28.2 驾驶员疲劳检测 507
28.3 易容术 511
28.3.1 仿射 511
28.3.2 算法流程 512
28.3.3 实现程序 514
28.4 年龄和性别识别 517

短评

本来100多元的一下子半价赶紧下单买下

2022-08-01 20:25:05

产品特色