July深度學習筆記之圖像檢測、NeuralStyle

July深度學習筆記之圖像檢測、NeuralStyle

image

一、圖像識別與定位

我們首先看看圖像識別與定位如何實現。

首先,對於CNN來說,做圖像分類已經能夠有很好的效果。輸入一張圖片,會輸出類的標籤。而定位Locatization呢?

實際上,Locatization要求我們找到在這張圖片上某個物體的位置(用方框圈出),即可以看成輸出四個值(x,y,w,h),其中(x,y)是矩形左上角的位置座標,w表示矩形的寬度,h表示矩形的高度。這樣,一個方框就可以被表示出來。

1、首先看看其中的一個思路:

我們可以把預測這樣的四個數看成是迴歸問題,並用歐氏距離去衡量損失。

步驟爲:
1. 先解決簡單問題,搭一個識別圖像的神經網絡。可以在AlexNet VGG GoogleLenet上fine-tuning一下。
2. 在上述神經網絡的尾部展開,成爲classification + regression模式。即頭部固定(參數和網絡結構fix住),只改變FC層後面部分。
3. Regression那個部分用歐氏距離損失,使用SGD訓練。
4. 預測階段把2個頭部拼上,完成不同的功能(分類和定位)。

而回歸的部分加在哪?可以加在FC層的後面,也可以加在最後一個卷積層的後面。

而如果把我們想要解決的問題再細緻一下,我們想要對於貓區分不同的部位,那麼如何實現?類似地,我們可以對於一張圖片預測多個矩形,即對每個區分的部分分別做迴歸。

image

2、第二個思路:取圖像窗口

還是剛纔的classification + regression思路,咱們取不同的大小的“框”,讓框出現在不同的位置,判定得分,取得分最高的那個。

實際上,這個過程很像卷積的過程,我們讓圖像窗口從左上角滑動到右下角,然後分別計算每個窗口的分類得分。

image

實際上,這會產生很多滑動窗口(包括不同窗口size),而且滑動窗口會有很多重疊的區域。然後綜合得分較高的幾個部分形成框框。

二、物體識別(Object Detection)

物體識別能否再次看成迴歸問題?其實你不知道一張圖片上有多少個物體,更何況要預測每個物體的(x,y,w,h)…

那麼能否再次看成分類問題呢?
如果這樣的話:

  • 你需要找出很多位置,給很多不同大小的框
  • 你還需要對框內的圖像進行分類

當然,你不嫌麻煩的話,並且GPU強大的話,do it吧。

這裏提出一種方法:
選擇性搜索

image

即先根據比如顏色,分成很小很小的部分,然後做merge。這樣在一張圖片上我們可以得到2000張region proposal(候選區域)。

這裏給出Rcnn:

image

講解RCNN的步驟:

  1. 從model-zoo裏面扒下來一個分類模型,比如AlexNet。
  2. 對該模型進行fine-tuning,比如你現在想分的類別個數爲20,那麼就把最後一層的1000類改成20類;扔掉最後一次全連接層的參數,重新初始化。
  3. 抽取特徵。對於2000張region proposal,每一張跑一遍前向運算,然後保存con5層的特徵到硬盤上。
  4. 對於每一個類別,訓練一個SVM分類器。這裏如果想要速度快一些的話,使用線性kernel(linear SVM),每一個SVM是一個二分類的分類器,用來判斷是否是邊緣特徵。
  5. Bbox regression,這一步驟是做一些優化,訓練一個迴歸模型來調整proposals。比如,如果框框正好圈中物體,則迴歸結果爲(0,0,0,0),如果圈的有一些偏,則輸出(0.5,0,0,0)。

下面總結一些RCNN:

2000個regions丟到CNN中只是爲了拿到con5的特徵,(這裏不要過於糾結爲什麼要拿con5這一層的特徵),拿到這些特徵之後保存到硬盤上,然後利用這些特質去做SVM,判斷哪些是物體的邊緣。

實際上,通過卷積(共享權值)和池化(下采樣)會使圖像失真,而FC全連接層則會把信息還原一部分,所以一般來說,FC層的表現能力很強。

總體來說,RCNN就是將一張圖片的每一個框框過一遍CNN,非常耗時。所以,在RCNN的基礎上,提出了fast-RCNN。

fast-RCNN

image

fast-RCNN就解決了RCNN的瓶頸,不用重複地計算候選區域。而是通過將候選區域和con5的特徵做了一個映射。同時,fast-rcnn還是一個完整的end-to-end的系統,一個完整的流水線。

image

這裏有一個過程是roi-pooling的過程,實際上,直接將候選區域和con5的特徵做映射,與後面的FC層是不匹配的,所以需要這樣的一個過程。

fast-rcnn比rcnn速度要快好多~

實際上,fast-rcnn只是解決了不用重複計算候選區域,而找region proposals的過程並沒有優化,所以,速度更快的faster-rcnn應運而生。

image

faster-rcnn提出了Region Proposal Network,就是在最後一個卷積層後面加上這一個RPN層,用神經網絡來選擇region proposals,不需要先前選擇。在這一層中,滑動一個小的窗口在特徵map上作出選擇,做物體分類,是否是背景,並且做bbox迴歸等等。

image

三、NeuralStyle藝術化圖片

image

image

image

image

發佈了67 篇原創文章 · 獲贊 120 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章