前言
计算机视觉系统的应用越来越广泛:在北冰洋部署了计算机视觉系统,以便在夜间发现冰山;各种飞行器上应用了计算机视觉系统,它们飞过亚马孙热带雨林,绘制火灾、破坏雨林和非法伐木的航拍图;世界各地的港口和机场设立了计算机视觉系统,以扫描嫌疑人和违禁品;计算机视觉系统也被应用到马里亚纳海沟以引导自主潜艇;将计算机视觉系统应用于手术室,帮助外科医生可视化手术过程并监控病人的当前状况;将计算机视觉系统作为热寻防空火箭的转向系统从战场上发射。类似的应用不胜枚举。
我们可能很少(或从未)去过这些地方。然而,故事往往鼓励我们想象极端的环境和一个人在这些无情的条件下对工具的依赖。这让我想到了当代影视作品中最受欢迎的人物之一,他是一个普通的男人(英俊,但不太帅;聪明,但不过于聪明),穿着西装,为英国政府工作,总是选择同样的饮料、同样类型的女人,用同样的语调传递双关语,带着一些奇特的科技武器,被派去从事危险的工作。他就是007系列电影的主人公:詹姆斯·邦德。
这本书讨论了非常有用的技术和技巧,并从特工小说中获得灵感。邦德系列电影在侦查、伪装、智能设备、图像拍摄,有时甚至是在计算机视觉方面都有丰富的创意。凭借想象力,再加上努力学习新技能,我们可以和邦德的工程师Q一较高下!
本书目标读者
本书是为那些想让计算机视觉成为他们生活中实用而有趣的一部分的技术人员而编写的。你应该熟悉2D图形概念、面向对象语言、GUI、网络和命令行。本书假设你没有任何特定库或平台的经验,书中涵盖了从设置开发环境到部署完成应用程序的所有内容。
学习多种技术和技巧,然后将其集成起来的愿望是非常有益的!本书将帮助你理解与计算机视觉相关的几种类型的系统和应用领域,并帮助你将一些方法应用于检测、识别、跟踪和增强人脸、物体及运动。
本书内容
第1章帮助我们在Windows、macOS或Linux系统上安装OpenCV、Python开发环境和Android开发环境。在该章中,我们还在Windows或macOS上安装Unity开发环境。
第2章帮助我们根据配色方案对房地产图像进行分类。我们是在豪宅外,还是在豪宅内?在该章中,我们将在搜索引擎中使用分类器来标记图像结果。
第3章帮助我们检测和识别人脸与猫脸,作为控制警报的一种手段。Ernst Stavro Blofeld带着他的蓝眼睛安格拉猫回来了吗?
第4章帮助我们检测运动并识别动作,将其作为控制智能手机上猜谜游戏的一种手段。手机知道邦德为什么点头,即使其他人都不知道。
第5章帮助我们检测汽车头灯,对其颜色进行分类,估计与它的距离,并为驾驶员提供反馈。那辆车是在跟踪我们吗?
第6章帮助我们在纸上画一个迷宫中的球,并将其看成是智能手机上的一个物理模拟。物理和时间是一切!
第7章帮助我们放大实时视频中的运动,使人的心跳和呼吸变得清晰可见。
第8章帮助我们改进前一章的项目,采用专业相机进行高速、红外线或紫外线成像。超越人类视觉的极限!
附录A帮助我们解决在某些树莓派环境中影响wxPython GUI库的兼容性问题。
附录B帮助我们发现OpenCV的除本书项目中使用的功能之外的更多特征检测功能。
附录C帮助我们学习在Python环境中运行Python代码以及测试OpenCV的安装。
最佳配置
本书支持多种操作系统作为开发环境,包括Windows 7 SP 1或更高版本、macOS X 10.7(Lion)或更高版本、Debian Jessie、Raspbian、Ubuntu 14.04或更高版本、Linux Mint 17或更高版本、Fedora 28或更高版本、Red Hat Enterprise Linux(RHEL)8或更高版本、CentOS 8或更高版本、openSUSE Leap 42.3、openSUSE Leap 15.0或更高版本,以及openSUSE Tumbleweed。
本书包含6个项目,需求如下:
·这6个项目中有4个项目是在Windows、macOS或Linux上运行的,需要一个网络摄像头。这些项目可以选择使用树莓派或其他运行Linux的单板计算机。
·一个项目在Android 5.0(Lollipop)或更高版本上运行,需要一个前置摄像头(大多数Android设备都有)。
·一个项目在Android 4.1(Jelly Bean)或更高版本上运行,需要一个后置摄像头和重力传感器(大多数Android设备都有)。为了进行开发,需要一台Windows或macOS机器和价值约95美元的游戏开发软件。
有关所有需求库和工具的安装说明,以及树莓派的可选设置说明都将在本书介绍。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
本书的代码包也在https://github.com/PacktPublishing/OpenCV-4-for-Secret-Agents-Second-Edition的GitHub上托管。如果代码有更新,将在现有的GitHub库上进行更新。