计算机视觉应用现状及前景

2019-11-08 09:17:24 weixin_42137700 阅读数 296
  • 什么是WebRTC

    WebRTC通话原理 实现Web和Android的一对一通话 实现AppRTC开源项目演示

    11人学习 廖庆富
    免费试看

选自 tryolabs

机器之心编译参与:魔王

这是一篇计算机视觉入门指南,从概念、原理、用例等角度介绍了计算机视觉。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

「机器能够模拟人类视觉系统」的幻想已经过时了。自 1960 年代第一批学术论文出现以来,计算机视觉已经走了很远,现代系统已经出现,且它们可以集成到移动应用中。

今天,由于其广泛应用和巨大潜力,计算机视觉成为最热的人工智能和机器学习子领域之一。其目标是:复制人类视觉的强大能力。

但是,到底什么是计算机视觉?它在不同行业中的应用现状如何?知名的商业用例有哪些?典型的计算机视觉任务是什么?

本文将介绍计算机视觉的基础概念和现实应用,对任何听说过计算机视觉但不确定它是什么以及如何应用的人,本文是了解计算机视觉这一复杂问题的便捷途径。

你可以通读本文,或者直接跳至某个章节。

目录

  • 什么是计算机视觉?
  • 计算机视觉解决什么问题
  • 区分计算机视觉与其相关领域
  • 行业应用
  • 零售业
  • 制造业
  • 医疗行业
  • 自动驾驶
  • 保险业
  • 农业
  • 安防
  • 典型的计算机视觉任务
  • 图像分类
  • 定位
  • 目标检测
  • 目标识别
  • 实例分割
  • 目标追踪
  • 计算机视觉运行原理
  • 通用策略
  • 现有数据集
  • 训练目标检测模型
  • 商业用例
  • 视觉搜索引擎
  • Facebook 人脸识别
  • Amazon Go
  • 特斯拉自动驾驶
  • 微软 InnerEye
  • 计算机视觉在小公司的应用现状
  • 如何实现计算机视觉项目

什么是计算机视觉?

计算机视觉解决什么问题

人类能够理解和描述图像中的场景。以下图为例,人类能做到的不仅仅是检测到图像前景中有四个人、一条街道和几辆车。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

披头士专辑《艾比路》的封面。(图源:https://liveforlivemusic.com/news/beatles-abbey-road/)

除了这些基本信息,人类还能够看出图像前景中的人正在走路,其中一人赤脚,我们甚至知道他们是谁。我们可以理性地推断出图中人物没有被车撞击的危险,白色的大众汽车没有停好。人类还可以描述图中人物的穿着,不止是衣服颜色,还有材质与纹理。

这也是计算机视觉系统需要的技能。简单来说,计算机视觉解决的主要问题是:

给出一张二维图像,计算机视觉系统必须识别出图像中的对象及其特征,如形状、纹理、颜色、大小、空间排列等,从而尽可能完整地描述该图像。

区分计算机视觉与其相关领域

计算机视觉完成的任务远超其他领域,如图像处理、机器视觉,尽管它们存在一些共同点。接下来,我们就来了解一下这些领域之间的差异。

  • 图像处理

图像处理旨在处理原始图像以应用某种变换。其目标通常是改进图像或将其作为某项特定任务的输入,而计算机视觉的目标是描述和解释图像。例如,降噪、对比度或旋转操作这些典型的图像处理组件可以在像素层面执行,无需对图像整体具备全面的了解。

  • 机器视觉

机器视觉是计算机视觉用于执行某些(生产线)动作的特例。在化工行业中,机器视觉系统可以检查生产线上的容器(是否干净、空置、无损)或检查成品是否恰当封装,从而帮助产品制造。

  • 计算机视觉

计算机视觉可以解决更复杂的问题,如人脸识别、详细的图像分析(可帮助实现视觉搜索,如 Google Images),或者生物识别方法。

行业应用

人类不仅能够理解图像中的场景,稍加训练,还能解释书法、印象派画家、抽象画,以及胎儿的二维超声图像。

从这个角度来看,计算机视觉领域尤其复杂,它拥有大量的实际应用。

从电商到传统行业,各种类型和规模的公司现在都可以利用计算机视觉的强大能力,这是依赖于人工智能和机器学习(更具体地说是计算机视觉)的创新所带来的利好。

下面我们就来看看,近年来受计算机视觉影响最大的行业应用。

零售业

近年来,计算机视觉在零售业的应用已成为最重要的技术趋势之一。下文将介绍一些常见的用例。如果你想对计算机视觉在零售业的潜在应用有更详细的了解,请参考:https://tryolabs.com/resources/retail-innovations-machine-learning/。

行为追踪

实体零售店利用计算机视觉算法和摄像头,了解顾客及其行为。

计算机视觉算法能够识别人脸,确定人物特征,如性别或年龄范围。此外,零售店还可以利用计算机视觉技术追踪顾客在店内的移动轨迹,分析其移动路线,检测行走模式,并统计零售店店面受到行人注意的次数。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

添加视线方向检测后,零售店能够回答这一重要问题:将店内商品放在哪个位置可以提升消费者体验,最大化销售额。

计算机视觉还是开发防盗窃机制的强大工具。人脸识别算法可用于识别已知的商店扒手,或检测出某位顾客将商品放入自己的背包。

库存管理

计算机视觉在库存管理方面有两个主要的应用。

通过安防摄像头图像分析,计算机视觉算法可以对店内剩余商品生成非常准确的估计。对于店铺管理者来说,这是非常宝贵的信息,它可以帮助管理者立即察觉不寻常的货物需求,并及早作出反应。

另一个常见应用是:分析货架空间利用情况,识别次优配置。除了发现被浪费的空间以外,此类算法还可以提供更好的货品摆放方案。

制造业

生产线上的主要问题是机器中断或残次品,这些问题会导致生产延迟和利润损失。

计算机视觉算法被证实是实施预测性维护的好方法。算法通过分析(来自机器人身上摄像头等的)视觉信息,预先发现机器的潜在问题。此类系统可以预测包装或汽车装配机器人是否会中断,这是一项巨大的贡献。

这同样可用于降低不良率,系统可以检测出整个生产线上各个组件中的缺陷。这使得制造商实时响应,采取解决办法。缺陷可能不那么严重,生产流程可以继续,但是产品以某种方式被标记,或者被指向特定的生产路径。但是,有时停止生产线是必要的。为了进一步的利益,此类系统可以针对每个用例进行训练,按类型和严重程度对缺陷进行分类。

医疗行业

在医疗行业中,现有计算机视觉应用的数量非常庞大。

毫无疑问,医疗图像分析是最著名的例子,它可以显著提升医疗诊断流程。此类系统对 MRI 图像、CT 扫描图像和 X 光图像进行分析,找出肿瘤等异常,或者搜索神经系统疾病的症状。

在很多情况下,图像分析技术从图像中提取特征,从而训练能够检测异常的分类器。但是,一些特定应用需要更细化的图像处理。例如,对结肠镜检查图像进行分析时,分割图像是必要的,这样才能找出肠息肉,防止结直肠癌。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

胸腔 3D 渲染 CT 扫描图像的体分割。(图源:https://en.wikipedia.org/wiki/Image_segmentation)

上图是观察胸腔元素所需的图像分割结果。该系统分割每个重要部分并着色:肺动脉(蓝色)、肺静脉(红色)、纵膈(黄色)和横膈(紫色)。

目前大量此类应用已经投入使用,如估计产后出血量、量化冠状动脉钙化情况、在没有 MRI 的情况下测定人体内的血流量。

但是,医疗图像并非计算机视觉在医疗行业中唯一的用武之地。比如,计算机视觉技术为视障人士提供室内导航帮助。这些系统可以在楼层平面图中定位行人和周围事物等,以便实时提供视觉体验。视线追踪和眼部分析可用于检测早期认知障碍,如儿童自闭症或阅读障碍,这些疾病与异常注视行为高度相关。

自动驾驶

你是否思考过,自动驾驶汽车如何「看」路?计算机视觉在其中扮演核心角色,它帮助自动驾驶汽车感知和了解周围环境,进而恰当运行。

计算机视觉最令人兴奋的挑战之一是图像和视频目标检测。这包括对不同数量的对象进行定位和分类,以便区分某个对象是交通信号灯、汽车还是行人,如下图所示:

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

自动驾驶汽车目标检测。(图源:https://cdn-images-1.medium.com/max/1600/1*q1uVc-MU-tC-WwFp2yXJow.gif)

此类技术,加上对来自传感器和/或雷达等来源的数据进行分析,使得汽车能够「看见」。

图像目标检测是一项复杂的强大任务,之前我们曾经讨论过,参见:https://tryolabs.com/blog/2017/08/30/object-detection-an-overview-in-the-age-of-deep-learning/。

另一篇文章从人类-图像交互的角度探讨这一主题,参见:https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/。

保险业

计算机视觉在保险业中的应用影响很大,尤其是在理赔处理中。

计算机视觉应用可以指导客户以视觉形式进行理赔文件处理。它可以实时分析图像并发送至适合的保险经纪人。同时,它可以估计和调整维护费用,确定是否在保险覆盖范围内,甚至检测是否存在保险欺诈。所有这些最大程度上缩短了索赔流程,为客户提供更好的体验。

从预防的角度来看,计算机视觉在避免意外事故方面用处极大。大量可用于阻止碰撞的计算机视觉应用被整合到工业机械、汽车和无人机中。这是风险管理的新时代,可能改变整个保险业。

农业

计算机视觉对农业有极大影响,尤其是精准农业。

在粮食生产这一全球经济活动中,存在一系列宝贵的计算机视觉应用。粮食生产面临一些反复出现的问题,之前这些问题通常由人类监控。而现在,计算机视觉算法可以检测或合理预测病虫害。此类早期诊断可帮助农民快速采取合适措施,减少损失,保证生产质量。

另一项长期挑战是除草,因为杂草对除草剂产生抗药性,可能给农民带来严重损失。现在出现了配备有计算机视觉技术的机器人,它们可以监控整片农田,精准喷洒除草剂。这极大地节约了使用农药量,为地球环境和生产成本均带来了极大的益处。

土壤质量也是农业中的一大主要因素。一些计算机视觉应用可以从手机拍摄的照片中识别出土壤的潜在缺陷和营养缺乏问题。分析之后,这些应用会针对检测出的土壤问题,提供土壤恢复技术和可能的解决方案。

计算机视觉还可用于分类。一些算法通过识别水果、蔬菜甚至花卉的主要特性(如大小、质量、重量、颜色、纹理等),对其进行分类。这些算法还能够检测缺陷,估计出哪些农产品保鲜期较长、哪些应该放置在本地市场售卖。这极大延长了农产品的保鲜期,减少了农产品上市前所需时间。

安防

与零售业类似,对安全具备高要求的企业(如银行或赌场)可从计算机视觉应用中获益,这些应用对安防摄像头拍摄的图像进行分析,从而识别顾客。

而从另一个层面上来讲,计算机视觉是国土安全任务中的强大工具。它可用于改进港口货物检验,或者监控敏感场所,如大使馆、发电站、医院、铁路和体育场。这里,计算机视觉不仅能够分析和分类图像,还能对场景提供详细且有意义的描述,为决策实时提供关键因素。

通常,计算机视觉广泛应用于国防任务,如侦察敌军地形、自动确认图像中的敌军、自动化车辆和机器移动,以及搜索援救。

典型的计算机视觉任务

高度复制人类视觉系统,这是如何做到的呢?

计算机视觉基于大量不同任务,并组合在一起实现高度复杂的应用。计算机视觉中最常见的任务是图像和视频识别,涉及确定图像包含的不同对象。

图像分类

计算机视觉中最知名的任务可能就是图像分类了,它对给定图像进行分类。我们看一个简单的二分类例子:我们想根据图像是否包含旅游景点对其进行分类。假设我们为此任务构建了一个分类器,并提供了一张图像(见下图)。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

埃菲尔铁塔(图源:https://cdn.pariscityvision.com/media/wysiwyg/tour-eiffel.jpg)

该分类器认为上述图像属于包含旅游景点的图像类别。但这并不意味着分类器认出埃菲尔铁塔了,它可能只是曾经见过这座塔的照片,并且当时被告知图像中包含旅游景点。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

巴黎旅游景点明信片。(图源:http://toyworldgroup.com/image/cache/catalog/Ecuda%20Puzzles/Postcard%20Form%20Paris%20/14840-500x500.jpg)

该分类器的更强大版本可以处理不止两个类别。例如,分类器将图像分类为旅游景点的特定类型,如埃菲尔铁塔、凯旋门、圣心大教堂等。那么在此类场景中,每个图像输入可能有多个答案,就像上面那张明信片一样。

定位

假设,现在我们不仅想知道图像中出现的旅游景点名称,还对其在图像中的位置感兴趣。定位的目标就是找出图像中单个对象的位置。例如,下图中埃菲尔铁塔的位置就被标记出来了。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

被红色边界框标记出的埃菲尔铁塔。(图源:https://cdn.pariscityvision.com/media/wysiwyg/tour-eiffel.jpg)

执行定位的标准方式是,在图像中定义一个将对象围住的边界框。

定位是一个很有用的任务。比如,它可以对大量图像执行自动对象剪裁。将定位与分类任务结合起来,就可以快速构建著名旅游景点(剪裁)图像数据集。

目标检测

我们想象一个同时包含定位和分类的动作,对一张图像中的所有感兴趣对象重复执行该动作,这就是目标检测。该场景中,图像中的对象数量是未知的。因此,目标检测的目标是找出图像中的对象,并进行分类。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

目标检测结果(图源:http://research.ibm.com/artificial-intelligence/computer-vision/images/cv-research-areas-object-detection.jpg)

在这个密集图像中,我们可以看到计算机视觉系统识别出大量不同对象:汽车、人、自行车,甚至包含文本的标志牌。

这个问题对人类来说都算困难的。一些对象只显示出一部分,因为它们有一部分在图像外,或者彼此重叠。此外,相似对象的大小差别极大。

目标检测的一个直接应用是计数,它在现实生活中应用广泛,从计算收获水果的种类到计算公众集会或足球赛等活动的人数,不一而足。

目标识别

目标识别与目标检测略有不同,尽管它们使用类似的技术。给出一个特定对象,目标识别的目标是在图像中找出该对象的实例。这并不是分类,而是确定该对象是否出现在图像中,如果出现,则执行定位。搜索包含某公司 logo 的图像就是一个例子。另一个例子是监控安防摄像头拍摄的实时图像以识别某个人的面部。

实例分割

我们可以把实例分割看作是目标检测的下一步。它不仅涉及从图像中找出对象,还需要为检测到的每个对象创建一个尽可能准确的掩码。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

(图注)实例分割结果。

你可以从上图中看到,实例分割算法为四位披头士成员和一些汽车创建掩码(不过该结果并不完整,尤其是列侬)。

人工执行此类任务的成本很高,而实例分割技术使得此类任务的实现变得简单。在法国,法律禁止媒体在未经监护人明确同意的情况下暴露儿童形象。使用实例分割技术,可以模糊电视或电影中的儿童面部。

目标追踪

目标追踪旨在追踪随着时间不断移动的对象,它使用连续视频帧作为输入。该功能对于机器人来说是必要的,以守门员机器人举例,它们需要执行从追球到挡球等各种任务。目标追踪对于自动驾驶汽车而言同样重要,它可以实现高级空间推理和路径规划。类似地,目标追踪在多人追踪系统中也很有用,包括用于理解用户行为的系统(如零售店的计算机视觉系统),以及在游戏中监控足球或篮球运动员的系统。

执行目标追踪的一种相对直接的方式是,对视频序列中的每张图像执行目标追踪并对比每个对象实例,以确定它们的移动轨迹。该方法的缺陷是为每张图像执行目标检测通常成本高昂。另一种替换方式仅需捕捉被追踪对象一次(通常是该对象出现的第一次),然后在不明确识别该对象的情况下在后续图像中辨别它的移动轨迹。最后,目标追踪方法未必就能检测出对象,它可以在不知道追踪对象是什么的情况下,仅查看目标的移动轨迹。

计算机视觉运行原理

如前所示,计算机视觉的目标是模仿人类视觉系统的工作方式。算法如何实现这一目标呢?本文将介绍其中最重要的几个概念。

通用策略

深度学习方法和技术深刻改变了计算机视觉以及其他人工智能领域,对于很多任务而言,使用深度学习方法已经成为标准操作。尤其是,卷积神经网络(CNN)的性能超过了使用传统计算机视觉技术所能达到的最优结果。

以下四步展示了利用 CNN 构建计算机视觉模型的通用方法:

  1. 创建一个包含标注图像的数据集或者使用现有的数据集。标注可以是图像类别(适用于分类任务)、边界框和类别对(适用于目标检测问题),或者对图像中每个感兴趣对象进行像素级分割(适用于实例分割问题)。
  2. 从每张图像中提取与待处理任务相关的特征,这是建模的重点。例如,用来识别人脸的特征、基于人脸标准的特征与用来识别旅游景点或人体器官的特征存在显著区别。
  3. 基于特征训练深度学习模型。训练意味着向机器学习模型输入很多图像,然后模型基于特征学习如何解决任务。
  4. 使用不同于训练所用数据的图像评估模型,从而测试训练模型的准确率。

该策略非常基础,但效果不错。这类方法叫做监督机器学习,它需要包含模型待学习现象的数据集。

现有数据集

构建数据集通常成本高昂,但是它们对于开发计算机视觉应用至关重要。幸运的是,目前有一些现成的数据集。其中规模最大、最著名的是 ImageNet,该数据集包含 1400 万人工标注图像。该数据集包含 100 万张具备边界框标注的图像。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

带有边界框的 ImageNet 图像(图源:http://www.image-net.org/bbox_fig/kit_fox.JPG)

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

具备对象属性标注的 ImageNet 图像(图源:http://www.image-net.org/attribute_fig/pullfigure.jpg)

另一个著名数据集是 Microsoft Common Objects in Context (COCO) 数据集,它包含 328,000 张图像、91 个对象类别(这些类别很容易识别,4 岁孩童也可以轻松识别出来),以及 250 万标注实例。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

COCO 数据集中的标注图像示例。(图源:https://arxiv.org/abs/1405.0312)

尽管该领域可用数据集并不是特别多,但仍然有一些适合不同的任务,如 CelebFaces Attributes Dataset(CelebA 数据集,该人脸属性数据集包含超过 20 万张名人图像)、Indoor Scene Recognition 数据集(包含 15,620 张室内场景图像)、Plant Image Analysis 数据集(包括属于 11 个不同类别的 100 万张植物图像)。

训练目标检测模型

  • Viola–Jones 方法

有很多种方法可以解决目标检测问题。很多年来,Paul Viola 和 Michael Jones 在论文《Robust Real-time Object Detection》中提出的方法成为流行的方法。

尽管该方法可用来检测大量对象类别,但它最初是受人脸检测目标的启发。该方法快速、直接,是傻瓜相机中所使用的算法,它可以在几乎不浪费处理能力的情况下执行实时人脸检测。

该方法的核心特征是:基于哈尔特征与大量二分类器一起训练。哈尔特征表示边和线,计算简单。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

哈尔特征(图源:https://docs.opencv.org/3.4.3/haar_features.jpg)

尽管比较基础,但在人脸检测这一特定案例下,这些特征可以捕捉到重要元素,如鼻子、嘴或眉间距。该监督方法需要很多正类和负类样本。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

检测蒙娜丽莎的面部。

本文暂不讨论算法细节。不过,上图展示了该算法检测蒙娜丽莎面部的过程。

  • 基于 CNN 的方法

深度学习变革了机器学习,尤其是计算机视觉。目前基于深度学习的方法已经成为很多计算机视觉任务的前沿技术。

其中,R-CNN 易于理解,其作者提出了一个包含三个阶段的流程:

  1. 利用区域候选(region proposal)方法提取可能的对象。
  2. 使用 CNN 识别每个区域中的特征。
  3. 利用支持向量机(SVM)对每个区域进行分类。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

R-CNN 架构(图源:https://arxiv.org/abs/1311.2524)

该区域候选方法最初由论文《Selective Search for Object Recognition》提出,尽管 R-CNN 算法并不在意使用哪种区域候选方法。步骤 3 非常重要,因为它减少了候选对象的数量,降低了计算成本。

这里提取的特征没有哈尔特征那么直观。总之,CNN 可用于从每个区域候选中提取 4096 维的特征向量。鉴于 CNN 的本质,输入应该具备同样的维度。这也是 CNN 的弱点之一,很多方法解决了这个问题。回到 R-CNN 方法,训练好的 CNN 架构要求输入为 227 × 227 像素的固定区域。由于候选区域的大小各有不同,R-CNN 作者通过扭曲图像的方式使其维度满足要求。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

满足 CNN 输入维度要求的扭曲图像示例。

尽管该方法取得了很好的结果,但训练过程中存在一些困难,并且该方法最终被其他方法超越。其中一些方法在这篇文章中有深入介绍:https://tryolabs.com/blog/2017/08/30/object-detection-an-overview-in-the-age-of-deep-learning/。

商业用例

计算机视觉应用被越来越多的公司部署,用于回答业务问题或提升产品性能。它们或许已经成为人们日常生活的一部分,你甚至都没有注意到它。以下是一些常见的使用案例。

视觉搜索引擎

2001 年,Google Images 的出现意味着视觉搜索技术可被大众使用。视觉搜索引擎能够基于特定内容标准检索图像。常见用例是搜索关键词,不过有时候我们会提供源图像,要求引擎找出相似图像。在某些案例中,可以指定更详细的搜索条件,如沙滩的图像、夏天拍摄、至少包含 10 个人。

现在有很多视觉搜索引擎,有的可以网站形式直接使用,有的需要通过 API 调用,有的则是移动应用。

最著名的视觉搜索网站无疑是 Google Images、Bing 和 Yahoo。前两个网站均可使用多个关键词或者单张图像作为搜索输入,以图像作为搜索输入又名「反向图像搜索」(以图搜图)。Yahoo 仅支持关键词搜索,搜索结果同样不错,如下图所示。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

Yahoo 图像搜索。

还有一些视觉搜索网站同样值得关注,如仅支持反向图像搜索的 TinEye,以及仅支持文本搜索但覆盖范围极大的 Picsearch。

在移动应用方面,由于视觉搜索技术逐渐成为标准特征,此类应用之间的区别较大。

此类实现包括 Google Goggles(后被 Google Lens 取代),它可从图像中获取详细信息。例如,从一张猫照片中得到其品种信息,或者提供博物馆中艺术作品的信息。

在电商市场中,Pinterest 开发了 Pinterest Lens。如果你需要现有衣物的新穿搭想法,你可以为这件衣服拍张照,之后 Pinterest Lens 会返回穿搭建议,该建议包括你可以购买的搭配单品。近年来,针对网购的视觉搜索成为增长最快的趋势之一。

最后,视觉搜索的更高阶案例是视觉问答系统,参见:https://tryolabs.com/blog/2018/03/01/introduction-to-visual-question-answering/。

Facebook 人脸识别

尽管早在 2000 年代中期,出于自动对焦目的而使用人脸检测技术的相机已经普遍,但近年来人脸识别领域出现了很多更优秀的成绩。最常见(也最具争议)的应用或许就是识别图像或视频中的人物。这通常用于安防系统,但也出现在社交媒体中:人脸管理系统为人脸添加过滤器,以便按人脸执行搜索,甚至在选举过程中阻止选民多次投票。人脸识别还可用到更复杂的场景,如识别面部表情中的情绪。

其中同时引发了兴趣和担忧的用例是 Facebook 的人脸识别系统。开发团队的一个主要目标是阻止陌生人使用出现用户人脸的图像(见下图的示例),或者向视障用户告知图像或视频中出现的人物。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

Facebook 人脸识别。(图源:https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/files/2017/12/Facebook-Tagging-796x428.jpg)

除了那些令人担忧的部分以外,这项技术在很多场景中是有益的,比如对抗网络骚扰。

Amazon Go

厌倦了超市和杂货店的排队等待?Amazon Go 商店提供别样的体验。在计算机视觉的帮助下,这里不用排队,也没有包装箱。

其思路很简单:顾客进入商店,选择所需商品,离开商店,不用排队结账。

这是如何实现的呢?多亏了 Amazon 的「Just Walk Out」技术。顾客必须下载一个移动 app,该 app 可以帮助 Amazon 识别他们的身份。当他们想进入 Amazon Go 商店时,该 app 提供一个二维码。商店入口处有一些闸机供顾客出入商店,顾客进入商店时,闸机读取顾客的二维码。一个有趣的功能是,其他人可以陪伴该顾客一起进入商店,且陪伴者无需安装该应用程序。

顾客可以在商店内自由移动,而这也是计算机视觉发挥作用之处。商店内安装有一系列传感器,包括摄像头、运动传感器和商品上的重量传感器。这些设备收集了每个人的行为信息。它们实时检测顾客从货架上拿取的货品。顾客可以取下某个货品,改变主意的话再放回去。系统最终会向第一个拿起它的顾客收费,即使它被递给另一位想要购买的顾客,第一位拿起它的顾客仍然需要支付费用。于是系统创建了一个包含所有拿起货品的虚拟购物车,并进行实时维护。这使得顾客的购物流程非常顺利。

当顾客完成购物,即可走出商店。当他们经过闸机时,系统不会让顾客扫描货品或二维码,而是记录交易额并向顾客发送确认通知。

Amazon Go 是计算机视觉对现实世界和人类日常生活产生积极影响的一个案例。

特斯拉 Autopilot

让汽车自动行驶不只是一个遥远的梦。特斯拉 Autopilot 技术提供非常方便的自动驾驶功能。这并不是全自动驾驶系统,而是可在特定路段上驾驶汽车的驾驶助手。这是特斯拉强调的重点:在所有情况下,控制汽车都是驾驶员的责任。

自动驾驶通过目标检测和追踪技术实现。

要想使 Autopilot 工作,特斯拉汽车必须「高度武装」:八个全景摄像头提供 250 米范围内的 360 度图像、超声波传感器用于检测对象、雷达用来处理周围环境信息。这样,特斯拉汽车才能够根据交通条件调整行驶速度,在遇到障碍物时及时刹车,保持或变换车道,拐弯以及流畅地停车。

特斯拉 Autopilot 技术是计算机视觉对人类日常活动带来积极影响的另一个精彩案例。

微软 InnerEye

在医疗行业中,微软的 InnerEye 是帮助放射科医生、肿瘤专家和外科医生处理放射图像的宝贵工具。其主要目的是从恶性肿瘤的 3D 图像中准确识别出肿瘤。

计算机视觉入门大全:基础概念、运行原理、应用案例详解

 

癌性肿瘤的 3D 图像。

基于计算机视觉和机器学习技术,InnerEye 输出非常详细的肿瘤 3D 建模图像。以上截图展示了 InnerEye 创建的对脑部肿瘤的完整 3D 分割。从上述视频中,你可以看到专家控制 InnerEye 工具,指引它执行任务,InnerEye 像助手一样运行。

在放射疗法中,InnerEye 结果使得不伤害重要器官直接针对目标肿瘤进行放射成为可能。

这些结果还帮助放射科医生更好地理解图像序列,基于肿瘤大小的变化,判断疾病是否有进一步发展、稳定,或者对治疗反应良好。这样,医疗图像就成为一种重要的追踪和衡量方式。

最后,InnerEye 可用于规划精准手术。

计算机视觉在小公司的应用现状

计算机视觉在大公司的实现常被大家谈论,但这不意味着所有公司必须是谷歌或亚马逊那种量级才能从该机器学习技术中受益。任何规模的公司都可以利用数据和计算机视觉技术变得更加高效,制定更好的决策。

我们来看一些小公司的现实案例:

Tryolabs 曾帮助一家位于旧金山的小型风险管理公司构建和实现了一个计算机视觉系统,用于扩展对屋顶检查图像的处理。

在使用计算机视觉技术之前,公司专家人工分析无人机拍摄的照片,检测屋顶建设中的损伤。尽管分析结果很准确,但由于服务耗时且人力资源有限,该服务无法得到有效扩展。

为了解决这个问题,我们构建了一个能够理解图像并自动识别屋顶问题(如积水、电缆松散和铁锈)的深度学习系统。为此,我们开发了一个能够基于屋顶图像检测问题的深度神经网络、分析输入图像的流程,以及使检测结果可用于外部工具的 API。

因此,这家公司的订单量和收益都有所增长。

如何实现计算机视觉项目

和在组织内值得进行的所有创新一样,你应该选择一种有策略的方式来实现计算机视觉项目。

利用计算机视觉技术实现成功创新取决于整体业务策略、资源和数据。

以下问题可以帮助你为计算机视觉项目构建战略路线图。

1、计算机视觉解决方案应该降低成本还是增加收益?

成功的计算机视觉项目要么降低成本要么提高收益(或者二者兼顾),你应该定义该项目的目标。只有这样,它才能对组织及其发展产生重要影响。

2、如何衡量项目的成功?

每个计算机视觉项目都是不同的,你需要定义一个特定于该项目的成功指标。设置好指标后,你应该确保它被业务人员和数据科学家等认可。

3、能否保证信息的获取?

开启计算机视觉项目时,数据科学家应该能够轻松访问数据。他们需要和来自不同部门(如 IT 部门)的重要同事合作。这些同事应以其业务知识提供支持,内部官僚主义则会成为主要约束。

4、 组织收集的数据是否合适?

计算机视觉算法并非魔法。它们需要数据才能运作,输入数据的质量决定其性能。有多种不同方法和来源可供收集合适数据,这取决于你的目标。无论如何,拥有的输入数据越多,计算机视觉模型性能优秀的可能性越大。如果你对数据的量和质存在疑虑,你可以请数据科学家帮忙评估数据集质量,必要情况下,找到获取第三方数据的最优方式。

5. 组织是否以恰当格式收集数据?

除了拥有合适量和类型的数据以外,你还需要确保数据的格式。假设你使用数千张完美的手机照片(分辨率高,背景为白色)训练目标检测算法。然后发现算法无法运行,因为实际用例是在不同光照/对比度/背景条件下检测持有手机的人,而不是检测手机本身。这样你之前的数据收集努力基本上就作废了,你还需要重头再来。此外,你应该了解,如果数据存在偏见,算法会学到该偏见。

关于如何开启成功的计算机视觉项目,参见博客:https://tryolabs.com/blog/2019/02/13/11-questions-to-ask-before-starting-a-successful-machine-learning-project/。

希望本文能够帮助读者了解计算机视觉概念、运作原理以及现实应用。

原文链接:

https://tryolabs.com/resources/introductory-guide-computer-vision/

 

 

2019-10-10 18:37:41 ctrigger 阅读数 558
  • 什么是WebRTC

    WebRTC通话原理 实现Web和Android的一对一通话 实现AppRTC开源项目演示

    11人学习 廖庆富
    免费试看

计算机视觉领域的突出特点是其多样性与不完善性。

这一领域的先驱可追溯到更早的时候,但是直到20世纪70年代后期,当计算机的性能提高到足以处理诸如图像这样的大规模数据时,计算机视觉才得到了正式的关注和发展。然而这些发展往往起源于其他不同领域的需要,因而何谓“计算机视觉问题”始终没有得到正式定义,很自然地,“计算机视觉问题”应当被如何解决也没有成型的公式。

尽管如此,人们已开始掌握部分解决具体计算机视觉任务的方法,可惜这些方法通常都仅适用于一群狭隘的目标(如:脸孔、指纹、文字等),因而无法被广泛地应用于不同场合。

对这些方法的应用通常作为某些解决复杂问题的大规模系统的一个组成部分(例如医学图像的处理,工业制造中的质量控制与测量)。在计算机视觉的大多数实际应用当中,计算机被预设为解决特定的任务,然而基于机器学习的方法正日渐普及,一旦机器学习的研究进一步发展,未来“泛用型”的计算机视觉应用或许可以成真。

人工智能所研究的一个主要问题是:如何让系统具备“计划”和“决策能力”?从而使之完成特定的技术动作(例如:移动一个机器人通过某种特定环境)。这一问题便与计算机视觉问题息息相关。在这里,计算机视觉系统作为一个感知器,为决策提供信息。另外一些研究方向包括模式识别和机器学习(这也隶属于人工智能领域,但与计算机视觉有着重要联系),也由此,计算机视觉时常被看作人工智能与计算机科学的一个分支。

物理是与计算机视觉有着重要联系的另一领域。

计算机视觉关注的目标在于充分理解电磁波——主要是可见光与红外线部分——遇到物体表面被反射所形成的图像,而这一过程便是基于光学物理和固态物理,一些尖端的图像传感器甚至会应用到量子力学理论,来解析影像所表示的真实世界。同时,物理学中的很多测量难题也可以通过计算机视觉得到解决,例如流体运动。也由此,计算机视觉同样可以被看作是物理学的拓展。

另一个具有重要意义的领域是神经生物学,尤其是其中生物视觉系统的部分。

在整个20世纪中,人类对各种动物的眼睛、神经元、以及与视觉刺激相关的脑部组织都进行了广泛研究,这些研究得出了一些有关“天然的”视觉系统如何运作的描述(尽管仍略嫌粗略),这也形成了计算机视觉中的一个子领域——人们试图创建人工系统,使之在不同的复杂程度上模拟生物的视觉运作。同时计算机视觉领域中,一些基于机器学习的方法也有参考部分生物机制。

计算机视觉的另一个相关领域是信号处理。很多有关单元变量信号的处理方法,尤其对是时变信号的处理,都可以很自然的被扩展为计算机视觉中对二元变量信号或者多元变量信号的处理方法。但由于图像数据的特有属性,很多计算机视觉中发展起来的方法,在单元信号的处理方法中却找不到对应版本。这类方法的一个主要特征,便是他们的非线性以及图像信息的多维性,以上二点作为计算机视觉的一部分,在信号处理学中形成了一个特殊的研究方向。

除了上面提到的领域,很多研究课题同样可被当作纯粹的数学问题。例如,计算机视觉中的很多问题,其理论基础便是统计学,最优化理论以及几何学。

如何使既有方法通过各种软硬件实现,或说如何对这些方法加以修改,而使之获得合理的执行速度而又不损失足够精度,是现今计算机视觉领域的主要课题。

2019-05-10 00:35:10 ctrigger 阅读数 513
  • 什么是WebRTC

    WebRTC通话原理 实现Web和Android的一对一通话 实现AppRTC开源项目演示

    11人学习 廖庆富
    免费试看

摘要:

据中商产业研究院发布的 《2018-2023年中国人工智能行业市场前景及投资机会研究报告》数据显示,2017 年中国人工智能市场规模将达到152.1亿元,增长率达到 51.2%。随着人工智能技术的逐渐成熟,科技、制造业等业界巨头布局的深入,应用场景不断扩展,预计2018年中国人工智能市场规模有望突破 200 亿元大关,达到238.2亿元,增长率达到 56.6%。 对标:科大讯飞 ,海康威视

正文:

人工智能行业未来发展趋势(安信证券)

视觉人工智能是目前人工智能在中国落地最顺利的技术,2020 年市场规模预计达到 755.5 亿元。视觉人工智能是中国人工智能市场上最大的组成部分。根据中国信通院数据,2017 年中国人工智能市场中视觉人工智能的占比超过37%。

视觉人工智能公司商业模式主要包括3种,分别为API(多采用按调用量或包时收费)、SDK(多采用结合授权设备量及授权周期定价)与解决方案(结合具体项目收费,后续每年可有升级维保收入)。目前的应用领域主要包括智能安防、智能手机(预计到2021年,全球范围内深度摄像头市场规模有望达到78.9亿美元)、智能汽车、智能 家居等。视觉人工智我国起步较晚,产业发展仍处于初创期,发展空间大。

计算机视觉是AI领域应用场景最丰富、商业化价值最大的领域(国金证券)

目前AI 技术处理的数据类型包括四类:文字、语音、图像和视频。根据 Cisco 的研究,到2022年全球线上视频流量占总流量的比例将从2017年的75%上升到 82%,线上数据将越来越被视频数据所主导。信息维度更高加之数据量更大,因此以图像和视频为主要处理对象的计算机视觉要比以文字或语音为主要处理对象的其它AI技术具有更加丰富的应用场景和商业化价值。

从市场规模来看,2017 年计算机视觉市场占全球 AI 市场总规模的 16.9%,排在语音识别之后;而国内计算机视觉市场占AI市场的 34.9%,排名第一。国内外计算机视觉的市场规模差异要远大于企业分布差异,说明国内计算机视觉公司的总体盈利能力较其他 AI领域的公司较强,商业成熟度较高。

从市场格局来看:1)基础层——核心芯片被 Intel、Nvidia 等传统芯片厂商把控,新型芯片厂商尚未崛起,规模应用有待时日;开源平台以谷歌的 Tensorflow、 Facebook 的 Caffe等为主,其它企业的深度学习框架多为二次开发;2)技术层——算法,初创企业占优;云计算,几乎被 AWS、Google Cloud、Azure、 阿里云等垄断;3)应用层——垂直行业龙头占据场景,技术层初创企业向上渗透。

从市场结构上看,国内外市场结构略有不同:国内安防、金融、互联网为主。国外消费、机器人(及机器视觉)、智能驾驶领先。根据IDC的市场跟踪,2018年中国计算机视觉技术输出规模最大的3个行业是政府、金融和互联网,最大的两个场景为政府行业中的平安城市以及金融行业中基于人脸识别的身份。而根据 Tractica 的预测,2018年全球计算机视觉技术输出规模最大的3个行业分别为消费、机器人(及机器视觉)以及智能驾驶。影响计算机视觉落地的三个主要因素:监管政策、行业接受度及用户接受度。

中短期来看,包括人脸识别、人体识别、图像识别等在内的主要计算机视觉技术均基于使用神经网络的深度学习算法,算法的优劣和迭代速度将直接取决于算法设计人员的知识和经验储备,也会进一步决定计算机视觉技术的准确率、可靠性等关键性能。

计算机视觉是 AI 行业最具商业化价值的赛道,智能语音产业即将进入爆发期。

目前,国内外均有40%以上的AI企业聚集计算机视觉领域,市场规模在所有领域中全球第二、中国第一,商业成熟度较高,2017年中国计算机视觉应用规模约为15.5亿元,预计17-22 CAGR 超 56%。其次,智能语音领域,根据 Gartner 2018 AI技术成熟度曲线,语音识别、虚拟助理等相关智能语音技术历经淘洗已相对成熟,未来将推动产业走向爆发期,预计整个市场规模将从18 年的75亿美元增长至24年的 215 亿美元,CAGR 达 19%。智能语音技术逐渐成熟,未来几年市场将维持高速增长。根据 Gartner 发布的2018年AI技术成熟度曲线,语音识别已经进入实质生产高峰期,意味着语音识别技术已被广泛接受,规模化落地即将开始。此外,像自然语言处理、虚拟助理等相关智能语音技术历经淘洗之后即将落入‚泡沫化低谷期‛,商业模式越来越成熟,也将进一步推动智能语音的落地。

相关标的:

科大讯飞(002230): 是首批4家国家人工智能开放创新平台之一,负责智能语音建设。公司技术领先,感知智能和认知智能技术均在全球众多大赛获得优异成绩。 公司积极推进“平台+赛道”战略:截至 2018 年H1,讯飞开放平台开发者注册数超80万人;平台技术上教育、智慧城市、政法、消费者、汽车、医疗依托AI技术稳步发展。2018 年上半年,ToC 端营收快速增长,达到 10.84 亿元,同比增长 130%,C 端业务占比总营收的比例从去年的 22%上升至 34%,ToC 业务的快速成长,补充了公司 C 端基因短板。目前,公司已经形成翻译机、录音笔等丰富产品线。其中,翻译机 2.0 上线后销量超预期,截至 2018 年 10 月,翻译机2.0上线5个月销量超过 20 万台,收入同比增长 200%。整体估值:预计公司 2018-2020 年的归属于母公司的净利润分别为 5.29 亿元、8.28 亿元、 12.26 亿元,2018-2020 年的年复合增长率为 52%,给予 PEG1.5 倍,对 应 PE 为 78 倍,即公司目标总市值为 956 亿元。分部估值:分别选取对 标企业,包括猿辅导、佳发教育等,并主要利用 P/S 法进行估值,并结合 科大讯飞 2019 年增速,预计科大讯飞整体目标市值约为 892 亿元。

海康威视(002415):海康威视目前作为全球最大的视频安防厂商将保持其优势,公司全线产品更新换代,智能化程度更高,更具性价比的产品将帮助公司在安防领域占据更多市场份额,提升用户粘性。下游渠道商方面调整较好,2019 年预计不会因去库存产生负面影响。海外方面因中美贸易摩擦导致占公司营收约 7%的美国市场营收增速放缓,但公司在东南亚、东欧等新兴市场业务拓展良好,部分区域今年也将实现从零到一的突破,未来将逐渐形成营收。

海康威视发布 2018 年度业绩快报,公司全年实现营业总收入498.09 亿元,同比增长18.86%;实现归母净利润113.36亿元,同比增长20.46%。2019年政府项目有逐渐回暖的迹象,海外新兴地区实现突破;在新兴应用领域,海康威视积极布局萤石云、AGV机器人与仓储物流管理系统、工业摄像机、汽车电子等新兴业务,未来将受益于中国智能制造升级,拥抱更大市场。考虑到目前贸易摩擦问题还存在一定不确定性,光大证券下调公司 2018-2020年EPS至1.23/1.48/1.79 元(原值为 1.25/1.57/1.96 元),但基于安防行业未来将在AI赋能的帮助下逐渐打开更大市场,公司作为行业龙头长期增长可期,维持“买入”评级。

风险提示:AI 产品进展低于预期的风险,行业增速低于预期的风险

2018-11-21 21:11:33 wuyangyang555 阅读数 2624
  • 什么是WebRTC

    WebRTC通话原理 实现Web和Android的一对一通话 实现AppRTC开源项目演示

    11人学习 廖庆富
    免费试看

机器视觉的界定以及构成

机器视觉就是用机器来代替人眼做测量和判断的系统,它通过光学装置和非接触传感器自动获取目标对象的图像,并由图像处理设备根据所得图像的像素分布、亮度和颜色等信息进行各种运算处理和判别分析,以提取所需的特征信息或根据判别分析结果对某些现场设备进行运动控制。机器视觉系统中的图像处理设备一般都采用计算机,所以机器视觉有时也称为计算机视觉。

一个典型的机器视觉系统包括:光源、镜头、相机(CCD或COMS相机)、图像采集卡、图像处理软件等。在搭建视觉系统时,用户需采购系统中的各个组件,但市场上机器视觉产品及设备生产厂家多数只生产其中的部分原件,如AVT的工业摄像机、Computar的工业镜头、CCS的光源等。在这种状况下,组建机器视觉系统需要大量的时间与精力来选购不同厂家的产品,无论是在人力还是资源成本上都会有更多的付出。

图表1:机器视觉基本组成

资料来源:前瞻产业研究院整理

机器视觉产业技术发展现状

根据前瞻产业研究院发布的《2018-2023年中国机器视觉产业发展前景与投资预测分析报告》数据显示,截至2017年末,机器视觉产业专利数量达到了5349件,特别是2011年以来,机器视觉技术快速发展,专利数量节节攀升。

机器视觉产业专利数量分析

从申请量来看,2011-2017年,我国机器视觉相关专利申请数量的增长速度呈先缓后急的趋势,2011-2010年增长较为平缓,2011年之后增长幅度加大。2016年,我国机器视觉相关专利申请数量为933个,2017年下降为545个。

图表2:2001-2017年机器视觉相关专利申请数量变化图(单位:个)

资料来源:前瞻产业研究院整理

从公开量来看,2001-2017年我国机器视觉相关专利公开数量变化趋势与申请数量基本一致。2016年公开数量为933个;2017年达到有史以来最高值,为1281个。

图表3:2001-2017年机器视觉相关专利公开数量变化图(单位:个)

资料来源:前瞻产业研究院整理

机器视觉产业专利申请人分析

截至2017年底,我国机器视觉相关专利申请人前十名全部为高等学校,其中,排名前三位的依次是浙江大学、江南大学和江苏大学。从所占比例来看,我国机器视觉产业的技术集中度偏低。

图表4:截至2017年我国机器视觉相关专利申请人前十名情况(单位:个,%)

资料来源:前瞻产业研究院整理

机器视觉产业热门技术分析

从我国机器视觉产业热门技术来看,G01N21/88(测试瑕疵、缺陷或污点的存在)是当前研究最多的技术,专利数量达到371个。此外图像分析技术和计量设备的研究也是机器视觉产业的热门技术。

图表5:截至2017年中国机器视觉专利构成分析(单位:%)

资料来源:前瞻产业研究院整理

机器视觉产业技术发展趋势

(1)图像处理器将会不断地向PC机以及嵌入式系统靠拢

机器视觉处理器的处理功能,将会不断地向PC机以及嵌入式系统靠拢;处理的能力会继续遵循摩尔定律,18个月将会增长一倍;随着处理功能不断的增强,处理器散发出的热量也会随着越来越高,这会影响系统的功能,散热问题将成为严重的阻碍性因素。

(2)机器视觉算法工具平稳与缓和发展

驱动图像处理软件发展的因素不仅仅包括用户们对简单、方便软件的需求,还包括供应商们对他们的软件在市场上受到产权保护的期望。机器视觉算法工具的发展趋势是比较平稳与缓和发展的。未来大家将看到很多机器学习的应用,用各种算法工具来实现应用功能和任务。

(3)光学物理方面将会成为相机及传感器发展的一个阻碍因素

光学物理方面将会成为相机及传感器发展的一个阻碍因素。它的发展趋势是:CMOS相机会取代CCD相机;会有超高速的相机出现;在相机上会融入更多的智能;会有更多更小的相机出现;更多的相机可以直接连在PC机上。

(4)分辨率与更小光源将驱动成像光学系统的发展

对于成像光学的发展有两个主要驱动力量,一是越来越高分辨率的要求;二是更小光源的需求。但是寻求更小的光源目前来看是非常困难的。同样阻碍成像光学发展的因素仍然是对机器视觉方面、物理光学方面的研究力量不够,另外也缺少相应的设施。对于成像光学的发展趋势,35mm镜头在早期就已经流行,但是可能将会被更小的镜头所取代。

机器视觉行业前景预测

目前在我国随着配套基础建设的完善,技术、资金的积累,各行各业对采用图像和机器视觉技术的工业自动化、智能需求开始广泛出现,国内有关大专院校、研究所和企业近两年在图像和机器视觉技术领域进行了积极思索和大胆的尝试,逐步开始了工业现场的应用。

其主要应用于制药、印刷、矿泉水瓶盖检测等领域。这些应用大多集中在如药品检测分装、印刷色彩检测等。真正高端的应用还很少,因此,以上相关行业的应用空间还比较大。当然、其他领域如指纹检测等等领域也有着很好的发展空间。

据前瞻产业研究院发布的《机器视觉产业发展前景与投资预测分析报告》数据显示,未来几年,行业若按照年均16%左右的增长率,预计到2020年,我国机器视觉行业市场规模将突破150亿元,到2022年达到179亿元。

中国机器视觉行业市场规模预测

资料来源:前瞻产业研究院整理

行业发展驱动因素

应用需求空间广

在制造业以及不断拓宽的其他领域应用,带来了对机器视觉需求的提升。广泛的应用也决定了机器视觉将由过去单纯的采集、分析、传递数据,判断动作,逐渐朝着开放性的方向发展,这一趋势也预示着机器视觉将与自动化更进一步的融合。虽然制造业容易受到经济环境恶化的影响,但是机器视觉在其他领域如交通、安保等应用越来越广泛。

成本节约推动

人力成本上升,机器视觉应用可有效降低成本。随着现代工业自动化技术日趋成熟,越来越多的制造企业考虑如何采用机器视觉来帮助生产线实现检查、测量和自动识别等功能,以提高效率并降低成本,从而实现生产效益最大化。

技术驱动

机器视觉系统由多种技术构成,所以也就需要多个领域的专业知识。视觉系统的开发需要关注硬件、软件以及它们的跨界集成,为最终用户提供高性价比、可靠的解决方案。在过去的几年中,成像系统、照明系统、处理器等领域的持续进步,它们的成本在下降,而尺寸也在变得越来越小。由于机器视觉领域的创新,以及集成了先进的图像处理算法,世界系统正在工业自动化的更多领域得到应用。

行业发展阻碍因素

机器视觉产品在中国市场应用的主要障碍有:预算限制、不易使用、工程实施资源限制、操作人员的接受程度、视觉技术的了解、相对于其他自动化项目的优先级别不够高。其中由于对视觉技术不够了解以及预算的限制是当

机器视觉产品在中国市场推广的主要障碍

资料来源:前瞻产业研究院整理

机器视觉行业投资建议

1、专业性与用户需求相结合

与其他自动化产品相比,机器视觉产品属于专业性非常高的产品,对多数用户而言可能较为陌生,提高了应用门槛。产品生产商比较熟悉产品和技术本身的功能与参数,而消费者则从自身需求角度出发,往往二者存在一定得错位或者矛盾。如何将两方面结合起来,既要提高产品的性能,又要满足用户的应用需求,这是打造成功视觉方案的前提,因为产品终究是用户说了算,用户的体验才最终推动技术和产品的不断变革。

2、主要市场与新应用市场相结合

根据机器视觉市场的跟踪调研分析,目前机器视觉产品中端市场2/3为电子制造、汽车制造和市政交通行业所占据,其余市场份额包括食品、包装机械、印刷等行业需求,并且这些行业对机器视觉产品的需求仍然在大幅增长。从行业应用来看,电子制造行业仍然是拉动需求的主要因素。但从未来发展前景来看,食品、包装机械等行业自动化水平会进一步提升,对机器视觉产品需求值得期待。

3、市场竞争扩散蔓延

机器视觉行业是一个崛起的新兴行业,全球制造中心——中国开始了工业转型升级过程,对过度依赖低廉劳动成本的粗加工和制造模式向全面自动化、高附加值和高生产率转型,中国机器视觉市场正在继北美、欧洲和日本之后,成为国际机器视觉厂商的重要目标市场。

目前,境内国际机器视觉品牌大约100家,民族机器视觉品牌也接近前者,产品代理商超过200家,专业机器视觉系统集成商超过50家,涵盖从光源、工业相机、工业镜头、图像采集卡和智能相机等所有机器视觉行业链产品。

对于竞争日益激烈的内地市场,机器视觉厂商推出产品的速度加快,产品技术发展迅猛,这必然对竞争者提出了更高的要求,以往简单的模仿复制以不再可行,自己的技术和产品特色才是厂商们需要考虑和挖掘的重点。

2017-11-22 00:00:00 JtNbCOC8N2I9 阅读数 15334
  • 什么是WebRTC

    WebRTC通话原理 实现Web和Android的一对一通话 实现AppRTC开源项目演示

    11人学习 廖庆富
    免费试看


来源:专知

概要:正像其它学科一样,一个大量人员研究了多年的学科,却很难给出一个严格的定义,模式识别如此,目前火热的人工智能如此,计算机视觉亦如此。


【导读】本文由中国科学院自动化研究所模式识别国家重点实验室胡占义研究员撰写,对计算机视觉40多年的发展历程进行了简要总结,包括:马尔计算视觉理论,主动视觉与目的视觉,多视几何与摄像机自标定,以及基于学习的视觉。在此基础上,对计算机视觉的未来发展趋势给出了一些展望。


1.1 什么是计算机视觉


正像其它学科一样,一个大量人员研究了多年的学科,却很难给出一个严格的定义,模式识别如此,目前火热的人工智能如此,计算机视觉亦如此。与计算机视觉密切相关的概念有视觉感知(visual perception),视觉认知(visual cognition),图像和视频理解( image and video understanding). 这些概念有一些共性之处,也有本质不同。从广义上说,计算机视觉就是“赋予机器自然视觉能力”的学科。自然视觉能力,就是指生物视觉系统体现的视觉能力。一则生物自然视觉无法严格定义,在加上这种广义视觉定义又“包罗万象”,同时也不太符合40多年来计算机视觉的研究状况,所以这种“广义计算机视觉定义”,虽无可挑剔,但也缺乏实质性内容,不过是一种“循环式游戏定义”而已。实际上,计算机视觉本质上就是研究视觉感知问题。视觉感知,根据维科百基(Wikipedia)的定义, 是指对“环境表达和理解中,对视觉信息的组织、识别和解释的过程”。根据这种定义,计算机视觉的目标是对环境的表达和理解,核心问题是研究如何对输入的图像信息进行组织,对物体和场景进行识别,进而对图像内容给予解释。


计算机视觉与人工智能有密切联系,但也有本质的不同。人工智能更强调推理和决策,但至少计算机视觉目前还主要停留在图像信息表达和物体识别阶段。“物体识别和场景理解”也涉及从图像特征的推理与决策,但与人工智能的推理和决策有本质区别。应该没有一个严肃的计算机视觉研究人员会认为AlphaGo, AlphaZero 是计算机视觉,但都会认为它们是典型的人工智能内容。


简言之,计算机视觉是以图像(视频)为输入,以对环境的表达(representation)和理解为目标,研究图像信息组织、物体和场景识别、进而对事件给予解释的学科。从目前的研究现状看,目前还主要聚焦在图像信息的组织和识别阶段,对事件解释还鲜有涉及,至少还处于非常初级的阶段。


这里需要强调的是,每个人由于背景不同,偏好不同,知识面不同,对同一问题的观点亦会不同,甚至出现大相径庭的局面。上面为笔者对计算机视觉的理解,也许是片面或错误的。如不少人认为“纹理分析”是计算机视觉的一个重要研究方向,笔者不敢苟同。另外,很多场合,人们把“图像处理”也认为是“计算机视觉”,这也是不恰当的。图像处理是一门独立的学科,图像处理研究图像去噪、图像增强等内容,输入为图像,输出也是图像。计算机视觉利用图像处理技术进行图像预处理,但图像处理本身构不成计算机视觉的核心内容。


这里顺便说一下,目前很多人对“感知”和“认知”不加区分,给读者带来不必要的困惑和误解。在不少场合下,经常会见到有些“视觉专家”把“认知”和“推理与决策”(reasoning and decision)作为平行概念使用,这事实上是不太严谨的。根据“维基百科”,“认知”是指通过感觉(senses)、经历 (experience)和思考(thoughts)来获取知识(knowledge)和进行理解(understanding)的思维过程(mental process)。认知包括:知识形成(knowledge),注视(attention),记忆(memory),推理(reasoning),问题求解(problem solving)、决策( decision making)以及语言生成(language production)等。所以,“感知”与“认知”有区别,推理和决策是典型的认知过程,是认知的重要组成部分,它们之间是包含关系,不是平行关系。


1.2  计算机视觉发展的四个主要阶段


尽管人们对计算机视觉这门学科的起始时间和发展历史有不同的看法,但应该说, 1982年马尔( David Marr )《视觉》(Marr, 1982)一书的问世,标志着计算机视觉成为了一门独立学科。计算机视觉的研究内容,大体可以分为物体视觉(object vision)和空间视觉(spatial vision)二大部分. 物体视觉在于对物体进行精细分类和鉴别,而空间视觉在于确定物体的位置和形状,为“动作(action)” 服务。正像著名的认知心理学家J.J. Gibson 所言,视觉的主要功能在于“适应外界环境,控制自身运动”。 适应外界环境和控制自身运动,是生物生存的需求,这些功能的实现需要靠物体视觉和空间视觉协调完成。


计算机视觉40多年的发展中,尽管人们提出了大量的理论和方法,但总体上说,计算机视觉经历了4个主要历程。即: 马尔计算视觉、主动和目的视觉、多视几何与分层三维重建和基于学习的视觉。下面将对这4项主要内容进行简要介绍。


1.2.1 马尔计算视觉(Computational Vision)


现在很多计算机视觉的研究人员,恐怕对“马尔计算视觉”根本不了解,这不能不说是一件非常遗憾的事。目前,在计算机上调“深度网络”来提高物体识别的精度似乎就等于从事“视觉研究”。事实上,马尔的计算视觉的提出,不论在理论上还是研究视觉的方法论上,均具有划时代的意义。


马尔的计算视觉分为三个层次: 计算理论、表达和算法以及算法实现。由于马尔认为算法实现并不影响算法的功能和效果,所以,马尔计算视觉理论主要讨论“计算理论”和“表达与算法”二部分内容。马尔认为,大脑的神经计算和计算机的数值计算没有本质区别,所以马尔没有对“算法实现”进行任何探讨。从现在神经科学的进展看,“神经计算”与数值计算在有些情况下会产生本质区别,如目前兴起的神经形态计算( Neuromorphological computing),但总体上说,“数值计算”可以“模拟神经计算”。至少从现在看,“算法的不同实现途径”,并不影响马尔计算视觉理论的本质属性。


1)计算理论(Computational Theory)


计算理论需要明确视觉目的, 或视觉的主要功能是什么。上世纪70年代,人们对大脑的认识还非常粗浅,目前普遍使用的非创伤型成像手段,如功能核磁共振(FMRI)等,还没有普及。所以,人们主要靠病理学和心理学结果来推断生理功能。即使目前,人们对“视觉的主要功能”到底是什么,也仍然没有定论。如最近几年,MIT的 DiCarlo等人提出了所谓的“目标驱动的感知信息建模”方法(Yamins &DiCarlo et al. 2016a)。他们猜测,猴子IT区(IT: interiortemporal cortex, 物体识别区)的神经元对物体的响应(neuronal responses)“可以通过层次化的卷积神经网络”(HCNN: Hierarchical Convolutional Neural Networks )来建模。他们认为,只要对HCNN在图像物体分类任务下进行训练,则训练好的HCNN 可以很好定量预测IT 区神经元的响应(Yamins et al. 2014, 2016b)。由于仅仅“控制图像分类性能”对IT神经元响应(群体神经元对某一输入图像物体的响应,就是神经元对该物体的表达或编码)进行定量预测,所以他们将这种框架称之为“目标驱动的框架”。目标驱动的框架提供了一种新的比较通用的建模群体神经元编码的途径,但也存在很大的不足。能否真正像作者所言的那样,仅仅靠“训练图像分类的HCNN”就可以定量预测神经元对图像物体的响应,仍是一个有待进一步深入研究的课题。


马尔认为视觉不管有多少功能,主要功能在于“从视网膜成像的二维图像来恢复空间物体的可见三维表面形状”,称之为“三维重建”(3D reconstruction)。而且,马尔认为,这种重建过程不是天生就有的,而是可以通过计算完成的。J.J. Gibson 等心理学家,包括格式塔心里学学派( Gestalt psychology),认为视觉的很多功能是天生就有的。可以想想,如果一种视觉功能与生具有,不可建模,就谈不上计算,也许就不存在今天的“计算机视觉”这门学科了。


那么,马尔的计算理论是什么呢?这一方面,马尔在其书中似乎并不是介绍得特别具体。他举了一个购买商品的例子,说明计算理论的重要性。如商店结账要用加法而不是乘法。试想如果用乘法结账,每个商品1元钱,则不管你购买多少件商品,你仅仅需要付一元钱。


马尔的计算理论认为,图像是物理空间在视网膜上的投影,所以图像信息蕴含了物理空间的内在信息,因此,任何计算视觉计算理论和方法都应该从图像出发,充分挖掘图像所蕴含的对应物理空间的内在属性。也就是说,马尔的视觉计算理论就是要“挖掘关于成像物理场景的内在属性来完成相应的视觉问题计算”。因为从数学的观点看,仅仅从图像出发,很多视觉问题具有“歧义性”,如典型的左右眼图像之间的对应问题。如果没有任何先验知识,图像点对应关系不能唯一确定。不管任何动物或人,生活的环境都不是随机的,不管有意识或无意识,时时刻刻都在利用这些先验知识,来解释看到的场景和指导日常的行为和行动。如桌子上放一个水杯的场景,人们会正确地解释为桌子上放了一个水杯,而不把他们看作一个新物体。当然,人类也会经常出错,如大量错觉现象。从这个意义上来说,让计算机来模仿人类视觉是否一定是一条好的途径也是一个未知的命题。飞机的飞行需要借助空气动力学知识,而不是机械地模仿鸟如何飞。


2)表达和算法(Representationand Algorithm)


识别物体之前,不管是计算机还是人,大脑(或计算机内存)中事先要有对该物体的存储形式,称之为物体表达(object representation). 马尔视觉计算理论认为,物体的表达形式为该物体的三维几何形状。马尔当时猜测,由于人在识别物体时与观察物体的视角无关,而不同视角下同一物体在视网膜上的成像又不同,所以物体在大脑中的表达不可能是二维的,可能是三维形状,因为三维形状不依赖于观察视角。另外,当时病理学研究发现,有些病人无法辨认“茶杯”,但可以毫无困难地画出茶杯的形状,因此马尔觉得,这些病人也佐证了他的猜测。从目前对大脑的研究看,大脑的功能是分区的。物体的“几何形状”和“语义”储存在不同的脑区。另外,物体识别也不是绝对地与视角无关,仅仅在一个比较小的变化范围内与视角无关。所以,从当前的研究看,马尔的物体的“三维表达”猜测基本上是不正确的,至少是不完全正确的,但马尔的计算理论仍具有重要的理论意义和应用价值。


简言之,马尔视觉计算理论的“物体表达”,是指“物体坐标系下的三维形状表达”。注意,从数学上来说,一个三维几何形状,选取的坐标系不同,表达函数亦不同。如一个球体,如果以球心为坐标原点,则球面可以简单表达为:x^2+y^2+z^2=1。 但如果观测者在x轴上2倍半径处观测,则可见球面部分在观测者坐标系下的方程为:x=2-sqrt(1-y^2-z^2)。由此可见,同一物体,选用的坐标系不同,表达方式亦不同。马尔将“观测者坐标系下的三维几何形状表达”称之为“2.5维表达”,物体坐标系下的表达为“三维表达”。所以,在后续的算法部分,马尔重点研究了如何从图像先计算“2.5维表达”,然后转化为“三维表达”的计算方法和过程。


算法部分是马尔计算视觉的主体内容。马尔认为,从图像到三维表达,要经过三个计算层次:首先从图像得到一些基元(primal sketch), 然后通过立体视觉(stereopsis)等模块将基元提升到2.5维表达,最后提升到三维表达。

下图总结给出了马尔视觉计算理论的算法流程:

 

马尔计算理论中算法的三个计算层次


由上图所示,首先从图像提取边缘信息(二阶导数的过零点),然后提取点状基元(blob, 线状基元(edge)和杆状基元 (bar), 进而对这些初级基元(raw primal sketch)组合形成完整基元(full primal sketch),上述过程为视觉计算理论的特征提取阶段。在此基础上,通过立体视觉和运动视觉等模块,将基元提升到2.5维表达。最后,将2.5维表达提升到三维表达。在马尔的《视觉》一书中,重点介绍了特征提取和2.5维表达对应的计算方法。在2.5维表达部分,也仅仅重点介绍了立体视觉和运动视觉部分。由于当双眼(左右相机)的相互位置已知时(计算机视觉中称之为相机外参数),立体视觉就转化为“左右图像点的对应问题”(image point correspondence), 所以,马尔在立体视觉部分重点介绍了图像点之间的匹配问题,即如何剔除误匹配,并给出了对应算法。


立体视觉等计算得到的三维空间点仅仅是在“观测者坐标系下的坐标”,是物体的2.5维表示。如何进一步提升到物体坐标系下的三维表示,马尔给出了一些思路,但这方面都很粗泛。如确定物体的旋转主轴等等,这部分内容,类似于后来人们提出的“骨架模型”(skeleton model)构造.


需要指出的是,马尔的视觉计算理论是一种理论体系。在此体系下,可以进一步丰富具体的计算模块,构建“通用性视觉系统”(general vision system)。只可惜马尔(Jan.15,1945 ~ Nov.17,1980 )1980年底就因白血病去世,包括他的《视觉》一书,也是他去世后出版的。马尔的英年早逝,不能说不是计算机视觉界的一大损失。由于马尔的贡献,所以二年一度的国际计算机视觉大会(ICCV: International Conference on Computer Vision)设有马尔奖(MarrPrize),作为会议的最佳论文奖。另外,在认知科学领域,也设有马尔奖,因为马尔对认知科学也有巨大的贡献。以同一人名在不同领域设立奖项,实属罕见,可见马尔对计算机视觉的影响有多深远。正如S. Edelman 和 L. M. Vaina 在《 International Encyclopedia of the Social & Behavioral Sciences 》中对马尔的评价那样,“马尔前期给出的集成数学和神经生物学对大脑理解的三项工作,已足以使他在任何情况下在英国经验主义二个半世纪的科学殿堂中占有重要的一席,…, 然而,他进一步提出了更加有影响的计算视觉理论”。所以,从事计算机视觉研究的人员对马尔计算视觉不了解,实在是一件比较遗憾的事。


1.2.2 昙花一现的主动和目的视觉


很多人介绍计算机视觉时,将这部分内容不作为一个单独部分加以介绍,主要是因为“主动视觉和目的视觉”并没有对计算机视觉后续研究形成持续影响。但作为计算机视觉发展的一个重要阶段,这里还是有必要予以介绍一下。


上世纪80年代初马尔视觉计算理论提出后,学术界兴起了“计算机视觉”的热潮。人们想到的这种理论的一种直接应用就是给工业机器人赋予视觉能力,典型的系统就是所谓的“基于部件的系统”(parts-based system)。然而,10多年的研究,使人们认识到,尽管马尔计算视觉理论非常优美,但“鲁棒性”(Robustness)不够,很难想人们预想的那样在工业界得到广泛应用。这样,人们开始质疑这种理论的合理性,甚至提出了尖锐的批评。


对马尔计算视觉理论提出批评最多的有二点:一是认为这种三维重建过程是“纯粹自底向上的过程”(pure bottom-up process),缺乏高层反馈(top-down feedback);二是“重建”缺乏“目的性和主动性”。由于不同的用途,要求重建的精度不同,而不考虑具体任务,仅仅“盲目地重建一个适合任何任务的三维模型”似乎不合理。


对马尔视觉计算理论提出批评的代表性人物有:马里兰大学的 J. Y. Aloimonos;宾夕法尼亚大学的R. Bajcsy和密西根州立大学的A. K. Jaini。 Bajcsy 认为,视觉过程必然存在人与环境的交互,提出了主动视觉的概念(active vision). Aloimonos认为视觉要有目的性,且在很多应用,不需要严格三维重建,提出了“目的和定性视觉”(purpose and qualitative vision) 的概念。 Jain 认为应该重点强调应用,提出了“应用视觉”( practicing vision)的概念。上世纪80年代末到90年代初,可以说是计算机视觉领域的“彷徨”阶段。真有点“批评之声不绝,视觉之路茫茫”之势。


针对这种情况,当时视觉领域的一个著名刊物(CVGIP: Image Understanding)于1994年组织了一期专刊对计算视觉理论进行了辩论。首先由耶鲁大学的M. J. Tarr和布朗大学的M. J.Black写了一篇非常有争议性的观点文章(Tarr & Black, 1994),认为马尔的计算视觉并不排斥主动性,但把马尔的“通用视觉理论”(general vision)过分地强调“应用视觉”是“短见”(myopic)之举。通用视觉尽管无法给出严格定义,但“人类视觉”是最好的样板。这篇观点文章发表后,国际上20多位著名的视觉专家也发表了他们的观点和评论。大家普遍的观点是,“主动性”“目的性”是合理的,但问题是如何给出新的理论和方法。而当时提出的一些主动视觉方法,一则仅仅是算法层次上的改进,缺乏理论框架上的创新,另外,这些内容也完全可以纳入到马尔计算视觉框架下。所以,从1994年这场视觉大辩论后,主动视觉在计算机视觉界基本没有太多实质性进展。这段“彷徨阶段”持续不长,对后续计算机视觉的发展产生的影响不大,犹如“昙花一现”之状。


值得指出的是,“主动视觉”应该是一个非常好的概念,但困难在于“如何计算”。 主动视觉往往需要“视觉注视”(visual attention),需要研究脑皮层(cerebral cortex)高层区域到低层区域的反馈机制,这些问题,即使脑科学和神经科学已经较20年前取得了巨大进展的今天,仍缺乏“计算层次上的进展”可为计算机视觉研究人员提供实质性的参考和借鉴。近年来,各种脑成像手段的发展,特别是 “连接组学”(Connectomics)的进展,可望为计算机视觉人员研究大脑反馈机制提供“反馈途径和连接强度”提供一些借鉴。


1.2.3 多视几何和分层三维重建(Multiple View Geometry and Stratified 3D Reconstruction)


上世纪90年代初计算机视觉从“萧条”走向进一步“繁荣”,主要得益于以下二方面的因素:首先,瞄准的应用领域从精度和鲁棒性要求太高的“工业应用”转到要求不太高,特别是仅仅需要“视觉效果”的应用领域,如远程视频会议(teleconference),考古,虚拟现实,视频监控等。另一方面,人们发现,多视几何理论下的分层三维重建能有效提高三维重建的鲁棒性和精度。


多视几何的代表性人物首数法国INRIA的O. Faugeras ( Faugeras O, 1993), 美国GE 研究院的R.Hartely (现已回到了澳大利亚国立大学)和英国牛津大学的 A. Zisserman。应该说,多视几何的理论于2000年已基本完善。 2000 年Hartley 和Zisserman 合著的书 (Hartley & Zisserman 2000) 对这方面的内容给出了比较系统的总结,而后这方面的工作主要集中在如何提高“大数据下鲁棒性重建的计算效率”。大数据需要全自动重建,而全自动重建需要反复优化,而反复优化需要花费大量计算资源。所以,如何在保证鲁棒性的前提下快速进行大场景的三维重建是后期研究的重点。举一个简单例子,假如要三维重建北京中关村地区,为了保证重建的完整性,需要获取大量的地面和无人机图像。假如获取了1万幅地面高分辨率图像(4000×3000),5 千幅高分辨率无人机图像(8000×7000)(这样的图像规模是当前的典型规模),三维重建要匹配这些图像,从中选取合适的图像集,然后对相机位置信息进行标定并重建出场景的三维结构,如此大的数据量,人工干预是不可能的,所以整个三维重建流程必须全自动进行。这样需要重建算法和系统具有非常高的鲁棒性,否则根本无法全自动三维重建。在鲁棒性保证的情况下,三维重建效率也是一个巨大的挑战。所以,目前在这方面的研究重点是如何快速、鲁棒地重建大场景。


1)多视几何( Multiple View Geometry)


由于图像的成像过程是一个中心投影过程(perspective projection),所以“多视几何”本质上就是研究射影变换下图像对应点之间以及空间点与其投影的图像点之间的约束理论和计算方法的学科(注意:针孔成像模型(The pinhole camera model)是一种中心投影, 当相机有畸变时,需要将畸变后的图像点先校正到无畸变后才可以使用多视几何理论)。计算机视觉领域,多视几何主要研究二幅图像对应点之间的对极几何约束(epipolar geometry), 三幅图像对应点之间的三焦张量约束(tri-focal tensor),空间平面点到图像点,或空间点为平面点投影的多幅图像点之间的单应约束(homography)等。在多视几何中,射影变换下的不变量,如绝对二次曲线的像(The image of the absolute conic),绝对二次曲面的像(Theimage of the absolute quadric), 无穷远平面的单应矩阵(infinite homography),是非常重要的概念,是摄像机能够自标定的“参照物”。由于这些量是无穷远处“参照物”在图像上的投影,所以这些量与相机的位置和运动无关(原则上任何有限的运动不会影响无限远处的物体的性质),所以可以用这些“射影不变量”来自标定摄像机。关于多视几何和摄像机自标定的详细内容,可参阅Hartley 和Zisserman 合著的书(Hartley & Zisserman,2000).


总体上说,多视几何就其理论而言,在射影几何中不能算新内容。Hartley, Faugeras,  Zissermann等将多视几何理论引入到计算机视觉中,提出了分层三维重建理论和摄像机自标定理论,丰富了马尔三维重建理论,提高了三维重建的鲁棒性和对大数据的适应性,有力推动了三维重建的应用范围。所以,计算机视觉中的多视几何研究,是计算机视觉发展历程中的一个重要阶段和事件。


多视几何需要射影几何(projectivegeometry)的数学基础。射影几何是非欧几何,涉及平行直线相交,平行平面相交等抽象概念,表达和计算要在“齐次坐标”(homogeneous coordinates)下进行,这给“工科学生”带来不小的困难。所以,大家要从事这方面的研究,一定要先打好基础,至少要具备必要的射影几何知识。否则,做这方面的工作,无异于浪费时间。


2)分层三维重建( Stratified 3D Reconstruction)


所谓的分层三维重建,如下图所示,就是指从多幅二维图像恢复欧几里德空间的三维结构时,不是从图像一步到欧几里德空间下的三维结构,而是分步分层地进行。即先从多幅图像的对应点重建射影空间下的对应空间点(即射影重建:projective reconstruction),然后把射影空间下重建的点提升到仿射空间下(即仿射重建:affine reconstruction),最后把仿射空间下重建的点再提升到欧几里德空间(或度量空间: metric reconstruction)(注:度量空间与欧几里德空间差一个常数因子。由于分层三维重建仅仅靠图像进行空间点重建,没有已知的“绝对尺度”,如“窗户的长为1米”等,所以从图像仅仅能够把空间点恢复到度量空间)。

 


这里有几个概念需要解释一下。以空间三维点的三维重建为例,所谓的“射影重建”,是指重建的点的坐标与该点在欧几里德空间下的坐标差一个“射影变换”。所谓的“仿射重建”,是指重建的点的坐标与该点在欧几里德空间下的坐标差一个“仿射变换”。所谓的“度量重建”,是指重建的点的坐标与该点在欧几里德空间下的坐标差一个“相似变换”。


由于任何一个视觉问题最终都可以转化为一个多参数下的非线性优化问题,而非线性优化的困难在于找到一个合理的初值。由于待优化的参数越多,一般来说解空间越复杂,寻找合适的初值越困难,所以,如果一个优化问题如能将参数分组分步优化,则一般可以大大简化优化问题的难度。分层三维重建计算上的合理性正是利用了这种“分组分步”的优化策略。以三幅图像为例,直接从图像对应点重建度量空间的三维点需要非线性优化16个参数(假定相机内参数不变,5个相机内参数,第二幅和第三幅图像相对于第一幅图像的相机的旋转和平移参数,去掉一个常数因子,所以5+2×(3+3)-1=16), 这是一个非常困难的优化问题。但从图像对应点到射影重建需要“线性”估计22个参数,由于是线性优化,所以优化问题并不困难。从射影重建提升到仿射重建需要“非线性”优化三个参数(无穷远平面的3个平面参数),而从仿射重建提升到度量重建需要“非线性”优化5个参数(摄像机的5个内参数)。因此,分层三维重建仅仅需要分步优化3个和5个参数的非线性优化问题,从而大大减小了三维重建的计算复杂度。


分层三维重建的另一个特点是其理论的优美性。射影重建下,空间直线的投影仍为直线,二条相交直线其投影直线仍相交,但空间直线之间的平行性和垂直性不再保持。仿射重建下可以保持直线的平行性,但不能保持直线的垂直性。度量重建既可以保持直线之间的平行线,也可以保持垂直性。在具体应用中,可以利用这些性质逐级提升重建结果。


分层三维重建理论可以说是计算机视觉界继马尔计算视觉理论提出后又一个最重要和最具有影响力的理论。目前很多大公司的三维视觉应用,如苹果公司的三维地图,百度公司的三维地图,诺基亚的Streetview, 微软的虚拟地球,其后台核心支撑技术的一项重要技术就是分层三维重建技术。


3)摄像机自标定(Cameraself-calibration)


所谓摄像机标定,狭义上讲,就是确定摄像机内部机械和光电参数的过程,如焦距,光轴与像平面的交点等。尽管相机出厂时都标有一些标准参数,但这些参数一般不够精确,很难直接在三维重建和视觉测量中应用。所以,为了提高三维重建的精度,需要对这些相机内参数(intrinsic parameters)进行估计。估计相机的内参数的过程,称为相机标定。在文献中,有时把估计相机在给定物体坐标系下的坐标,或相机之间相互之间的位置关系,称为相机外参数(extrinsic parameters)标定。但一般无明确指定时,相机标定就是指对相机内参数的标定。


相机标定包含二方面的内容:“成像模型选择”和“模型参数估计”。相机标定时首先需要确定“合理的相机成像模型”,如是不是针孔模型,有没有畸变等。目前关于相机模型选择方面,没有太好的指导理论,只能根据具体相机和具体应用确定。随着相机加工工艺的提高,一般来说,普通相机(非鱼眼或大广角镜头等特殊相机)一般使用针孔成像模型(加一阶或二阶径向畸变)就足以了。其它畸变很小,可以不加考虑。当相机成像模型确定后,进一步需要估计对应的模型参数。文献中人们往往将成像模型参数估计简单地认为就是相机标定,是不全面的。事实上,相机模型选择是相机标定最关键的步骤。一种相机如果无畸变而在标定时考虑了畸变,或有畸变而未加考虑,都会产生大的误差。视觉应用人员应该特别关注“相机模型选择”问题。


相机参数估计原则上均需要一个“已知三维结构”的“标定参考物”,如平面棋盘格,立体块等。所谓相机标定,就是利用已知标定参考物和其投影图像,在已知成像模型下建立模型参数的约束方程,进而估计模型参数的过程。所谓“自标定”,就是指“仅仅利用图像特征点之间的对应关系,不需要借助具体物理标定参考物,进行模型参数估计的过程”。“传统标定”需要使用加工尺寸已知的标定参考物,自标定不需要这类物理标定物,正像前面多视几何部分所言,使用的是抽象的无穷远平面上的“绝对二次曲线”和“绝对二次曲面”。从这个意义上来说,自标定也需要参考物,仅仅是“虚拟的无穷远处的参考物”而已。


摄像机自标定需要用到两幅图像之间的约束,如基础矩阵(fundamental matrix), 本质矩阵(essential matrix), 以及三幅图像之间的三焦张量约束等。另外,Kruppa 方程也是一个重要的概念。这些内容是多视几何的重要内容,后续章节将进行详细介绍。


1.2.4 基于学习的视觉(Learning based vision)


基于学习的视觉,是指以机器学习为主要技术手段的计算机视觉研究。基于学习的视觉研究,文献中大体上分为二个阶段:本世纪初的以流形学习( manifold Learning)为代表的子空间法( subspace method)和目前以深度神经网络和深度学习(deep neural networks and deep learning)为代表的视觉方法。


1)流形学习(Manifold Learning)


正像前面所指出的,物体表达是物体识别的核心问题。给定图像物体,如人脸图像,不同的表达,物体的分类和识别率不同。另外,直接将图像像素作为表达是一种“过表达”,也不是一种好的表达。流形学习理论认为,一种图像物体存在其“内在流形”(intrinsic manifold), 这种内在流形是该物体的一种优质表达。所以,流形学习就是从图像表达学习其内在流形表达的过程,这种内在流形的学习过程一般是一种非线性优化过程。


流形学习始于2000年在Science 上发表的二篇文章( Tenenbaum et al., 2000) (Roweis & Lawrence 2000)。流形学习一个困难的问题是没有严格的理论来确定内在流形的维度。人们发现,很多情况下流形学习的结果还不如传统的PCA (Principal Component Analysis),LDA( linear DiscriminantAnalysis ), MDS( Multidimensional Scaling)等. 流形学习的代表方法有:LLE(Locally Linear Embedding )(Roweis & Lawrence 2000),Isomap ( Tenenbaum et al., 2000), Laplacian Eigenmaps (Belkin & Niyogi, 2001)等。


2)深度学习(Deep Learning)


深度学习( LeCunet al. 2015) 的成功,主要得益于数据积累和计算能力的提高。深度网络的概念上世纪80年代就已提出来了,只是因为当时发现“深度网络”性能还不如“浅层网络”,所以没有得到大的发展。目前似乎有点计算机视觉就是深度学习的应用之势,这可以从计算机视觉的三大国际会议:国际计算机视觉会议(ICCV),欧洲计算机视觉会议(ECCV)和计算机视觉和模式识别会议(CVPR),上近年来发表的论文可见一般。目前的基本状况是,人们都在利用深度学习来“取代”计算机视觉中的传统方法。“研究人员”成了“调程序的机器”,这实在是一种不正常的“群众式运动”。牛顿的万有引力定律,麦克斯韦的电磁方程,爱因斯坦的质能方程,量子力学中的薛定谔方程,似乎还是人们应该追求的目标。


关于深度网络和深度学习,详细内容可参阅相关文献,这里仅仅强调以下几点:


(1)深度学习在物体视觉方面较传统方法体现了巨大优势,但在空间视觉,如三维重建,物体定位方面,仍无法与基于几何的方法相媲美。这主要是因为深度学习很难处理图像特征之间的误匹配现象。在基于几何的三维重建中,RANSAC (Random Sample Consensus)等鲁棒外点(误匹配点)剔除模块可以反复调用,而在深度学习中,目前还很难集成诸如RANSAC等外点剔除机制。笔者认为,如果深度网络不能很好地集成外点剔除模块,深度学习在三维重建中将很难与基于几何的方法相媲美,甚至很难在空间视觉中得到有效应用;


(2) 深度学习在静态图像物体识别方面已经成熟,这也是为什么在ImageNet上的物体分类竞赛已不再举行的缘故;


(3) 目前的深度网络,基本上是前馈网络(feedforwardNetworks).不同网络主要体现在使用的代价函数不同。下一步预计要探索具有“反馈机制”的层次化网络。反馈机制,需要借鉴脑神经网络机制,特别是连接组学的成果。


(4) 目前对视频的处理,人们提出了RCNN (Recurrent Neural Networks). 循环( recurrent) 是一种有效的同层作用机制,但不能代替反馈。大脑皮层远距离的反馈(将在生物视觉简介一章介绍)可能是形成大脑皮层不同区域具有不同特定功能的神经基础。所以,研究反馈机制,特别具有“长距离反馈”(跨多层之间)的深度网络, 将是今后研究图像理解的一个重要方向;


(5)尽管深度学习和深度网络在图像物体识别方面取得了“变革性”成果,但为什么“深度学习”会取得如此好的结果目前仍然缺乏坚实的理论基础。目前已有一些这方面的研究,但仍缺乏系统性的理论。事实上,“层次化”是本质,不仅深度网络,其它层次化模型,如Hmax 模型(Riesenhuber & Poggio,1999) HTM (Hierarchical Temporal memory)模型(George & Hawkins, 2009)存在同样的理论困惑。为什么“层次化结构”( hierarchical structure )具有优势仍是一个巨大的迷。


1.3 计算机视觉的若干发展趋势


信息科学发展之迅速,对未来10年的发展趋势进行预测,有点“算命”的感觉。 对计算机视觉而言,笔者有以下几点对未来发展的展望:


(1) 基于学习的物体视觉和基于几何的空间视觉继续“相互独立”进行。深度学习在短时期内很难代替几何视觉。在深度网络中如何引入“鲁棒外点剔除模块”将是一个探索方向,但短时间内估计很难有实质性进展;


(2) 基于视觉的定位将更加趋向“应用性研究”,特别是多传感器融合的视觉定位技术。


(3) 三维点云重建技术已经比较成熟,如何从“点云”到“语义”是未来研究重点。“语义重建”将点云重建、物体分割和物体识别同时进行,是三维重建走向实用的前提。


(4)对室外场景的三维重建,如何重建符合“城市管理规范”的模型是一个有待解决的问题。室内场景重建估计最大的潜在应用是“家庭服务机器人”。 鉴于室内重建的应用还缺乏非常具体的应用需求和驱动,在加上室内环境的复杂性,估计在3-5年内很难有突破性进展。


(5)对物体识别而言,基于深度学习的物体识别估计将从“通用识别”向“特定领域物体的识别”发展。“特定领域”可以提供更加明确和具体的先验信息,可以有效提高识别的精度和效率,更加具有实用性;


(6)目前基于RCNN 对视频理解的趋势将会持续;


(7) 解析深度网络机理的工作具有重大的理论意义和挑战性,鉴于深度网络的复杂性,估计近期很难取得突破性进展;


(8)具有“反馈机制”的深度网络结构(architecture)研究必将是下一个研究热点。


1.4 几种典型的物体表达理论(Object representation theories)


正像前面所述,物体表达是计算机视觉的一个核心科学问题。这里,“物体表达理论”与“物体表达模型”需要加以区别。“表达理论”是指文献中大家比较认可的方法。“表达模型”容易误解为“数学上对物体的某种描述”。计算机视觉领域,比较著名的物体表达理论有以下三种:


1)马尔的三维物体表达


前面已经介绍过,马尔视觉计算理论认为物体的表达是物体坐标系下的三维表达


2)基于二维图像的物体表达(View-basedobject representation)


尽管理论上一个三维物体可以成像为无限多不同的二维图像,但人的视觉系统仅仅可以识别“有限个图像”。鉴于神经科学对于猴子腹部通道(ventral pathway)(注:腹部通道认为是物体识别通道)的研究进展,T. Poggio 等提出了基于图像的物体表达(Poggio & Bizzi, 2004),即对一个三维物体的表达是该物体的一组典型的二维图像(view)。目前,也有人认为 Poggio等的”view”不能狭义地理解为二维图像,也包含以观测者为坐标系下的三维表示,即马尔的2.5维表示(Anzai & DeAngelis,2010)。


3)逆生成模型表达(Inversegenerative model representation )


长期以来,人们认为物体识别模型为“鉴别模型”( discriminative model),而不是“生成模型”( generative model )。近期对猴子腹部通道的物体识别研究表明,猴子大脑皮层的IT 区( Inferior Temporal: 物体表达区域)可能在于编码物体及其成像参数(如光照和姿态,几何形状,纹理等)(Yildirim et al. 2015)(Yamins &DiCarlo,2016b.)。由于已知这些参数就可以生成对应图像,所以对这些参数的编码可以认为是逆生成模型表达。逆生成模型表达可以解释为什么深度学习中的Encoder-decoder 网络结( Badrinarayanan et al. 2015) 可以取得比较好的效果,因为Encoder本质上就是图像的逆生成模型。另外,深度学习中提出的“逆图形学”概念( Inverse Graphic)( Kulkarniet al. 2015),从原理上也是一种逆生成模型。逆图形学是指先从图像学习到图像生成参数,然后把同一物体在不同参数下的图像归类为同一物体,通过这种“等变物体识别”(Equivariant recognition) 来达到最终的“不变物体识别”(invariantrecognition)。


总之,本文对计算机视觉的理论、现状和未来发展趋势进行了一些总结和展望,希望能给读者了解该领域提供一些帮助。特别需要指出的是,这里很多内容也仅仅是笔者的一些“个人观点”和“个人偏好”下总结的一些内容,以期对读者有所帮助但不引起误导。

AI先锋

ID:EnlightAI

关注人工智能行业发展,介绍人工智能技术与产品