神經(jīng)網(wǎng)絡(luò)會(huì)成為機(jī)器視覺(jué)的未來(lái)趨勢(shì)嗎?
什么是神經(jīng)網(wǎng)絡(luò)?為什么它會(huì)成為工業(yè)圖像處理系統(tǒng)的熱點(diǎn)話題?因?yàn)樯窠?jīng)網(wǎng)絡(luò)不僅使開(kāi)發(fā)人員從復(fù)雜的差異化標(biāo)準(zhǔn)界定程序中解脫出來(lái),還能夠自主識(shí)別并學(xué)習(xí)這一標(biāo)準(zhǔn),并將這一“能力”應(yīng)用于精確的任務(wù)中。但神經(jīng)網(wǎng)絡(luò)并不能保持持續(xù)可靠地運(yùn)作,也無(wú)法主動(dòng)實(shí)現(xiàn)與時(shí)俱進(jìn)的更新。它們必須先接受專業(yè)且深入的培訓(xùn)。本文詳細(xì)描述了應(yīng)該如何進(jìn)行這一培訓(xùn),所需的準(zhǔn)備工作以及與建立神經(jīng)網(wǎng)絡(luò)有關(guān)的各個(gè)開(kāi)發(fā)步驟。
本文引用地址:http://m.butianyuan.cn/article/201807/383737.htm1 簡(jiǎn)介
1.1 蘋(píng)果和梨
有人說(shuō)蘋(píng)果和桔子根本不具備可比性,而如果談及機(jī)器視覺(jué)系統(tǒng)的話,蘋(píng)果和梨這一組合似乎也找不到任何共同點(diǎn)。即便如此,我們?nèi)匀患鼻械匦枰軌蚓_處理不同任務(wù)的系統(tǒng),類似能夠基于圖像數(shù)據(jù)區(qū)分兩種不同類型水果的任務(wù)。
一般來(lái)說(shuō),開(kāi)發(fā)人員總是會(huì)陷入“區(qū)分兩種水果需要基于怎樣的標(biāo)準(zhǔn)”這樣一個(gè)怪圈??梢栽O(shè)想一個(gè)比較簡(jiǎn)單的區(qū)分方法:蘋(píng)果是淡紅色的,而梨是綠色的。這樣一來(lái),設(shè)定的標(biāo)準(zhǔn)之一即與顏色相關(guān)的信息。但請(qǐng)記?。河行┨O(píng)果也是綠色的,比如當(dāng)它們還未成熟時(shí)。因此如果將顏色視作唯一的區(qū)分標(biāo)準(zhǔn),那么不成熟的蘋(píng)果也會(huì)被誤認(rèn)為是梨。為確保更加精確的結(jié)果,增加一個(gè)衡量標(biāo)準(zhǔn)是很有必要的:比如形狀。蘋(píng)果通常更偏向于圓形,而梨則呈現(xiàn)比較細(xì)長(zhǎng)的橢圓形。
圖1:通過(guò)基于相機(jī)的機(jī)器視覺(jué)系統(tǒng)可視化呈現(xiàn)蘋(píng)果和梨的分類結(jié)果。
在這個(gè)分類示例中,對(duì)物體進(jìn)行區(qū)分顯然是比較簡(jiǎn)單的。制定這一區(qū)分標(biāo)準(zhǔn)(通常稱為“特征識(shí)別”)并不難。那么當(dāng)我們需要對(duì)不同種類的蘋(píng)果進(jìn)行分類時(shí),又該怎么做呢?顏色和形狀在這種情況下已經(jīng)不足以成為區(qū)分不同蘋(píng)果的標(biāo)準(zhǔn)。在這個(gè)例子中,我們自定義(“手工定制”)的特征識(shí)別功能達(dá)到了極限。
針對(duì)不同對(duì)象的區(qū)分和分類越困難,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),設(shè)計(jì)出一種能夠自動(dòng)檢測(cè)出不同對(duì)象之間差別和特征的演算法就顯得愈加重要。
機(jī)器學(xué)習(xí)算法是前景非常廣闊的一種工具和解決方法,尤其是卷積神經(jīng)網(wǎng)絡(luò)(簡(jiǎn)稱CNN)。卷積神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)區(qū)分不同對(duì)象所需的標(biāo)準(zhǔn)。這使得它們不僅能夠勝任最棘手的分類任務(wù),同時(shí)也適用于靈活性極高的各種應(yīng)用案例。
1.2 卷積神經(jīng)網(wǎng)絡(luò)(CNN):成功案例
卷積神經(jīng)網(wǎng)絡(luò)并不是一個(gè)最近才出現(xiàn)的新概念。早在1968年,加拿大神經(jīng)生物學(xué)家David Hubel與瑞典神經(jīng)生理學(xué)家Torsten Wiesel針對(duì)貓科動(dòng)物視覺(jué)皮層進(jìn)行了合作研究。視覺(jué)皮層是大腦皮層中主要負(fù)責(zé)將視覺(jué)數(shù)據(jù)處理成可用信息的部分。因此他們的目標(biāo)是尋求如何從大腦接受到眼睛所采集的視覺(jué)圖像信息(比如“我看到一個(gè)蘋(píng)果”)中,獲得目標(biāo)對(duì)象有用信息方式的答案。這兩名研究人員給貓演示不同走向的光條,在這一過(guò)程中發(fā)現(xiàn)視覺(jué)皮層的不同細(xì)胞會(huì)根據(jù)光條的走向被激活并做出反應(yīng)。他們同時(shí)還發(fā)現(xiàn)復(fù)雜的光線圖案,比如眼睛的形狀,能夠激活視覺(jué)皮層更深層部位的細(xì)胞。
通過(guò)Hubel和Wiesel的努力,最終研發(fā)出一個(gè)能夠演繹細(xì)胞激活和轉(zhuǎn)發(fā)特定圖像信息過(guò)程的模型。這也為計(jì)算機(jī)輔助圖像分類建模奠定了基礎(chǔ)。
30年后,法國(guó)計(jì)算機(jī)科學(xué)家Yann LeCun再次為Hubel和Wiesel所取得的成就所激勵(lì)。他將視覺(jué)皮層功能的演繹疊加到一個(gè)演算中 -- 并從中成功創(chuàng)建出第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用。
但即便如此,卷積神經(jīng)網(wǎng)絡(luò)在之后的很多年仍未能適用于實(shí)際操作和應(yīng)用。其中最主要的原因是卷積神經(jīng)網(wǎng)絡(luò)需要投入大量的計(jì)算能力。使用串行技術(shù)處理數(shù)據(jù)的CPU處理器需要對(duì)數(shù)據(jù)記錄挨個(gè)進(jìn)行分析,意味著在這一網(wǎng)絡(luò)能夠最終應(yīng)用于工作之前需要花費(fèi)多年時(shí)間。
直到圖形處理器單元(GPU)的出現(xiàn),能夠?qū)?shù)據(jù)實(shí)現(xiàn)并行處理,卷積神經(jīng)網(wǎng)絡(luò)才再一次被人們記起 -- 實(shí)際上近年來(lái)卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展已經(jīng)有了很大的起色。研究人員對(duì)卷積神經(jīng)網(wǎng)絡(luò)在筆記識(shí)別、醫(yī)療診斷、自動(dòng)駕駛車輛預(yù)警系統(tǒng),機(jī)器人物體識(shí)別以及生物識(shí)別技術(shù)應(yīng)用方面取得的巨大成功感到欣慰。與其它競(jìng)爭(zhēng)性學(xué)習(xí)技術(shù)相比,卷積神經(jīng)網(wǎng)絡(luò)在具有挑戰(zhàn)性的應(yīng)用中通常能夠產(chǎn)生更好的結(jié)果。包括Google、IBM、微軟和Facebook等大型企業(yè)所投資的數(shù)十億美元巨額資金無(wú)不表現(xiàn)出其對(duì)這一領(lǐng)域的極大興趣以及這一技術(shù)本身所具有的巨大潛力。
卷積神經(jīng)網(wǎng)絡(luò)不僅需要密集的處理器運(yùn)作;同樣對(duì)數(shù)據(jù)有極大需求。對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行一次徹底培訓(xùn),需要輸入大量已經(jīng)分類的圖像數(shù)據(jù)。目前開(kāi)發(fā)人員能夠自由訪問(wèn)與此相關(guān)的數(shù)據(jù)庫(kù)。最常用的圖像數(shù)據(jù)庫(kù)之一是ImageNet1。 它包含超過(guò)1400萬(wàn)幅分類圖像。同時(shí)還有一系列針對(duì)具體分類問(wèn)題而存在的專門數(shù)據(jù)庫(kù)。比如,一個(gè)名為德國(guó)交通標(biāo)志識(shí)別基準(zhǔn)的數(shù)據(jù)庫(kù)中就保存了5萬(wàn)余幅關(guān)于交通標(biāo)志的圖像。在這一例子中,卷積神經(jīng)網(wǎng)絡(luò)在2012年測(cè)試中取得了高達(dá)99.46%的成功率 -- 超過(guò)人工分類取得的98.84%。然而,在實(shí)踐過(guò)程中,開(kāi)發(fā)人員通常會(huì)面臨高度專業(yè)化的分類問(wèn)題,因此無(wú)法獲取自己的圖像數(shù)據(jù)庫(kù)。但幸運(yùn)的是,現(xiàn)在他們并不需要采集數(shù)百萬(wàn)張圖像。一項(xiàng)被稱為“遷移學(xué)習(xí)”的技術(shù)小竅門能夠大大減少所需的圖像數(shù)量,有時(shí)甚至只需要幾百或幾千幅圖像。
軟件堆棧的主要部分都可以供開(kāi)發(fā)人員自由使用。目前已經(jīng)開(kāi)發(fā)出一系列適用于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)框架:包括Caffe,Torch和Theano在內(nèi)的眾多軟件庫(kù)都是專為這一課題而研發(fā)。2015年11月,Google甚至為此開(kāi)放了內(nèi)部機(jī)器學(xué)習(xí)軟件TensorFlow,這一軟件是從圖像搜索到Google Photo等多種Google產(chǎn)品的基本組成部分。
卷積神經(jīng)網(wǎng)絡(luò)同時(shí)也開(kāi)始在機(jī)器視覺(jué)應(yīng)用領(lǐng)域中發(fā)揮越來(lái)越大的作用。根據(jù)2016年嵌入式視覺(jué)聯(lián)盟進(jìn)行的嵌入式視覺(jué)開(kāi)發(fā)者調(diào)查2,77%的受訪者表示目前正在或計(jì)劃將要利用神經(jīng)網(wǎng)絡(luò)來(lái)處理分類工作。這一趨勢(shì)正在上升:于2015年3進(jìn)行的同一項(xiàng)調(diào)查顯示,僅61%的受訪者有此打算。2016年進(jìn)行的該項(xiàng)調(diào)查還發(fā)現(xiàn),86%的卷積神經(jīng)網(wǎng)絡(luò)被用于分類算法。這一結(jié)果表明,除了像Google或Facebook這樣擁有龐大規(guī)模和豐富資源的大公司之外,普通的公司也能夠自主研發(fā)基于卷積神經(jīng)網(wǎng)絡(luò)的產(chǎn)品或服務(wù)。
2 卷積神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)步驟
設(shè)想一下,作為工業(yè)級(jí)水果分選線的一部分,您確實(shí)需要將蘋(píng)果和梨子區(qū)分開(kāi),此外還需要根據(jù)其質(zhì)量將不同的水果自動(dòng)分批。那么接下來(lái)將要經(jīng)過(guò)以下步驟:
1. 采集圖像數(shù)據(jù)
2. 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)
3. 執(zhí)行自學(xué)習(xí)算法
4. 對(duì)培訓(xùn)過(guò)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行評(píng)估(并根據(jù)需要對(duì)步驟1、2、3進(jìn)行修改)
5. 訓(xùn)練有素的卷積神經(jīng)網(wǎng)絡(luò)部署
下述文字將對(duì)各步驟進(jìn)行詳細(xì)介紹。
2.1 采集圖像數(shù)據(jù)
機(jī)器學(xué)習(xí)的基本原理(或者準(zhǔn)確地說(shuō)是“監(jiān)督式的機(jī)器學(xué)習(xí)”)涉及到如何利用大量示例教電腦識(shí)別待解決的問(wèn)題。對(duì)于水果分選線來(lái)說(shuō),這將涉及到拍攝大量能夠顯示不同種類、品質(zhì)和大小的蘋(píng)果和梨的圖像。同時(shí),還必須記錄下關(guān)于每幅圖像最精確詳盡的描述,這意味著所有三個(gè)屬性(見(jiàn)圖2)的具體值(“標(biāo)簽”)。這將創(chuàng)建一組輸入/輸出對(duì),并通過(guò)電腦視覺(jué)處理,相當(dāng)于直接將其展示給“電腦的眼睛”,并由電腦指示哪幅圖像應(yīng)該對(duì)應(yīng)哪個(gè)回答(“Braeburn, Class I, Size M”)。
圖2:具有附加文本輸出的圖像數(shù)據(jù)。神經(jīng)網(wǎng)絡(luò)能夠利用這些輸入/輸出對(duì)學(xué)習(xí)區(qū)分。
在數(shù)據(jù)記錄過(guò)程中,非常重要的一點(diǎn)是需要在圖像上展示出需要測(cè)量的所有可能的屬性組合(在這種情況下指類型、品質(zhì)和大小)。通常來(lái)說(shuō),必須注意的是應(yīng)用程序的視覺(jué)變化(不僅是水果的類型,同時(shí)也包括不同的光源條件,圖像中水果的背景和位置等)在圖像樣本中也必須有所體現(xiàn)。從實(shí)際的角度來(lái)看,在最終的生產(chǎn)環(huán)境下、以完全相同的方式拍攝圖像是比較可取的做法。記錄每幅圖像中的水果類型、品質(zhì)和大小等屬性這一任務(wù)應(yīng)該由經(jīng)過(guò)培訓(xùn)的專家進(jìn)行:只有實(shí)際的水果銷售者,而不是系統(tǒng)程序員,才有資格正確評(píng)估商品的質(zhì)量。
數(shù)據(jù)采集過(guò)程中產(chǎn)生的另外一個(gè)極其重要的問(wèn)題是所需圖像樣本的數(shù)量:可以想象,圖像差異越大,所需的樣本數(shù)量就越多。如介紹中所述,類似ImageNet的應(yīng)用程序可能在短時(shí)間內(nèi)就需要上百萬(wàn)幅圖像。這樣的數(shù)據(jù)采集操作既不實(shí)際也不劃算,但是顯然還有其它的解決方式。與傳統(tǒng)的圖像處理系統(tǒng)一樣,可以在生產(chǎn)環(huán)境進(jìn)行更加嚴(yán)格的管控。此外,通過(guò)對(duì)已拍攝圖像的色調(diào),圖像偏斜和縮放進(jìn)行系統(tǒng)改變,所采集的數(shù)據(jù)量同樣能夠被人工擴(kuò)大(數(shù)據(jù)擴(kuò)增),并用于新的樣本中。當(dāng)然也可以通過(guò)眾包方式與服務(wù)合作伙伴合作,以實(shí)現(xiàn)經(jīng)濟(jì)可行的數(shù)據(jù)采集。
2.2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)
由于具備不同層次的各種功能,最頂尖的卷積神經(jīng)網(wǎng)絡(luò)技術(shù)得以脫穎而出。與老式的基礎(chǔ)多層感知器4不同,現(xiàn)有的網(wǎng)絡(luò)由一系列交替卷積層和匯聚層組成(見(jiàn)圖3)。
圖3:建立一個(gè)最頂尖的卷積神經(jīng)網(wǎng)絡(luò)。輸入(一幅圖像)可以通過(guò)輸出在一系列不同的層之間進(jìn)行處理。
卷積層通過(guò)進(jìn)行一項(xiàng)數(shù)學(xué)“卷積”操作將輸出圖像相鄰區(qū)域的像素值轉(zhuǎn)換為單個(gè)值。卷積運(yùn)算類似于特征檢測(cè)器,僅需查找圖像中的特定屬性(如識(shí)別水平定向邊緣)。匯聚層是在處理鏈中進(jìn)一步被建立起來(lái)的,它能夠總結(jié)用于較大圖像區(qū)域的特征檢測(cè)器的幅度。這些層形成了一個(gè)牢固的金字塔結(jié)構(gòu),產(chǎn)生了越來(lái)越多針對(duì)更大范圍的圖像區(qū)域進(jìn)行操作的專門的特征檢測(cè)器?;氐阶畛醯乃诌x線上來(lái),可以設(shè)想網(wǎng)絡(luò)的第一層對(duì)應(yīng)的是具有梨特征的斑點(diǎn)圖案;而相對(duì)的上一層則證實(shí)特定蘋(píng)果類型的莖、陰影及上半部分的視覺(jué)一致性都能夠保證網(wǎng)絡(luò)最終計(jì)算出哪種水果類型、品質(zhì)和大小是可見(jiàn)的)。
圖4:經(jīng)過(guò)培訓(xùn)的網(wǎng)絡(luò)具有所謂的特征檢測(cè)器,使其能夠?qū)D像中的特定結(jié)構(gòu)做出相應(yīng)反應(yīng)。當(dāng)網(wǎng)絡(luò)的第一層更傾向于對(duì)具有梨特征的斑點(diǎn)圖案做出反應(yīng)時(shí),更高層則能夠?qū)ηo干和陰影的視覺(jué)一致性做出反應(yīng)。
卷積神經(jīng)網(wǎng)絡(luò)的精確結(jié)構(gòu)實(shí)際上是由開(kāi)發(fā)人員開(kāi)發(fā)出的網(wǎng)絡(luò)的變形,如AlexNet5、VGG Net6或GoogLeNet7。在這一過(guò)程中通常需要進(jìn)行必要的調(diào)整,因?yàn)樘囟ǖ娜蝿?wù)在輸入圖像的分辨率或可用的計(jì)算能力方面會(huì)有特定的要求。這些網(wǎng)絡(luò)是通過(guò)上述開(kāi)源深度學(xué)習(xí)框架被編程的,這些框架能夠提供包括卷積層在內(nèi)的所有核心元素以作為軟件功能之一。根據(jù)要求,這需要一定程度的專業(yè)知識(shí)。一個(gè)初步的可行性研究通常可以通過(guò)幾項(xiàng)定制內(nèi)容來(lái)實(shí)現(xiàn),而一個(gè)真正100%的最優(yōu)化解決方案則需要富有經(jīng)驗(yàn)的專家高強(qiáng)度的工作才能實(shí)現(xiàn)。
2.3 執(zhí)行自學(xué)習(xí)算法
一旦建立起卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)和設(shè)計(jì)方案,就必須相應(yīng)地執(zhí)行一項(xiàng)所謂的自學(xué)習(xí)算法。以不同的變體形式,它將成為被部署的深度學(xué)習(xí)框架的一部分。這些算法均是基于反向傳播算法這一概念,其核心是一個(gè)(隨機(jī))優(yōu)化的過(guò)程。這些算法負(fù)責(zé)卷積神經(jīng)網(wǎng)絡(luò)自由參數(shù)(“權(quán)重”)的配置,以便網(wǎng)絡(luò)能夠適用于所提供的數(shù)據(jù)。因此,自學(xué)習(xí)算法通常用于卷積神經(jīng)網(wǎng)絡(luò)的“培訓(xùn)”。
執(zhí)行這種自學(xué)習(xí)算法是應(yīng)用程序解決方案整個(gè)開(kāi)發(fā)過(guò)程中最消耗處理器的一個(gè)步驟:如果您需要使用數(shù)百萬(wàn)幅示例圖像,那么您需要一個(gè)或多個(gè)更好的GPU服務(wù)器(更多詳情請(qǐng)參閱下一節(jié)),通常需要花費(fèi)幾天到幾周時(shí)間才能進(jìn)行數(shù)據(jù)的處理。只有一種方法能夠避免這一多余的復(fù)雜操作:即在您的應(yīng)用程序中使用遷移學(xué)習(xí)技巧。
與網(wǎng)絡(luò)的設(shè)計(jì)一樣,不同級(jí)別的質(zhì)量預(yù)期可能需要相應(yīng)不同級(jí)別的專業(yè)知識(shí):每種可用的自學(xué)習(xí)算法也都具有能夠影響其性能的不同參數(shù)(如學(xué)習(xí)或衰減速率,批量大小等)。還有一些如Dropout,Batch和Layer Normalization procedure這樣的小技巧有助于使卷積神經(jīng)網(wǎng)絡(luò)最終能夠發(fā)展得更加強(qiáng)大和堅(jiān)固。還有一點(diǎn)必須明確的是,沒(méi)有任何一種自學(xué)習(xí)算法具有完全的確定性;它們總是包含隨機(jī)組件。這意味著開(kāi)發(fā)人員通常必須對(duì)中期結(jié)果進(jìn)行評(píng)估,并對(duì)算法的執(zhí)行進(jìn)行手動(dòng)更改。
2.4 網(wǎng)絡(luò)評(píng)估
經(jīng)過(guò)自學(xué)習(xí)算法進(jìn)行培訓(xùn)的卷積神經(jīng)網(wǎng)絡(luò)必須進(jìn)行統(tǒng)計(jì)評(píng)估。為進(jìn)行這一評(píng)估,需要將一組已知內(nèi)容的樣本圖像與電腦計(jì)算值進(jìn)行對(duì)比。這將產(chǎn)生一個(gè)出錯(cuò)率,表示由網(wǎng)絡(luò)正確識(shí)別出的圖像內(nèi)容屬性的百分比。如果結(jié)果不符合預(yù)設(shè)質(zhì)量要求--比如說(shuō),將5%的Braeburn蘋(píng)果識(shí)別為Granny Smiths是肯定不能接受的--那么就必須回到最初的三個(gè)開(kāi)發(fā)步驟并對(duì)其進(jìn)行改進(jìn)。
原則上來(lái)說(shuō),需要滿足該評(píng)估所需的數(shù)據(jù)是隨時(shí)可用的,因?yàn)檫@些數(shù)據(jù)正是為了培訓(xùn)網(wǎng)絡(luò)而采集而來(lái)。關(guān)鍵是絕對(duì)不要使用在培訓(xùn)過(guò)程中已經(jīng)用的圖像來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行測(cè)試。這樣做會(huì)自動(dòng)導(dǎo)致對(duì)系統(tǒng)真實(shí)性能的低估,同時(shí)真正的錯(cuò)誤只會(huì)在生產(chǎn)過(guò)程中才被發(fā)現(xiàn)。在特殊情況下,當(dāng)測(cè)試數(shù)據(jù)與培訓(xùn)數(shù)據(jù)完全一致時(shí),網(wǎng)絡(luò)會(huì)記住這些圖像,并在評(píng)估過(guò)程中做出完美的表現(xiàn),但在新的圖像被輸入生產(chǎn)系統(tǒng)中時(shí)則會(huì)失敗。為避免這一問(wèn)題的出現(xiàn),非常重要的一點(diǎn)是如何部署諸如交叉驗(yàn)證這樣的過(guò)程,從而在培訓(xùn)和評(píng)估階段將數(shù)據(jù)系統(tǒng)地分開(kāi)。
2.5 訓(xùn)練有素的卷積神經(jīng)網(wǎng)絡(luò)部署
一旦最后一步取得了令人滿意的結(jié)果,那么接下來(lái)的步驟則是將培訓(xùn)后的網(wǎng)絡(luò)植入生產(chǎn)系統(tǒng)中。最普遍使用的深度學(xué)習(xí)框架提供了一系列豐富的工具,能夠?qū)⒕W(wǎng)絡(luò)不同的必要元素整合輸入軟件,以便它們能夠與系統(tǒng)其它組件相連接,比如與相機(jī)連接或?qū)z測(cè)到的圖像內(nèi)容做出的反應(yīng)進(jìn)行控制。
如果在卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行評(píng)估的過(guò)程中對(duì)運(yùn)行性能有特定要求,則會(huì)產(chǎn)生額外的工作量。這通常是因培訓(xùn)網(wǎng)絡(luò)(GPU服務(wù)器)時(shí)與生產(chǎn)環(huán)境下的硬件設(shè)置的不同所導(dǎo)致。在某些情況下也有可能會(huì)被迫使用特殊的方法(如量化法)來(lái)減少已培訓(xùn)過(guò)的網(wǎng)絡(luò),以適應(yīng)目標(biāo)系統(tǒng)的需要。然而,通過(guò)完善的網(wǎng)絡(luò)設(shè)計(jì)能夠避免這種在技術(shù)上具有挑戰(zhàn)性的行為。
3 遷移學(xué)習(xí)
正如此前已經(jīng)提到的,如果單以其原始的模式來(lái)看,卷積神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)有極大的需求,在培訓(xùn)過(guò)程中同樣對(duì)處理器有著極高需求。好在(對(duì)于開(kāi)發(fā)人員來(lái)說(shuō))總有一種能夠簡(jiǎn)化一切的更好的方法,特別是眾所周知的遷移學(xué)習(xí)法。這也讓已經(jīng)使用大量通用圖像(如ImageNet數(shù)據(jù)庫(kù)中的圖像)進(jìn)行培訓(xùn)的網(wǎng)絡(luò)能夠與僅使用少量特定領(lǐng)域的圖像的具體應(yīng)用進(jìn)行適配。開(kāi)發(fā)人員向一個(gè)網(wǎng)絡(luò),如AlexNet,VGG Net或GoogLeNet“展示”應(yīng)用程序特定的培訓(xùn)圖像,然后將結(jié)果值儲(chǔ)存在網(wǎng)絡(luò)最后一層以作為特征向量。這些向量代表的是以高度緊湊的方式展示給網(wǎng)絡(luò)的圖像,并且能夠通過(guò)標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)程序(如邏輯回歸、支持向量機(jī)或“簡(jiǎn)單”多層感知器)進(jìn)行分類。通過(guò)這種方式,卷積神經(jīng)網(wǎng)絡(luò)能夠取代傳統(tǒng)的圖像處理工具,如Hough transformation、SIFT Feature,Harris Corner或Canny Edge detectors。近年來(lái),科學(xué)研究的對(duì)比分析和許多實(shí)際應(yīng)用都清楚地表明,卷積神經(jīng)網(wǎng)絡(luò)中學(xué)習(xí)的特征向量比傳統(tǒng)的手工特征檢測(cè)器更加實(shí)用和具有操作性。
4 卷積神經(jīng)網(wǎng)絡(luò)處理器
如上所述,在卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展過(guò)程中,培訓(xùn)與應(yīng)用步驟之間的區(qū)別是顯而易見(jiàn)的。這兩個(gè)步驟對(duì)于硬件的需求是截然不同的。
培訓(xùn) - GPU
推理 - FPGA
圖5:圖形處理器單元(GPU)是卷積神經(jīng)網(wǎng)絡(luò)培訓(xùn)過(guò)程中的首選硬件。對(duì)于嵌入式視覺(jué)系統(tǒng)中的集成和應(yīng)用,現(xiàn)場(chǎng)可編程門陣列(FPGA)通常被用作培訓(xùn)后的網(wǎng)絡(luò)運(yùn)行所需的處理單元。
在可能的情況下,高性能GPU處理單元應(yīng)該被用于卷積神經(jīng)網(wǎng)絡(luò)的培訓(xùn)過(guò)程中。像NVIDIA這樣的制造商能夠提供專門為此任務(wù)而定制的DGX-1這樣的AI超級(jí)計(jì)算機(jī);而使用更加經(jīng)濟(jì)實(shí)惠的NVIDIA TitanX卡同樣也是可行的。NVIDIA公司報(bào)告指出,它們能夠以比普通CPU快80倍的速度對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行培訓(xùn)。
一旦網(wǎng)絡(luò)接受了培訓(xùn),就將被傳輸至具有低硬件需求和處理單元的嵌入式視覺(jué)系統(tǒng)。對(duì)于處理單元來(lái)說(shuō),則推薦使用現(xiàn)場(chǎng)可編程門陣列(FPGA),因?yàn)樗鼈兡軌虿⑿懈咚偬幚韴D像數(shù)據(jù)。
因此,這種嵌入式視覺(jué)系統(tǒng)的關(guān)鍵部件是一臺(tái)能夠記錄要分類的圖像數(shù)據(jù)的相機(jī);一根傳輸該圖像數(shù)據(jù)的線材;以及用于對(duì)圖像數(shù)據(jù)進(jìn)行分類的卷積神經(jīng)網(wǎng)絡(luò)處理單元。
圖6:適用于卷積神經(jīng)網(wǎng)絡(luò)實(shí)際應(yīng)用的嵌入式視覺(jué)系統(tǒng)。嵌入式相機(jī)(Baslerdart BCON)通過(guò)柔性帶狀線材與具有FPGA(XilinxZynq)的處理單元相連接。圖像數(shù)據(jù)的分類在FPGA上運(yùn)行,因此可以進(jìn)行實(shí)時(shí)計(jì)算。
配置了FPGA的嵌入式視覺(jué)系統(tǒng)具備一系列能夠完美適用于卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn):
FPGA能夠執(zhí)行卷積操作和網(wǎng)絡(luò)所需的其它數(shù)學(xué)運(yùn)算,以便對(duì)圖像進(jìn)行并行和高速分類任務(wù)。此設(shè)置提供實(shí)時(shí)圖像分析和分類功能。
相比GPU,F(xiàn)PGA所需功耗更小,因此更適合低功耗的嵌入式系統(tǒng)。微軟研究院最近發(fā)布的一份報(bào)告8顯示,F(xiàn)PGA能夠比GPU節(jié)省10倍功耗。
FPGA的大型片上存儲(chǔ)和帶寬使卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)Ω叻直媛实膱D像進(jìn)行實(shí)時(shí)分類。
能夠與FPGA直接連接的相機(jī)(如Basler's dart BCON相機(jī))能夠?qū)?shù)據(jù)直接傳送到FPGA。這是處理器密集型應(yīng)用程序(如卷積神經(jīng)網(wǎng)絡(luò))的一個(gè)主要優(yōu)勢(shì),因?yàn)橥ㄟ^(guò)USB傳輸?shù)臄?shù)據(jù)在到達(dá)FPGA之前必須通過(guò)不同的硬件組件(比如主機(jī)控制器)運(yùn)行。實(shí)現(xiàn)相機(jī)與FPGA的直接連接能夠保證更加高效的工作性能。
5 簡(jiǎn)要概述
1. 當(dāng)負(fù)責(zé)解決傳統(tǒng)分類問(wèn)題的開(kāi)發(fā)人員還在焦頭爛額于手動(dòng)制定的“屬性”或標(biāo)準(zhǔn)時(shí),卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)能夠自行學(xué)習(xí)這些差異化標(biāo)準(zhǔn)。
2. 網(wǎng)絡(luò)通過(guò)使用一組已知內(nèi)容的圖像自動(dòng)學(xué)習(xí)差異化標(biāo)準(zhǔn)。在所需圖像的數(shù)量以及處理能力方面,這是一個(gè)高度資源密集型的學(xué)習(xí)過(guò)程。
3. 然而,遷移學(xué)習(xí)的原理使得少量圖片和處理能力也可能實(shí)現(xiàn)生產(chǎn)就緒的解決方案。
4. 卷積神經(jīng)網(wǎng)絡(luò)非常適用于具有相機(jī)與FPGA直接連接的嵌入式視覺(jué)系統(tǒng)(如Basler BCON相機(jī))。
5. 根據(jù)2016年嵌入式視覺(jué)聯(lián)盟進(jìn)行的嵌入式視覺(jué)開(kāi)發(fā)者調(diào)查9,77%的受訪者表示目前正在或計(jì)劃將要利用神經(jīng)網(wǎng)絡(luò)來(lái)處理機(jī)器視覺(jué)應(yīng)用程序中的分類工作。
作者簡(jiǎn)介:
Peter Behringer
Basler公司產(chǎn)品市場(chǎng)經(jīng)理
Peter Behringer自2016年以來(lái)?yè)?dān)任產(chǎn)品市場(chǎng)經(jīng)理,負(fù)責(zé)Basler嵌入式相機(jī)在醫(yī)療和生命科學(xué)領(lǐng)域的市場(chǎng)。
在加入Basler之前,他獲得了呂貝克大學(xué)醫(yī)學(xué)工程的理學(xué)碩士學(xué)位。大學(xué)期間,他曾在Charité(柏林大學(xué)附屬夏里特醫(yī)院)以及哈佛醫(yī)學(xué)院外科手術(shù)輔助實(shí)驗(yàn)室等知名機(jī)構(gòu)實(shí)習(xí)。
Peter Behringer發(fā)表了大量主要針對(duì)醫(yī)學(xué)圖像處理的科學(xué)研究成果。
Dr. Florian Hoppe
Florian Hoppe是Twenty Billion Neurons GmbH(TwentyBN)的聯(lián)合創(chuàng)始人兼董事總經(jīng)理,其職責(zé)范圍包括業(yè)務(wù)發(fā)展部門等。Hoppe先生擁有計(jì)算機(jī)科學(xué)博士學(xué)位,同時(shí)是一名機(jī)器學(xué)習(xí)過(guò)程領(lǐng)域的杰出專家。在創(chuàng)立TwentyBN公司之前,他曾擔(dān)任IT部門顧問(wèn)和經(jīng)理,并一直致力于創(chuàng)新軟件系統(tǒng)方面的研究。
評(píng)論