CPU還是FPGA:圖像處理誰更適合?
發布時間:2017-12-28 來源:Brandon Treece 責任編輯:lina

機(ji)器(qi)視(shi)覺(jiao)在(zai)工(gong)業(ye)自(zi)動(dong)化(hua)係(xi)統(tong)中(zhong)的(de)應(ying)用(yong)已(yi)經(jing)有(you)一(yi)定(ding)的(de)曆(li)史(shi),它(ta)取(qu)代(dai)了(le)傳(chuan)統(tong)的(de)人(ren)工(gong)檢(jian)查(zha),提(ti)高(gao)了(le)生(sheng)產(chan)質(zhi)量(liang)和(he)產(chan)量(liang)。我(wo)們(men)已(yi)經(jing)看(kan)到(dao)了(le)相(xiang)機(ji)在(zai)計(ji)算(suan)機(ji)、yidongshebeiheqichedengrichangshenghuoshebeizhongdexunsupuji,danshijiqishijiaodezuidajinbumoguoyuchulinengli。suizhechuliqidexingnengyimeiliangnianfanyifandesudubuduantisheng,yijiduoheCPU和FPGA等並行處理技術日益受到關注,視覺係統設計人員現在可以應用複雜的算法來可視化數據,並創建出更加智能的係統。
性xing能neng的de提ti高gao意yi味wei著zhe設she計ji人ren員yuan可ke以yi獲huo得de更geng高gao的de數shu據ju吞tun吐tu量liang,從cong而er實shi現xian更geng快kuai速su的de圖tu像xiang采cai集ji,使shi用yong更geng高gao分fen辨bian率lv的de傳chuan感gan器qi,並bing充chong分fen利li用yong市shi場chang上shang具ju有you最zui高gao動dong態tai範fan圍wei的de一yi些xie新xin款kuan相xiang機ji。性xing能neng的de提ti高gao不bu僅jin可ke讓rang設she計ji人ren員yuan更geng快kuai速su地di采cai集ji圖tu像xiang,而er且qie還hai能neng更geng快kuai速su地di處chu理li圖tu像xiang。預yu處chu理li算suan法fa(如閾值和濾波)或處理算法(如模式匹配)也可以更快速地執行。最終設計人員能夠比以往更快地基於可視化數據製定決策。
隨著視覺係統越來越多地集成最新一代多核CPU和強大FPGA,視(shi)覺(jiao)係(xi)統(tong)設(she)計(ji)人(ren)員(yuan)需(xu)要(yao)了(le)解(jie)使(shi)用(yong)這(zhe)些(xie)處(chu)理(li)元(yuan)件(jian)的(de)好(hao)處(chu)和(he)得(de)失(shi)。他(ta)們(men)不(bu)僅(jin)需(xu)要(yao)在(zai)正(zheng)確(que)的(de)硬(ying)件(jian)上(shang)運(yun)行(xing)正(zheng)確(que)的(de)算(suan)法(fa),還(hai)需(xu)要(yao)了(le)解(jie)哪(na)些(xie)架(jia)構(gou)最(zui)適(shi)合(he)作(zuo)為(wei)其(qi)設(she)計(ji)的(de)基(ji)礎(chu)。
內聯處理和協處理
在研究哪種類型的算法最適合哪個處理元件之前,您應該了解每個應用最適合的架構類型。在開發基於CPU和FPGA的異構架構的視覺係統時,需要考慮兩個主要的使用情況:嵌入式處理和協處理。如果是FPGA協處理,FPGA和CPU將共同工作,共享處理負載。這種架構最常用於GigE Vision和USB3 Vision相機,因為它們的采集邏輯最好是在CPU上實現。您可以使用CPU采集圖像,然後通過直接存儲器訪問(DMA)將其發送到FPGA,以便FPGA可以執行諸如濾波或顏色平麵提取等操作。然後,您可以將圖像發送回CPU以進行更高級的操作,例如光學字符識別(OCR)或模式匹配。在某些情況下,您可以在FPGA上實現所有的處理步驟,並隻將處理結果發送回CPU。這使得CPU可以將更多的資源用於運動控製、網絡通信和圖像顯示等其他操作。

圖1.在FPGA協處理中,圖像使用CPU進行采集後,通過DMA發送到FPGA,然後由FPGA對圖像進行處理。
在嵌入式FPGA處理架構中,您可以將相機接口直接連接到FPGA的引腳,以便像素可直接從相機發送到FPGA。這種架構通常與Camera Link相機一起使用,因為它們的采集邏輯易於使用FPGA上的數字電路來實現。這個架構有兩個主要的好處。首先,與協處理一樣,在FPGA上執行預處理功能時,可以使用嵌入式處理將部分工作從CPU轉移到FPGA。例如,在將像素發送到CPU之前,可以在FPGA上執行高速預處理,如濾波或閾值處理。這也減少了CPU必須處理的數據量,因為CPU上的邏輯隻需捕獲感興趣區域的像素,這最終提高了整個係統的吞吐量。這種架構的第二個好處是可以在不使用CPU的情況下直接在FPGA內進行高速控製操作。FPGA是控製應用的理想選擇,因為它們可以提供非常快速且高度確定的循環速率。其中一個例子就是高速分類,其中FPGA向執行器發送脈衝,當脈衝通過執行器時,執行器會對零件進行剔除或分類操作。

圖2.在嵌入式FPGA處理架構中,您可以將相機接口直接連接到FPGA的引腳,以便像素可直接從相機發送到FPGA。
CPU與FPGA視覺算法
在對構建異構視覺係統的不同方式有了基本了解,您可以看一下在FPGA上運行的最佳算法。首先需要了解CPU和FPGA的工作原理。為了解釋這一概念,我們假設一個理論算法可對圖像執行四個不同的操作,然後看一下這四個操作部署到CPU和FPGA上時分別是如何運行的。
CPU按順序執行操作,因此第一個操作必須在整個圖像上運行結束後,第二個操作才能啟動。在本例中,假設算法中的每個步驟在CPU上運行需要6ms;因此,總處理時間是24毫秒。現在考慮在FPGA上運行相同的算法。由於FPGA本質上是大規模並行的,所以該算法中的四個操作可以同時對圖像中的不同像素上操作。這意味著接收第一個處理的像素僅需2ms的時間,處理整個圖像需要4ms的時間,因而總處理時間為6ms。這比CPU的執行速度快得多。即使使用FPGA協處理架構並將圖像傳輸到CPU,整個處理時間(包括傳輸時間)也比單獨使用CPU要短得多。

圖3.由於FPGA在本質上是大規模並行的,因此相比CPU,可顯著性能提升。
現xian在zai考kao慮lv一yi個ge真zhen實shi的de例li子zi,比bi如ru粒li子zi計ji數shu所suo需xu的de圖tu像xiang。首shou先xian需xu要yao應ying用yong卷juan積ji濾lv鏡jing來lai銳rui化hua圖tu像xiang。接jie下xia來lai,通tong過guo閾yu值zhi運yun行xing圖tu像xiang以yi生sheng成cheng二er進jin製zhi圖tu像xiang。這zhe不bu僅jin可ke以yi通tong過guo將jiang其qi從cong8位wei單dan色se轉zhuan換huan為wei二er進jin製zhi來lai減jian少shao圖tu像xiang中zhong的de數shu據ju量liang,還hai可ke以yi為wei二er進jin製zhi形xing態tai學xue應ying用yong準zhun備bei圖tu像xiang。最zui後hou一yi步bu是shi使shi用yong形xing態tai學xue來lai應ying用yong關guan閉bi功gong能neng。這zhe會hui去qu除chu二er進jin製zhi粒li子zi中zhong的de任ren何he孔kong。
如果僅在CPU上執行上述算法,則必須在閾值步驟開始之前完成整個圖像的卷積步驟。使用NI公司麵向LabVIEW的視覺開發模塊(Vision Development Module)和基於Xilinx Zynq-7020全可編程SoC的cRIO-9068 CompactRIO控製器時,執行上述算法需要的時間為166.7ms。但是,如果在FPGA上運行相同的算法,則可以並行執行每個步驟。在FPGA上運行相同的算法隻需8ms即可完成。請記住,8ms的時間中包括將圖像從CPU發送到FPGA的DMA傳輸時間,以及算法完成的時間。在某些應用中,可能需要將處理後的圖像發回到CPU,以供應用中的其他部分使用。如果加上這個時間的話,整個過程也隻需8.5ms。總的來說,FPGA執行這個算法要比CPU快20倍。

圖4:使用FPGA協同處理架構運行視覺算法,性能比僅用CPU運行同樣的算法提高了20倍。
那麼,為什麼不在FPGA上運行每個算法呢?盡管FPGA比CPU更有益於視覺處理,但是要享受這些優勢也要做出一定的權衡。例如,考慮CPU與FPGA的原始時鍾頻率。FPGA的時鍾頻率在100~200MHz數量級。很顯然,FPGA的時鍾頻率低於CPU的時鍾頻率,CPU可以輕鬆地在3GHz或更高的頻率下運行。因此,如果一個應用需要一種必須迭代運行的圖像處理算法,並且不能利用FPGA的並行性,那麼CPU能夠更快地進行處理。前麵討論的示例算法在FPGA上運行可以獲得20倍的速度提升。該算法中的每個處理步驟同時對各個像素或一組像素進行操作,因此該算法可以利用FPGA的並行優勢來處理圖像。然而,如果算法使用諸如模式匹配和OCR這樣的處理步驟,這些要求立即分析整個圖像,這時候FPGA的優勢就比較勉強了。這是由於缺少處理步驟的並行化,以及需要大量內存進行圖像與模板之間的比對分析。雖然FPGA可以直接訪問內部和外部存儲器,但通常情況下,FPGA可用的存儲器數量遠不及CPU可用的數量,或是這些處理操作所需的數量。
克服編程複雜性
FPGA用於圖像處理的優勢,取決於每種應用要求,包括應用的特定算法、延遲或抖動要求、I/O同步和功耗等因素。通常使用具有FPGA和CPU的架構,能充分利用FPGA和CPU各自的優勢,並且在性能、成本和可靠性方麵都具有競爭優勢。然而,實現基於FPGA的視覺係統麵臨的最大挑戰之一是克服FPGA的(de)編(bian)程(cheng)複(fu)雜(za)性(xing)。視(shi)覺(jiao)算(suan)法(fa)開(kai)發(fa)本(ben)質(zhi)上(shang)是(shi)一(yi)個(ge)迭(die)代(dai)過(guo)程(cheng)。完(wan)成(cheng)任(ren)何(he)一(yi)項(xiang)任(ren)務(wu)都(dou)必(bi)須(xu)嚐(chang)試(shi)多(duo)種(zhong)方(fang)法(fa)。大(da)多(duo)數(shu)情(qing)況(kuang)下(xia),需(xu)要(yao)確(que)定(ding)的(de)不(bu)是(shi)哪(na)種(zhong)方(fang)法(fa)可(ke)行(xing),而(er)是(shi)哪(na)種(zhong)方(fang)法(fa)最(zui)好(hao),而(er)“最好方法”的判定則因應用的不同而不同。例如,對於某些應用而言,速度至關重要;而對於另一些應用,則更看重準確度。至少,需要嚐試幾種不同的方法才能為特定應用找到最好的方法。
weileshixianshengchanlvdezuidahua,bulunshiyongnazhongchulipingtai,douxuyaolijihuodeguanyusuanfadefankuihejizhunceshixinxi。dangshiyongdiedaitansuoxingfangfashi,shishizhakansuanfajieguojianghuijieshengdaliangshijian。shenmeshizhengquedeyuzhi?yongerjinzhixingtailvboqitichudekeliduodahuoduoxiao?nazhongtuxiangyuchulisuanfahesuanfacanshukeyizuihaodiqinglituxiang?zhexiedoushikaifashijiaosuanfashidechangjianwenti,erguanjianzaiyushifounenggougenggaibingkuaisuzhakanjieguo。raner,chuantongdeFPGAkaifafangfakenenghuijianhuanchuangxin,yinweisuanfademeigeshejibianhuazhijianxuyaobianyishijian。kefuzheyidiandeyigefangfashishiyongyigesuanfakaifagongju,kerangninzaitongyigehuanjingjinxingCPU和FPGA的開發工作,而不會在FPGA編譯時陷入困境。NI Vision Assistant是一種算法工程工具,用於開發部署到CPU或FPGA上的算法,以幫助您簡化視覺係統設計。您還可以使用Vision Assistant在目標硬件上編譯和運行之前測試算法,同時輕鬆訪問吞吐量和資源利用率信息。

圖5.在具有集成基準測試的FPGA硬件上使用基於配置的工具開發算法,可減少等待代碼編譯的時間,從而提高了開發速度。
因此在考慮誰更適合進行圖像處理時,CPU還是FPGA?答案是”視情況而定“。您需要了解應用的目標,才能使用最適合該設計的處理元件。但是,不管是什麼應用,基於CPU或FPGA的架構及其固有的優勢都可以將機器視覺應用的性能提升一個等級。
推薦閱讀:
詳讀無線傳感器網絡方案構建的幾大要點
解讀LCD量子點OLED三種技術的優勢和缺點
WiFi測試為何對智能手機如此重要?
高效率、低功率轉換IC是如何改善可穿戴設備性能的?
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall





