當前位置:
首頁 > 新聞 > 三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

CNN 遠遠不止於處理分類問題。

這篇文章中,我們會一起來看在圖像實例分割領域,CNN 的發展簡史:它可被如何使用,以得到驚人的結果。

據雷鋒網了解,在 2012 年,Alex Krizhevsky, Geoff Hinton, and Ilya Sutskever 贏得 ImageNet 挑戰賽堪稱是 CNN 發展史上的里程碑,自那之後,CNN 就成了圖像分類的黃金標準,並且性能不斷提升。現在,它已經在 ImageNet 挑戰賽上有了超人類的表現。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

自 2015 年起,CNN 在 ImageNet 的錯誤率已低於人類

雖然這很令人激動,但相比人類高度複雜、多樣化的視覺理解系統,圖像識別要簡單得多。

在圖像識別任務中,一般圖中央僅有一個需要識別的物體,而任務便是判斷該圖像是什麼。但當我們用眼睛觀察周圍的世界時,我們進行的是遠遠更複雜的任務。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

我們眼中的視野高度複雜,有許多個重疊、相互遮擋的物體,有不同的背景;我們的大腦不僅對這些物體進行分類,還會識別它們的邊緣輪廓、差異、以及相互之間的關係。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

問題來了:CNN 是否「 hold 住」這樣複雜的任務?換句話說,給定一個十分複雜的圖像,我們是否能用 CNN 來識別其中的不同物體、它們的邊緣輪廓?正如 Ross Girshick 和他的同事最近幾年的研究所展示:這是完全可以實現的。

內容簡介

本文將講述基於 CNN 的物體檢測、分割主流技術背後的直覺性思路,並看看它們是如何從一種執行方式進化到另一種。其中,我們將覆蓋 R-CNN (Regional CNN)、該類問題的最初 CNN 解決方案、 Fast R-CNN 以及 Faster R-CNN 等話題。文末將討論 Facebook 研究團隊最近搞出來的 Mask R-CNN,它把物體檢測技術拓展到提供像素級別的分割。

這是本文涉及的論文:

R-CNN: https://arxiv.org/abs/1311.2524

Fast R-CNN: https://arxiv.org/abs/1504.08083

Faster R-CNN: https://arxiv.org/abs/1506.01497

Mask R-CNN: https://arxiv.org/abs/1703.06870

2014: R-CNN

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

R-CNN 是將 CNN 用於物體檢測的早期應用。

受到深度學習之父 Geoffrey Hinton 實驗室研究的啟發,加州伯克利教授 Jitendra Malik 帶領的一隻小團隊提出了一個今天看來無可迴避的問題:


在什麼程度上 Krizhevsky et. al 的研究結果可泛化到物體識別?

如同其名稱,物體識別是在圖像中找出不同物體、並對其分類的任務(如上圖)。該團隊包括 Ross Girshick、Jeff Donahue 和 Trevor Darrel,他們發現該問題可通過在 PASCAL VOC 挑戰上進行測試,用 Krizhevsky 的結果來解決。PASCAL VOC 是一個類似於 ImageNet 的流行物體識別挑戰。

他們寫到:


該論文首次展示出,與更簡單的、基於 HOG 特徵的其他系統相比, CNN 在 PASCAL VOC 上有非常優越的物體識別表現。

現在,我們來看一看他們的架構,Regions With CNNs (R-CNN) ,是如何工作的。

理解 R-CNN

R-CNN 的目標是:導入一張圖片,通過方框正確識別主要物體在圖像的哪個地方。


輸入:圖像

輸出:方框+每個物體的標籤

但怎麼知道這些方框應該在哪裡呢?R-CNN 的處理方式,和我們直覺性的方式很像——在圖像中搞出一大堆方框,看看是否有任何一個與某個物體重疊。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

生成這些邊框、或者說是推薦局域,R-CNN 採用的是一項名為 Selective Search 的流程。在高層級,Selective Search(如上圖)通過不同尺寸的窗口來查看圖像。對於每一個尺寸,它通過紋理、色彩或密度把相鄰像素劃為一組,來進行物體識別。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

如上圖,當邊框方案生成之後,R-CNN 把選取區域變形為標準的方形,並將之餵給改良版的 AlexNet(ImageNet 2012 的冠軍方案,它啟發了R-CNN )。

在 CNN 的最後一層,R-CNN 加入了一個支持向量機,它要做的事很簡單:對這是否是一個物體進行分類,如果是,是什麼物體。這便是上圖中的第四步。

對邊框進行改進

現在,既然已經找到了方框中的物體,我們是否能縮小邊框,讓它更符合物體的三維尺寸?答案是肯定的,這是 R-CNN 的最後一步。R-CNN 在推薦區域上運行一個簡單的線性回歸,生成更緊的邊框坐標以得到最終結果。

這是該回歸模型的輸入和輸出:


輸入:對應物體的圖像子區域

輸出:針對該物體的新邊框系統

概括下來,R-CNN 只是以下這幾個步驟:


生成對邊框的推薦

在預訓練的 AlexNet 上運行方框里的物體。用支持向量機來看邊框里的物體是什麼。

在線性回歸模型上跑該邊框,在物體分類之後輸出更緊的邊框的坐標。

2015: Fast R-CNN

它加速、簡化了 R-CNN。

R-CNN 的效果非常好,但出於以下幾個原因,它運行起來特別慢:

  • 對於每一個圖像的每一個推薦區域,它都需要一個 CNN (AlexNet) 的 forward pass。這意味著每個圖像就需要約 2000 個 forward pass。

  • 它必須分來訓練三個不同的模型——生成圖像特徵的 CNN,預測類別的分類器以及收緊邊框的回歸模型。這使得訓練流水線變得特別困難。

在 2015 年,R-CNN 的第一作者 Ross Girshick 解決了上述兩個問題,導致了本簡史中第二個演算法的誕生: Fast R-CNN

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

Ross Girshick

Fast R-CNN 特性

1. RoI (Region of Interest) Pooling

對於 CNN 的 forward pass,Girshick 意識到對於每個圖像,許多推薦區域會不可避免的重疊,同樣的 CNN 運算會一遍遍重複 (~2000 次)。他的思路很簡單:為什麼不能在每一個圖像上只運行一次 CNN,並找到一種在 ~2000 個推薦里共享計算的方式?

藉助名為 RoIPool 的技術,Fast R-CNN 實現了該思路。在其核心,RoIPool 會對圖像的所有子區域共享 CNN 的forward pass。上圖便是示例,注意每個區域的 CNN 特徵,是怎麼通過選擇 CNN 特徵圖的相應區域來獲取的。然後,每個區域的特徵被池化(「pooled」,通常使用 max pooling)。因此原始圖像只需要計算一遍,而不是 2000 遍。

2. 把不同模型整合為一個網路

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

第二項特性是在一個模型里聯合訓練 CNN、分類器和邊框回歸量。而此前,提取圖像特徵要用 CNN,分類要用支持向量機,收緊邊框要用回歸。Fast R-CNN 用一個單個的網路完成這三項任務。

至於這是如何實現的,請看上圖。Fast R-CNN 在 CNN 之上添加一個 softmax 層輸出分類,來代替支持向量機。添加一個與 softmax 平行的線性回歸層,來輸出邊框坐標。這種方式,所有需要輸出都通過單個神經網路得到。這是模型整體的輸入和輸出:


輸入:有區域推薦的圖像

輸出:每個區域的物體識別,收緊的邊框

2016:Faster R-CNN

名字很直白,它加速了選區推薦。

即便有上文所提到的優點,Fast R-CNN 仍然有一個重大瓶頸:選區推薦器。正如我們看到的,檢測物體位置的第一步,是生成一系列候選邊框來進行測試。雷鋒網了解到,在 Fast R-CNN 里,這些推薦通過 Selective Search 生成。後者是一個相當慢的過程,成為系統整體的瓶頸。

在 2015 年,微軟的孫劍、任少卿、何凱明、Ross Girshick 找到了一個讓推薦步驟幾乎不需要成本的辦法,這通過被他們稱之為 Faster R-CNN 的架構來實現。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

孫劍

Faster R-CNN 背後的思路是:既然選區推薦取決於 CNN forward pass 已經計算出來的圖像特徵,那麼,為什麼不對區域推薦重複利用這些 CNN 結果,來代替運行一個單獨的 selective search 演算法?

這便是 Faster R-CNN 更快的原因。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

上圖中,你可以看到單個 CNN 是如何同時進行選區推薦和分類。利用這種方式,只有一個 CNN 需要被訓練,我們也幾乎免費得到了選區推薦。作者們寫到:


「我們的觀察是:基於區域的檢測器所使用的卷積特徵圖,比如 Faster R-CNN,也能被用來生成選區推薦。」

這是模型的輸入和輸出:


輸入:圖像(選區推薦並不需要)

輸出:分類、圖中物體的邊框坐標。

選區是如何生成的

我們一起多花幾分鐘,看看 Faster R-CNN 是如何從 CNN 特徵里生成選區推薦的。Faster R-CNN 在 CNN 特徵之上添加了完全卷積網路(Fully Convolutional Network ),以生成 Region Proposal Network。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

Region Proposal Network 通過在 CNN 特徵圖上傳遞滑窗(sliding window)來運作,在每個窗口輸出 K 潛在邊框和對每個邊框的評估分值。這些 K 邊框代表了什麼呢?

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

直覺上,我們知道圖像中的物體應該符合特定的常用長寬比例和尺寸,比如類似於人體形狀的矩形選框。類似的,我們知道很窄的選框並不會太多。於是我們創造出 anchor boxes ——K 常用長寬比例,對於每一個 anchor boxe,我們輸出選框以及圖像中的每個位置的分值。

有了這些 anchor boxes,我們看看 Region Proposal Network 的輸入、輸出。


輸入: CNN 特徵圖

輸出:每個 anchor 對應一個選框。一個分值,用來表示選框內圖像是否為物體。

之後把每個可能是物體的選框導入 Fast R-CNN,生成分類和收緊的選框。

2017: Mask R-CNN

把 Faster R-CNN 拓展到像素級的圖像分割。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

到現在,我們已經看到了多種利用 CNN 特徵、利用選框來鎖定圖像中不同物體的有趣方式。我們是否能夠將這些技術進一步,去定位物體的每一個像素呢?

該問題便是圖像分割(image segmentation)。對此,Facebook AI 的何凱明、Girshick 等研究人員開發出了一個名為 Mask R-CNN 的架構。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

與 Fast R-CNN、Faster R-CNN 一樣,Mask R-CNN 的底層邏輯也很直接:Faster R-CNN 對物體識別效果這麼好,我們能夠將之擴展到像素級別的分割?

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

Mask R-CNN 通過向 Faster R-CNN 加入一個分支來實現這一點,該分支輸出一個二元的 mask,指示某像素是否是物體的一部分。這分支(圖中白色部分)說白了就是一個 CNN 特徵圖上的全卷積網路。這是它的輸入、輸出:


輸入:CNN 特徵圖

輸出:矩陣,屬於物體的像素在矩陣內用 1 表示,否則用 0 表示(這就是二元 Mask)。

為使 Mask R-CNN 如預期的運行,作者們做了一個小改變:RoiAlign,或者說 Realigning RoIPool。

RoiAlign

當不加修改地運行於原始版本的 Faster R-CNN,RoIPool 選擇的特徵圖區域,會與原圖中的區域有輕微排列出入。而圖像分割需要像素級別的精確度。於是,作者們巧妙地對 RoIPool 進行調整,使之更精確得排列對齊,這便是 RoIAlign。

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

假設我們有一個 128x128 的圖像,25x25 的特徵圖,想要找出與原始圖像左上角 15x15 位置對應的特徵區域,怎麼在特徵圖上選取像素?

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

我們知道原始圖像的每一個像素與特徵圖上的 25/128 個像素對應。為了在原始圖像選取 15 個像素,在特徵圖上我們需要選擇 15 * 25/128 ~= 2.93 個像素。

對於這種情形,RoIPool 會捨去零頭選擇兩個像素,導致排列問題。但在 RoIAlign,這種去掉小數點之後數字的方式被避免,而是使用雙線性插值(bilinear interpolation)準確獲得 2.93 像素位置的信息。在高層級,這避免了排列錯誤。

在 mask 生成之後,Mask R-CNN 把它們與 Faster R-CNN 的分類、選框結合起來,生成相當精確的分割:

三年來,CNN在圖像分割領域經歷了怎樣的技術變革?

後話

短短三年的時間,我們就看到了機器學習社區從 Krizhevsky et. al 的原始結果進步到 R-CNN,並最終開發出 Mask R-CNN 這樣的強大方案。若單獨來看,Mask R-CNN 像是一步巨大的技術飛躍,令人難以望其項背。但在這篇簡史中,我希望大家看到,這樣的進步是一系列直覺性、漸進式進步的總和,是多年苦心合作研究的成果。

但從 R-CNN 到 Mask R-CNN 畢竟只用了三年。在接下來的三年,計算機視覺又會進步多少呢?

via athelas,雷鋒網編譯

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

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


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

發現未來連接創新,CCF-GAIR 2017將於7月7日再度起航!
三星電子一季度凈利暴增46%至68億美元 2013年以來最佳
霍金:AI或許能根除疾病和貧窮,但也可能摧毀人類

TAG:雷鋒網 |

您可能感興趣

五年時光改變電競產業,這些年LPL經歷了什麼?
八年中,按鈕設計經歷了怎樣的變遷?
從懵逼到戲精,EXO吳世勛經歷了怎樣的成長?
從「VR元年」到「VR內容元年」,SteamVR經歷了哪些新變化?
建國以後,西裝的發展經歷了一個怎樣的過程?
「內三院」是為何物?它經歷了怎樣的變革?
人變禿了,也變強了!那動物也會經歷中年危機嗎?
RNG讓帝用奧恩對線完勝LCK單殺王 這半年他都經歷了什麼?
現在普遍使用的機關槍,經歷了幾個更新變革?
EXO出道六周年,這個男團都經歷了什麼?
43年,數碼相機經歷了怎樣的蛻變?
星盤 | 什麼樣的緣分,即使狗血的經歷也能複合?
DNF:鬼知道這半年的固定團,我都經歷了什麼,徹底陷入了絕望
撿回家一年的橘貓發生天翻地覆的變化,它到底是經歷了什麼?
70年來結婚的標配「四大件」是如何變遷的?你經歷的是哪個階段?
步履蹣跚中前進 一年來VAR究竟經歷了什麼?
LOL:這兩款皮膚經歷過較大改版,最初的版本有點辣眼睛!
細數TFBOYS五年來的經歷,哪一年最難?粉絲為何紛紛說是今年!
搞笑GIF:幾年沒看 這是經歷了啥?
LOL:玩家遇到了這樣的經歷,差點把遊戲卸載了