丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給朱婷
發(fā)送

0

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

本文作者: 朱婷 2017-06-29 21:24
導(dǎo)語:英偉達(dá)深度學(xué)習(xí)學(xué)院 DLI 的準(zhǔn)教學(xué)內(nèi)容免費(fèi)流出!

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

DIGITS 是什么?

7 月 8 日,英偉達(dá)深度學(xué)習(xí)學(xué)院 DLI 線下訓(xùn)練營即將來到深圳,主題是圖像分類、目標(biāo)檢測與圖像分割的零基礎(chǔ)開發(fā)入門。

雖然是全球范圍內(nèi)頂級的 AI 培訓(xùn)項(xiàng)目,但 DLI 進(jìn)入中國的時間太晚,中文網(wǎng)頁也才上線沒多久,導(dǎo)致國內(nèi)開發(fā)者只知英偉達(dá)的顯卡,卻不知道英偉達(dá)有線上、線下的 AI 技術(shù)培訓(xùn)。此前雷鋒網(wǎng)曾撰文介紹過 DLI,詳情戳這里。

閑話少說,本期深圳 DLI 訓(xùn)練營主要用到 DIGITS 和 TensorFlow 兩個工具。TensorFlow 大家都知道,不必介紹。但對 DIGITS 就很陌生了,它是什么呢?

DIGITS 是英偉達(dá)為普及深度學(xué)習(xí)開發(fā)的圖形化操作界面,簡單易用,旨在幫助初學(xué)者跨越入門障礙,迅速上手。因此,DLI 的入門培訓(xùn)均建議學(xué)員從 DIGITS 起步。 

說白了, DIGITS 就是一個新手工具。但由于 DLI 剛剛進(jìn)入中國,關(guān)于 DIGITS 的教程和信息并不充足,為初學(xué)者帶來信息鴻溝。 因此,雷鋒網(wǎng)對這篇英偉達(dá)博客發(fā)布的官方教程進(jìn)行了編譯。該教程指導(dǎo)讀者用 DIGITS 5 和 Caffe 進(jìn)行圖像分割,它脫胎于 DLI 的線上實(shí)驗(yàn)室(online labs)培訓(xùn)課。后者收費(fèi)且只用英文授課,并不對非會員開放。但大家能從這篇教程對其了解一個大概。

更重要的,7 月 8 日深圳的 DLI 線下訓(xùn)練營,三場主要培訓(xùn)分別是用 DIGITS 進(jìn)行圖像分類,用 DIGITS 目標(biāo)檢測,以及用 TensorFlow 進(jìn)行圖像分割(了解詳情請點(diǎn)此。雖然前兩場的內(nèi)容與本教程并不一致,最后一場的難度比本文高出許多,而且用的是 TensorFlow 而非 Caffe,但這篇教程與 DLI 付費(fèi)培訓(xùn)的內(nèi)容已十分接近。

感謝三位童鞋朱婷、彭艷蕾與馬曉培編譯本文花費(fèi)的心血。

教程:用 DIGITS 5 進(jìn)行圖像分割

去年底,英偉達(dá)發(fā)布了 DIGITS 5,為 DIGITS又增添了新功能,其中兩個是這篇教程非常感興趣的,分別是:

      1. 完全集成的分割工作流,它能讓你創(chuàng)建圖像分割數(shù)據(jù)集,并將分割網(wǎng)絡(luò)的輸出結(jié)果可視化;

      2. DIGITS模型商店,它是一個公共的在線資源庫,你可以從中下載網(wǎng)絡(luò)說明以及預(yù)訓(xùn)練的模型。

本文將探索圖像分割這一主題。對于SYNTHIA數(shù)據(jù)集里合成圖像中的汽車、行人、路標(biāo)以及各種其他城市物體,我將用DIGITS 5 訓(xùn)練神經(jīng)網(wǎng)絡(luò)進(jìn)行識別和定位 。

圖1 是預(yù)覽,這就是你將通過本教程學(xué)著做的東西:

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖1: 使用 DIGITS 5.0作圖像分割的示例可視化。這交替顯示了輸入圖像、 FCN-Alexnet 預(yù)測結(jié)果的疊加、 FCN-Alexnet預(yù)測結(jié)果與ground truth的疊加。

從圖像分類到圖像分割

假設(shè)你想為自動駕駛車設(shè)計圖像理解軟件。你可能已經(jīng)聽說過Alexnet [1], GoogLeNet [2], VGG-16 [3]以及其他的圖像分類神經(jīng)網(wǎng)絡(luò)架構(gòu),所以你可能從這些著手。假如有一個小狗的照片,圖像分類,就是一個讓計算機(jī)告訴你圖中的旺就是旺的過程。

圖像分類模型的輸出是一個離散的概率分布; 其值介于0、1之間,用來表示每個訓(xùn)練類別的概率。圖2是在DIGITS中使用Alexnet對一張貓的圖像做分類的示例。其結(jié)果非常好:要知道Alexnet是在1000不同類別的對象上訓(xùn)練的,包括動物、樂器、蔬菜、交通工具等等。令人震撼的是,在99%的置信區(qū)間內(nèi),機(jī)器能夠?qū)D像主題正確歸類為貓。即便是我己,恐怕也不過如此,無法進(jìn)一步分辨出這只貓是埃及貓、花斑貓還是虎斑貓。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖2:來自PASCAL VOC數(shù)據(jù)集的貓圖像的Alexnet分類。

如果一張圖片里同時有貓和狗,對它進(jìn)行分類會發(fā)生什么?從常識來看,你可能會相信神經(jīng)網(wǎng)絡(luò)對我們最喜歡的這兩種寵物圖像分類時,將其歸為每類的概率相同。我們來試試:圖3所示是結(jié)果。在預(yù)測結(jié)果中有貓和狗的混合,但是AlexNet并沒有給出50/50分的希望。在中間圖像中,在前5名的預(yù)測中事實(shí)上并沒有貓。這真令人失望,但是從另一方面來看,AlexNet是在120萬張圖像的“小”世界上訓(xùn)練的,在這些圖像中只有一個對象,所以不能想當(dāng)然的期望在多個對象存在的情況下執(zhí)行良好。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖3 來自 PASCAL VOC 數(shù)據(jù)集的貓狗圖像的Alexnet分類。

分類網(wǎng)絡(luò)的另一個限制是它們不能分辨出圖像中對象的位置。這是可以理解的,因?yàn)樗鼈儾皇潜挥?xùn)練來做這個的。盡管如此,這卻是計算機(jī)視覺的一個主要障礙:如果一輛自動駕駛車不能檢測到道路的位置,它沒法行駛很遠(yuǎn)!

圖像分割解決了部分弊端。它并不是預(yù)測整幅圖像的單一概率分布,而是將圖像分成多塊,預(yù)測每塊的概率分布。最常見的情況是,圖像被劃分到像素級別,對每個像素做分類:對于圖像中的每個像素,訓(xùn)練網(wǎng)絡(luò)來預(yù)測指定像素的類別。這使得網(wǎng)絡(luò)不僅能鑒別出每張圖像中多個主題類別,還能檢測出對象的位置。圖像分割通常生成標(biāo)簽圖像,該圖像的大小與輸入圖像的大小相等,其像素按照各類類標(biāo)用顏色編碼。圖4 所示是示例,在一幅圖像中分割出4個不同類別:桌子、椅子、沙發(fā)和盆栽。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖4:來自 PASCAL VOC數(shù)據(jù)集的圖像分割示例(白色區(qū)域標(biāo)記未定義的像素,例如對象輪廓和未分類對象)。

在圖像分割的進(jìn)一步細(xì)化中,即實(shí)例感知圖像分割(IAIS),神經(jīng)網(wǎng)絡(luò)要學(xué)習(xí)識別圖像中每個對象的輪廓。這在應(yīng)用中特別有用,它一定能識別出單個類別每一次的出現(xiàn),甚至在各類之間界限不清晰時也是如此。例如在圖5中:中間的圖像是圖像分割類標(biāo),而最右邊圖像是IAIS類標(biāo)(注意顏色編碼是如何唯一地識別每個人的)。我不會深入討論IAIS的主題,我將重點(diǎn)討論實(shí)例分割;但是我很鼓勵你看看Facebook在IAIS上的SharpMask 工作。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上) 圖5: 圖像分割(中)vs.實(shí)例感知圖像分割(右)。圖像來自PASCAL VOC數(shù)據(jù)集。

讓我們看一下如何設(shè)計能分割圖像的網(wǎng)絡(luò)。

從CNN到FCN

前一節(jié)對圖像分類模型和圖像分割模型作了區(qū)分,前者對每個圖像做概率分布預(yù)測,后者對每個像素做概率分布預(yù)測。原則上,這聽起來很相似,你可能覺得它們會使用相同的技術(shù)。畢竟,僅僅是問題的空間維度得到了增加。在本文中,我將向你展示,僅僅一些小小的調(diào)整就足夠?qū)⒁粋€分類神經(jīng)網(wǎng)絡(luò)變成一個語義分割神經(jīng)網(wǎng)絡(luò)。我將使用在這篇論文( this paper)[4]里面世的技術(shù)(我將之稱為FCN論文)。

開始之前,先說一些術(shù)語:我將典型的分類網(wǎng)絡(luò),例如Alexnet,稱為卷積神經(jīng)網(wǎng)絡(luò)(CNN)。這有點(diǎn)濫用,畢竟卷積神經(jīng)網(wǎng)絡(luò)除了圖像分類之外還有很多其他用途,但這是一種常見的近似。

CNN中,常見的做法是將網(wǎng)絡(luò)分為兩部分:前一部分做特征提取,數(shù)據(jù)通過若干個卷積層逐步提取到越來越復(fù)雜、抽象的特征。卷積層之間通常有非線性轉(zhuǎn)移函數(shù)和池化層。每個卷積層可被看作是一系列圖像濾波器,它們在特定模式下觸發(fā)高響應(yīng)。例如,圖6所示是來自Alexnet第一個卷積層的濾波器的表達(dá)以及在虛擬圖像,包括簡單的形狀上的激活結(jié)果(輸出)(有趣的是,AlexNet將圖像分類成一個掛鐘?。┻@些濾波器觸發(fā)了在比如水平和垂直邊緣和角這些形狀上的高響應(yīng)。例如,看下左下角的濾波器,它看起來像黑白相間的豎條紋。現(xiàn)在看一下相應(yīng)的激活結(jié)果以及在垂直線上的高響應(yīng)。類似地,在右邊的下一個濾波器在斜線上顯示了高響應(yīng)。網(wǎng)絡(luò)更深的卷積層將能夠在更加復(fù)雜的形狀上例如多邊形上觸發(fā)高響應(yīng),最后學(xué)習(xí)檢測紋理和各種各樣自然對象的組成成分。在卷積層中,每個卷積輸出都是通過通過將每個濾波器應(yīng)用到輸入中的窗口上(也叫感受野)計算而來,按該層的步長滑動窗口直到遍歷整個輸入為止。感受野尺寸大小與濾波器相同。如圖7所示,是卷積計算的說明示例。注意,輸入窗口跨越了輸入圖像的所有通道。


看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖6:Alexnet conv1 l層在DIGITS中的表現(xiàn)。從上到下:數(shù)據(jù)層(輸入);conv1層濾波器的可視化;conv1層的激活結(jié)果(輸出)。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖7:左:紅色表示的輸入量示例和第一個卷積層的神經(jīng)元體示例。卷積層中的每個神經(jīng)元只與輸入空間中的局部區(qū)域相連接,但是卻連接了全部深度(即所有的顏色通道)。注意,沿深度方向有多個神經(jīng)元(示例中是5個),所有都連接著輸入的相同區(qū)域;右:神經(jīng)元仍然是計算其權(quán)值與輸入的點(diǎn)乘,然后是非線性函數(shù),但是它們的連接現(xiàn)在被限制在局部空間上。來源:斯坦福大學(xué)CS231 課程。

在CNN的第二部分即最后一部分,分類器包含若干個全連接層,第一個全連接層的輸入來自特征提取器。這些層學(xué)習(xí)特征間復(fù)雜的關(guān)系,使網(wǎng)絡(luò)對圖像內(nèi)容有高水平的理解。例如,如果有大眼睛和皮毛,網(wǎng)絡(luò)可能傾向于貓。神經(jīng)網(wǎng)絡(luò)能正確理解這些特征,在某種程度上很神奇,但這也是深度學(xué)習(xí)的魅力所在。這種可解釋性的缺乏有時會受到批評,但在這方面,它和人類大腦的工作方式其實(shí)有點(diǎn)像:關(guān)于你是怎么知道某張圖片是一只貓不是狗,你能解釋嗎?

全卷積網(wǎng)絡(luò)(FCN),顧名思義,就是只包含卷積層和上面提到的臨時非參數(shù)層。怎樣消除全連接層來建立看起來更強(qiáng)大的模型呢?為回答這個問題,我們來思考另一個問題。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

圖8:DIGITS中顯示的 Alexnet 第一個全連接層(fcn6)的輸入、權(quán)值和激活函數(shù)。

關(guān)鍵問題是:全連接層和全卷積層之間的區(qū)別是什么呢?

這很簡單,在全連接層,每個輸出神經(jīng)元計算輸入中的數(shù)據(jù)的加權(quán)和。相比之下,每個濾波器計算感受野中的數(shù)據(jù)的加權(quán)和。等一下,這難道不是同一件事情嗎?——是的,但這僅發(fā)生在該層輸入的大小與感受野的大小相同時。如果輸入比感受野大,接下來卷積層會滑動其輸入窗口,計算另一個加權(quán)和。這個過程重復(fù)進(jìn)行,直到輸入圖像被從左到右,從上到下掃描一遍。最后,每個濾波器生成一個激活矩陣;每個這樣的矩陣被稱作特征圖譜。

這提供了一個線索:使用等效的卷積層替換全連接層,把該層濾波器的大小設(shè)為與輸入的大小相同,并且使用與全連接層中神經(jīng)元個數(shù)相同的濾波器。我將在Alexnet的第一個全連接層(fcn6)上演示這一點(diǎn):圖8所示是感興趣層的DIGITS的可視化。你可以看到fcn6從pool5中獲得輸入,輸入的形狀是256個的6*6的圖像。除此之外,在fcn6的激活結(jié)果是4096維的長矩陣,這意味著fcn6有4096個輸出神經(jīng)元。由此可見,如果我想用等價的卷積層替換fcn6,我必須設(shè)置濾波器大小為6*6,輸出的特征圖譜的個數(shù)為4096.說一個小小的題外話,你認(rèn)為該層會有多少可訓(xùn)練的參數(shù)?對于每個濾波器,都有一個偏置項(xiàng)加上感受野中每個數(shù)值的一個權(quán)重。感受野的深度是256,大小為6*6,因此每個濾波器有256x6x6+1=9217個參數(shù)。因?yàn)檫@里有4096個濾波器,該層共有37,752,832個參數(shù)。這正是DIGITS中fcn6擁有的參數(shù)個數(shù)。到目前為止,一切都很順利。

在實(shí)踐中,很容易替換該層。如果你使用Caffe,僅僅用表1中右邊的定義替換左邊的定義即可。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

有了這些知識,現(xiàn)在你可以開始將Alexnet中的所有全連接層轉(zhuǎn)換為相應(yīng)的卷積層。注意,你沒必要使用DIGITS計算這些層的輸入的形狀;你可以手動計算出它們。盡管這聽起來很有趣,我確信如果你在VGG-16的16個層(加上中間的池化層)上做這些,你將失去耐心。更不要說你會不可避免地丟掉你的演算紙。此外,作為一個深度學(xué)習(xí)愛好者,你應(yīng)該習(xí)慣讓機(jī)器來做這些工作。所以讓DIGITS為你效力吧。

由此產(chǎn)生的FCN與基礎(chǔ)的CNN有著相同數(shù)量的可學(xué)習(xí)參數(shù),相同的表達(dá)能力和相同的計算復(fù)雜度。鑒于輸入相同,產(chǎn)生的輸出也相同。你可能會想:為什么要轉(zhuǎn)換模型這么麻煩呢?是這樣的,CNN的基礎(chǔ)“卷積”引入了太多的靈活性。模型不再受限于在固定輸入大小上(在Alexnet中224*224的像素尺寸大?。┎僮鳌K梢韵窕瑒哟翱谝粯?,通過掃描整個輸入來處理更大的圖像,不是對整個輸入產(chǎn)生一個單一的概率分布,而是對每個224*224的窗口,模型會生成一個概率。網(wǎng)絡(luò)的輸出是一個形狀為KxHxW的張量,這里,K表示類別的個數(shù),H表示沿縱軸的滑動窗口的數(shù)量,W表示沿橫軸的滑動窗口的數(shù)量。

在計算效率方面:理論上,你可以通過重復(fù)選擇圖像的塊以實(shí)現(xiàn)簡單的窗口滑動,然后將這些塊輸入CNN進(jìn)行處理。在實(shí)踐中,這在計算中非常低效:當(dāng)你逐漸滑動窗口時,在每一步上僅僅能看到少量新的像素值。然而,每個塊都必須由CNN完全處理,即使連續(xù)的塊之間存在大量的重疊。每個像素值最終會重復(fù)處理很多次。在FCN中,由于那些計算都發(fā)生在網(wǎng)絡(luò)內(nèi)部,僅僅只有最少量的操作需要執(zhí)行,整個處理速度要快的多。

總而言之,這是一個里程碑:在分類網(wǎng)絡(luò)的輸出上增加兩個空間維度。在下一節(jié),我將展示如何進(jìn)一步改進(jìn)模型。

(未完待續(xù))

via nvidia,雷鋒網(wǎng)編譯

相關(guān)文章:

你聽說過英偉達(dá)深度學(xué)習(xí)學(xué)院 DLI 嗎?

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

看一遍你也會做!用英偉達(dá) DIGITS 進(jìn)行圖像分割(上)

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說