新書推薦:
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:NT$
475.0
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:NT$
490.0
《
我的心理医生是只猫
》
售價:NT$
225.0
《
巴拉吉预言
》
售價:NT$
340.0
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:NT$
449.0
《
汉译名著·哲学经典十种
》
售價:NT$
3460.0
《
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
》
售價:NT$
280.0
《
爱丁堡古罗马史-罗马城的起源和共和国的崛起
》
售價:NT$
349.0
|
編輯推薦: |
本书秉承“帮助计算机视觉工程师迈出掌握OpenCV的*步”的初心,在保留必要的数学公式的情况下,针对当前热门的计算机视觉主题,如面部识别、关键点检测、姿势估计,以及基于深度卷积网络的车牌识别,展示了从构思到运行的全过程,并提供了完整的项目代码。
无论你来自学术界还是工业界,都将从经验丰富的OpenCV专家那里学习如何轻松地实现计算机视觉产品和项目。通过多个完整的计算机视觉项目,你将熟悉API的功能,并深入了解在计算机视觉项目中如何设计和选型,从而超越计算机视觉的基础,从更高的层次上实现复杂的图像处理项目的解决方案。而且,你将能借助本书中的项目创建各种工作原型,对OpenCV 4的新功能做到烂熟于心。
通过阅读本书,你将学会:
●使用有效的OpenCV代码对真实世界的计算机视觉问题进行建模
●发现OpenCV项目及维护的*佳实践
●探索用于复杂计算机视觉任务的算法设计方法
●使用OpenCV最新的APIv4.0.0
●从运动中理解3D场景结构和重建3D场景 SfM
●使用ArUco模块进行相机标定并叠加AR物体
|
內容簡介: |
本书第3版仍然坚持“帮助计算机视觉工程师迈出掌握OpenCV的*步”的初心。本书简化数学公式,但保留了重要的数学公式。针对当前热门的计算机视觉主题,如人脸及特征点检测、姿态估计,以及基于深度卷积网络的车牌识别,展示了从构思到运行的全过程,并提供了完整的项目代码。新版本加入“为项目找到*佳OpenCV算法”、“避免OpenCV中的常见陷阱”两个章节帮助程序员从成百上千的API中进行需求权衡、设计、技术选型、优化和避免陷阱。
|
關於作者: |
罗伊·希尔克罗特(Roy Shilkrot)石溪大学(Stony Brook)计算机科学的助理教授,他领导着人群互动小组Human Interaction group。他毕业于麻省理工学院(MIT)并获得博士学位,致力于计算机视觉、人机界面以及其交叉领域的研究,撰写了25篇以上的论文。他还是多项专利技术的共同发明人,也是多本著作的合著者,是众多初创公司的科学顾问委员会的成员,拥有超过10年的工程师和企业家经验。
大卫·米兰·埃斯克里瓦(David Millán Escrivá)ITI(Instituto Tecnológico de Informática)的科学研究员,在IT领域从业超过10年,在计算机视觉、计算机图形和模式识别方面拥有丰富的经验,并运用他在计算机视觉、OCR和增强现实方面的知识与不同的项目和初创公司合作。他是DamilesBlog博客的作者,在那里他发表有关OpenCV、计算机视觉和光学字符识别算法的研究文章和教程。
|
目錄:
|
译者序
前言
作者简介
审阅者简介
第1章 树莓派上的卡通化和皮肤颜色分析1
1.1 访问摄像头2
1.2 桌面应用程序的相机处理主循环4
1.2.1 生成黑白素描4
1.2.2 生成彩色绘画和卡通6
1.2.3 用边缘滤波器来生成邪恶模式8
1.2.4 用皮肤检测来生成外星人造型9
1.3 皮肤变色器的实现12
1.4 从桌面移植到嵌入式设备19
1.4.1 用于开发嵌入式设备代码的设备配置21
1.4.2 在嵌入式设备上安装OpenCV27
1.5 小结39
第2章 使用SfM模块从运动中恢复结构40
2.1 技术要求40
2.2 SfM的核心概念41
2.2.1 相机标定和对极几何42
2.2.2 立体重建和SfM45
2.3 在OpenCV中实现SfM48
2.3.1 图像特征匹配48
2.3.2 找到特征轨迹52
2.3.3 3D重建和可视化55
2.3.4 用于稠密重建的MVS57
2.4 小结60
第3章 使用人脸模块进行人脸特征点及姿态检测61
3.1 技术要求61
3.2 背景和理论63
3.2.1 主动外观模型与受约束的局部模型63
3.2.2 回归方法64
3.3 OpenCV中的人脸特征点检测65
3.4 基于特征点的人脸方向估计68
3.4.1 估计姿态计算69
3.4.2 将姿态投影到图像上70
3.5 小结71
第4章 基于深度卷积网络的车牌识别72
4.1 ANPR简介72
4.2 ANPR算法74
4.3 车牌检测77
4.3.1 分割78
4.3.2 分类84
4.4 车牌识别87
4.4.1 OCR分割88
4.4.2 基于卷积神经网络的字符分类89
4.5 小结105
第5章 通过DNN模块进行人脸检测和识别106
5.1 介绍人脸检测和人脸识别106
5.1.1 人脸检测108
5.1.2 人脸预处理116
5.1.3 收集人脸并从中学习127
5.1.4 人脸识别138
5.1.5 收尾工作——保存和加载文件141
5.1.6 收尾工作——制作一个漂亮的、交互体验好的GUI141
5.2 小结153
5.3 参考文献154
第6章 Web计算机视觉之初识OpenCV.js155
6.1 什么是OpenCV.js155
6.2 编译OpenCV.js157
6.3 OpenCV.js开发基础159
6.4 访问摄像头流165
6.5 图像处理和基本用户界面169
6.5.1 阈值滤波器170
6.5.2 高斯滤波器170
6.5.3 canny滤波器170
6.6 浏览器中的光流 174
6.7 在浏览器中使用Haar级联分类器进行人脸检测178
6.8 小结180
第7章 使用ArUco模块的Android相机校准和AR182
7.1 技术要求182
7.2 增强现实和姿态估计183
7.2.1 相机校准184
7.2.2 用于平面重建的增强现实标记186
7.3 Android系统中的相机访问188
7.4 使用ArUco进行相机校准191
7.5 使用jMonkeyEngine实现增强现实195
7.6 小结196
第8章 带有拼接模块的iOS全景图198
8.1 技术要求198
8.2 全景图像拼接方法199
8.2.1 全景图的特征提取和鲁棒匹配200
8.2.2 变形图像,以便全景创建203
8.3 项目概况204
8.4 用CocoaPods设置iOS OpenCV项目204
8.5 用于全景捕捉的iOS UI205
8.6 Objective-C++包装器中的OpenCV拼接209
8.7 小结212
8.8 进一步阅读212
第9章 为项目找到最佳OpenCV算法213
9.1 技术要求213
9.2 方案是否包含在OpenCV中214
9.3 OpenCV中的算法选项215
9.4 哪种算法最好217
9.5 算法性能比较的示例218
9.6 小结223
第10章 避免OpenCV中的常见陷阱224
10.1 OpenCV从v1到v4的历史224
10.2 OpenCV中的历史算法228
10.3 常见陷阱和建议解决方案231
10.4 小结236
10.5 进一步阅读236
|
內容試閱:
|
本书(现在是第3版)是计算机视觉工程师使用OpenCV作为工具的系列丛书之一。本书保留了最基本的核心数学公式,提供了从构思到运行代码的完整项目,涵盖了当前计算机视觉中的热门话题,包括人脸识别、关键点检测和姿态估计、具有深度卷积网络的车牌识别、从运动中恢复结构、增强现实的场景重建,以及本机和Web环境中的移动端计算机视觉。本书将作者在学术界和行业中实施计算机视觉产品及项目的丰富知识轻松打包,不但向读者介绍了API的功能,而且提供了对完整计算机视觉项目中设计选择的见解,并超越了计算机视觉的基础知识,从更高层次来设计和实现??复杂图像识别项目的解决方案。
本书的目标读者
本书主要面向的对象,是希望在C++环境下开始使用OpenCV的计算机视觉新手,鼓励他们从动手开始学习,而不是纠结于传统的基础数学知识。书中提供了有关当前常见的计算机视觉任务的OpenCV API的具体用例示例,同时鼓励“复制–粘贴–运行”这种学习方式并尝试将数学基础保持在最低限度。
如今,计算机视觉工程师可以选择多种工具和软件包,包括OpenCV、dlib、Matlab软件包、SimpleCV、XPCV和scikit-image。在覆盖范围和跨平台方面,没有什么比OpenCV做得更好。但是,对新手而言,OpenCV似乎令人望而生畏,仅在官方模块的API中就有成千上万的函数,这还不包括贡献的模块。尽管OpenCV本身也提供了较广泛的教程,也存在大量的有文档记录的项目,但大都缺乏从头到尾完成项目的教程来满足工程师的需要。
本书内容
本书直接或间接地涵盖了OpenCV的许多功能,包括许多贡献模块。 它还展示了如何在Web、iOS和Android设备以及Python Jupyter Notebook中使用OpenCV。 每章都针对一个不同的问题,说明如何实现此目标,介绍了解决方案及其理论背景,并提供了一个完整的、可构建的和可运行的代码示例。
本书旨在为读者提供以下内容:
有效的OpenCV代码示例,用于解决现代的、具有一定复杂度的计算机视觉问题
OpenCV工程和项目维护的最佳实践
使用实用的算法设计方法来应对复杂的计算机视觉任务
熟悉OpenCV最新的API v4.0.0,并通过实例进行实践
本书涵盖以下章节:
第1章演示如何在台式机和小型嵌入式系统(如Raspberry Pi)上编写图像处理滤波器。
第2章演示如何使用SfM模块将场景重建为稀疏点云(包括相机姿态),以及如何使用多视图立体几何来获得稠密点云。
第3章介绍使用人脸模块进行人脸特征点(也称为人脸标志)检测的过程。
第4章介绍图像分割和特征提取、模式识别基础以及两种重要的模式识别算法:支持向量机(SVM)和深度神经网络(DNN)。
第5章展示用于检测人脸图像的不同技术,从经典的具有Haar功能的级联分类器到采用深度学习的新技术,不一而足。
第6章展示一种使用OpenCV.js(用于JavaScript的OpenCV的编译版本)为Web开发计算机视觉算法的新方法。
第7章展示如何使用OpenCV的ArUco模块、Android的Camera2 API和JMonkey
Engine 3D游戏引擎在Android系统中实现增强现实(AR)应用程序。
第8章展示如何使用OpenCV的iOS预编译库在iPhone上构建全景图像拼接程序。
第9章讨论在考虑OpenCV中的算法选择时应遵循的许多方法。
第10章回顾OpenCV的发展历史,以及随着计算机视觉的发展,其框架和算法产品逐步增多的过程。
充分利用本书
本书假定读者有扎实的编程和软件工程技能基础,并能使用C++从头开始构建和运行程序。本书还介绍了JavaScript、Python、Java和Swift的代码。希望深入研究这些部分的工程师若有C++以外的编程语言知识则会更加受益。
本书的读者应该能够以各种方式安装OpenCV。有些章需要安装Python,而有些章则需要安装Android。在随附的代码和文本中将详细讨论如何获取并安装它们。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http:www.packtpub.com通过个人账号下载,也可以访问华章图书官网http:www.hzbook.com,通过注册并登录个人账号下载。
下载文件后,请确保使用以下最新版本解压缩文件夹:
Windows下,推荐使用WinRAR7-Zip
Mac下,推荐使用ZipegiZipUnRarX
Linux下,推荐使用7-ZipPeaZip
本书的代码也托管在GitHub中,网址为https:github.comPacktPublishingMastering-OpenCV-4-Third-Edition。如果代码有更新,它将在现有的GitHub存储库中进行更新。
可从https:github.comPacktPublishing获得更丰富的书籍和视频清单中的其他代码包,去看看吧!
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图图表的彩色图像。可
以在http:www.packtpub.comsitesdefaultfilesdownloads9781789533576_ColorImages.pdf下载。
本书约定
本书中使用了许多排版约定。
文本代码(Code In Text):表示正文中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、URL、用户输入和twitter链接。下面是一个示例:“要查看SD卡上的剩余空间,请运行df-h head-2。”
代码块设置如下:
当我们希望引起你对代码块特定部分的注意时,相关的行或项目将以粗体显示:
命令行输入或输出的印刷方式如下:
粗体:表示新术语、重要单词或你在屏幕上看到的单词。 例如,菜单或对话框中的单词会出现在这样的文本中:“导航到Media | Open Network Stream”。
警告或重要提示信息。
提示或技术信息。
|
|