Vision(Under Construction!)

Vision

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

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

Visual Sensor(Under Construction!)

Visual Sensor

視覺感測器。人類視覺依賴光線,但是動物視覺則不見得跟光線有關,至於機器視覺那就更多樣化了。

視覺感測器所收集的資訊,除了是光線的頻率、光線的強度,也可以是物質的密度、聲音的頻率。攝影機、聲納、雷達、光達、陀螺儀、……,通通可以做為視覺感測器。

視覺感測器可以製作成視覺設備,用於各種場合。手機鏡頭、數位相機、監視器、文件掃描器、生物顯微鏡、太空望遠鏡、超音波攝影、核磁共振攝影、……。詳情請洽電機系。

RGBD Imaging

獲取顏色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

Coherent Diffraction Imaging

http://en.wikipedia.org/wiki/Coherent_diffraction_imaging

Visual Reconstruction(Under Construction!)

Visual Reconstruction

視覺重建。感測器產出數據,數據轉換為影像。通常是人類能夠理解的影像:圖片、影片、模型。

影像擷取(Image Acquisition)

感測器收集資訊,產出數據。

影像重建(Image Reconstruction)

感測器收集資訊,產出數據,數據轉換為圖片、影片、模型。知名範例是核磁共振掃描MRI、光子相機photon camera。

例如核磁共振掃描,一條射線得到一群像素的加權平均值。須從一條條射線的投影數值,還原成一個個像素數值。稱作Radon transform

iterative method:其實就是optimization。窮舉物體的模樣,模擬投影結果,令誤差最小。缺點是速度慢。

back projection:針對一個像素,窮舉穿過它的所有射線,計算平均值。缺點是模糊化。

Fourier slicing:二維平面,時域當中一群平行射線得到的一維數據,對應頻域當中穿過原點的一條直線。窮舉各種射線角度,盡量填滿頻域,最後再逆向傅立葉轉換。缺點是中心密外圍疏,而且必需克服格點問題。

影像融合(Image Fusion)

大家一起上。多種多個感測器,擷取多種多份數據,重建一份影像。知名範例是衛星攝影、PET/CT。

影像去噪(Image Denosing)

感測器絕非精準無誤,環境絕非穩定不變。數據可能偏差、可能毀損。診斷病情,對症下藥;假設雜訊成因,設計去噪演算法。

影像去噪亦可視作影像復原的其中一個項目。影像復原演算法可用於影像去噪。

影像復原(Image Restoration)

俗稱PS修圖。感測器不精準,環境不穩定,操作不妥善,備份不安全,於是影像不盡人意。修改影像,恢復理想面貌。

亦可故意降低感測器規格,藉由影像復原彌補差距。例如醫療領域,感測器太過精準周密,擷取重建反而曠日廢時。此時可以故意降低感測器規格,迅速擷取重建,降低影像品質;再用影像復原,提升影像品質。

total variation denoising:多目標最佳化,新舊圖片平方誤差盡量小、梯度長度盡量小(消滅形狀邊緣、消滅殘影)。

compressive sensing:即是sparse coding。知名作品Sparse MRI

影像增強(Image Enhancement)

突顯影像重點,方便閱覽。

Visual Recognition(Under Construction!)

Visual Detection / Visual Recognition

視覺偵測與視覺辨識。感測器產出數據,演算法分析數據,判斷是否為物體,判斷是哪種物體。

早期做法是image feature description。近期做法是neural network。

物體辨識(Object Recognition)

COCO
http://cocodataset.org/
YOLO
https://pjreddie.com/darknet/yolo/
SSD: Single Shot MultiBox Detector
https://ai.google/research/pubs/pub44872

文字辨識(Optical Character Recognition)

手寫辨識(Handwriting Recognition)

手繪辨識(Sketch Recognition)

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

Visual Identification(Under Construction!)

Visual Identification / Visual Authentication

視覺鑑定與視覺鑑別。找出相同物體、判斷物體真偽。

身分鑑定(Human Identification)

主流方法是神經網路。大家隨興創作網路結構,收集影片訓練神經網路。然而辨識效果差強人意,於是大家結合多種辨識項目,以補強辨識效果。主要用途是安全監控、客流統計。

此領域目前由商業公司主導,知名公司有商湯、曠視。由於商業競爭,一般民眾無法得知演算法細節。

身分鑑別(Human Authentication)

目前做法似乎是搖晃鏡頭並且測量臉孔深度、判斷眨眼抿嘴。

行人重識別(Person Re-identification)

大量相機,得到大量影片,找出所有相同的人,給予獨特編號。

中國人發明的詞彙,中國人進度最快,你懂的。

Market-1501
http://www.liangzheng.org/Project/project_reid.html
CUHK Person Re-identification Datasets
http://www.ee.cuhk.edu.hk/~xgwang/CUHK_identification.html
MSMT17
https://www.pkuvmc.com/publications/msmt17.html

車輛鑑定(Vechicle Identification)

車輛鑑定。在各路口架設監視器,進行車牌辨識,以車牌追車。再配合電子地圖,標示行車軌跡(追蹤)、集結(飆車族)、徘徊(行竊)、出沒(根據地)、流量(交管)。

此領域不屬於學術領域。此領域目前由警政單位主導,知名公司有中華電信。由於安全保密,一般民眾無法得知演算法細節。

車牌辨識(License Plate Recognition)

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

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

交通標誌辨識(Traffic Sign Recognition)

政府單位紀錄了所有交通標誌的設立地點,大可不必採用視覺辨識。類似的還有商業招牌辨識

Visual Estimation(Under Construction!)

Visual Estimation

視覺估計。判斷物體方位、物體形狀。

六自由度物體姿態估計(6D Object Pose Estimation)

找到物體的三個位移量(三維座標)、三個旋轉量(歐拉角)。進階應用是機械手臂。

人類姿態估計(Human Pose Estimation)

DensePose
http://densepose.org/

臉部姿態估計(Face Pose Estimation)

自動光學檢查(Automated Optical Inspection)

工廠生產線,機器代替人類手眼,光學攝影檢查產品瑕疵,機械手臂拼裝零件。人類只要檢查機器是否正常運作,俗稱「顧機台」。

Visual Tracking(Under Construction!)

Visual Tracking

視覺追蹤。判斷物體方位變化、物體形狀變化。

早期做法是標註特定部件、找到彼此關聯。例如人臉就是找到五官、人體就是找到四肢。近期做法是neural network。

物體追蹤(Object Tracking)

Object Tracking:觀察物體動向。

Multiple Object Tracking:困難之處在於交叉穿越、重疊遮擋、出入背景。

人類追蹤(Human Tracking)

Pedestrian Detection:行人偵測。早期做法是image feature description。近期做法是neural network。

Human Tracking:觀察行人動向。

Crowd Tracking:觀察群眾動向。可能很擁擠,只看得到頭。

手部追蹤(Hand Tracking)

Hand Tracking:知道手的位置、手的形狀、手的動向。

Hand Gesture Recognition:手勢辨識。

Sign Language Recognition:手語辨識。

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

臉部追蹤(Face Tracking)

Face Detection:找到面容。

MS-Celeb-1M
https://www.msceleb.org/
MegaFace
http://megaface.cs.washington.edu/

Face Recognition:比對面容。

Face Landmark Detection:尋找臉部輪廓與五官位置。

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

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

Face Alignment:校準對齊臉部輪廓與五官位置。

https://zhuanlan.zhihu.com/p/34673903

Face Tracking:找到五官位置變化,或者說是表情變化。

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

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

唇語辨識(Lipreading Recognition)

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

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

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

動作辨識(Action Recognition)

Pose Estimation:姿態估計。

Action Recognition:動作辨識。

Gesture Recognition:姿勢辨識。

兩種做法:一、人工標註。二、在各種居家設備安裝感知器。

ActivityNet
http://activity-net.org/
HMDB51
http://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/
UCF101
http://crcv.ucf.edu/data/UCF101.php

Gait Recognition:步態辨識。

The OU-ISIR Gait Database
http://www.am.sanken.osaka-u.ac.jp/BiometricDB/
CASIA Gait Database
http://www.cbsr.ia.ac.cn/english/Gait%20Databases.asp

Visual Navigation(Under Construction!)

Visual Navigation

視覺導航。給定目的地,找到路徑。

視覺測量(Visual Measurement)

觀看物體,測量長度。

視覺隨動(Visual Servoing)

根據視覺做動作。

視覺測程(Visual Odometry)

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

視覺定位(Visual Localization)

環顧周遭景色,明白自己身在何方。

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. 至於如何從一張圖片上找出地標,是影像處理的問題。

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

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

視覺路徑規劃(Visual Path Planning)

給定起點、終點、殘缺地圖,找到路線。

最短路徑演算法,修改成邊走邊找,例如D*、RRT*。

註:目前大家沒有仔細區分path planning與motion planning兩個詞彙的差異,兩個詞彙經常混用。

OMPL: The Open Motion Planning Library
http://ompl.kavrakilab.org/

視覺避障(Visual Obstacle Avoidance)

image semantic segmentation找到地板,其餘物件根據深度決定是否避開。

NYU-DEPTH
https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
MIT ADE20K
http://groups.csail.mit.edu/vision/datasets/ADE20K/