计算机视觉(Computer vision)是一个跨学科领域,涉及如何使计算机从数字图像或视频中获得高层次的理解。 从工程的角度来看,它寻求自动化人类视觉系统可以完成的任务。
计算机视觉任务包括用于获取,处理,分析和理解数字图像的方法,以及从现实世界中提取高维数据以便例如以决策的形式产生数字或符号信息。 在这种情况下理解意味着将视觉图像(视网膜的输入)转换为可以与其他思维过程交互并引出适当行动的世界描述。 这种图像理解可以看作是利用几何学,物理学,统计学和学习理论构建的模型从图像数据中解开符号信息。
作为一门科学学科,计算机视觉关注从图像中提取信息的人工系统背后的理论。 图像数据可以采用多种形式,例如视频序列,来自多个相机的视图或来自医学扫描仪的多维数据。 作为一门技术学科,计算机视觉试图将其理论和模型应用于计算机视觉系统的构建。
计算机视觉的子域包括场景重建,事件检测,视频跟踪,对象识别,3D姿态估计,学习,索引,运动估计和图像恢复。
定义
计算机视觉是一个跨学科领域,涉及如何使计算机从数字图像或视频中获得高层次的理解。 从工程的角度来看,它寻求自动化人类视觉系统可以完成的任务。 “计算机视觉涉及从单个图像或一系列图像中自动提取,分析和理解有用信息。它涉及开发理论和算法基础,以实现自动视觉理解。” 作为一门科学学科,计算机视觉关注从图像中提取信息的人工系统背后的理论。 图像数据可以采用多种形式,例如视频序列,来自多个相机的视图或来自医学扫描仪的多维数据。 作为一门技术学科,计算机视觉试图将其理论和模型应用于计算机视觉系统的构建。
历史
在20世纪60年代后期,计算机视觉开始于开创人工智能的大学。 它旨在模仿人类视觉系统,作为赋予机器人智能行为的垫脚石。 1966年,人们相信这可以通过一个夏季项目,通过将相机连接到计算机并让它“描述它看到的东西”来实现。
当时计算机视觉与数字图像处理的普遍领域的区别在于希望从图像中提取三维结构,以实现对场景的全面理解。 20世纪70年代的研究形成了当今许多计算机视觉算法的早期基础,包括从图像中提取边缘,标记线条,非多面体和多面体建模,将对象表示为较小结构的互连,光流和运动估计。
在接下来的十年中,研究基于更严格的数学分析和计算机视觉的定量方面。 这些包括尺度空间的概念,来自各种线索的形状推断,例如阴影,纹理和焦点,以及被称为蛇的轮廓模型。 研究人员还意识到,许多这些数学概念可以在与正则化和马尔可夫随机场相同的优化框架内进行处理。 到20世纪90年代,以前的一些研究课题比其他研究课题更加活跃。 投影三维重建的研究使人们更好地理解了相机校准。 随着摄像机校准的优化方法的出现,人们意识到在摄影测量领域已经在束调整理论中探索了许多想法。 这导致了用于来自多个图像的场景的稀疏3-D重建的方法。 在密集立体对应问题和进一步的多视图立体声技术方面取得了进展。 同时,使用图形切割的变化来解决图像分割。 这十年也是第一次在实践中使用统计学习技术来识别图像中的面部(参见Eigenface)。 在20世纪90年代末期,随着计算机图形学和计算机视觉领域之间相互作用的增加,出现了重大变化。 这包括基于图像的渲染,图像变形,视图插值,全景图像拼接和早期光场渲染。
最近的工作已经看到基于特征的方法的复兴,与机器学习技术和复杂的优化框架结合使用。
相关领域
人工智能
人工智能领域涉及机器人系统在环境中导航的自主计划或审议。 需要详细了解这些环境才能浏览它们。 有关环境的信息可以由计算机视觉系统提供,充当视觉传感器并提供关于环境和机器人的高级信息。
人工智能和计算机视觉共享其他主题,如模式识别和学习技术。 因此,计算机视觉有时被视为人工智能领域或计算机科学领域的一部分。
信息工程
计算机视觉通常被认为是信息工程的一部分。
固态物理学
固态物理学是另一个与计算机视觉密切相关的领域。 大多数计算机视觉系统依赖于检测电磁辐射的图像传感器,该电磁辐射通常是可见光或红外光的形式。 传感器采用量子物理设计。 使用物理学解释光与表面相互作用的过程。 物理学解释了光学的行为,它是大多数成像系统的核心部分。 先进的图像传感器甚至需要量子力学来提供对图像形成过程的完整理解。 而且,物理学中的各种测量问题可以使用计算机视觉来解决,例如流体中的运动。
神经生物学
第三个起重要作用的领域是神经生物学,特别是生物视觉系统的研究。 在上个世纪,对人类和各种动物的眼睛,神经元和用于处理视觉刺激的大脑结构进行了广泛的研究。 这导致了对“真实”视觉系统如何操作以便解决某些视觉相关任务的粗略但复杂的描述。 这些结果导致了计算机视觉中的一个子领域,其中人工系统被设计成模仿不同复杂程度的生物系统的处理和行为。 此外,计算机视觉中开发的一些基于学习的方法(例如基于神经网络和深度学习的图像和特征分析和分类)具有生物学背景。
计算机视觉研究的一些方面与生物视觉的研究密切相关 – 事实上,正如许多人工智能研究链与人类意识研究密切相关,以及利用存储的知识来解释,整合和利用视觉信息。 生物视觉领域研究并模拟人类和其他动物视觉感知背后的生理过程。 另一方面,计算机视觉研究和描述了在人工视觉系统背后的软件和硬件中实现的过程。 生物和计算机视觉之间的跨学科交流已证明对这两个领域都富有成效。
信号处理
与计算机视觉相关的另一个领域是信号处理。 用于处理单变量信号(通常是时间信号)的许多方法可以以自然的方式扩展到处理计算机视觉中的双变量信号或多变量信号。 然而,由于图像的特定性质,在计算机视觉中开发了许多方法,这些方法在处理单变量信号时没有对应物。 与信号的多维度一起,这将信号处理中的子场定义为计算机视觉的一部分。
其他领域
除了上述关于计算机视觉的观点之外,许多相关的研究课题也可以从纯粹的数学观点来研究。 例如,计算机视觉中的许多方法基于统计,优化或几何。 最后,该领域的重要部分致力于计算机视觉的实施方面; 如何在软件和硬件的各种组合中实现现有方法,或者如何修改这些方法以便在不损失太多性能的情况下获得处理速度。
区别
与计算机视觉最密切相关的领域是图像处理,图像分析和机器视觉。 这些涵盖的技术和应用范围存在重大差异。 这意味着在这些领域中使用和开发的基本技术是相似的,可以解释为只有一个具有不同名称的字段。 另一方面,研究小组,科学期刊,会议和公司似乎有必要将其自身呈现或推销为特定于这些领域之一,因此,区分每个领域与其他领域的各种特征是呈现。
计算机图形从3D模型生成图像数据,计算机视觉通常从图像数据生成3D模型。 还有一种趋势是两个学科的结合,例如,在增强现实中探索。
以下特征似乎相关,但不应被视为普遍接受:
图像处理和图像分析倾向于关注2D图像,如何将一个图像转换为另一个图像,例如,通过像素方式操作(例如对比度增强),局部操作(例如边缘提取或噪声去除)或几何变换(例如旋转图像) 。 这种表征意味着图像处理/分析既不需要假设也不产生关于图像内容的解释。
计算机视觉包括2D图像的3D分析。 这分析了投影到一个或多个图像上的3D场景,例如,如何从一个或多个图像重建关于3D场景的结构或其他信息。 计算机视觉通常依赖于关于图像中描绘的场景的或多或少复杂的假设。
机器视觉是应用一系列技术和方法的过程,以在工业应用中提供基于成像的自动检测,过程控制和机器人引导。 机器视觉倾向于关注应用,主要是制造,例如,基于视觉的机器人和基于视觉的检查,测量或拾取(例如箱子拾取)的系统。 这意味着图像传感器技术和控制理论通常与图像数据的处理集成以控制机器人,并且通过硬件和软件中的有效实现来强调实时处理。 它还意味着诸如照明之类的外部条件可以并且通常在机器视觉中比在一般计算机视觉中更受控制,这可以使得能够使用不同的算法。
还有一个称为成像的领域,主要关注产生图像的过程,但有时也涉及图像的处理和分析。 例如,医学成像包括对医学应用中的图像数据的分析的大量工作。
最后,模式识别是一种使用各种方法从一般信号中提取信息的领域,主要基于统计方法和人工神经网络。 该领域的重要部分致力于将这些方法应用于图像数据。
应用
应用范围包括工业机器视觉系统等任务,例如检查生产线上加速的瓶子,研究能够理解周围世界的人工智能和计算机或机器人。 计算机视觉和机器视觉领域具有显着的重叠。 计算机视觉涵盖了许多领域中使用的自动图像分析的核心技术。 机器视觉通常是指将自动图像分析与其他方法和技术相结合的过程,以在工业应用中提供自动检查和机器人引导。 在许多计算机视觉应用中,计算机被预编程以解决特定任务,但是基于学习的方法现在变得越来越普遍。 计算机视觉应用的示例包括用于以下的系统:
自动检查,例如在制造应用中;
协助人类进行识别任务,例如物种识别系统;
控制过程,例如工业机器人;
检测事件,例如视觉监控或人数统计;
交互,例如,作为计算机与人类交互的设备的输入;
建模对象或环境,例如医学图像分析或地形建模;
例如,通过自主车辆或移动机器人进行导航; 和
组织信息,例如,用于索引图像和图像序列的数据库。
最突出的应用领域之一是医学计算机视觉或医学图像处理,其特征在于从图像数据中提取信息以诊断患者。 这方面的一个例子是检测肿瘤,动脉硬化或其他恶性变化; 器官尺寸,血流量等的测量是另一个例子。 它还通过提供新信息支持医学研究:例如,关于大脑的结构,或关于医学治疗的质量。 计算机视觉在医学领域中的应用还包括增强由人 – 超声图像或例如X射线图像解释的图像 – 以减少噪声的影响。
计算机视觉中的第二个应用领域是工业领域,有时称为机器视觉,其中提取信息是为了支持制造过程。 一个例子是质量控制,其中自动检查细节或最终产品以发现缺陷。 另一个例子是测量由机器人手臂拾取的细节的位置和方向。 机器视觉也在农业过程中大量使用,以从散装材料中去除不需要的食物,这一过程称为光学分选。
军事应用可能是计算机视觉领域最大的领域之一。 显而易见的例子是检测敌方士兵或车辆以及导弹制导。 更先进的导弹制导系统将导弹发送到一个区域而不是特定目标,并且当导弹基于本地获取的图像数据到达该区域时进行目标选择。 现代军事概念,例如“战场意识”,意味着包括图像传感器在内的各种传感器提供了关于战斗场景的丰富信息,可用于支持战略决策。 在这种情况下,数据的自动处理用于降低复杂性并融合来自多个传感器的信息以提高可靠性。
其中一个较新的应用领域是自动驾驶汽车,包括潜水器,陆基车辆(带轮子,汽车或卡车的小型机器人),飞行器和无人驾驶飞行器(UAV)。 自治水平从完全自主(无人驾驶)车辆到基于计算机视觉的系统在各种情况下支持驾驶员或飞行员的车辆。 完全自动驾驶的车辆通常使用计算机视觉进行导航,即用于知道它的位置,或用于产生其环境地图(SLAM)和用于检测障碍物。 它还可以用于检测某些任务特定事件,例如,寻找森林火灾的无人机。 支撑系统的示例是汽车中的障碍物警告系统和用于飞机自动着陆的系统。 一些汽车制造商已经展示了用于汽车自动驾驶的系统,但是这种技术还没有达到可以投放市场的水平。 有大量军用自动驾驶汽车的例子,从先进的导弹到用于侦察任务或导弹制导的无人机。 使用计算机视觉的自动驾驶车辆已经进行了太空探索,例如NASA的火星探测车和ESA的ExoMars Rover。
其他应用领域包括:
支持电影和广播的视觉效果创建,例如相机跟踪(matchmoving)。
监控。
跟踪和计算生物科学中的生物
典型的任务
上述每个应用领域都采用一系列计算机视觉任务; 或多或少明确定义的测量问题或处理问题,可以使用各种方法解决。 下面介绍典型计算机视觉任务的一些示例。
计算机视觉任务包括用于获取,处理,分析和理解数字图像的方法,以及从现实世界中提取高维数据以便例如以决策的形式产生数字或符号信息。 在这种情况下理解意味着将视觉图像(视网膜的输入)转换为可以与其他思维过程交互并引出适当行动的世界描述。 这种图像理解可以看作是利用几何学,物理学,统计学和学习理论构建的模型从图像数据中解开符号信息。
承认
计算机视觉,图像处理和机器视觉中的经典问题是确定图像数据是否包含某些特定对象,特征或活动。 文献中描述了不同种类的识别问题:
对象识别(也称为对象分类) – 可以识别一个或多个预先指定或学习的对象或对象类,通常与它们在图像中的2D位置或场景中的3D姿势一起识别。 Blippar,Google Goggles和LikeThat提供了说明此功能的独立程序。
标识 – 识别对象的单个实例。 示例包括识别特定人的面部或指纹,识别手写数字或识别特定车辆。
检测 – 扫描图像数据以查找特定条件。 实例包括在医学图像中检测可能的异常细胞或组织或在自动道路收费系统中检测车辆。 基于相对简单和快速计算的检测有时用于寻找感兴趣的图像数据的较小区域,其可以通过计算要求更高的技术进一步分析以产生正确的解释。
目前,用于此类任务的最佳算法基于卷积神经网络。 ImageNet大规模视觉识别挑战展示了它们的功能; 这是对象分类和检测的基准,具有数百万个图像和数百个对象类。 在ImageNet测试中,卷积神经网络的性能现在接近人类的性能。 最好的算法仍然在与小或薄的物体斗争,例如花茎上的小蚂蚁或手中拿着羽毛笔的人。 对于使用滤镜失真的图像(现代数码相机越来越普遍的现象),它们也遇到了问题。 相比之下,这些图像很少会给人类带来麻烦。 然而,人类往往在遇到其他问题时遇到麻烦。 例如,他们不擅长将对象分类为细粒度类,例如特定品种的狗或鸟类,而卷积神经网络可以轻松处理。
存在几种基于识别的专门任务,例如:
基于内容的图像检索 – 在具有特定内容的更大图像集中查找所有图像。 内容可以以不同的方式指定,例如,相对于目标图像的相似性(给我所有类似于图像X的图像),或者作为文本输入给出的高级搜索条件(给我包含的所有图像)许多房屋,在冬季采取,并没有汽车)。
姿态估计 – 估计特定对象相对于摄像机的位置或方向。 该技术的示例应用将是帮助机器人臂在装配线情况下从传送带取回物体或从箱中拾取零件。
光学字符识别(OCR) – 识别打印或手写文本图像中的字符,通常用于以更易于编辑或索引(例如ASCII)的格式编码文本。
二维码读取读取二维码,如数据矩阵和二维码。
面部识别
人体计数系统中的形状识别技术(SRT)将人类(头部和肩部图案)与物体区分开来
运动分析
若干任务涉及运动估计,其中处理图像序列以在图像中或3D场景中的每个点处或甚至产生图像的相机处产生速度的估计。 此类任务的示例如下:
Egomotion – 根据摄像机产生的图像序列确定摄像机的3D刚性运动(旋转和平移)。
跟踪 – 跟随图像序列中(通常)较小的一组兴趣点或对象(例如,车辆,人或其他生物)的移动。
光流 – 为图像中的每个点确定该点相对于图像平面的移动方式,即其视运动。 此运动是相应3D点在场景中移动的方式以及相机相对于场景的移动方式的结果。
场景重建
给定场景或视频的一个或(通常)更多图像,场景重建旨在计算场景的3D模型。 在最简单的情况下,模型可以是一组3D点。 更复杂的方法可生成完整的3D表面模型。 不需要运动或扫描的3D成像以及相关处理算法的出现使得该领域的快速发展成为可能。 基于网格的3D感测可用于从多个角度获取3D图像。 现在可以使用算法将多个3D图像拼接成点云和3D模型。
图像恢复
图像恢复的目的是从图像中去除噪声(传感器噪声,运动模糊等)。 最简单的噪声消除方法是各种类型的滤波器,例如低通滤波器或中值滤波器。 更复杂的方法假定了局部图像结构的样子模型,这是一种将它们与噪声区分开来的模型。 通过首先根据诸如线或边缘的局部图像结构分析图像数据,然后基于来自分析步骤的局部信息控制滤波,与较简单的方法相比,通常获得更好的噪声去除水平。
该领域的一个例子是修复。
系统方法
计算机视觉系统的组织高度依赖于应用程序。 一些系统是解决特定测量或检测问题的独立应用,而其他系统构成更大设计的子系统,例如,还包含用于控制机械致动器,计划,信息数据库,人的子系统。计算机视觉系统的具体实现还取决于其功能是否是预先指定的,或者是否可以在操作期间学习或修改其某些部分。 许多功能对于应用程序是唯一的。 然而,在许多计算机视觉系统中存在典型的功能。
图像采集 – 数字图像由一个或多个图像传感器产生,除了各种类型的光敏相机外,还包括距离传感器,层析成像设备,雷达,超声波相机等。根据传感器的类型,得到的图像数据是普通的2D图像,3D体积或图像序列。 像素值通常对应于一个或多个光谱带(灰色图像或彩色图像)中的光强度,但也可以与各种物理测量相关,例如声波或电磁波的深度,吸收或反射,或核磁共振。
预处理 – 在将计算机视觉方法应用于图像数据以提取某些特定信息之前,通常需要处理数据以确保其满足该方法所暗示的某些假设。 例子是
重新采样以确保图像坐标系正确。
降噪以确保传感器噪声不会引入错误信息。
对比度增强以确保可以检测到相关信息。
缩放空间表示以在局部适当的比例下增强图像结构。
特征提取 – 从图像数据中提取各种复杂程度的图像特征。 这些特征的典型例子是
线条,边缘和山脊。
角落,斑点或点等本地化兴趣点。
更复杂的特征可能与纹理,形状或运动有关。
检测/分割 – 在处理的某个时刻,决定图像的哪个图像点或区域与进一步处理相关。 例子是
选择一组特定的兴趣点
包含特定感兴趣对象的一个或多个图像区域的分割。
将图像分割成嵌套场景体系结构包括前景,对象组,单个对象或显着对象部分(也称为空间 – 分类场景层次结构),而视觉显着性通常被实现为空间和时间关注。
将一个或多个视频分割或共分割成一系列每帧前景掩模,同时保持其时间语义连续性。
高级处理 – 在该步骤,输入通常是一小组数据,例如一组点或假定包含特定对象的图像区域。 其余处理涉及,例如:
验证数据是否满足基于模型和特定于应用程序的假设。
估计应用程序特定参数,例如对象姿势或对象大小。
图像识别 – 将检测到的对象分类为不同的类别。
图像配准 – 比较和组合同一对象的两个不同视图。
决策制定申请所需的最终决定,例如:
自动检查应用程序通过/失败
识别应用程序中的匹配/不匹配
在医疗,军事,安全和识别应用方面进一步进行人体审查的标志
图像理解系统
图像理解系统(IUS)包括如下三个抽象级别:低级别包括图像基元,例如边缘,纹理元素或区域; 中间层包括边界,表面和体积; 高级别包括对象,场景或事件。 其中许多要求确实是进一步研究的主题。
在这些级别设计IUS时的代表性要求是:通过比较和区分来表示原型概念,概念组织,空间知识,时间知识,缩放和描述。
虽然推断指的是从当前已知的事实中导出新的,未明确表示的事实的过程,但控制指的是选择在特定处理阶段应该应用多种推理,搜索和匹配技术中的哪一种的过程。 IUS的推理和控制要求是:搜索和假设激活,匹配和假设检验,期望的产生和使用,注意力的变化和关注,信念的确定性和强度,推理和目标满意度。
硬件
有许多种计算机视觉系统,但它们都包含这些基本要素:电源,至少一个图像采集设备(即摄像机,ccd等),处理器以及控制和通信电缆或某种无线互连机制。 此外,实用的视觉系统包含软件,以及显示器以监控系统。 用于内部空间的视觉系统,如大多数工业空间,包含照明系统并且可以放置在受控环境中。 此外,完整的系统包括许多附件,如相机支架,电缆和连接器。
大多数计算机视觉系统使用可见光摄像机被动地以至多每秒60帧(通常更慢)的帧速率观看场景。
一些计算机视觉系统使用具有主动照明的图像采集硬件或除可见光之外的东西或两者。 例如,结构光三维扫描仪,热成像相机,高光谱成像仪,雷达成像,激光雷达扫描仪,磁共振图像,侧扫声纳,合成孔径声纳等。这样的硬件捕获“图像”然后经常使用与处理可见光图像相同的计算机视觉算法进行处理。
虽然传统的广播和消费者视频系统以每秒30帧的速度运行,但数字信号处理和消费者图形硬件的进步使得高速图像采集,处理和显示成为可能的数百到数量级的实时系统。每秒数千帧。 对于机器人技术中的应用,快速实时视频系统至关重要,并且通常可以简化某些算法所需的处理。 当与高速投影仪结合使用时,快速图像采集可实现3D测量和特征跟踪。
以自我为中心的视觉系统由可穿戴式摄像机组成,可自动从第一人称视角拍摄照片。
截至2016年,视觉处理单元正在成为一种新型处理器,以补充CPU和图形处理单元(GPU)。