葛甲:计算机视觉识别,比我们想象得要美

日前,由黄晓明、李冰冰、任泉、章子怡、黄渤联合创办的Star VC宣布,投资人工智能领域的领先企业SenseTime(商汤科技)除此之外两方还将在垂直领域对科技创新人员与科技创新企业的培养及扶持计划,携手打造科技产业孵化体系未来科技研究中心。

商汤科技这个拥有远古风名字的企业,深耕计算机视觉技术,这是人工智能中的一个分支,要搞清楚计算机视觉的意义与用途,还需要从人工智能本身说起。今年是人工智能概念面世60周年,虽然人工智能发展速度很快,普通人却难得一用,但这一概念背后所代表的科技进步力量及应用前景,值得人类再奋斗60年去将其实现。AlphGo与李世石的世纪大战,将人们想象的空间打开,以往只存在于科幻电影中的人工智能,从没有像今天一样离我们的实际生活如此之近。

人工智能是一个广泛交叉的前沿学科,除了要用机器模拟人的智能外,还要模拟人的语言,模拟人的视觉系统,模拟专家知识系统等。如果说AlphaGo模拟的是人的大脑,语音识别模拟的就是人的耳朵,计算机视觉模拟的是人的眼睛,而这所有的一切,都是与智力水平联系在一起的。

计算系统对万物的识别,在实现难度上并不亚于人工智能大脑,一幅图片和一个视觉影像中,有太多非结构化信息,人脑可以在信息位置散乱的状况下很轻易地识别出图像中的细节信息。例如,把梵高的星空和自画像放在一起,人眼获取信息后,并不难从夸张的线条中判断两者之间存在着某种关联,而在机器这里,目前的技术水平对此是无能为力的,机器只会判断这是两张毫无关联的图画而已,因为图画中的所有信息,都是非结构化的。

百度和谷歌除了研发各自的“大脑”外,也都致力于在计算机视觉技术的研发。两者的视觉识别技术,都已发展到了能够判断一张类似“春日的一个下午,阳光照进房间投在床上”这样的图画,也可以通过让机器进行深度学习而使其辨认出图画中的一条狗,不管是柯基还是拉布拉多。这虽然是很令人振奋的技术成就,但与之后仍要继续攻克的难关相比,这简直是微不足道的一点点进步而已。

近期虚拟现实VR的风头,已取代了前期大热的AlphaGo,成为科技界极为关注的一个领域。但事实上,VR的极致体验正是在于机器对于表情的捕捉和识别。终极的VR世界是不需要操纵装置的,仅凭语音、面部表情甚至一个眼神,就能将人从一个虚拟世界,运送到另一个虚拟世界。而这里面涉及到的主要技术,正是计算机视觉,也就是商汤科技所做的事情。

众明星云集的Star VC选择商汤科技作为投资目标,意味着人工智能的视觉识别技术在娱乐行业的前景受到认可,投资人愿意为这项技术的发展出资助力。同时也表明,商汤科技在技术上的实力与积累也是得到肯定的。

计算机视觉有极为广泛的应用范围,最简单的如人脸识别门禁,人脸识别付款,摄像自动捕捉面部对焦等。在未来的智慧城市中,该技术更是可以应用在智能交通、气象监测等对国计民生有极大帮助的领域。但这么广的应用范围,并不是可以一蹴而就的,技术上的障碍非常大,人工智能需要长时间的积累才能最终发挥作用,而这个积累的过程中,更是需要有人不断地创造和应用最新的技术。

可惜的是,目前国内不乏选择人工智能中的语音和自然语义方向进行研发的,也有少数实力强大的企业选择人工智能大脑作为突破方向,但缺乏计算机视觉研发公司。这是个技术壁垒非常高的技术方向,且需要忍受长时间无法开发商业价值的状况。根本上来说,只要在技术上能够不断进步,就已是很不错的了,根本没办法去多想商业化的事情。

AlphaGo的缔造者DeepMind公司,在被谷歌收购之前没有任何业务,甚至连产品也没有,只有一些研发力量。但全球在该领域称得上专家的不过50人,DeepMind却占了12个,谷歌收购的并不是公司,也非产品,而是该领域的高端人才。在这此收购之后,才有了具体的产品AlphaGo,但这款产品目前为止仍无法产生商业效益。

虽然计算机视觉只是人工智能的一个分支,但其涵盖的技术范围也是非常之广,需要一些更垂直的方向出现。国内目前已有一些同领域的公司出现,有专注于做图像识别的,还有专注于做人脸识别的,研发方向非常垂直。但人工智能这种广泛交叉的前沿科学,并不是一两家公司可以做成的,需要有无数个小公司不断进行创造和创新,以丰富和完整整个人工智能应用研究体系。

商汤科技的团队有较强的学术背景,200人的团队中有50多名博士任全职工作,不少人来自于斯坦福、MIT、香港大学和清华大学等国际名校,也有来自BAT和谷歌、微软等国际大公司的产业人才。该公司正在尽力延揽深度学习和计算机视觉领域的专家,而这是技术发展最关键的。

该公司在人脸识别、物体识别、图像搜索、图像处理、智能监控等多个领域有很强技术积累,专注于开发自己的人工智能引擎,而这些技术成果可以通过SDK和API的方式开放出去,让开发者和企业用户使用。其中有很多技术可以用来解决实际问题,在应用上拥有广泛的前景。不过,这本质上还是一家以研发为主的技术公司。

计算机视觉的商业价值是不需多言的,简单的门禁自不必说,支付和银行证券开户也少不了要用到这一技术,未来的网络征信中也会将其引入。主打社交金融的互联网金融公司借贷宝,在肖像认证识别方面,使用的就是商汤科技的原创技术。

计算机视觉这种商业上的巨大前景,使得投资者对其兴趣盎然的同时,市场活力也得到了激发。随着该领域的商业价值逐渐显现,参与其中的公司也会越来越多,这个领域将会出现更多创新和进步,而这对于人工智能的整体发展而言是加分的。一个产业,正是在一个个活跃分子的作用下,最终发展成熟的。

【文/葛甲(微信号:Gejia021)】

·氧分子网(http://www.yangfenzi.com)延伸阅读:

分享给您的好友:

您可能还喜欢…

3 Responses

  1. penergy说道:

    计算机视觉,主要是对质的分析,比如分类识别,这是一个杯子那是一条狗。或者做身份确认,比如人脸识别,车牌识别。或者做行为分析,比如人员入侵,徘徊,遗留物,人群聚集等。
    机器视觉,主要侧重对量的分析,比如通过视觉去测量一个零件的直径,一般来说,对准确度要求很高。我记得以前接触过一个需求: 视觉测量铁路道岔缺口。哥刚毕业的时候在铁路上班,做过控制系统,还开过内燃机车,很清楚道岔缺口的重要性,这玩意儿你说要是测不准,呵呵:)

    当然,也不能完全按质或量一刀切,有些计算机视觉应用也需要分析量,比如商场的人数统计。有些机器视觉也需要分析质,比如零件自动分拣。但,计算机视觉一般来说对量的要求不会很高,商场人数统计误差个百分之几死不了人的,但机器视觉真的会,比如那个道岔缺口测量。

    既然要求这么高,是不是机器视觉就比计算机视觉难呢?也不是的,应该说各有各的难处。
    计算机视觉的应用场景相对复杂,要识别的物体类型也多,形状不规则,规律性不强。有些时候甚至很难用客观量作为识别的依据,比如识别年龄,性别。所以深度学习比较适合计算机视觉。而且光线,距离,角度等前提条件,往往是动态的,所以对于准确度要求,一般来说要低一些。
    机器视觉则刚好相反,场景相对简单固定,识别的类型少(在同一个应用中),规则且有规律,但对准确度,处理速度要求都比较高。关于速度,一般机器视觉的分辨率远高于计算机视觉,而且往往要求实时,所以处理速度很关键,目前基本上不适合采用深度学习。

    以上讨论的是技术,商业方面,计算机视觉的应用面更广一些,毕竟很多业务是跟人相关,比如人脸识别,行为分析等,很多垂直领域都有计算机视觉潜在需求,相对来说,更适合创业;
    而机器视觉顾名思义,业务主要跟机器相关,而且对准确度甚至安全性要求很高,也就在资质品牌方面有较高的门槛,所以寡头垄断严重,一般来说,更适合上班而不是创业。

    机器视觉(Machine Vision, MV) & 计算机视觉(Computer Vision, CV)
    从学科分类上, 二者都被认为是 Artificial Intelligence 下属科目.

    但实际提及时, 主观感觉上
    MV 更多注重广义图像信号(激光,摄像头)与自动化控制(生产线)方面的应用。
    CV 更多注重(2D, 3D)图像信号本身的研究以及和图像相关的交叉学科研究(医学图像分析,地图导航)。

    一个是图像处理,主要是信号与系统,统计,优化
    一个是求解景物与图像之间的关系,如立体视觉、三维重建,主要是几何
    一个是模式识别,例如如何分割图像、识别目标,主要是人工智能

    计算机视觉和机器视觉只是应用场景不同,就像拉货车和载客车是的,侧重点不同而已,一个侧重人工智能分支,一个侧重工业应用!简单说起来的话,计算机视觉偏重于深度学习并且偏向软件,机器视觉偏重于特征识别同时对硬件方面要求也比较高,不过随着对智能识别要求越来越高的发展,这两个方向毕竟会互相渗透互相融合,区别也仅仅限于应用领域不同而已

    首先3D重建是个大工程,主要包括几方面的内容
    1. Calibration 校准,目的在于计算出intrinsic matrix
    a). Traditional calibration, (可以实现张正友的算法,以及Tsai method)
    b). Self-calibration (我导师的研究方向,Kruppa Equation)
    c). Hybrid-calibration (上述两者的结合,可能是热门领域)
    2. Points matching
    a) Feature point detection,如@久问的烦恼 提到的SIFT,SURF,HOG
    b) Feature Descriptor 各种descriptor,如 SIFT, DAISY等等
    3. 3D reconstruction
    a) Point-clouds reconstruction
    i) 最简单的是Hardley和Zissermann的Triangulation,Matlab有相关的functions。当然Opencv也提供相应的算法
    ii) Patched-based reconstruction,这是大神Furukawa的杰作,作为state of art使用。
    Accurate, Dense, and Robust Multi-View Stereopsis
    上面是论文链接,作者提供源代码。

    ) Depth map reconstruction 这是一个比较火的方向。因为现在低成本的RGB-D camera普及 (Kinect),所以现在的图像提供depth信息。著名的Ng Andrew和他的学生有一片相关的论 文,很有意思。而且Depth map医用设备领域也在开始进行研究。

    c) Volumetric data fusion (具体不太了解,懂行的知友可以补充)
    4. Meshing and Texturing (不是我的研究范围)

    其实想要实现一个算法很容易,但是Computer vision领域十分宽广。有个研究弯路是研究的方向很容易被其他分支研究领域干扰。你现在还是大四学生,可以多看看,多了解一下computer vision的领域。读研究生和博士的时候,可以选择一个感兴趣的,着重研究。

  2. 刘留说道:

    如果要做特征识别的话,可以系统的学一下SIFT,SURF,HOG,不难实现,而且有现成的开源库,OpenSift。
    如果要做物体识别:DPM,这个模型很火,ASM用于检测人脸很成功。
    姿态估计:human parser
    物体追踪:从简单的粒子滤波到复杂的CT,Struck,TLD。
    针对数据问题:imagenet,pascal上都有很多标定的数据

    一个硕士的毕业设计,绝大部分时间就是在复现某一篇论文。一个硕士论文耗时至少半年,全职,你想想吧,没有想象的那么容易的。

    如果是基础算法,什么mean shift啊,各种特征提取啊,最优化找homography之类的,并没有什么复现的价值,或者说,这难道不应该是硕士期间的课后作业么?

    我觉得最有效率的,还是直接看opencv代码,里面的算法,都是经典,而且文章出处清楚得很,而且很多算法都是不依托于opencv的基础库的,懂我意思么?就是opencv觉得这个算法好,找了一个好的版本,加进来。多舒服,筛选工作都帮你做好了!还有gpu实现!代码规范清楚,学这个肯定没错。
    如果你一定要复现,我觉得应该实验自己的新点子,把已有代码玩熟练了,想办法改进,扩展别人的代码,或者转译到新平台,等等。

    Computer Graphics,简称 CG 。输入的是对虚拟场景的描述,通常为多边形数组,而每个多边形由三个顶点组成,每个顶点包括三维坐标、贴图坐标、rgb 颜色等。输出的是图像,即二维像素数组。
    Computer Vision,简称 CV。输入的是图像或图像序列,通常来自相机、摄像头或视频文件。输出的是对于图像序列对应的真实世界的理解,比如检测人脸、识别车牌。
    Digital Image Processing,简称 DIP。输入的是图像,输出的也是图像。Photoshop 中对一副图像应用滤镜就是典型的一种图像处理。常见操作有模糊、灰度化、增强对比度等。

    再说联系:
    CG 中也会用到 DIP,现今的三维游戏为了增加表现力都会叠加全屏的后期特效,原理就是 DIP,只是将计算量放在了显卡端。
    CV 更是大量依赖 DIP 来打杂活,比如对需要识别的照片进行预处理。
    最后还要提到近年来的热点——增强现实(AR),它既需要 CG,又需要 CV,当然也不会漏掉 DIP。它用 DIP 进行预处理,用 CV 进行跟踪物体的识别与姿态获取,用 CG 进行虚拟三维物体的叠加。

    假设观测是Z,状态是X:

    Computer Graphics是一个Forwad Problem (Z|X): 给你光源的位置,物体形状,物体表面信息,你如何根据已有的变量的状态模拟出一个环境出来。

    Computer Vision正好相反,是一个Inverse Problem (X|Z):你所有能得到的都是观测信息(measurements), 根据得到的每一个Pixel的信息(颜色,深度),我要来估计物体环境的特征和状态出来,比如物体运动(Tracking),三维结构(SFM),物体类别(Classification and Segmentation)等等。

    对于Image Processing来说,它恰好介于两者之间,两种问题都有。但对于State-of-art的研究来说,Image Processing更偏于Computer Vision, 或者看上去更像Computer Vision的子类。

    尽管这三类研究中,随着CV领域的不断进步,以及越来越高级相机传感器出现(Depth Camera, Event Camera),很多算法都被互相用到,但是从Motivation来看,并没有太大变化。

    得益于这几个领域的共同进步,所以你能看到Graphics和Computer Vision现在出现越来越多的交集。如果根据观测量(图片),Computer Vision可以越来越准确的估计出越来越多的变量,那么这些变量套到Graphics算法中,就可以模拟出一个跟真实环境一样的场景出来。与此同时,Graphics需要构建更真实的场景,也希望能够将变量更加接机与实际,或者通过算法估计出来,这就引入了Vision的动机。这也是近年来三维重建算法,同时大量发表在Graphics和Vision的会议的原因。随着CV从2D向3D发展,以后两者的交集会越来越大,除了learning以外的其他很多问题融合并到一个领域我也不会奇怪。

    举例来说:iPhone5S的指纹识别
    1. 图像处理:首先采集图像,对图像进行预处理(如灰度化、平滑、增强等)
    2. 图像分割:将指纹线从图像中分割出来(注意这时还是数字图像)
    3. 计算机视觉:将分割出来的指纹转换为语义信息(如几何信息【角点、曲线等】,统计信息)
    4. 计算机图形学:将几何信息通过计算机绘图绘制出来,即我们看到的显示在手机中的指纹线。

    –通常1和2都被称为图像处理。

    Computer Graphics和Computer Vision是同一过程的两个方向。Computer Graphics将抽象的语义信息转化成图像,Computer Vision从图像中提取抽象的语义信息。Image Processing探索的是从一个图像或者一组图像之间的互相转化和关系,与语义信息无关。

  3. 贾永磊说道:

    CG:脑袋里有个东西,我没见过,我用计算机点线,加点颜色,纹理,把我脑袋里的东西表现出来。恩,这样。

    CV:脑袋里有个东西,显示里也有个东西,我搞一搞,用计算机看看这现实里的东西是不是就是我脑袋里想的。

    图像:现实里有的,我照下来了,但是感觉我想要拍的那个不明显,我搞一搞,用计算机处理一下,别人一看就知道我想拍的是表达的什么。

    不确切的描述:
    计算机视觉≈看图
    计算机图形学≈画图
    数字图像处理≈看图前沐浴更衣焚香做好各种仪式,然后再看图

    X表示真实世界,真实世界经过一个变换F,得到它的一副图像Y,也就是Y=F(X)。F包含了物体对光的反射和相机、人眼对光的感知。
    图形学就是一个模拟F的过程,给定一个物体X,研究出最好的F使得F(X)像真的一样。难点在于F非常复杂,且模拟起来计算量很大。
    计算机视觉就是一个寻找F^(-1)的过程,有了F^(-1),给我一个图像Y,我的计算机就能理解出X。难点在于,F^(-1)更加复杂,而且二位图像中无法保留三维世界的全部信息(好比说F不是单射),因此是一个所谓不适定问题(ill-posed problem)。

    计算机视觉本质上是模式识别 是人工智能的东西,这方面我不太了解,我更多说说图形学。
    计算机图形的主要目的是用计算机生成具有三维真实感的画面,应用举例来说比如皮克斯的三维动画。
    图形学要解决的问题主要包括,建模,渲染,以及某些物理模拟。 建模就是用曲面生成现实世界物体的模型,比如三角面片或者四边形网格,或者是用粒子来模拟流水火焰。
    渲染是对模型和场景上色的过程,这也是最耗时的一个步奏,基本上渲染可以分为物理真实的(physically based)和NPR(非照片级真实的)两类,physically based 渲染往往需要大量时间,算法有 path tracing; radiosity等等。本质上都是Monte-carlo方法和有限元法在计算机领域的应用。 而游戏里的渲染基本上做不到physically-based 往往是接近这个效果,游戏里的渲染很多采用基于屏幕空间的延迟渲染来实现。
    物理模拟也有很多方面,最复杂的当然是流体的模拟,比如火焰,爆炸等等

    计算机图形学和数字图像处理是比较老的技术。计算机视觉要迟几十年才提出。
    计算机图形学和数字图像处理的区别在于图形和图像。
    图形是矢量的、纯数字式的。图像常常由来自现实世界的信号产生,有时也包括图形。
    而图像和图形都是数据的简单堆积,计算机视觉要从图像中整理出一些信息或统计数据,也就是说要对计算机图像作进一步的分析。
    以上是它们的区别,下面来说联系:
    计算机图形学的研究成果可以用于产生数字图像处理所需要的素材,计算机视觉需要以数字图像处理作为基础。计算机视觉与数字图像处理的这种关系类似于物理学和数学的关系。
    计算机是为了“计算“的,“显示“只是副产品。
    图形学的核心是几何,几千年来如此。
    至于渲染火过那么一阵,只是图形学为了将就一下落后的二维显示器。
    翻翻siggraph近年的paper,还有几个搞渲染的。

    数字图象处理,ps就是最浅显的例子,把一幅图像去去躁,做做直方图均衡化之类
    计算机视觉,人脸识别,指纹识别。别告诉我连这俩你也没听过
    计算机图形学,迪士尼的各种3维动画片,好莱坞的各种特效

    说浅了,上述就是这三个领域的一部分
    说深了,则包含很多子分类内容以及交叉领域
    计算机视觉一般都要用到数字图象处理,比如灰度、二值、直方图
    计算机图形学也会使用计算机视觉,比如好莱坞做特效的时候一般都是用标记以及绿幕,这就是方便将特效部分替换上去,而为了替换的更加真实,就会涉及到识别的东西
    至于图像处理,里面也会包含到其他领域
    数字图像处理是另二者的基础和工具,常用于对图像的优化和转换。
    计算机图形学是一门将数字模型渲染成现实生活中的影像的学科。
    计算机视觉是图形学的一个逆向过程,例如图像识别,更有甚者借助相片还原一个3维场景。
    三者的提出有先后,计算机视觉是一门新技术,尚未成熟,并且常需借助机器学习、模式识别、仿生等前沿技术,可谓三者之集大成者。
    计算机视觉,里面人工智能的东西更多一些,不仅仅是图像处理的知识,还涵盖了人工智能,机器学习等领域知识;2,计算机图形学,主要涉及图形成像及游戏类开发,如opengl等,还有就是视频渲染等;3,图像处理,这个主要针对图像图像的基本处理,如图像检索或则图像识别,压缩,复原等等操作

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>