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)

自從有了電腦之後, 逐漸改用電腦儲存資料,節省空間。 自古以來都是用鍵盤滑鼠輸入資料, 最近幾年終於出現了比較直覺的方式, 可以直接在觸控式螢幕上面寫字。 雖然手寫比打字來得慢, 但是手寫不需要額外器材, 隨時隨地都能手寫,不需要隨身帶著一個鍵盤。
用電腦判斷使用者觸摸的地方,顯示對應線條; 用電腦把線條軌跡轉換成文字。 這整個稱作手寫辨識 handwriting recognition。 另外還可以配合輸入法選字系統,以輔助辨識。 最後補充一下, 如果你覺得手寫辨識的演算法太難實作, 也可以採用「人工智慧」的方式唷!

手繪辨識(Sketch Recognition)

事實上除了寫文字之外,也可以畫圖表。
雖說文字是從畫圖來的(甲骨文), 不過手寫辨識與手繪辨識的原理感覺上不太相同。 手寫辨識注重筆順和線條走向, 手繪辨識注重的是形狀是否相符。 光是畫圖還不夠有趣, 有了觸控式螢幕和電子白板之後, 再結合其他技術, 課堂上的教學花樣就變多了。
如果手繪辨識和手寫辨識兩個功能可以結合那就方便多了~
Unistroke Recognition
https://depts.washington.edu/aimgroup/proj/dollar/

Visual Tracking(Under Construction!)

手勢辨識(Gesture Recognition)

自從 Kinect 推出之後,偵測人體動作就變得非常輕鬆。 人類身體最靈巧的就是手了, 所以手勢辨識就變得相當重要。 除了要找到手的位置以外,還得找到手的動向才行。
能夠偵測手勢之後,就可以用手代替滑鼠...
當然也可以辨識手語囉! 配合機器學習的技術, 還能讓電腦透過手語新聞影片自動學習。
加上手套、指套, 更容易辨識手部動作,進行更精密的操作。 再配合投影機和攝影機,就能自在的控制電腦了。

臉部追蹤(Face Tracking)

首先根據五官特徵,從影片當中找到臉部的五官位置。(Face Capture) 相關的模型有Active Shape Model和Active Appearance Model。 http://home.isr.uc.pt/~pedromartins/
建立五官的對應關係之後,甚至可以換臉。(Face Alignment)
建立五官的對應關係之後,還可以變形。(Face Interpolation)
可以用來追蹤罪犯,從影片中找出臉部。(Face Detection) 然後迅速比對面容。(Face Recognition)
或者是動畫配音。 依照嘴型,鑲嵌文字,稱做「配音Dedubbing」。 依照文字,鑲嵌嘴型,稱做「對嘴Lip Sync」。 McGurk Effect https://www.youtube.com/watch?v=_UzWeZZ9XeQ http://gvv.mpi-inf.mpg.de/projects/VisualDubbing/index.html
最後來個大合體

唇語辨識(Lipreading)

車牌辨識(License Plate Recognition)

車牌辨識主要的用途是監視行車安全、捕捉罪犯。 文字辨識的加強版。關鍵點在於如何找到車牌位置。 可以說是幾乎已被徹底解決的問題,因此不是當前的研究熱點。 另一方面車牌辨識很容易找到替代方案,例如e-tag。

物體辨識(Object Recognitiom)

物體追蹤(Object Tracking)

http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html 有位學生開發了物體追蹤的演算法, 可以偵測、追蹤攝影鏡頭中的物體, 物體的種類可以自行設定。 使用到了影像處理和機器學習的學問, 抽取色彩和連通性之類的東西作為特徵, 然後進行圖片辨識。

肢體動作追蹤(Human Pose 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. 至於如何從一張圖片上找出地標,是影像處理的問題。