cs231n_lecture 1_计算机视觉发展史及课程概述

学期:2017 spring

老师:Fei-Fei Li & Justin Johnson & Serena Yeung

声明:本系列文章资源主要来自斯坦福的cs231课堂内容,ppt,配套网站。加上本人的一些理解。

第一节课主要是介绍计算机视觉发展史、课程内容以及考核方式。

 

我学习的课程是cs231n 2017 spring,这是斯坦福第三次开设这门课程。

2016年春季的时候第一次开设,当时有150人参加;2016年秋季的时候第二次开设,有350人参加;2017年春季第三次开课,人数达到了730人。由此可见这门课的火爆程度。

 

Sensor/camera的发展使得计算机视觉无处不在,也因此无时无刻都在产生大量的数据。cisco的研究显示,2018年,网络上80%的流量将是video。所以设计算法理解visual data十分重要,但是难就难在很难让计算机(设计算法)理解Visual data。有人将visual data成为互联网的“暗物质”。

关于每天产生的视频数据量,Johnson举了一个例子:Youtube每1s的数据上传量大约是5h。可以说很惊人,而这仅仅是Youtobe一家。全世界的视频存量和增量可想而知,这么多的数据仅靠人力去分类、管理是不可能的。不夸张的说,网络数据上今后就是视频/图像的天下。与之相关的计算机技术必定会风生水起的发展起来。


计算机视觉涉及到知识:

cs231n_lecture 1_计算机视觉发展史及课程概述


一些相关的课程:

cs231n_lecture 1_计算机视觉发展史及课程概述

接下来Fei-Fei介绍:1.计算机视觉发展史;2.cs2311课程概览。

1.计算机视觉发展史

5亿4千万年前,生物种类大爆发。那时地球大部分地方都覆盖着水,生物漂浮在水中,生命也是脆弱的,它们不怎么移动,没有眼睛,食物漂过就抓住食用,但是之后一段时期生物种类突然大爆发,一位动物学家提出了一种最令人信服的观点,认为原因在于此时生物进化出了眼睛!眼睛的进化使得生物更易捕捉食物,生物之间的竞争也加剧,促进了生物各个其他器官的进化。如今动物都有眼睛,高级动物的视觉更加发达,人类的大脑皮层50%的神经细胞与视觉有关。

 

人类最早的机械视觉或者说“相机”是文艺复兴时期(16世纪)的camera obscura,原理是小孔成像(光的直线传播):

cs231n_lecture 1_计算机视觉发展史及课程概述

有一个猜想,最早的动物眼睛就是这种原理,小孔,光进入,然后在后面的一块区域上成像。随着不断的发展与进化,动物的眼睛变得越来越复杂。

20世纪50至60年代,Hubel和Wiesel通过电生理学进行了一系列有影响力的研究,开启了动物视觉研究乃至计算机视觉的先河。其中最关键的问题就是:高级动物的视觉机理到底是什么。Hubel和Wiesel将电极连接到猫大脑皮层的视觉区域,观察电响应。他们发现有一种最普通也是最重要的细胞对有向边缘(oriented edges)很敏感。这就建立起了视觉处理的简单结构,当物体经过视觉区域时,大脑通过边缘构建复杂的视觉信息。在60年代,计算机视觉由此发展起来。

cs231n_lecture 1_计算机视觉发展史及课程概述


1963年,第一个计算机视觉PhD LarryRoberts发表论文将物体简化为几何图形的拼接(可将其称之为block world,积木世界,块世界),以此识别和重构物体。1966年,MIT举办了一个暑期视觉项目,旨在组织研究者在一个暑期的时间内解决视觉系统问题。50年过去了,视觉问题仍旧没有解决,但是视觉研究者的队伍发展壮大了起来,视觉问题的研究也日新月异,成为了人工智能领域发展最快的部分。

另外一个必须要提的视觉科学家是MITDavid Marr70年底后期他写了一本书叫《Vision》,阐述他所理解的视觉、计算机视觉怎样发展以及如何设计算法让计算机理解视觉世界。

cs231n_lecture 1_计算机视觉发展史及课程概述

书中,David Marr将视觉的3D表示划分为几个阶段:
1.primary sketch,有边缘和曲线构成,大致发展来自Hubel and Wiesel

2.2 1/2-D sketch,考虑表面方向和深度信息

3.3-D model,考虑物体原始表面和体积信息

这个思想主导了计算机视觉研究几十年。

cs231n_lecture 1_计算机视觉发展史及课程概述


70年代关于识别/重构物体的重要研究还有,将三维世界简化为几何图形/物体的堆积/连接:

cs231n_lecture 1_计算机视觉发展史及课程概述

简化为边缘的连接:

cs231n_lecture 1_计算机视觉发展史及课程概述


然而,以上的研究只是实验室阶段,并不能应用于实际。

七八十年代,20年研究下来,研究者发现物体识别/重构物体太复杂了(此时芯片的计算速度还很慢),或许该先从简单点的图像的分割入手。

同质区域的划分:

cs231n_lecture 1_计算机视觉发展史及课程概述

Paul viola & MichaelJones 利用ada-boosting进行实时人脸检测:

cs231n_lecture 1_计算机视觉发展史及课程概述


此时,计算速度仍然很慢,但可以做到接近实时,2006年,富士胶片公司推出带人脸识别的数码相机,将实验室研究产品化,速度可谓之快。

之后,研究者继续研究怎样让物体识别更快更好,90年代后期至21世纪前十年,基于特征的物体识别成绩斐然,其中,David Lowe提出的SIFT算法影响最大。

cs231n_lecture 1_计算机视觉发展史及课程概述

另外一种基于特征的算法是空间金字塔(spatial pyramid),利用图像特征推测出图像类型,是山坡,天空还是高速公路。提取图像不同区域和不同分辨率下的特征形成描述子,然后利用类似SVM进行分类。一种方式是HOG,另一种方式是Deformable Part Model

cs231n_lecture 1_计算机视觉发展史及课程概述


60年代开始发展一直到21世纪头十年,有一样东西也在悄然改变,就是我们有越来越多高质量的数据。而构建标准数据库(benchmark dataset)可以更好的研究、测试物体识别算法。其中一个著名的标准数据库就是Pascal visual object challenge,有20种类别。与此同时,普林斯顿和斯坦福的一些学者开始思考如何识别出世界上的所有物体;而算法经常会overfiting,维度太多,参数太多,而数据集不够,imageNet应运而生。使用工程方法在Amazon Mechanical Turk平台上分类图片,有22k个类别,14M的图片。依托这个数据集举办的分类比赛中,CNN表现最为优异。


2.cs231n课程概述

本课程关注视觉识别中最重要的问题——图像分类。还将涉及图像识别和捕捉。

过去几年在imagenet的识别比赛获胜的算法:

cs231n_lecture 1_计算机视觉发展史及课程概述

神经网络独霸天下。12年的时候CNN大爆发表现抢眼,但是CNN不是一天发明的,1998年贝尔实验室的LeCun等人提出了一种方法识别数字,希望能帮助邮局自动识别手写字体或者地址,这就是CNN。等到12年的时候处CNN别重新提出并得到广泛应用。得益于两点:1.计算能力的提升(晶体管的数量,GPU),允许研究者探索更大的结构,更大的模型;2.数据量(high-quality labeled data)的提升,允许算法训练得到更精确的模型。

视觉的任务不止于识别:1.objectrecognition2.3D construction3.activity recognition4.VR/AR

Johnson在实验室的任务visual genome

cs231n_lecture 1_计算机视觉发展史及课程概述

另外一个challengeunderstanding

人眼看一眼图片就能描述出许多信息,分清主次,理解人物关系,意图,如何让计算机也能理解(deep understanding)?

比如:

cs231n_lecture 1_计算机视觉发展史及课程概述


CV make  life better!

 

philosophyunderstand the deep mechanics of all of these algorithms!