天天看點

萬物皆可“計算機視覺”

萬物皆可“計算機視覺”

本文為 AI 研習社編譯的技術部落格,原标題 :

How to do everything in Computer Vision

作者 | George Seif

翻譯 | chesc、Disillusion、Ophria

校對 | 鄧普斯•傑弗      稽核 | Lam-W     整理 | 鳳梨妹

原文連結:

https://towardsdatascience.com/how-to-do-everything-in-computer-vision-2b442c469928

萬物皆可“計算機視覺”

Mask-RCNN進行目标檢測和執行個體分割

想做計算機視覺?深度學習是最近的發展方向。大規模資料集加上深度卷積神經網絡(CNNs)的表征能力使得超精确和穩健的模型成為可能。現在隻剩下一個挑戰:如何設計你的模型。

由于計算機視覺領域廣泛而複雜,是以解決方案并不總是很清晰。計算機視覺中的許多标準任務都需要特别考慮:分類,檢測,分割,姿态估計,增強和恢複,動作識别。盡管用于每個任務的最先進的網絡表現出共同的模式,但他們都需要自己獨特的設計風格。

那麼我們如何為所有這些不同的任務建立模型呢?

讓我來告訴你如何用深度學習在計算機視覺中做所有事情!

  分類

所有任務中最為人所知的!圖像分類網絡以固定尺寸的輸入開始。輸入圖像可以具有任意數量的通道,但對于RGB圖像通常為3。在設計網絡時,分辨率在技術上可以是任何尺寸,隻要它足夠大以支援你将在整個網絡中執行的下采樣數量。例如,如果您在網絡中進行4次下采樣,那麼您的輸入尺寸需要至少為 4² = 16 x 16 像素。

當你進入網絡更深層時,空間分辨率将會降低,就像我們盡力擠壓所有資訊并降低到一維向量表示。為了確定網絡始終具有繼承其提取的所有資訊的能力,我們根據深度按比例增加特征圖的數量以适應空間分辨率的降低。也就是說,我們在下采樣過程中丢失了空間資訊,為了适應損失,我們擴充了我們的特征圖以增加我們的語義資訊。

在你選擇了一定數量的下采樣後,特征圖會被矢量化并送入一系列全連接配接層。最後一層的輸出與資料集中的類一樣多。

萬物皆可“計算機視覺”

  目标檢測

目标檢測器有兩種形式:單階段和兩階段。它們兩者都以“錨框”開始;這些是預設的邊界框。我們的檢測器将預測這些方框與邊界框真值之間的差異,而不是直接預測方框。

在兩階段檢測器中,我們自然有兩個網絡:一個框提議網絡和一個分類網絡。框提議網絡得到了邊界框的坐标,它認為目标在這裡的可能性很大;再次提醒,這些坐标都是相對于錨框的。然後,分類網絡擷取每個邊界框并對其中的潛在物體進行分類。

在單階段檢測器中,提議和分類器網絡被融合到一個單獨的階段中。網絡直接預測邊界框坐标和在該框内物體的類别。因為兩個階段融合在一起,是以單階段檢測器往往比兩階段更快。但是由于兩個任務的分離,兩階段檢測器具有更高的精度。

萬物皆可“計算機視覺”

Faster-RCNN 兩階段目标檢測架構

萬物皆可“計算機視覺”

SSD 一階段目标檢測架構

  分割

分割是計算機視覺中更獨特的任務之一,因為網絡需要學習低級和進階資訊。低級資訊通過像素精确地分割圖像中的每個區域和物體,而進階資訊用于直接對這些像素進行分類。這就需要将網絡設計成結合低級資訊和進階資訊的結構,其中低級空間資訊來自于前面層且是高分辨率的,進階語義資訊來自于較深層且是低分辨率的。

正如我們在下面看到的,我們首先在标準分類網絡上運作我們的圖像。然後,我們從網絡的每個階段提取特征,進而使用從低到高的級别内的資訊。每個級别的資訊都是獨立處理的,然後依次将它們組合在一起。在組合資訊時,我們對特征圖進行上采樣以最終獲得完整的圖像分辨率。

要了解更多有關如何用深度學習進行分割的詳細資訊,請檢視此文章。

萬物皆可“計算機視覺”

GCN分割架構

  姿态估計

姿态估計模型需要完成兩個任務:(1)檢測每個身體部位圖像中的關鍵點(2)找出如何正确連接配接這些關鍵點的方式。這分為三個階段:

1、使用标準分類網絡從圖像中提取特征

2、鑒于這些特點,訓練一個子網絡來預測一組2D熱力圖。每張熱力圖都與一個特定的關鍵點相關聯,并且包含每個圖像像素是否可能存在關鍵點的置信值。

3、再次給出分類網絡的特征,我們訓練一個子網絡來預測一組2D向量場,其中每個向量場編碼關鍵點之間的關聯度。具有高度關聯性的關鍵點就稱其為連接配接的。

以這種方式訓練模型與子網絡将共同優化檢測關鍵點并将它們連接配接在一起。

萬物皆可“計算機視覺”

開放式姿态估計體系結構

  增強和恢複

增強和恢複網絡是它們自己的獨特之處。因為我們真正關心的是高像素/空間精度,是以我們不會對這些進行任何降采樣。降采樣真的會殺死這些資訊,因為它會減少我們空間精度的許多像素。相反,所有的處理都是在完整的圖像分辨率下完成的。

我們首先将要增強/恢複的圖像以全解析度傳遞到我們的網絡,而不進行任何修正。網絡僅僅由一堆卷積和激活函數組成。這些塊通常是最初為圖像分類而開發的那些塊的靈感,有時是直接副本,例如殘餘塊、密集塊、擠壓激勵塊等。由于我們希望直接預測圖像像素,不需要任何的機率或分數,是以在最後一層上沒有激活功能,甚至沒有sigmoid或softmax。。

這就是所有這些類型的網絡!在圖像的全解析度下進行大量的處理,以獲得高空間精度,這些使用已經證明與其他任務相同的卷積。

萬物皆可“計算機視覺”

EDSR超分辨率架構

  行為識别

動作識别是少數幾個需要視訊資料才能正常工作的應用之一。要對一個動作進行分類,我們需要知道随着時間的推移場景發生的變化;這導緻我們需要視訊。是以我們的網絡必須訓練以學習空間和時間資訊。也就是空間和時間的變化。最适合的網絡是3D-CNN。

3D- CNN,顧名思義,就是一個使用3D卷積的卷積網絡!它們不同于正常CNN的地方在于其卷積應用于三維空間:寬度、高度和時間。是以,每個輸出像素都是基于它周圍的像素和相同位置上的前幀和後幀中的像素進行計算預測的!

萬物皆可“計算機視覺”

直接進行圖像的批量傳遞

視訊幀可以通過以下幾種方式傳遞:

(1)直接以大批量,如圖1所示。由于我們正在傳遞一組序列幀,是以空間和時間資訊都是可用的

萬物皆可“計算機視覺”

單幀+光流(左)。視訊+光流(右)

(2)我們還可以在一個流(資料的空間資訊)中傳遞單個圖像幀,并從視訊(資料的時間資訊)中傳遞其相應的光流表示。我們将使用正常的2D CNNs從兩者中提取特征,然後将它們組合起來傳遞給我們的3D CNN,它将組合這兩種類型的資訊

(3)将我們的幀序列傳遞給一個3D CNN,将視訊的光流表示傳遞給另一個3D CNN。這兩個資料流都有可用的空間和時間資訊。這可能是最慢的選項,但同時也可能是最準确的選項,因為我們正在對視訊的兩個不同表示進行特定的處理,這兩個表示都包含所有資訊。

所有這些網絡都輸出視訊的動作分類。

想要繼續檢視該篇文章相關連結和參考文獻?

長按連結點選打開或點選【萬物皆可“計算機視覺”】:

https://ai.yanxishe.com/page/TextTranslation/1358

AI研習社每日更新精彩内容,觀看更多精彩内容:雷鋒網雷鋒網雷鋒網(公衆号:雷鋒網)

命名實體識别(NER)綜述

傑出資料科學家的關鍵技能是什麼?

初學者怎樣使用Keras進行遷移學習

如果你想學資料科學,這 7 類資源千萬不能錯過

等你來譯:

深度學習目标檢測算法綜述

一文教你如何用PyTorch建構 Faster RCNN

進階DQNs:利用深度強化學習玩吃豆人遊戲

用于深度強化學習的結構化控制網絡 (ICML 論文講解)

繼續閱讀