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

圖像處理應用中深度學習的重要性分析
評論