作者:Martin Cassel,Silicon Software
工業(yè)應(yīng)用中FPGA 上的神經(jīng)元網(wǎng)絡(luò)(CNN)
深度學(xué)習(xí)應(yīng)用憑借其在識(shí)別應(yīng)用中超高的預(yù)測(cè)準(zhǔn)確率,在圖像處理領(lǐng)域獲得了極大關(guān)注,這勢(shì)必將提升現(xiàn)有圖像處理系統(tǒng)的性能并開(kāi)創(chuàng)新的應(yīng)用領(lǐng)域。
利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN) 等深層神經(jīng)網(wǎng)絡(luò)的解決方案,可以逐漸取代基于算法說(shuō)明的傳統(tǒng)圖像處理工作。盡管圖像預(yù)處理、后期處理和信號(hào)處理仍采用現(xiàn)有方法進(jìn)行,但在圖像分類(lèi)應(yīng)用中(缺陷、對(duì)象以及特征分類(lèi)),深度學(xué)習(xí)變得愈加重要。
利用深度學(xué)習(xí)處理某些任務(wù)更簡(jiǎn)單,效果更好,甚至某些任務(wù)只能用深度學(xué)習(xí)方法來(lái)解決。深度學(xué)習(xí)正在逐漸威脅傳統(tǒng)圖像處理方法的地位——特別是處理任務(wù)中包含有復(fù)雜變量時(shí)(如反射面、光照不佳的環(huán)境、光照變化或移動(dòng)的對(duì)象)。
深度學(xué)習(xí)具有平移不變性的優(yōu)點(diǎn),這部分使用傳統(tǒng)處理方式需要大量的投入。但如果需要對(duì)圖像中的對(duì)象或錯(cuò)誤進(jìn)行定位、標(biāo)定、代碼讀取或后期處理,則傳統(tǒng)算法更具有優(yōu)勢(shì)。
圖1:傳統(tǒng)圖像處理及深度學(xué)習(xí)的適用范圍對(duì)比。
傳統(tǒng)圖像處理 | 深度學(xué)習(xí) |
典型應(yīng)用 | 典型應(yīng)用 |
尺寸測(cè)量 代碼讀取 有/無(wú)檢測(cè) 機(jī)器人引導(dǎo) 印刷檢測(cè) 汽車(chē) 電子 |
表面檢測(cè)(裂紋、劃痕) 食品、植物、木材檢測(cè) 塑料、注塑成型 織物檢測(cè) 醫(yī)療成像 農(nóng)業(yè) |
典型特征 | 典型特征 |
對(duì)目標(biāo)有嚴(yán)格要求 方向固定 客戶(hù)提供容差范圍內(nèi)的正式規(guī)格 可靠性100% |
目標(biāo)可變 方向可變 客戶(hù)提供模糊的規(guī)格,提供Good和Bad零件的樣本 可靠性99% |
深度學(xué)習(xí)包括神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和學(xué)習(xí)、網(wǎng)絡(luò)的實(shí)現(xiàn)和推斷運(yùn)算、網(wǎng)絡(luò)的CNN 算法在圖像上的執(zhí)行與分類(lèi)結(jié)果的輸出。用于訓(xùn)練的數(shù)據(jù)越多,分類(lèi)的預(yù)測(cè)精度就會(huì)越高。由于數(shù)據(jù)量龐大,訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)通常選用GPU。
圖2:訓(xùn)練數(shù)據(jù)越多,預(yù)測(cè)精度越高
速度與精度
基于各種不同技術(shù)的處理器,是否都能滿(mǎn)足工業(yè)圖像處理中的特殊需求呢?CNN應(yīng)用必須執(zhí)行快速(推斷)同時(shí)滿(mǎn)足極低的時(shí)延。在滿(mǎn)足處理速度的同時(shí),還要滿(mǎn)足高帶寬、低發(fā)熱、實(shí)時(shí)性以及供貨周期長(zhǎng)這些需求,僅僅使用傳統(tǒng)CPU 或GPU 是難以實(shí)現(xiàn)的,它們通常可以為非工業(yè)領(lǐng)域的圖像處理任務(wù)提供更合適的解決方案,在這些領(lǐng)域的識(shí)別任務(wù)盡管同樣復(fù)雜,但相對(duì)較低的數(shù)據(jù)吞吐性能即可滿(mǎn)足需求。各個(gè)平臺(tái)之間區(qū)別很大,僅從技術(shù)指標(biāo)方面就能看出,它們無(wú)法應(yīng)用于高要求的任務(wù)。盡管GPU 的推斷耗時(shí)比CPU 或特殊芯片短得多(如TPU -TensorFlow Processing Units、TensorFlow 處理單元以及Intel Movidius處理器),但是其數(shù)據(jù)吞吐量這項(xiàng)指標(biāo)只能達(dá)到大約每秒50MB這樣一個(gè)較低的水平。
在通常的圖像處理應(yīng)用中,只需要對(duì)少數(shù)幾個(gè)特性進(jìn)行分類(lèi),因此選擇小型或中型網(wǎng)絡(luò)通常就足以應(yīng)對(duì),AlexNet、SqueezeNet 或MobileNet 都是這類(lèi)網(wǎng)絡(luò)的典型代表。這幾種網(wǎng)絡(luò)類(lèi)型在機(jī)器視覺(jué)領(lǐng)域,預(yù)測(cè)精度、網(wǎng)絡(luò)大小和計(jì)算速度以及帶寬這幾方面有著良好的平衡。這里可以很明顯地看到,通過(guò)選擇合適的網(wǎng)絡(luò),可以在犧牲小部分檢測(cè)精度的同時(shí),獲得數(shù)據(jù)吞吐量方面的極大提高,同時(shí)也為優(yōu)化資源和提高分類(lèi)質(zhì)量提供了可能性。
圖3:《對(duì)用于實(shí)際應(yīng)用的深層神經(jīng)網(wǎng)絡(luò)模式的分析》,Alfredo Canziani、Adam Paszke、Eugenio Culurciello (2017)
推斷應(yīng)用中的FPGA 和SoC
在很多圖像處理任務(wù)的需求中,特別是機(jī)器視覺(jué)領(lǐng)域,F(xiàn)PGA可以作為獨(dú)立處理單元或與ARM 處理器一起構(gòu)成SoC。FPGA 具有高度并行處理能力、穩(wěn)定的圖像采集能力以及相對(duì)于CPU 和GPU更高的運(yùn)算性能、圖像幀率和帶寬?;贔PGA的CNN應(yīng)用可完成高帶寬的分類(lèi)工作,這尤其適用于高速在線(xiàn)檢測(cè)。
FPGA支持直接在圖像采集卡或在嵌入式視覺(jué)設(shè)備上處理圖像數(shù)據(jù)——從采集到輸出以及外圍設(shè)備控制——且無(wú)任何CPU占用,這個(gè)特點(diǎn)讓FPGA特別適用于高強(qiáng)度運(yùn)算的應(yīng)用,如CNN。因此未配備GPU 的小型PC 也能使用,從而可降低整體系統(tǒng)成本。在工業(yè)環(huán)境溫度下,F(xiàn)PGA的能效比GPU高十倍,是嵌入式設(shè)備的理想之選,這顯著擴(kuò)大了深度學(xué)習(xí)在工業(yè)4.0 以及無(wú)人機(jī)和自動(dòng)駕駛領(lǐng)域的應(yīng)用。
GPU擁有更高的計(jì)算精度和更高的預(yù)測(cè)精度,但這些是以更短的供貨周期、更高的功耗以及更低的數(shù)據(jù)吞吐量為代價(jià)的。在一個(gè)示范性的對(duì)比中,基于FPGA的解決方案的數(shù)據(jù)處理性能是使用GPU的類(lèi)似解決方案的7.3倍左右。
圖4:FPGA 的性能大約是GPU 性能的7.3倍
優(yōu)化FPGA 資源
在深度學(xué)習(xí)領(lǐng)域,存在各種不用降低分類(lèi)質(zhì)量就能節(jié)省資源的方法。其中之一是通過(guò)圖像縮放來(lái)降低數(shù)據(jù)吞吐量,或者改變數(shù)據(jù)位深:我們的項(xiàng)目經(jīng)驗(yàn)表明,數(shù)據(jù)的位深對(duì)后來(lái)的預(yù)測(cè)精度影響甚微。將數(shù)據(jù)位深32位浮點(diǎn)數(shù)降為8位定點(diǎn)數(shù)或整數(shù),可以讓FPGA將節(jié)省下來(lái)的資源用于更大的網(wǎng)絡(luò)架構(gòu),或?qū)崿F(xiàn)更高的數(shù)據(jù)吞吐量,從而實(shí)現(xiàn)處理速度的提升,這對(duì)例如焊縫檢測(cè)或機(jī)器人技術(shù)這類(lèi)應(yīng)用非常有意義。通過(guò)類(lèi)似的預(yù)處理降低數(shù)據(jù)量,讓更適合FPGA的小型網(wǎng)絡(luò)的使用成為可能,這樣的網(wǎng)絡(luò)通常足以處理缺陷特征較少的簡(jiǎn)單分類(lèi)任務(wù)。
32 位浮點(diǎn)GPU 雖然擁有更高的計(jì)算精度,但這一點(diǎn)對(duì)深度學(xué)習(xí)的推斷而言無(wú)關(guān)緊要,在FPGA中使用8位定點(diǎn)運(yùn)算的網(wǎng)絡(luò),能為大多數(shù)深度學(xué)習(xí)應(yīng)用提供足夠精確的預(yù)測(cè)精度,誤差幾乎可以忽略不計(jì)。如果需要特別高的計(jì)算精度,可以采取一種資源折中策略,在更大的FPGA 上使用16位定點(diǎn)運(yùn)算。
現(xiàn)在已經(jīng)有了能完美滿(mǎn)足工業(yè)生產(chǎn)的高速處理需求的解決方案,通常使用高性能圖像采集卡或者嵌入式視覺(jué)設(shè)備,例如使用大型FPGA和高分辨率傳感器的智能相機(jī)。利用多種多樣的FPGA 資源,可以處理更復(fù)雜的架構(gòu)以及應(yīng)用。有了更高的數(shù)據(jù)帶寬,能夠在FPGA上對(duì)整幅圖像進(jìn)行處理,或進(jìn)行額外的圖像預(yù)處理以及后期處理,例如對(duì)GigE Vision相機(jī)的最大數(shù)據(jù)輸出帶寬的深度學(xué)習(xí)運(yùn)算也完全能夠滿(mǎn)足。
結(jié)語(yǔ)
與傳統(tǒng)圖像處理相比,深度學(xué)習(xí)應(yīng)用需要在訓(xùn)練方面投入較多時(shí)間,但是相較其帶來(lái)的可靠性和處理速度,這些投入是值得的。圖像采集卡和(嵌入式)視覺(jué)設(shè)備上所使用的FPGA技術(shù),令神經(jīng)網(wǎng)絡(luò)應(yīng)用于工業(yè)級(jí)應(yīng)用成為可能,這需要強(qiáng)大的實(shí)時(shí)處理能力、低延遲(實(shí)時(shí)在線(xiàn)檢測(cè))、高數(shù)據(jù)吞吐量、高帶寬和低功耗低發(fā)熱(嵌入式視覺(jué)應(yīng)用),以及高分辨率。FPGA 及圖像采集卡較長(zhǎng)的供貨周期保障了投資安全性,同時(shí)由于系統(tǒng)可快速的整合且整體系統(tǒng)成本較低,用戶(hù)可以節(jié)省長(zhǎng)期支出。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1630文章
21759瀏覽量
604296 -
gpu
+關(guān)注
關(guān)注
28文章
4753瀏覽量
129063 -
圖像處理
+關(guān)注
關(guān)注
27文章
1295瀏覽量
56805 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5507瀏覽量
121277
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論