演算法筆記 - Vision

Vision(Under Construction!)

Vision

分為兩大方向:Computer Vision是處理虛擬數據,Machine Vision是應對現實事物。

知名函式庫,例如OpenCV和HALCON。

課程

http://vision.princeton.edu/courses/COS598/2014sp/
http://vision.princeton.edu/courses/COS429/2015fa/
https://cvg.ethz.ch/teaching/compvis/
https://cvg.ethz.ch/teaching/3dvision/
https://courses.cs.washington.edu/courses/cse455/10au/notes.html
https://courses.cs.washington.edu/courses/cse455/14au/notes/index.html
http://vision.stanford.edu/teaching.html
http://www.cc.gatech.edu/~hays/

Visual Sensor(Under Construction!)

Visual Sensor

視覺感測器。人類視覺依賴光線,但是動物視覺、機器視覺則不見得跟光線有關。聲納、雷達、陀螺儀,都可以做為視覺設備。

RGBD Sensor

獲取顏色RGB數值以及深度數值。

http://vision.princeton.edu/research.html
http://vision.princeton.edu/projects/2015/RobotInARoom/
Kinect。微軟出產的RGBD sensor,知名電玩設備。
OpenNI。偵測現實世界場景、動作的函式庫。
disparity estimation  3d邊緣偵測

Range Imaging

獲取深度。

Multispectral Imaging

Visual Recognition(Under Construction!)

文字辨識(Optical Character Recognition)

手寫辨識(Handwriting Recognition)

手繪辨識(Sketch Recognition)

Unistroke Recognition
http://depts.washington.edu/madlab/proj/dollar/

車牌辨識(License Plate Recognition)

主要用途是監視行車安全、捕捉罪犯。

文字辨識的加強版。關鍵在於如何找到車牌位置。已被徹底解決,不是當前的研究熱點。另一方面車牌辨識很容易找到替代方案,例如e-tag。

Visual Tracking(Under Construction!)

手勢辨識(Gesture Recognition)

除了找到手的位置以外,還得找到手的動向。

能夠偵測手勢之後,就可以用手代替滑鼠。

當然也可以辨識手語囉!

加上手套、指套,更容易辨識手部動作,進行更精密的操作。

臉部追蹤(Face Tracking)

Face Capture:根據五官特徵,找到臉部輪廓與五官位置。

目前做法有Active Shape Model和Active Appearance Model。

http://home.isr.uc.pt/~pedromartins/

Face Alignment:建立五官的對應關係之後,甚至可以換臉。

Face Interpolation:建立五官的對應關係之後,還可以變形。

Face Transfer:擷取兩個臉部的五官,還可以同步。

Face Detection:可以用來追蹤罪犯,從影片中找出臉部。

Face Recognition:迅速比對面容。

唇語辨識(Lipreading)

Dedubbing:配音。依照嘴型,鑲嵌文字。

Lip Sync:對嘴。依照文字,鑲嵌嘴型。

McGurk Effect
https://www.youtube.com/watch?v=_UzWeZZ9XeQ
http://gvv.mpi-inf.mpg.de/projects/VisualDubbing/index.html

姿勢追蹤(Human Pose Tracking)

物體追蹤(Object Tracking)

Visual Measurement(Under Construction!)

視覺測量(Visual Measurement)

觀看物體,測量長度。

視覺隨動(Visual Servoing)

根據視覺做動作。

自動光學檢查(Automated Optical Inspection)

在工廠產品線上,用機器代替人類手眼, 配合光學攝影檢查產品瑕疵, 配合機械手臂拼裝零件。 人類只要檢查機器是否正常運作即可。

視覺測程(Visual Odometry)

走動觀看環境,察覺自身動向。彷彿知覺動作訓練。

視覺同步定位與建圖(Visual SLAM)

走動觀看環境,察覺自身方位、繪製周遭地圖。彷彿即時戰略遊戲的開圖過程。

Monte Carlo localization
http://www.cs.washington.edu/robotics/mcl/

1. 首先要有地圖。

2. 地圖的建立方法
  (1) 通常沿著天花板走
  (2) range sensor照一照,得到一堆點。
  (3) Hough Transform/RANSAC/ICP拉成直線。

3. 機器人在某處重開機,不知自己身在何處,準備密室逃脫。

4. 機器人看到門,找到地圖上所有一樣的門,在地圖上標記。
   讓這些地點的機率特別大、一樣大。

5. 機器人移動,地圖上所有標記處一起移動。地圖沒有動。
  (1) 如果不知道方位,所有標記處呈輻射散開。其實可以裝個指南針。
  (2) 如果知道方位,所有標記處朝同一方向移動。

6. 機器人又看到門,找到地圖上所有一樣的門,在地圖上標記。
  (1) 原標記、新標記重疊。使用乘法,而不使用加法。
  (2) 統計學的觀點,這是兩次觀察,理應是joint distribution。

7. 一直重複上述行為,直到某個標記處機率特別高,
   機器人就能確定自己正在何處。甚至倒推軌跡。

8. 除了門以外,最常用的是牆壁、地標。
   地標只有一處有,機率特別高。標記重疊時,使用乘法,乘出來的機率特別大。

9. belief, bayes是用來裝作文青的。
   (1) 機器人移動時,標記跟著移動,此處可以再套上機率。
       決定哪個移動方向最有可能出現。

10. 至於如何從一張圖片上找出地標,是影像處理的問題。