看看美国顶级教授的“计算机视觉”课讲什么?
Albert JIAO Albert JIAO

看看美国顶级教授的“计算机视觉”课讲什么?

什么是计算机视觉?这个问题其实仁者见仁,智者见智。以一个对计算机视觉略知一二的“砖家”的角度,作者自己觉着计算机视觉主要是用计算机取代人的眼睛看东西。Alan教授喜欢用亚里士多德的一句话“To Know What is Where by Looking”


2014年12月20日-21日,我从香港飞往上海,在依图公司的会议室参加了由加州大学洛杉矶分校UCLA统计系教授Alan Yuille(艾伦.尤尔)讲授的“计算机视觉前沿课程”。来自各大高校的计算机系,数学系,物理系不同的背景,超过40名学生一起参加。我们交流下来非常有收获,也很开心在这里和大家分享。

依图科技公司联合创始人朱珑(Leo Zhu)和导师Alan Yuille教授对话

很多人第一个问题会问,什么是计算机视觉?Alan教授首先告诉大家,这个问题其实仁者见仁,智者见智,并没有固定的答案。以一个对计算机视觉略知一二的“砖家”的角度,作者自己觉着计算机视觉主要是用计算机取代人的眼睛看东西。Alan教授喜欢用亚里士多德的一句话“To Know What is Where by Looking”来诠释计算机视觉。为了让大家更好的队计算机视觉有个概念,作者自己觉着最好的方式还是举几个“栗子”。
 
例子1

在世界杯足球赛场的历史上,出现过不少的“魔鬼进球”疑案,到底进了还是没进,双方球员、裁判、观众都各执一词,争论了长达几十年也没有下文。其中最著名的当属1966年世界杯决赛中,英格兰队对阵联邦德国队的比赛,英国队员赫斯特的射门最后恰好落在了门线上(http://songshuhui.net/archives/53739),当时裁判判定进球,英格兰队凭借这一进球成功夺冠。不过对于当时这个球到底有没有越过门线,各界一直争论不休。直到20世纪九十年代,牛津大学的研究人员另辟蹊径地回答这一争议,用计算机视觉技术分享当时的比赛录像,计算足球在空中的位置,得出的结论是当年赫斯特的进球很可能为无效:皮球在离球网最近的时刻,有99.87%的概率离成为进球的距离要大于6厘米。
 
不过这样的历史悬案应该不会在今后的世界杯上再次出现了。在今年巴西世界杯上,“门线技术”被引进到了比赛当中,足球从接近球门到进球再到弹出,整个过程在空中的位置都可以全部侦测和计算出来,是否进球不再需要裁判的眼睛,计算机就可以完全告诉你。门线技术主要依靠两套系统,一套系统是足球内部和球门上安装的传感器系统,另外一个就是由设置在场地不同区域的高速摄像机组成的“鹰眼系统”,可以提供视觉图片和时间数据进行分析计算,标志着计算机视觉技术成功应用到了世界杯比赛中。
 
例子2


另外一个很常见的计算机视觉应用应该是人脸识别了,大家在社交网站上上传一组照片之后,就会发现上面的几个人脸都被画上了方框,然而这个简单的功能在十几年前的计算机视觉曾是一个巨大难题。计算机不仅可以把人脸圈出来,更可以识别出这张脸是谁,并且已经在实际中有了广泛应用,在香港和深圳之间几个繁忙的口岸,人脸识别功能已经在自助过关机器上使用了多年。
 
在这次课程的主办方依图公司的展示的产品中,我尝试着公司的人脸识别的电脑程序进行PK,看谁可以更清楚的分辨几张看起来很相似的照片,结果发现参与尝试的十几个人的“看脸能力”无一可以超过电脑的识别成功率,至于像作者这样的“脸盲症”人士识别成功率就非常堪忧了。
 
当然计算机视觉在现实中还有许许多多其他的应用,例如谷歌的图片搜索功能和汽车车牌号码的自动识别,这里就不一一列举了。在三四十年前,计算机视觉曾经是一个大家都感到非常陌生的词汇,而如今经过Alan Yuille教授和其他计算机视觉领域奠基人的长期不懈努力,计算机视觉技术已经出现在了世界杯赛场上,出现在了拥有亿计用户的各种社交网站上,出现在了世界上最繁忙的海关口岸中……
 
大家可能对于计算机视觉各种炫酷的应用,奇妙的产品以及未来的各种科幻场景更加有兴趣,但是这些的背后都离不开看起来有些枯燥的底层的理论和公式。作为一个研究计算机视觉的学者,在课程中,Alan Yuille介绍给大家更多的是计算机视觉前沿的理论性研究。


Alan Yuille教授在计算机视觉领域从事研究30年
 
首先,人的视觉其实本身是一件很复杂的事情,让机器和人具备同等程度的视觉感知能力并非易事。Alan告诉大家,你睁开眼睛看清楚一个东西,连1秒的时间都用不上,表面上看起来眼睛眨都没眨,脑子想都没想,不费吹灰之力,但这并不意味着视觉的过程就一定比你苦思冥想一道数学题简单,因为人的大脑分配了大量的资源用于视觉,所有神经元中的40-50%都与视觉功能有关,对视觉的“投入”比嗅觉,听觉,味觉都多得多,这才使得你看东西轻而易举。
 
不仅如此,计算机视觉所面对的图片本身也是非常复杂的,一张普通的照片有几百万像素,而每一个像素的颜色值又有红橙黄绿青蓝紫深浅不一很多种可能,这样一来,世界上没有两片完全相同的树叶,也没有两张完全一样的图片。同一个人在不同地方,用不同的相机,摆不同的pose,从不同的角度拍,从不同距离拍,穿不同衣服拍,最后得到的照片都各不相同,但是作为一个从图片中获取信息的技术,需要从这些各种不同的图片把同一个人认出来。
 
以一张大象的照片为例,人的眼睛可以将整只大象印入眼帘,也可以将目光聚焦在大象身体的某一个部分,只是转一下眼球而已。而对于计算机来说,像“盲人摸象” “管中窥豹”一样提取和处理图片中各个小的部分的信息,还是处理整只大象的信息,在需要花费多少计算时间、使用何种算法以及完成何种任务都有很大的不同,前者叫Low-level vision,后者叫High-level vision。
 
Low-level vision可以去除掉大象照片中的污点,可以识别出大象和草坪之间的边缘,可以从照片中分割出两只大象大概的区域,却无法识别出照片里是什么动物;High-level vision包含了很多的人工智能,比如这是只什么动物,这只大象是亚洲象还是非洲象,它在照片里在睡觉还是在寻找食物,照片里有没有缺少什么东西等等各种分析推理和预测。当然还有介于Low-level vision和High-level vision之间的Mid-level vision,比如大象身上的一些条纹,照片是从哪个角度拍的,大象离镜头有多远等等。
 
可以发现,一张普通照片包含的“信息量很大”,计算机视觉技术需要把它们都提取出来,需要完成的任务实在是很繁重很庞大,如果把图片里的所有信息全部提取出来简直需要一个福尔摩斯。Alan告诉大家我们可以有一个计算机视觉的图灵测试,就是说如果某一天,人类可以从一张图片里看到想到的东西,摄像机和电脑组成的计算机系统也可以全都看到想到,两者之间没有了差别,这样计算机视觉在达到了终极目标。当然这一天离我们还非常遥远。面对种种困难,几十年来,研究人员提出了各种各样的方法和理论,使得计算机视觉领域本身变得越来越庞大,如今恐怕没有一本书能完整地囊括所有的计算机视觉知识。
 
在介绍了计算机视觉的整个框架之后,Alan具体介绍了计算机视觉领域内的各个不同的主题。Edge Detection(边缘检测)和Image Segmentation(图像分割)是两个最基本的计算机视觉算法,都属于Low-level vision。Edge Detection应用很广泛,比如在识别一张人脸的时候,人脸和背景之间会有一个边缘,眼睛、嘴巴、耳朵、鼻子周围都有一个边缘,如果能把这些线条从图片中识别出来,人脸各个部分的大小和位置信息就会变得容易很多。


(Edge Detection)
 
从数学意义上,边缘意味着图片中的像素的颜色值有一个突然的变化,当然很多时候边缘是比较模糊的,而在不是边缘的地方颜色值也会因为噪声而有波动,需要在寻找到边缘像素的同时,避免把“伪边缘”识别出来。现在已有一些简单而有效的Edge Detection方法像Canny Edge Detector,Alan教授在这些方法的基础上加入了统计学的元素:首先在一些图片中,人工画出所有的边缘线,然后使用这些已有正确答案的测试图片对各种Edge Detector进行大量测试,按照统计出的结果,更好地判断边缘像素,相当于对于各种传统的方法进行了一次优化。
 
如果可以把一张图片中的边缘直接提取出来,就可以以这些线为边界把图片分成几个部分,达到类似于把人脸的部分从背景图片中提取出来的效果,这就是Image Segmentation。当然Image Segmentation也可以独立于Edge Detection完成,主要依靠各个部分的像素的一致性,比如人脸都是皮肤的颜色,车表面的都是金属的样子,地面都是土壤的样子,来让电脑来“五马分尸”。


(Image Segmentaion:自动地把图片中的人,两辆不同的车,背景以及部分,各自分割出来)
 
按照这样的思路,最简单的一种方法是SLIC(Simple Linear Iterative Clustering),相当于把图片中的位置临近的像素按照互相之间颜色值的相近“物以类聚”成几个区域,算法的原理很简单,主要通过不断循环重复简单的步骤。Alan同时也介绍了相对更加复杂的Graph Cut的Image Segmentation方法,用户需要做的首先是在图片中划出一个大概的区域(比如要提取出人脸的区域,就在人脸的周围粗略的划出一个方框的区域),然后Graph Cut程序开始运行,选定区域的边缘会按照“能量最小化”进行优化,最后逐渐收敛在需要分割的区域边缘上。Alan展示四种不同的Graph Cut优化方法,包括Gibbs Sampling,Belief Propagation,Max flow/Min cut和MFT,并且进行了各种不同Image Segmentation方法得到的结果的比较。
 
在课间时间,我也了解了依图公司开发的产品,写到这里可以和课程有些对应的感受和收获,比如一款可以自动识别车牌和品牌(车型)的软件,无论汽车在高速行驶,还是在没有灯光的漆黑夜晚,只要在监控摄像头覆盖之下,车牌号和品牌型号都可以被轻松识别,更有趣的是,通过车辆的照片,还可以判断出车牌的真伪(识别假套牌车辆)。其实在计算机视觉中,无论车牌号,门牌号,还是田野上的巨型文字,从一张图片中识别出文字属于High-level vision的典型任务。Alan尝试着使用时下比较流行的深度神经网络来解决这一问题。“神经网络”模仿人的大脑里的神经系统,在电脑程序里虚拟地构建出一个类似于人大脑相互连接的神经元的模型。这个模型像一台机器一样,每个神经元是一个零件,这些零件互相连接在一起,有的会很紧,有的会很松,之间每一个连接的强度是一个参数。而深度神经网络是神经网络方法中比较复杂的最新一种。通过给神经网络输入大量已经识别过的含有文字的图片,在样本图片和标准答案的不断“训练”之下,深度神经网络的各项参数不断改变,最后可以奇妙的自然而然学会识别图片中的问题,就如同人类自己并不清楚自己的大脑是怎样工作一样,我们也并不完全清楚电脑的深度神经网络是到底怎样完成学习的。Alan介绍说,深度神经网络包含了很多个神经元的层,相当于先从图片中识别出比较low-level vision的信息,然后逐层深入,提取出low-level vision的信息。深度神经网络能够在近些年火起来,主要还是计算机硬件计算能力的增强,像GPU(显卡)计算的广泛应用,使得这一在过去只是“纸上谈兵”的想法可以真正实现。


深度神经网络来识别图片中的文字

人脸识别能够在监控摄像头和海关检查中大量使用,有时精确度甚至可以超出真人的识别能力,背后依赖着各种识别算法。在课程中,Alan也介绍了自己研究团队提出的用于人脸识别的Hierarchical Compositional Model。在模型中,整个面部的数据分成了三层来处理,从最高层的整个面部到面部的各个部分(比如眼睛),再到各个细节。这一个模型可以把从High-level vision到Low-level vision不同的算法综合起来。
 
在整个课程的最后,Alan分享了自己对于什么样的学生适合做研究,如何撰写论文,怎样做学术报告等方面的心得,并且和大家进行了众多的问答互动。有同学询问Alan教授挑选博士学生的标准是什么,不同于大家普遍认为的GPA高低,GRE成绩和发表的论文情况,Alan教授觉着GPA只是代表课程学习能力和考试能力,并不一定意味着研究能力很高,以他自己本人为例,在学校时的课程成绩并不出众,而发表的论文常常无法判断申请的学生在论文中到底发挥了多大作用。Alan教授觉着最可靠的方式直接的接触,如果有本科学生参与过他的实验室的暑期实习,有尚佳表现,就有较大可能被录取为他的博士学生,如果没有机会直接接触,他会参考自己熟悉的其它研究者的推荐意见,觉着他们的意见也是比较可信的。
 
通过这两天的课程,本文作者获得了一次难得的机会,在世界顶级的计算机视觉领域科学家的引导下,汲取了大量的关于这一领域的前沿知识和最新研究结果,再次感谢相关TV,感谢主办方。

 
视觉 课程 计算机
赞(...)
文章评论
匿名用户
发布