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

C5515ZCH圖像信息系統(tǒng)IBIS模型的詳細(xì)資料概述

kinect虛擬儀器控制技術(shù)詳細(xì)資料概述

如何在Linux中使用SIM7100模塊的詳細(xì)資料概述

如何在開發(fā)板上實現(xiàn)交通燈模擬的詳細(xì)資料概述
人工智能深度學(xué)習(xí)目標(biāo)檢測的詳細(xì)資料免費下載

MATLAB圖像處理命令大全詳細(xì)資料免費下載

如何在Linux下如何刪除大量文件的詳細(xì)資料概述
光電圖像處理教程之?dāng)?shù)字圖像處理的基礎(chǔ)的詳細(xì)資料說明
圖像處理教程之圖像復(fù)原的詳細(xì)資料說明

STM32Cube學(xué)習(xí)教程之時鐘樹配置的詳細(xì)資料概述

評論