Notes on CS231n: Convolutional Neural Networks for Visual Recognition Part I

Source: Deep Learning on Medium

Notes on CS231n: Convolutional Neural Networks for Visual Recognition Part I

Introduction, Image Classification pipeline

CS231n 是一堂相當熱門的電腦視覺課程,由 Stanford Computer Science 的李飛飛教授主講,以下簡介節錄自此課程的官方網站http://cs231n.stanford.edu/

Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification.

2017 春季的課程已在 YouTube 上公開上課影片。從此篇文章開始,將會一一分享影片裡面所學到的內容。

CS231n Spring 2017 主要有 14 堂課程以及 2 次的演講,從電腦視覺的基礎概念開始介紹,奠定基礎分類模型、神經網路和最佳化算法後介紹 CNN、RNN、Generative Model、RL 主要幾個深度學習模型在電腦視覺上的應用。此文將會先介紹基礎的內容(Lecture 1、2):

  1. Introduction
  2. Image Classification pipeline

Lecture 1: Introduction

電腦視覺是一門跨學科的學問,包含物理學、生物學、心理學、電腦科學、數學、及工程。

以下將會簡介一些在電腦視覺領域上較有名的研究歷史發展,以及近期更多電腦視覺所要解決的任務。

A brief history of computer vision

生物視覺機制

觀察貓的視覺皮質細胞對哪種刺激會有反應,視覺皮質細胞含有各種神經元,特別有簡單細胞及複雜細胞對 “ 簡單圖樣及其移動的方向 ” 發生強烈的反應。此實驗發現視覺處理始於簡單的結構,進而處理複雜的物件能辨識所看到的物體

機器視覺機制

針孔成像相機如早期生物眼睛構造,從小孔接收光線,透過後面的平面板收集信息且投影成像,也是最早仿造生物視覺的機器。

Block world 為最早有關電腦視覺的一篇論文,提出視覺世界從簡單的幾何圖形開始,進而能識別及重建。

Vision 這本書描述作者如何理解視覺,以及如何開發識別視覺世界的演算法 — 從一張拍攝的影像要獲得真實世界的 3D 模型,必須經歷的一些過程。

  1. Primary Sketch:以大部分的邊緣、端點、線條、曲線簡單的結構來表示一張影像。
  2. 2.5-D Sketch:從不連續的深度曲面分割影像。
  3. 3-D Model Representation:各個分層的曲面則可組織出 3D 模型

此種理想的思維影響了電腦視覺領域幾十年,也是一種非常直觀的方式來解構視覺信息並重建視覺世界的物體。

  • Fischler and Elshlager, 1973; Brooks & Binford, 1979

思考如何以簡單的結構辨識及表示真實世界中的物體,分別提出以圓形(Pictorial Structure)及圓柱體(Generalized Cylinder)簡單的物件來組合成複雜的結構。

通過偵測線和邊緣建構影像中的資訊,嘗試解決物體識別的任務。