深度學習在計算機視覺各項任務中的應用
本文轉載自數學與人工智慧
Mask-RCNN進行物件檢測和例項分割
現在,只有一個問題:如何設計你的模型呢?
計算機視覺是一個廣泛而複雜的領域,解決方案並沒有那麼清晰。CV中的許多標準任務也需要特殊的考慮:分類,檢測,分割,姿態估計、影像增強和復原等等。雖然,用於這些任務的最先進的網路都具有共同的模式,但是它們仍然需要自己的獨特設計。
那麼該怎麼為不同的任務建立模型呢?讓我們一起來看看如何用深度學習完成這些計算機視覺任務。
Classification
分類是所有視覺任務中最知名的。影像分類網路以固定大小的影像作為輸入。輸入影像可以具有任意數量的通道,但對於RGB影像通常為3。當我們設計網路的時候,影像解析度在理論上可以是任何大小,只要它能夠支援我們在整個網路中執行的下采樣量。
比如說,如果我們進行4次下采樣,那麼我們輸入影像的解析度最少得24 = 16 x 16
隨著網路的深入,我們試圖將所有資訊壓縮並用一維向量表示,這時空間解析度會降低。為了保證網路能夠始終擁有持續提取所有資訊的能力,將按比例地增加特徵圖的數量以適應解析度的降低。即在下采樣過程中我們會損失空間資訊,為了適應這種損失,擴充套件特徵圖來增加語義資訊。
在進行了了一定數量的下采樣後,將特徵展開為1維向量,並饋入一系列全連線層。最後一層輸出資料集的分類。
Object Detection
物體檢測器有兩種型別:one-stage和two-stage.
兩種型別都始於anchor boxes,這些是預設的邊界框。檢測器是去學習這些候選區域和真實區域之間的差異,而不是直接預測邊框。
在two-stage 檢測器中,通常會有兩個網路:候選區域提取網路(box proposal network)和分類網路(classification network)。box proposal network提取它認為物體最可能出現的區域的座標。這些是和anchor box關聯起來的。分類網路獲取每個邊界框,並對其中的物體進行分類。
在one-stage檢測器中,提取和分類網路融入同一個階段中。該網路直接預測邊界框座標和分類物體。因為兩部分被融在一起,one-stage檢測器執行速度比two-stage檢測器執行速度更快。當然,因為兩個任務分別進行,two-stage檢測器擁有更高的精確度。
Faster-RCNN two-stage物體檢測器結構
SSD one-stage物體檢測器結構
Segmentation
分割在視覺任務中有些特殊,因為用於影像分割的網路需要同時學習低層級和高層級的資訊。低層級資訊用於按照畫素,準確分割影像中的每塊區域和物體,高層級資訊直接用於分類這些畫素。這使得網路設計要結合來自模型底層(對應著低層級的空間資訊)和高層(對應著高層級的語義資訊)的資訊。
下面,我們首先將影像輸入一個分類網路。然後,從網路的每一級提取特徵,得到從低層到高層的資訊。每級資訊在結合之前都是獨立處理的。在融合所有資訊的時候,我們對特徵圖進行上取樣以得到與輸入影像解析度一致的特徵圖。
GCN 分割結構
Pose Estimation
姿態估計模型需要完成兩個任務:(1)檢測影像中身體部分的關鍵點 (2)將這些關鍵點正確的連線。
完成這分為三個部分:
1、用標準的分類網路提取影像中的特徵;
2、基於這些特徵,訓練一個子網路來預測一組2D熱圖。每一組熱圖都與特定關鍵點關聯並且包含了關鍵點是否存在於影像的置信度;
3、還是基於分類網路提取到的特徵,我們訓練一個子網路來預測一組2D向量場,其中每個向量場編碼關鍵點之間的關聯程度。有高關聯度的關鍵點則是相互連通的。
將子網路與模型一起訓練,使得關鍵點檢測和連線同時進行最佳化。
OpenPose姿態估計架構
Enhancement and Restoration
影像增強和復原是很獨特的。我們不對它們做任何下采樣,因為我們真正關心的是細節的準確度。下采樣會完全丟失這些資訊,因為它會減少大量畫素。相反的,所有處理過程都是在影像完整解析度下進行的。
輸入我們想要增強或者恢復的影像到網路中,沒有任何修改,保證完整的解析度。網路簡單地由許多卷積和啟用函式組成。這些模組通常來自於影像分類使用的模組,例如Residual Blocks、Dense Blocks、Squeeze Excitation Blocks等等。
最後一層沒有任何啟用函式,甚至沒有sigmoid或者softmax函式,因為我們想直接預測影像畫素,不需要任何機率。
上述就是這類網路的全部內容。在影像的全解析度下進行大量的處理來獲得高空間精度,這種方式也可以用於其他任務中。
EDSR Super-Resolution 架構
Action Recognition
動作識別是少數幾個需要影片資料才能較好執行的應用之一。要對動作進行分類,我們需要了解隨時間變化的場景,這自然需要影片資料。
我們要訓練網路學習空間(spatial)和時間(temporal)資訊,即時間和空間上的變化。解決這個問題最好的一個模型是3D CNN。
一個3D CNN,顧名思義,使用3D卷積的卷積網路!和一般CNNs的差別在於,3D CNN的卷積應用於3個維度:寬度、高度、還有時間。
因此,輸出的每一個畫素的預測計算不僅基於它周圍的畫素,同時也基於前一幀和後一幀相同位置上的畫素。
直接輸入大批次影像
影片幀可以透過許多方式傳遞:
(1)直接大批次傳遞,就像上圖所示。因為我們傳遞的是有序列的幀,所以空間和時間資訊都可以得到。
單幀+光流(左)+光流(右)
(2)還可以在一個流中傳遞單個影像幀(資料的空間資訊)和來自影片的對應光流(資料的時間資訊)。我們將使用常規的2D CNN來提取特徵,然後傳遞到結合了兩種型別資訊的3D CNN。
(3)將幀序列輸入到一個3D CNN,將影片的光流輸入到另一個3D CNN。這兩種資料流都能具有可用的空間和時間資訊。這會是三種方法中最慢的一種,但是也是最準確的,因為對影片的兩種不同表示進行處理,它們包含了所有的資訊。
上述的網路都會輸出影片的動作分類。
深研資料
原文連結:
影像分割:
增強和復原
Residual Blocks:
Dense Blocks:
Squeeze Excitation Blocks:
3D CNN:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562045/viewspace-2564567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 計算機視覺中的深度學習計算機視覺深度學習
- 計算機視覺與深度學習應用關係計算機視覺深度學習
- 計算機視覺應用:深度學習的力量和侷限性計算機視覺深度學習
- 淺談深度學習的技術原理及其在計算機視覺的應用深度學習計算機視覺
- 超全!深度學習在計算機視覺領域應用一覽(附連結)深度學習計算機視覺
- 如何理解神經網路空間,深度學習在計算機視覺中的應用有哪些?神經網路深度學習計算機視覺
- 【計算機視覺】利用GAN Prior來處理各種視覺任務計算機視覺
- 計算機視覺與深度學習公司計算機視覺深度學習
- 深度學習模型在序列標註任務中的應用深度學習模型
- 深度學習在視覺搜尋和匹配中的應用深度學習視覺
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 基於深度學習的計算機視覺應用之目標檢測深度學習計算機視覺
- 8個計算機視覺深度學習中常見的Bug計算機視覺深度學習
- 計算機視覺經典任務分類計算機視覺
- HuggingFace在NLP和計算機視覺中的應用 - Reddit計算機視覺
- 一文讀懂計算機視覺中的深度域適應計算機視覺
- 【深度學習】:一門入門3D計算機視覺深度學習3D計算機視覺
- 深度學習在OC中的應用深度學習
- 計算機視覺技術在物聯網中的發展與應用計算機視覺
- 數學在計算機圖形學中的應用計算機
- 後深度學習時代,計算機視覺技術如何走向未來?深度學習計算機視覺
- 計算機視覺與深度學習,看這本書就夠了計算機視覺深度學習
- 機器視覺軟體中的深度學習技術視覺深度學習
- 計算機視覺實戰的深度學習實戰二:影像預處理計算機視覺深度學習
- [深度學習] 計算機視覺低程式碼工具Supervision庫使用指北深度學習計算機視覺
- AI在汽車中的應用:實用深度學習AI深度學習
- 機器視覺應用例項視覺
- 【AI in 美團】深度學習在OCR中的應用AI深度學習
- 簡述遷移學習在深度學習中的應用遷移學習深度學習
- 從特徵描述符到深度學習:計算機視覺發展20年特徵深度學習計算機視覺
- 情感計算是人機互動核心?談深度學習在情感分析中的應用深度學習
- 拜讀為什麼深度學習幾乎成了計算機視覺研究的標配深度學習計算機視覺
- 來了解下計算機視覺的八大應用計算機視覺
- 計算機視覺2-> 深度學習 | anaconda+cuda+pytorch環境配置計算機視覺深度學習PyTorch
- [雪峰磁針石部落格]python計算機視覺深度學習1簡介Python計算機視覺深度學習
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 深度學習/計算機視覺常見的8個錯誤總結及避坑指南深度學習計算機視覺
- 乾貨 | 深度學習在文字分類中的應用深度學習文字分類