斯坦福李飞飞cs231n计算机视觉课程笔记
笔记 by 田明振
注:
- 此笔记整合了2017年的视频和2021年的最新课件
- 视频链接: https://www.bilibili.com/video/BV1nJ411z7fe?p=2 or https://youtu.be/vT1JzLTH4G4
- 课程官网: http://cs231n.stanford.edu/index.html
- 课件下载链接: http://cs231n.stanford.edu/slides/
Lecture 1 - Overview
Today’s agenda
- A brief history of computer vision
- CS231n overview
Part 1: A brief history of computer vision by 李飞飞
计算机视觉可用于各个学科,如物理、生物、心理学、计算机科学、工程学、数学等。
具体可用于
• Object detection 目标检测
• Object classification 目标分类
• Scene understanding 场景理解
• Semantic scene segmentation 语义分割
• 3D reconstruction 3D重建
• Object tracking 目标追踪
• Human pose estimation 人体姿态分析
• Activity recognition 行为识别
• VQA 视觉问答 等场景
公元前5.3-5.4亿年, Cambrian Explosion 寒武纪生命大爆发,生物第一次产生了视觉。
人类最早让机器出现视觉,即照相机的诞生。人类最早出现的相机可追溯到文艺复兴时期的camera obscura(暗箱)
计算机视觉的发展之 The known story – Neuroscience inspired AI
60年代,Hubel and Wiesel 关于电生理学的研究最先揭示了哺乳动物的视觉处理机制,发现视觉处理是始于视觉世界的简单结构。
通过不同层级的细胞,将low-level的视觉信息组合成high-level的patterns,即 Cortical Column 皮质柱,神经网络也是这一思想。
问题的形成往往比解决问题更重要,解决问题需要创造性的想象力,这标志着科学的真正进步。 ——爱因斯坦
计算机视觉的发展之 The not-so-known story – the search for computer vision’s “North Star”
计算机视觉的发展也从60年代初开始, Larry Roerts 的博士论文被认为是第一篇关于计算机视觉的论文,提出了block world的概念,将视觉世界简化为几何形状。
70年代, David Marr 撰写了《vision》,提出了如何使计算机识别视觉世界的算法。呈现物体的三维结构,需经历以下几个步骤:
70年代另一项开创性的工作,解决了如何从识别块状世界转向现实世界对象的问题。两组科学家分别提出了generalized cylinder(广义圆柱体)和pictorial structure(图形结构)的概念。
1997年 Shi & Malik 利用normalized cut实现了图像分割。该算法将图像中的像素点归为有意义的类别,实现分割。
2001年, Viola & Jones 利用AdaBoost机器学习算法,实现了人脸识别。
2006年,提出了空间金字塔匹配算法,提取出图片的整体特征,进行匹配识别。
计算机视觉的圣杯—— Object Recognition 目标识别
直到21世纪才出现了图片标注数据集,最出名的是PASCAL
另一个数据集是ImageNet,由本节课主讲李飞飞创立。
ImageNet团队还创立了全球性的比赛,该比赛的成绩在2012年突飞猛进。
这一年,第一次将卷积神经网络应用于计算机视觉,实现了显著的效果。这也是这门课将重点介绍的内容。
但神经网络早在1998年就被提出,但由于计算能力的限制,一直没有用于计算机视觉领域。
Part 2: Convolutional Neural Networks for Visual Recognition by Justin Johnson
Image Classification: A core task in Computer Vision
There are many visual recognition problems that are related to image classification, such as object detection目标检测, image captioning自动图像描述, semantic segmentation, visual question answering, visual instruction navigation, scene graph generation场景图预测. 举个例子:
Convolutional Neural Networks (CNN) have become an important tool for object recognition
2012年首先在imagenet比赛上使用了CNN,从此之后变得越来越深。2015年,微软亚洲研究院发布了残差网络,有152层。
Convolutional Neural Networks (CNN) were not invented overnight
CNN最早在1998年由贝尔实验室提出,用于支票的识别。由于计算能力的大幅度提升,尤其是GPU的出现,CNN在最近几年变得流行。大量带有标签的数据的出现也是CNN流行起来的原因之一。
The quest for visual intelligence goes far beyond object recognition
例如动作的识别、图像的具体描述。
比如如何让计算机深刻的理解下图,是一个挑战。