在讲述计算机视觉概念之前,我们先来看看生活中一个很常见的例子吧:

以下是一个带人脸自动对焦功能的数码相机,只要镜头对准有人的区域,照相机会自动识别出画面中的人脸,并且自动对焦在人脸上,用户只需轻松按下快门即可捕捉到清晰人脸的照片。在这个技术问世之前,用户,尤其是新手用户因为手部晃动等因素没对上焦,可能导致拍出来的人像胶片失焦。

这便是计算机视觉技术在人机交互上诸多应用之一,带来的好处无疑是更加方便和快捷的操作体验。

本文接下来并无意涉及过多的技术细节探讨,权当是对计算机视觉应用在交互领域的惊鸿一瞥吧。

计算机视觉(Computer Vision,以下简称CV)是一个综合型科学学科,涉及了计算机科学、信号处理、数学、神经生理学、人工智能和认知科学等领域。CV本质是通过计算机模拟人的视觉机理从现实世界获取高维数据,来生成数值或符号这类可用于决策的信息(此处的信息为信息论之父Shannon的定义),所以这个领域的研究深度取决于人类对自身视觉原理的认知程度。

CV可以应用的领域非常广泛:

  • 过程自动控制——比如工业机器人;
  • 导航——无人驾驶汽车、移动机器人等;
  • 检测事件——视频智能监控、人群计数等;
  • 组织信息——比如图像序列数据库的检索;
  • 物体或环境的建模——医学图像分析、地形学建模等;
  • 交互——作为人机交互设备的输入端;
  • 自动检测——制造业的应用等。

在大多数CV实际应用领域,计算机运行事先编好的程序去解决某一个特定的问题,但现在出现的基于机器学习(Machine Learning)的方法可以让计算机解决更广泛和通用的问题。

上面列举的每种应用基本都可以通过下面这一系列CV典型任务来解决:

  • 识别——最经典的问题之一,即让计算机“知道”某个物体“是什么”,典型应用有Google Goggles、安保中指纹或人脸识别、高速路摄像头自动检测超速车辆车牌号等、书面文本的识别(OCR)、QR码识别等等。
  • 运动分析——通过对图像序列(视频)的处理,可以对其中运动物体的速度、方位等作出预估,即可实现运动物体的跟踪。
  • 场景重建——通过输入图像或视频可以对场景进行3D建模。
  • 图像复原——最简单的办法一般是使用低通滤波器或中值滤波器等去除图像的噪声(传感器噪声、运动模糊等),但复杂一点的、基于CV技术的图像复原,便是同各国对图像当中点、线、边缘等的分析检测得到的信息,能得到更好的噪声去除效果。

计算机视觉的过程一般包括:

为了让大家更好理解CV的整个过程,接下来简单地结合无人驾驶汽车这个实例来进行描述(当然,实际的过程要更复杂的多):

首先,车载摄像头获取道路的图像序列(视频);接着,计算机对这些图像进行去噪等、消除光照变化影响等预处理;由于道路一般是两条平行线,则提取出图像中的直线这类特征;然后把直线包围的区域(可能是道路)分割出来;接着计算机对该区域进行识别,比如和数据库中已假设好为“道路”的图像进行匹配,如果有相当大程度的一致,则认为该区域就是道路;最后根据摄像头和道路的姿态的关系,判断出车辆和道路之间角度,然后通过方向盘控制车辆前进方向和速度。

CV在交互上的应用也是十分广泛的,其中最著名的就是Kinect了,它让电影《少数派报告》中手势操作人机界面的科幻场景变成现实。它的原理就是模仿人眼的结构(双摄像头,即3D摄像头),能感知物体的远近,所以可以识别复杂的手势动作,让人机互动更加多样化,它甚至还可以对场景所有物体进行3D建模。

下面我们来看看CV在人机交互上有哪些前沿的应用吧。

这个是中国交互设计网的交互技术展示与应用概览,这些具有前瞻性的交互有将近一半的用到了计算机视觉技术。


LEAP

这个称之为LEAP的东西据说比Kinect强大N倍,能识别非常细微的手势操作,预计今年冬天上市,具体技术细节尚未披露,但想必也是使用了CV技术。


T(ether)3D

T(ether)3D虚拟手势操作技术,是MIT媒体实验室的一个研究项目,也好似通过摄像头来捕捉手势进行交互,结合增强现实(Augmented Reality)可以实现多人协作。


Anytouch

Anytouch,这个就更厉害一些了,任何普通物体都可以当作“控件”去进行交互。

AR增强现实(Augmented Reality,简称AR)技术是CV在交互应用领域的一个分支,当然,它其实并不完全是CV的子集。它是一种实时地计算摄像机影像的位置及角度并加上相应数字图像的技术,目标是在屏幕上把虚拟世界(数字信息)“融入”现实世界并可以与之进行互动,就好像“增强”了现实世界,故称之为增强现实。大家可能以前经常有听到过VR(Virtual Reality,虚拟现实),它正好和AR相反,旨在虚拟世界中重现现实世界并显示信息。

AR能为我们提供现实中无法直接获知的信息,但更深层次来讲,这种信息实际上又让每个人眼中的世界不一样——比如同样一栋大楼在我们的AR视线里,会披上完全不同的“信息外套”,比如我想查询大楼内有哪些餐厅,则我的视线里是餐厅信息外套,而其他人可能是百货商店等。现在AR技术大多数都应用在移动设备,结合LBS能产生出很多的应用服务。

最早的AR应用也许就是战斗机飞行员的HUD(Head UP Display,抬头显示设备)了,它能提供重要的信息(地平线、各种关键仪表数据等)显示在飞行员平视视野内,减少低头频率,提高飞行安全。但由于传统的HUD设备比较庞大和笨重,在普通人生活中应用有很大局限性。


Google Glass

好在最近发布的Google Glass提供了一个非常便捷的解决方案,只需在眼镜上加装一个重量很轻的设备就可以享受到AR技术带来的无限“增强”。


Microsoft Future Vision

这个是另一个比较有名的视频了,是Microsoft对未来人机交互的一个概念展望视频,大量用到了AR等技术。


Nokia City Lens

Nokia City Lens,Nokia推出的基于LBS的AR应用。

Layar,哈利波特里的动态魔法报纸不再只是虚幻。


AR Basketball

一个有趣的3D投篮游戏,通过识别纸张上特定的图案构建一个3D篮筐,可以通过划动屏幕快慢控制投篮力度。


i3D

通过人脸检测实现裸眼3D。

最后介绍一个比较实用一点的应用吧——Shot Note,打印一张带有特殊标记的纸张,然后在上面写字画画,使用这个APP拍照之后就会自动进行校正(通过识别纸张四个角落特殊标记再进行图像变换以实现),还能发送到Evernote,你可以用这个应用把手写的笔记轻松地做数字化备份。专用特殊纸模板在此下载

当然,现在的AR显示还需要基于屏幕等媒介去“看”我们的真实世界,也许不久的将来,一些技术(比如全息摄影)的发展能实现裸眼就能看到现实世界和虚拟世界的结合。