计算机视觉(Computer vision)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。
作为一门科学学科,计算机视觉研究相关的理论和技术,试图创建能够从图像或者多维数据中获取“信息”的人工智能系统。这里所指的信息指香农定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。
作为一个工程学科,计算机视觉寻求基于相关理论与模型来创建计算机视觉系统。这类系统的组成部分包括:
计算机视觉同样可以被看作是生物视觉的一个补充。在生物视觉领域中,人类和各种动物的视觉都得到了研究,从而创建了这些视觉系统感知信息过程中所使用的物理模型。另一方面,在计算机视觉中,靠软件和硬件实现的人工智能系统得到了研究与描述。生物视觉与计算机视觉进行的学科间交流为彼此都带来了巨大价值。
计算机视觉包含如下一些分支:画面重建,事件监测,目标跟踪,目标识别,机器学习,索引创建,图像恢复等。
计算机视觉领域的突出特点是其多样性与不完善性。
这一领域的先驱可追溯到更早的时候,但是直到20世纪70年代后期,当计算机的性能提高到足以处理诸如图像这样的大规模数据时,计算机视觉才得到了正式的关注和发展。然而这些发展往往起源于其他不同领域的需要,因而何谓“计算机视觉问题”始终没有得到正式定义,很自然地,“计算机视觉问题”应当被如何解决也没有成型的公式。
尽管如此,人们已开始掌握部分解决具体计算机视觉任务的方法,可惜这些方法通常都仅适用于一群狭隘的目标(如:脸孔、指纹、文字等),因而无法被广泛地应用于不同场合。
对这些方法的应用通常作为某些解决复杂问题的大规模系统的一个组成部分(例如医学图像的处理,工业制造中的质量控制与测量)。在计算机视觉的大多数实际应用当中,计算机被预设为解决特定的任务,然而基于机器学习的方法正日渐普及,一旦机器学习的研究进一步发展,未来“泛用型”的电脑视觉应用或许可以成真。
人工智能所研究的一个主要问题是:如何让系统具备“计划”和“决策能力”?从而使之完成特定的技术动作(例如:移动一个机器人通过某种特定环境)。这一问题便与计算机视觉问题息息相关。在这里,计算机视觉系统作为一个感知器,为决策提供信息。另外一些研究方向包括模式识别和机器学习(这也隶属于人工智能领域,但与计算机视觉有着重要联系),也由此,计算机视觉时常被看作人工智能与计算机科学的一个分支。
物理是与计算机视觉有着重要联系的另一领域。
计算机视觉关注的目标在于充分理解电磁波——主要是可见光与红外线部分——遇到物体表面被反射所形成的图像,而这一过程便是基于光学物理和固态物理,一些尖端的图像传感器甚至会应用到量子力学理论,来解析影像所表示的真实世界。同时,物理学中的很多测量难题也可以通过计算机视觉得到解决,例如流体运动。也由此,计算机视觉同样可以被看作是物理学的拓展。
另一个具有重要意义的领域是神经生物学,尤其是其中生物视觉系统的部分。
在整个20世纪中,人类对各种动物的眼睛、神经元、以及与视觉刺激相关的脑部组织都进行了广泛研究,这些研究得出了一些有关“天然的”视觉系统如何运作的描述(尽管仍略嫌粗略),这也形成了计算机视觉中的一个子领域——人们试图创建人工系统,使之在不同的复杂程度上模拟生物的视觉运作。同时计算机视觉领域中,一些基于机器学习的方法也有参考部分生物机制。
计算机视觉的另一个相关领域是信号处理。很多有关单元变量信号的处理方法,尤其对是时变信号的处理,都可以很自然的被扩展为计算机视觉中对二元变量信号或者多元变量信号的处理方法。但由于图像数据的特有属性,很多计算机视觉中发展起来的方法,在单元信号的处理方法中却找不到对应版本。这类方法的一个主要特征,便是他们的非线性以及图像信息的多维性,以上二点作为计算机视觉的一部分,在信号处理学中形成了一个特殊的研究方向。
除了上面提到的领域,很多研究课题同样可被当作纯粹的数学问题。例如,计算机视觉中的很多问题,其理论基础便是统计学,最优化理论以及几何学。
如何使既有方法通过各种软硬件实现,或说如何对这些方法加以修改,而使之获得合理的执行速度而又不损失足够精度,是现今电脑视觉领域的主要课题。
计算机视觉,图像处理,图像分析,机器人视觉和机器视觉是彼此紧密关联的学科。如果你翻开带有上面这些名字的教材,你会发现在技术和应用领域上他们都有着相当大部分的重叠。这表明这些学科的基础理论大致是相同的,甚至让人怀疑他们是同一学科被冠以不同的名称。
然而,各研究机构,学术期刊,会议及公司往往把自己特别的归为其中某一个领域,于是各种各样的用来区分这些学科的特征便被提了出来。下面将给出一种区分方法,尽管并不能说这一区分方法完全准确。
计算机视觉的研究对象主要是映射到单幅或多幅图像上的三维场景,例如三维场景的重建。计算机视觉的研究很大程度上针对图像的内容。
图像处理与图像分析的研究对象主要是二维图像,实现图像的转化,尤其针对像素级的操作,例如提高图像对比度,边缘提取,去噪声和几何变换如图像旋转。这一特征表明无论是图像处理还是图像分析其研究内容都和图像的具体内容无关。
机器视觉主要是指工业领域的视觉研究,例如自主机器人的视觉,用于检测和测量的视觉。这表明在这一领域通过软件硬件,图像感知与控制理论往往与图像处理得到紧密结合来实现高效的机器人控制或各种实时操作。
模式识别使用各种方法从信号中提取信息,主要运用统计学的理论。此领域的一个主要方向便是从图像数据中提取信息。
还有一个领域被称为成像技术。这一领域最初的研究内容主要是制作图像,但有时也涉及到图像分析和处理。例如,医学成像就包含大量的医学领域的图像分析。
对于所有这些领域,一个可能的过程是你在计算机视觉的实验室工作,工作中从事着图象处理,最终解决了机器视觉领域的问题,然后把自己的成果发表在了模式识别的会议上。
几乎在每个计算机视觉技术的具体应用都要解决一系列相同的问题。这些经典的问题包括:
一个计算机视觉,图像处理和机器视觉所共有的经典问题便是判定一组图像数据中是否包含某个特定的物体,图像特征或运动状态。这一问题通常可以通过机器自动解决,但是到当前为止,还没有某个单一的方法能够广泛的对各种情况进行判定:在任意环境中识别任意物体。现有技术能够也只能够很好地解决特定目标的识别,比如简单几何图形识别,人脸识别,印刷或手写文件识别或者车辆识别。而且这些识别需要在特定的环境中,具有指定的光照,背景和目标姿态要求。
广义的识别在不同的场合又演化成了几个略有差异的概念:
识别的几个具体应用方向:
基于序列图像的对物体运动的监测包含多种类型,诸如:
给定一个场景的二或多幅图像或者一段录像,场景重建寻求为该场景创建一个三维模型。最简单的情况便是生成一组三维空间中的点。更复杂的情况下会创建起完整的三维表面模型。
图像恢复的目标在于移除图像中的噪声,例如仪器噪声,模糊等
计算机视觉系统的结构形式很大程度上依赖于其具体应用方向。有些是独立工作的,用于解决具体的测量或检测问题;也有些作为某个大型复杂系统的组成部分出现,比如和机械控制系统,数据库系统,人机接口设备协同工作。计算机视觉系统的具体实现方法同时也由其功能决定——是预先固定的抑或是在运行过程中自动学习调整。尽管如此,有些功能却几乎是每个计算机系统都需要具备的: