Vision

Vision

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

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

Visual Sensor

Visual Sensor

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

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

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

RGBD Imaging

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

Range Imaging

獲取深度。

Multispectral Imaging

Coherent Diffraction Imaging

Visual Reconstruction

Visual Reconstruction

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

影像擷取(Image Acquisition)

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

影像重建(Image Reconstruction)

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

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

iterative method:一個像素建立一個變數,一條射線建立一道方程式。解方程組。

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

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

影像融合(Image Fusion)

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

影像去噪(Image Denosing)

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

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

影像復原(Image Restoration)

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

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

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

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

影像增強(Image Enhancement)

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

Visual Recognition

Visual Detection / Visual Recognition

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

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

物體偵測(Object Detection)

判斷是否為指定物體。

Viola–Jones framework:最初用來偵測人臉。一、已知是何物的圖片,窮舉位置、範圍、窗函數(仿照Harr小波,此處使用四種),一種情況當作一個特徵,得到大量特徵。二、因此圖片必須尺寸一致、正面照、無留白,如此位置和範圍才對的上。三、一個特徵,求區域和,得到一個分數,當作特徵描述。區域和的高速算法是累積和相減。四、實施classification,取得關鍵特徵,捨棄無效特徵。五、不知是何物的圖片,窮舉位置、區域,全部特徵都通過檢驗才視為正確。

integral channel features (ChnFtrs):Viola–Jones framework豪華版,最初用來偵測行人。一、像素數值,除了灰階值以外,還可以是梯度方向的投票數(仿照HOG,此處使用六個箱子)、梯度長度、LUV值。二、窗函數,除了原本四種以外,還可以是簡單的矩形窗、自訂的零散的區域。三、區域和,還可以是histogram。

GIST descriptor:最初用來偵測形狀。一、原圖片分別套用8種方位、4種尺寸的Gabor filter,得到32張強度頻譜。二、強度頻譜分成4x4=16塊區域,分別求區域平均值,總共32x16=512個區域平均值,作為特徵。

non maximum suppression:保存分數最大的區域,刪除交聯比大於臨界值的區域。重複上述步驟,處置所有區域。

物體辨識(Object Recognition)

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

物體定位(Object Localization)

判斷物體位於哪些像素。

文字辨識(Optical Character Recognition)

手寫辨識(Handwriting Recognition)

https://www.chungkwong.cc/

手繪辨識(Sketch Recognition)

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

Visual Identification

Visual Verification / Visual Identification

視覺驗證與視覺識別。判斷物體真偽、判斷物體為何。

身分識別(Human Identification)

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

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

行人重識別(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 Classification

Visual Classification

視覺分類。區分物體,分門別類。

圖片標註(Image Annotation)

說明圖片是什麼東西。替圖片取名。

crowdsourcing:人工標記,手動分類。找一群網民合作。正確率最高的方法。

圖片剖析(Image Parsing)

建立圖片當中每個物品的從屬關係。

binary partition tree:把一張圖片裡的物件依照區域分類,儲存於二元樹之中。

Visual Genome
http://visualgenome.org/

圖片歸類(Image Categorization)

解讀圖片內容,將大量圖片分門別類。

bag-of-words model:列舉世上各種物品,編纂百科全書。一張圖片,從中找到每種物品的出現次數(或者相似程度),得到一個直方圖。所有直方圖實施clustering建立分類;分群時,以histogram comparison得到兩兩直方圖距離。

pyramid match kernelspatial pyramid matching:改良版本。圖片切割為大量小圖片,嘗試各種小圖片尺寸。每張小圖片,分別計算直方圖。

part-based model:物品切碎成零件,從中找到每種零件的出現位置、大小比例,得到一張關係圖。利用graph matching或者Markov network建立分類。經常用於人臉辨識。

neural network:用手動分類的圖片進行訓練。

圖片檢索(Image Retrieval)

從大量圖片當中找到想要的圖片。

VLAD:選擇一種image feature descriptor,其長度D。一張圖片擷取N個描述。實施K-means clustering,得到K個群集。K個群集、D個維度,分別求離差和(未取絕對值),得到KD個數值,作為圖片描述,其長度KD。衡量圖片相似度,採用平方誤差(直線距離)。

NetVLAD:深度學習版本。

Visual Understanding

簡介

Image Saliency Detection

顯著性偵測。針對人類視覺系統的特性,找到圖片引人注目的地方。引人注目的地方,不一定是與眾不同的地方。

Image Edge Grouping

邊緣整合。針對人類視覺系統的特性,將圖片邊緣銜接成區域。

Visual Summarization

Visual Summarization / Visual Reasoning

視覺摘要與視覺推理。分析圖片內容、看圖說故事。

圖片改譯(Image to Image)(Image Translation)

圖片轉圖片演算法教學

字幕生成(Image to Text)(Image Captioning)

圖片轉文字

Visual Storytelling Dataset (VIST)
http://visionandlanguage.net/VIST/

圖片生成(Text to Image)(Image Synthesis)

文字轉圖片

三維重建(Image to Shape)(3D Reconstruction)

圖片轉模型

影片生成(Video to Video)(Video Synthesis)

影片轉影片

Visual Estimation

Visual Estimation

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

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

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

人類姿態估計(Human Pose Estimation)

DensePose
http://densepose.org/

臉部姿態估計(Face Pose Estimation)

自動光學檢查(Automated Optical Inspection)

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

Visual Tracking

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。

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

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

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

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

Face Swapping:換臉。

唇語辨識(Lipreading Recognition)

動作辨識(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

Visual Navigation

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

視覺測量(Visual Measurement)

觀看物體,測量長度。

視覺隨動(Visual Servoing)

根據視覺做動作。

視覺測程(Visual Odometry)

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

當視覺設備是相機,此主題稱作camera tracking。

視覺定位(Visual Localization)

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

當視覺設備是相機,此主題稱作camera 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)

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

當視覺設備是相機,此主題稱作structure from motion。

知名專案ORB-SLAM:第一版單目相機。第二版立體相機。第三版追加光達。

camera: triangulation
GPS: trilateration
https://gisgeography.com/trilateration-triangulation-gps/

視覺路徑規劃(Visual Path Planning)

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

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

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

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

視覺避障(Visual Obstacle Avoidance)

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

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