計算機視覺五大技術

計算機視覺五大技術

計算機視覺五大技術 - 雲+社區 - 騰訊雲

當前計算機視覺是深度學習領域最熱門的研究領域之一。

計算機視覺實際上是一個跨領域的交叉學科,包括計算機科學(圖形、算法、理論、系統、體系結構),數學(信息檢索、機器學習),工程學(機器人、語音、自然語言處理、圖像處理),物理學(光學 ),生物學(神經科學)和心理學(認知科學)等等。許多科學家認爲,計算機視覺爲人工智能的發展開拓了道路。

那麼什麼是計算機視覺呢? 這裏給出了幾個比較嚴謹的定義:

“對圖像中的客觀對象構建明確而有意義的描述”(Ballard&Brown,1982)

“從一個或多個數字圖像中計算三維世界的特性”(Trucco&Verri,1998)

“基於感知圖像做出對客觀對象和場景有用的決策”(Sockman&Shapiro,2001)

爲什麼要學習計算機視覺?

一個顯而易見的答案就是,這個研究領域已經衍生出了一大批快速成長的、有實際作用的應用,例如:

視覺識別是計算機視覺的關鍵組成部分,如圖像分類、定位和檢測。神經網絡和深度學習的最新進展極大地推動了這些最先進的視覺識別系統的發展。在本文中,我將分享 5 種主要的計算機視覺技術,並介紹幾種基於計算機視覺技術的深度學習模型與應用。

1、圖像分類

給定一組各自被標記爲單一類別的圖像,我們對一組新的測試圖像的類別進行預測,並測量預測的準確性結果,這就是圖像分類問題。圖像分類問題需要面臨以下幾個挑戰:

視點變化,尺度變化,類內變化,圖像變形,圖像遮擋,照明條件和背景雜斑

我們怎樣來編寫一個圖像分類算法呢?

計算機視覺研究人員提出了一種基於數據驅動的方法。

該算法並不是直接在代碼中指定每個感興趣的圖像類別,而是爲計算機每個圖像類別都提供許多示例,然後設計一個學習算法,查看這些示例並學習每個類別的視覺外觀。也就是說,首先積累一個帶有標記圖像的訓練集,然後將其輸入到計算機中,由計算機來處理這些數據。

因此,可以按照下面的步驟來分解:

目前較爲流行的圖像分類架構是卷積神經網絡(CNN)——將圖像送入網絡,然後網絡對圖像數據進行分類。卷積神經網絡從輸入“掃描儀”開始,該輸入“掃描儀”也不會一次性解析所有的訓練數據。比如輸入一個大小爲 100*100 的圖像,你也不需要一個有 10,000 個節點的網絡層。相反,你只需要創建一個大小爲 10 *10 的掃描輸入層,掃描圖像的前 10*10 個像素。然後,掃描儀向右移動一個像素,再掃描下一個 10 *10 的像素,這就是滑動窗口。

輸入數據被送入卷積層,而不是普通層。每個節點只需要處理離自己最近的鄰近節點,卷積層也隨着掃描的深入而趨於收縮。除了卷積層之外,通常還會有池化層。池化是過濾細節的一種方法,常見的池化技術是最大池化,它用大小爲 2*2 的矩陣傳遞擁有最多特定屬性的像素。

現在,大部分圖像分類技術都是在 ImageNet 數據集上訓練的, ImageNet 數據集中包含了約 120 萬張高分辨率訓練圖像。測試圖像沒有初始註釋(即沒有分割或標籤),並且算法必須產生標籤來指定圖像中存在哪些對象。

現存的很多計算機視覺算法,都是被來自牛津、 INRIA 和 XRCE 等頂級的計算機視覺團隊在 ImageNet 數據集上實現的。通常來說,計算機視覺系統使用複雜的多級管道,並且,早期階段的算法都是通過優化幾個參數來手動微調的。

第一屆 ImageNet 競賽的獲獎者是 Alex Krizhevsky(NIPS 2012) ,他在 Yann LeCun 開創的神經網絡類型基礎上,設計了一個深度卷積神經網絡。該網絡架構除了一些最大池化層外,還包含 7 個隱藏層,前幾層是卷積層,最後兩層是全連接層。在每個隱藏層內,激活函數爲線性的,要比邏輯單元的訓練速度更快、性能更好。除此之外,當附近的單元有更強的活動時,它還使用競爭性標準化來壓制隱藏活動,這有助於強度的變化。

就硬件要求而言, Alex 在 2 個 Nvidia GTX 580 GPU (速度超過 1000 個快速的小內核)上實現了非常高效的卷積網絡。 GPU 非常適合矩陣間的乘法且有非常高的內存帶寬。這使他能在一週內完成訓練,並在測試時快速的從 10 個塊中組合出結果。如果我們能夠以足夠快的速度傳輸狀態,就可以將網絡分佈在多個內核上。

隨着內核越來越便宜,數據集越來越大,大型神經網絡的速度要比老式計算機視覺系統更快。在這之後,已經有很多種使用卷積神經網絡作爲核心,並取得優秀成果的模型,如 ZFNet(2013),GoogLeNet(2014), VGGNet(2014), RESNET(2015),DenseNet(2016)等。

2、對象檢測

識別圖像中的對象這一任務,通常會涉及到爲各個對象輸出邊界框和標籤。這不同於分類/定位任務——對很多對象進行分類和定位,而不僅僅是對個主體對象進行分類和定位。在對象檢測中,你只有 2 個對象分類類別,即對象邊界框和非對象邊界框。例如,在汽車檢測中,你必須使用邊界框檢測所給定圖像中的所有汽車。

如果使用圖像分類和定位圖像這樣的滑動窗口技術,我們則需要將卷積神經網絡應用於圖像上的很多不同物體上。由於卷積神經網絡會將圖像中的每個物體識別爲對象或背景,因此我們需要在大量的位置和規模上使用卷積神經網絡,但是這需要很大的計算量!

爲了解決這一問題,神經網絡研究人員建議使用區域(region)這一概念,這樣我們就會找到可能包含對象的“斑點”圖像區域,這樣運行速度就會大大提高。第一種模型是基於區域的卷積神經網絡( R-CNN ),其算法原理如下:

實質上,我們將對象檢測轉換爲一個圖像分類問題。但是也存在這些問題:訓練速度慢,需要大量的磁盤空間,推理速度也很慢。

R-CNN 的第一個升級版本是 Fast R-CNN,通過使用了 2 次增強,大大提了檢測速度:

Fast R-CNN 的運行速度要比 R-CNN 快的多,因爲在一幅圖像上它只能訓練一個 CNN 。 但是,擇性搜索算法生成區域提議仍然要花費大量時間。

Faster R-CNN 是基於深度學習對象檢測的一個典型案例。

該算法用一個快速神經網絡代替了運算速度很慢的選擇性搜索算法:通過插入區域提議網絡( RPN ),來預測來自特徵的建議。 RPN 決定查看“哪裏”,這樣可以減少整個推理過程的計算量。

RPN 快速且高效地掃描每一個位置,來評估在給定的區域內是否需要作進一步處理,其實現方式如下:通過輸出 k 個邊界框建議,每個邊界框建議都有 2 個值——代表每個位置包含目標對象和不包含目標對象的概率。

一旦我們有了區域建議,就直接將它們送入 Fast R-CNN 。 並且,我們還添加了一個池化層、一些全連接層、一個 softmax 分類層以及一個邊界框迴歸器。

總之,Faster R-CNN 的速度和準確度更高。值得注意的是,雖然以後的模型在提高檢測速度方面做了很多工作,但很少有模型能夠大幅度的超越 Faster R-CNN 。換句話說, Faster R-CNN 可能不是最簡單或最快速的目標檢測方法,但仍然是性能最好的方法之一。

近年來,主要的目標檢測算法已經轉向更快、更高效的檢測系統。這種趨勢在 You Only Look Once(YOLO),Single Shot MultiBox Detector(SSD)和基於區域的全卷積網絡( R-FCN )算法中尤爲明顯,這三種算法轉向在整個圖像上共享計算。因此,這三種算法和上述的3種造價較高的R-CNN 技術有所不同。

3、目標跟蹤

目標跟蹤,是指在特定場景跟蹤某一個或多個特定感興趣對象的過程。傳統的應用就是視頻和真實世界的交互,在檢測到初始對象之後進行觀察。現在,目標跟蹤在無人駕駛領域也很重要,例如 Uber 和特斯拉等公司的無人駕駛。

根據觀察模型,目標跟蹤算法可分成 2 類:生成算法和判別算法。

爲了通過檢測實現跟蹤,我們檢測所有幀的候選對象,並使用深度學習從候選對象中識別想要的對象。有兩種可以使用的基本網絡模型:堆疊自動編碼器( SAE )和卷積神經網絡( CNN )。

目前,最流行的使用 SAE 進行目標跟蹤的網絡是 Deep Learning Tracker(DLT),它使用了離線預訓練和在線微調。其過程如下:

鑑於 CNN 在圖像分類和目標檢測方面的優勢,它已成爲計算機視覺和視覺跟蹤的主流深度模型。 一般來說,大規模的卷積神經網絡既可以作爲分類器和跟蹤器來訓練。具有代表性的基於卷積神經網絡的跟蹤算法有全卷積網絡跟蹤器( FCNT )和多域卷積神經網絡( MD Net )。

FCNT 充分分析並利用了 VGG 模型中的特徵映射,這是一種預先訓練好的 ImageNet 數據集,並有如下效果:

因此, FCNT 設計了特徵選擇網絡,在 VGG 網絡的卷積 4-3 和卷積 5-3 層上選擇最相關的特徵映射。 然後爲避免噪音的過擬合, FCNT 還爲這兩個層的選擇特徵映射單獨設計了兩個額外的通道(即 SNet 和 GNet ): GNet 捕獲對象的類別信息; SNet 將該對象從具有相似外觀的背景中區分出來。

這兩個網絡的運作流程如下:都使用第一幀中給定的邊界框進行初始化,以獲取對象的映射。而對於新的幀,對其進行剪切並傳輸最後一幀中的感興趣區域,該感興趣區域是以目標對象爲中心。最後,通過 SNet 和 GNet ,分類器得到兩個預測熱映射,而跟蹤器根據是否存在干擾信息,來決定使用哪張熱映射生成的跟蹤結果。 FCNT 的圖如下所示。

與 FCNT 的思路不同, MD Net 使用視頻的所有序列來跟蹤對象的移動。上述網絡使用不相關的圖像數據來減少跟蹤數據的訓練需求,並且這種想法與跟蹤有一些偏差。該視頻中的一個類的對象可以是另一個視頻中的背景,因此, MD Net 提出了“多域”這一概念,它能夠在每個域中獨立的區分對象和背景,而一個域表示一組包含相同類型對象的視頻。

如下圖所示, MD Net 可分爲兩個部分,即 K 個特定目標分支層和共享層:每個分支包含一個具有 softmax 損失的二進制分類層,用於區分每個域中的對象和背景;共享層與所有域共享,以保證通用表示。

近年來,深度學習研究人員嘗試使用了不同的方法來適應視覺跟蹤任務的特徵,並且已經探索了很多方法:

4、語義分割

計算機視覺的核心是分割,它將整個圖像分成一個個像素組,然後對其進行標記和分類。特別地,語義分割試圖在語義上理解圖像中每個像素的角色(比如,識別它是汽車、摩托車還是其他的類別)。如上圖所示,除了識別人、道路、汽車、樹木等之外,我們還必須確定每個物體的邊界。因此,與分類不同,我們需要用模型對密集的像素進行預測。

與其他計算機視覺任務一樣,卷積神經網絡在分割任務上取得了巨大成功。最流行的原始方法之一是通過滑動窗口進行塊分類,利用每個像素周圍的圖像塊,對每個像素分別進行分類。但是其計算效率非常低,因爲我們不能在重疊塊之間重用共享特徵。

解決方案就是加州大學伯克利分校提出的全卷積網絡( FCN ),它提出了端到端的卷積神經網絡體系結構,在沒有任何全連接層的情況下進行密集預測。

這種方法允許針對任何尺寸的圖像生成分割映射,並且比塊分類算法快得多,幾乎後續所有的語義分割算法都採用了這種範式。

但是,這也仍然存在一個問題:在原始圖像分辨率上進行卷積運算非常昂貴。爲了解決這個問題, FCN 在網絡內部使用了下采樣和上採樣:下采樣層被稱爲條紋卷積( striped convolution );而上採樣層被稱爲反捲積( transposed convolution )。

儘管採用了上採樣和下采樣層,但由於池化期間的信息丟失, FCN 會生成比較粗糙的分割映射。SegNet 是一種比 FCN (使用最大池化和編碼解碼框架)更高效的內存架構。在 SegNet 解碼技術中,從更高分辨率的特徵映射中引入了 shortcut/skip connections ,以改善上採樣和下采樣後的粗糙分割映射。

目前的語義分割研究都依賴於完全卷積網絡,如空洞卷積 ( Dilated Convolutions ),DeepLab 和 RefineNet 。

5、實例分割

除了語義分割之外,實例分割將不同類型的實例進行分類,比如用 5 種不同顏色來標記 5 輛汽車。分類任務通常來說就是識別出包含單個對象的圖像是什麼,但在分割實例時,我們需要執行更復雜的任務。我們會看到多個重疊物體和不同背景的複雜景象,我們不僅需要將這些不同的對象進行分類,而且還要確定對象的邊界、差異和彼此之間的關係!

到目前爲止,我們已經看到了如何以多種有趣的方式使用卷積神經網絡的特徵,通過邊界框有效定位圖像中的不同對象。我們可以將這種技術進行擴展嗎?也就是說,對每個對象的精確像素進行定位,而不僅僅是用邊界框進行定位? Facebook AI 則使用了 Mask R-CNN 架構對實例分割問題進行了探索。

就像 Fast R-CNN 和 Faster R-CNN 一樣, Mask R-CNN 的底層是鑑於 Faster R-CNN 在物體檢測方面效果很好,我們是否可以將其擴展到像素級分割?

Mask R-CNN 通過向 Faster R-CNN 添加一個分支來進行像素級分割,該分支輸出一個二進制掩碼,該掩碼錶示給定像素是否爲目標對象的一部分:該分支是基於卷積神經網絡特徵映射的全卷積網絡。將給定的卷積神經網絡特徵映射作爲輸入,輸出爲一個矩陣,其中像素屬於該對象的所有位置用 1 表示,其他位置則用 0 表示,這就是二進制掩碼。

另外,當在原始 Faster R-CNN 架構上運行且沒有做任何修改時,感興趣池化區域( RoIPool ) 選擇的特徵映射區域或原始圖像的區域稍微錯開。由於圖像分割具有像素級特性,這與邊界框不同,自然會導致結果不準確。 Mas R-CNN 通過調整 RoIPool 來解決這個問題,使用感興趣區域對齊( Roialign )方法使其變的更精確。本質上, RoIlign 使用雙線性插值來避免舍入誤差,這會導致檢測和分割不準確。

一旦生成這些掩碼, Mask R-CNN 將 RoIAlign 與來自 Faster R-CNN 的分類和邊界框相結合,以便進行精確的分割:

結語

上述這 5 種主要的計算機視覺技術可以協助計算機從單個或一系列圖像中提取、分析和理解有用的信息。通過 GitHub 存儲庫(https://github.com/khanhnamle1994/computer-vision)獲取所有的演講幻燈片以及指南。

原文鏈接 https://heartbeat.fritz.ai/the-5-computer-vision-techniques-that-will-change-how-you-see-the-world-1ee19334354b

關鍵詞:計算機視覺、圖像分類、對象檢測、目標跟蹤、語義分割、實例分割

  • 發表於:
  • 原文鏈接:https://kuaibao.qq.com/s/20181024A0WV8C00?refer=cp_1026
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章