第1章计算机视觉系统综述.PDF
文本预览下载声明
第 1 章
计算机视觉系统综述
在本章中,你将会了解计算机视觉系统的基础概念和整体框架。这样当解决计算机视
觉问题的时候,你将有一个更广阔的视野。
1.1 计算机视觉系统介绍
我们用五种感官(触觉、味觉、嗅觉、听觉和视觉)来观察周围的一切。尽管这五种
感官都非常重要,但是有一种感官对于感知有最大的影响。毫无疑问,它就是视觉,这也
是本书的主题。
当看到一个场景时,我们能在一个有意义的上下文中理解和解释看到的细节。这看起
来很容易,但其实这是一个非常复杂难以建模的过程。是什么让人类的眼睛容易理解视觉
而机器难以理解?答案隐藏于人类和机器在感知上的区别。许多研究人员正在试图揭示这
个区别。
在计算机视觉发展的道路上,照相机的发明是其中最重要的一个里程碑。尽管照相机
是一个保存场景视觉记忆的很好的工具,但是它导致了很多变化,而不仅仅是保存场景。
与相机的发明一样,人们总是试图开发设备来让我们的生活更加美好。当前的趋势是开发
智能设备,知晓周边的环境肯定是其中重要的一环。这和我们的日常生活体验或多或少是
相同的,视觉是最大的影响因素。多亏了科技的发展,使得模拟人类的视觉系统是可能的
并且已经在各种各样的设备上实现了。在这个过程中,我们有能力开发可视化设备。
图片和时间序列的图片被称为视频,换句话说就是真实世界的机器表示。任何可视化
设备都是通过图片来重建真实的场景。因为通过设备从图片提取解释和隐藏的信息非常复
杂,通常使用计算机来达到目的。计算机视觉这个词就是来自让机器用人类的方式理解真
2 第 1 章
实世界的现代方法。由于计算机视觉对机器的自动化日常工作十分必要,因此它的发展非
常迅速,并且大量的框架、工具和库已经被开发出来。
OpenCV(Open Source Computer Vision Library)的出现对于计算机视觉来说是一个非
常大的改变,并且很多人都对它有贡献以便让它变得更好。现在它是一个成熟的库,提供
了最先进的设计模块,在后面的章节我们会接触到。因为它是一个易于使用的库,不需要
为了完成视觉计算任务而去搞清楚底层到底发生了哪些复杂计算。这种易用性让那些复杂
的任务更容易完成,但是即便是这样,你也应该知道如何在解决问题和使用设计工具中找
到平衡。
1.2 解决计算机视觉问题
解决任何复杂的问题,比如计算机视觉问题,非常重要的一点就是通过理解每一步的
目的来把问题分解成简单和可实现的子步骤。本章的目的是向你展示如何解决计算机视觉
问题,以及如何用一个通用模型来对问题建模。
本书讲解的实用计算机视觉系统的架构,由 Arduino 系统和 OpenCV 系统组合而成,
如下图所示:
Arduino 只负责从环境中收集感官信息,比如温度、湿度,然后把这些信息发给视觉
系统控制器的 OpenCV 系统。视觉系统控制器和 Arduino 之间的通信可以是有线的,也可
以是无线的,Arduino 对于这两种方式处理起来都很容易。视觉系统处理完从 Arduino 和
网络摄像头传过来的数据后,会检测或者识别出一个结论。比如,它设置可以识别出你的
脸。下一步是根据这个结论来给 Arduino 系统发送指令,让 Arduino 采取合适的动作。这
些动作可能是开风扇来让环境冷却,移动机械臂来给你递咖啡等。
计算机视觉系统综述 3
视觉控制器可以是台式电脑、笔记本电脑、手机,甚至是树莓派或者 Beaglebone
这样的迷你电脑! OpenCV 可以在所有这些平台上运营,所以基本原则在这些平
台上都是有效的。迷你电脑也可以做部分 Arduino 的工作。
任何计算
显示全部