當前位置:
首頁 > 知識 > 改變你對世界看法的五大計算機視覺技術!

改變你對世界看法的五大計算機視覺技術!

計算機視覺是當前最熱門的研究之一,是一門多學科交叉的研究,涵蓋計算機科學(圖形學、演算法、理論研究等)、數學(信息檢索、機器學習)、工程(機器人、NLP等)、生物學(神經系統科學)和心理學(認知科學)。由於計算機視覺表示對視覺環境及背景的相對理解,很多科學家相信,這一領域的研究將為人工智慧行業的發展奠定基礎。

那麼,什麼是計算機視覺呢?下面是一些公認的定義:

從圖像中清晰地、有意義地描述物理對象的結構(Ballard & Brown,1982);

由一個或多個數字圖像計算立體世界的性質(Trucco & Verri,1998);

基於遙感圖像對真實物體和場景做出有用的決定(Sockman & Shapiro,2001);

那麼,為什麼研究計算機視覺呢?答案很明顯,從該領域可以衍生出一系列的應用程序,比如:

人臉識別:人臉檢測演算法,能夠從照片中認出某人的身份;

圖像檢索:類似於谷歌圖像使用基於內容的查詢來搜索相關圖像,演算法返回與3.查詢內容最佳匹配的圖像。

遊戲和控制:體感遊戲;

監控:公共場所隨處可見的監控攝像機,用來監視可疑行為;

生物識別技術:指紋、虹膜和人臉匹配是生物特徵識別中常用的方法;

智能汽車:視覺仍然是觀察交通標誌、信號燈及其它視覺特徵的主要信息來源;

正如斯坦福大學公開課CS231所言,計算機視覺任務大多是基於卷積神經網路完成。比如圖像分類、定位和檢測等。那麼,對於計算機視覺而言,有哪些任務是佔據主要地位並對世界有所影響的呢?本篇文章將分享給讀者5種重要的計算機視覺技術,以及其相關的深度學習模型和應用程序。相信這5種技術能夠改變你對世界的看法。

1.圖像分類

圖像分類這一任務在我們的日常生活中經常發生,我們習慣了於此便不以為然。每天早上洗漱刷牙需要拿牙刷、毛巾等生活用品,如何準確的拿到這些用品便是一個圖像分類任務。官方定義為:給定一組圖像集,其中每張圖像都被標記了對應的類別。之後為一組新的測試圖像集預測其標籤類別,並測量預測準確性。

如何編寫一個可以將圖像分類的演算法呢?計算機視覺研究人員已經提出了一種數據驅動的方法來解決這個問題。研究人員在代碼中不再關心圖像如何表達,而是為計算機提供許多很多圖像(包含每個類別),之後開發學習演算法,讓計算機自己學習這些圖像的特徵,之後根據學到的特徵對圖像進行分類。

鑒於此,完整的圖像分類步驟一般形式如下:

首先,輸入一組訓練圖像數據集;

然後,使用該訓練集訓練一個分類器,該分類器能夠學習每個類別的特徵;

最後,使用測試集來評估分類器的性能,即將預測出的結果與真實類別標記進行比較;

對於圖像分類而言,最受歡迎的方法是卷積神經網路(CNN)。CNN是深度學習中的一種常用方法,其性能遠超一般的機器學習演算法。CNN網路結構基本是由卷積層、池化層以及全連接層組成,其中,卷積層被認為是提取圖像特徵的主要部件,它類似於一個「掃描儀」,通過卷積核與圖像像素矩陣進行卷積運算,每次只「掃描」卷積核大小的尺寸,之後滑動到下一個區域進行相關的運算,這種計算叫作滑動窗口。

從圖中可以看到,輸入圖像送入卷積神經網路中,通過卷積層進行特徵提取,之後通過池化層過濾細節(一般採用最大值池化、平均池化),最後在全連接層進行特徵展開,送入相應的分類器得到其分類結果。

大多數圖像分類演算法都是在ImageNet數據集上訓練的,該數據集由120萬張的圖像組成,涵蓋1000個類別,該數據集也可以稱作改變人工智慧和世界的數據集。ImagNet 數據集讓人們意識到,構建優良數據集的工作是 AI 研究的核心,數據和演算法一樣至關重要。為此,世界組織也舉辦了針對該數據集的挑戰賽——ImageNet挑戰賽。

第一屆ImageNet挑戰賽的第一名是由Alex Krizhevsky(NIPS 2012)獲得,採用的方法是深層卷積神經網路,網路結構如下圖所示。在該模型中,採用了一些技巧,比如最大值池化、線性修正單元激活函數ReLU以及使用GPU模擬計算等,AlexNet模型拉開了深度學習研究的序幕。自從AlexNet網路模型贏得比賽之後,有很多基於CNN的演算法也在ImageNet上取得了特別好的成績,比如ZFNet(2013)、GoogleNet(2014)、VGGNet(2014)、ResNet(2015)以及DenseNet(2016)等。

2.目標檢測

目標檢測通常是從圖像中輸出單個目標的Bounding Box(邊框)以及標籤。比如,在汽車檢測中,必須使用邊框檢測出給定圖像中的所有車輛。

之前在圖像分類任務中大放光彩的CNN同樣也可以應用於此。第一個高效模型是R-CNN(基於區域的卷積神經網路),如下圖所示。在該網路中,首先掃描圖像並使用搜索演算法生成可能區域,之後對每個可能區域運行CNN,最後將每個CNN網路的輸出送入SVM分類器中來對區域進行分類和線性回歸,並用邊框標註目標。

本質上,是將物體檢測轉換成圖像分類問題。但該方法存在一些問題,比如訓練速度慢,耗費內存、預測時間長等。

為了解決上述這些問題,Ross Girshickyou提出Fast R-CNN演算法,從兩個方面提升了檢測速度:1)在給出建議區域之前執行特徵提取,從而只需在整幅圖像上運行一次CNN;2)使用Softmax分類器代替SVM分類器;

雖然Fast R-CNN在速度方面有所提升,然而,選擇搜索演算法仍然需要大量的時間來生成建議區域。為此又提出了Faster R-CNN演算法,該模型提出了候選區域生成網路(RPN),用來代替選擇搜索演算法,將所有內容整合在一個網路中,大大提高了檢測速度和精度。

近年來,目標檢測研究趨勢主要向更快、更有效的檢測系統發展。目前已經有一些其它的方法可供使用,比如YOLO、SSD以及R-FCN等。

3.目標跟蹤

目標跟蹤是指在給定場景中跟蹤感興趣的具體對象或多個對象的過程。簡單來說,給出目標在跟蹤視頻第一幀中的初始狀態(如位置、尺寸),自動估計目標物體在後續幀中的狀態。該技術對自動駕駛汽車等領域顯得至關重要。

根據觀察模型,目標跟蹤可以分為兩類:產生式(generative method)和判別式(discriminative method)。其中,產生式方法主要運用生成模型描述目標的表觀特徵,之後通過搜索候選目標來最小化重構誤差。常用的演算法有稀疏編碼(sparse coding)、主成分分析(PCA)等。與之相對的,判別式方法通過訓練分類器來區分目標和背景,其性能更為穩定,逐漸成為目標跟蹤這一領域的主要研究方法。常用的演算法有堆棧自動編碼器(SAE)、卷積神經網路(CNN)等。

使用SAE方法進行目標跟蹤的最經典深層網路是Deep Learning Tracker(DLT),提出了離線預訓練和在線微調。該方法的主要步驟如下:

先使用棧式自動編碼器(SDAE)在大規模自然圖像數據集上進行無監督離線預訓練來獲得通用的物體表徵能力。

將預訓練網路的編碼部分與分類器相結合組成分類網路,然後利用從初始幀獲得的正、負樣本對網路進行微調,使其可以區分當前對象和背景。在跟蹤過程中,選擇分類網路輸出得分最大的patch作為最終預測目標。

模型更新策略採用限定閾值的方法。

基於CNN完成目標跟蹤的典型演算法是FCNT和MD Net。

FCNT的亮點之一在於對ImageNet上預訓練得到的CNN特徵在目標跟蹤任務上的性能做了深入的分析:

CNN的特徵圖可以用來做跟蹤目標的定位;

CNN的許多特徵圖存在雜訊或者和物體跟蹤區分目標和背景的任務關聯較小;

CNN不同層提取的特徵不一樣。高層特徵更加抽象,擅長區分不同類別的物體,而低層特徵更加關注目標的局部細節。

基於以上觀察,FCNT最終提出了如下圖所示的模型結構:

對於Conv4-3和Con5-3採用VGG網路的結構,選出和當前跟蹤目標最相關的特徵圖通道;

為了避免過擬合,對篩選出的Conv5-3和Conv4-3特徵分別構建捕捉類別信息GNet和SNet;

在第一幀中使用給出的邊框生成熱度圖(heap map)回歸訓練SNet和GNet;

對於每一幀,其預測結果為中心裁剪區域,將其分別輸入GNet和SNet中,得到兩個預測的熱圖,並根據是否有干擾來決定使用哪個熱圖。

區別與FCNT,MD Net使用視頻中所有序列來跟蹤它們的運動。但序列訓練也存在問題,即不同跟蹤序列與跟蹤目標完全不一樣。最終MD Net提出多域的訓練思想,網路結構如下圖所示,該網路分為兩個部分:共享層和分類層。網路結構部分用於提取特徵,最後分類層區分不同的類別。

4.語義分割

計算機視覺的核心是分割過程,它將整個圖像分成像素組,然後對其進行標記和分類。語言分割試圖在語義上理解圖像中每個像素的角色(例如,汽車、摩托車等)。

CNN同樣在此項任務中展現了其優異的性能。典型的方法是FCN,結構如下圖所示。FCN模型輸入一幅圖像後直接在輸出端得到密度預測,即每個像素所屬的類別,從而得到一個端到端的方法來實現圖像語義分割。

與FCN上採樣不同,SegNet將最大池化轉移至解碼器中,改善了分割解析度。提升了內存的使用效率。

還有一些其他的方法,比如全卷積網路、擴展卷積,DeepLab以及RefineNet等。

5.物體分割

物體分割與語義分割有所不同,物體分割不僅需要對圖像中不同的對象進行分類,而且還需要確定它們之間的界限、差異和關係。

CNN在此項任務中同樣表現優異,典型演算法是Mask R-CNN。Mask R-CNN在Faster R-CNN的基礎上添加了一個分支以輸出二元掩膜。該分支與現有的分類和邊框回歸併行,如下圖所示:

Faster-RCNN在物體分割任務中表現不好,為了修正其缺點,Mask R-CNN提出了RolAlign層,通過調整Rolpool來提升精度。從本質上講,RolAlign使用雙線性插值避免了取整誤差,該誤差導致檢測和分割不準確。

一旦掩膜被生成,Mask R-CNN結合分類器和邊框就能產生非常精確的分割:

結論

以上五種計算機視覺技術可以幫助計算機從單個或一系列圖像中提取、分析和理解有用信息。此外,還有很多其它的先進技術等待我們的探索,比如風格轉換、動作識別等。希望本文能夠引導你改變看待這個世界的方式。

-加入人工智慧學院系統學習-

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

人大代呼籲「本土人才」享受「海歸」同等待遇,不應區分對待!
數據科學家必用的25個深度學習的開放數據集!

TAG:AI講堂 |