0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解CPU vs FPGA處理技術(shù)的好處和得失來(lái)進(jìn)行圖像處理

M8kW_icbank ? 2018-01-16 11:49 ? 次閱讀

機(jī)器視覺(jué)工業(yè)自動(dòng)化系統(tǒng)中的應(yīng)用已經(jīng)有一定的歷史,它取代了傳統(tǒng)的人工檢查,提高了生產(chǎn)質(zhì)量和產(chǎn)量。 我們已經(jīng)看到了相機(jī)在計(jì)算機(jī)、移動(dòng)設(shè)備和汽車(chē)等日常生活設(shè)備中的迅速普及,但是機(jī)器視覺(jué)的最大進(jìn)步莫過(guò)于處理能力。隨著處理器的性能以每?jī)赡攴环乃俣炔粩嗵嵘约岸嗪?a href="http://wenjunhu.com/v/tag/132/" target="_blank">CPUFPGA等并行處理技術(shù)日益受到關(guān)注,視覺(jué)系統(tǒng)設(shè)計(jì)人員現(xiàn)在可以應(yīng)用復(fù)雜的算法來(lái)可視化數(shù)據(jù),并創(chuàng)建出更加智能的系統(tǒng)。

性能的提高意味著設(shè)計(jì)人員可以獲得更高的數(shù)據(jù)吞吐量,從而實(shí)現(xiàn)更快速的圖像采集,使用更高分辨率的傳感器,并充分利用市場(chǎng)上具有最高動(dòng)態(tài)范圍的一些新款相機(jī)。性能的提高不僅可讓設(shè)計(jì)人員更快速地采集圖像,而且還能更快速地處理圖像。預(yù)處理算法(如閾值和濾波)或處理算法(如模式匹配)也可以更快速地執(zhí)行。最終設(shè)計(jì)人員能夠比以往更快地基于可視化數(shù)據(jù)制定決策。

德州奧斯汀NI總部數(shù)據(jù)采集和控制產(chǎn)品市場(chǎng)經(jīng)理,主要負(fù)責(zé)機(jī)器視覺(jué)領(lǐng)域的Brandon Treece認(rèn)為,隨著視覺(jué)系統(tǒng)越來(lái)越多地集成最新一代多核CPU和強(qiáng)大FPGA,視覺(jué)系統(tǒng)設(shè)計(jì)人員需要了解使用這些處理元件的好處和得失。他們不僅需要在正確的硬件上運(yùn)行正確的算法,還需要了解哪些架構(gòu)最適合作為其設(shè)計(jì)的基礎(chǔ)。

內(nèi)聯(lián)處理和協(xié)處理

在研究哪種類(lèi)型的算法最適合哪個(gè)處理元件之前,您應(yīng)該了解每個(gè)應(yīng)用最適合的架構(gòu)類(lèi)型。在開(kāi)發(fā)基于CPU和FPGA的異構(gòu)架構(gòu)的視覺(jué)系統(tǒng)時(shí),需要考慮兩個(gè)主要的使用情況: 嵌入式處理和協(xié)處理。

如果是FPGA協(xié)處理,F(xiàn)PGA和CPU將共同工作,共享處理負(fù)載。這種架構(gòu)最常用于GigE Vision和USB3 Vision相機(jī),因?yàn)樗鼈兊牟杉壿嬜詈檬窃贑PU上實(shí)現(xiàn):

您可以使用CPU采集圖像,然后通過(guò)直接存儲(chǔ)器訪問(wèn)(DMA)將其發(fā)送到FPGA,以便FPGA可以執(zhí)行諸如濾波或顏色平面提取等操作。然后,您可以將圖像發(fā)送回CPU以進(jìn)行更高級(jí)的操作,例如光學(xué)字符識(shí)別(OCR)或模式匹配。

在某些情況下,您可以在FPGA上實(shí)現(xiàn)所有的處理步驟,并只將處理結(jié)果發(fā)送回CPU。這使得CPU可以將更多的資源用于運(yùn)動(dòng)控制、網(wǎng)絡(luò)通信和圖像顯示等其他操作。

了解CPU vs FPGA處理技術(shù)的好處和得失來(lái)進(jìn)行圖像處理

圖1.在FPGA協(xié)處理中,圖像使用CPU進(jìn)行采集后,通過(guò)DMA發(fā)送到FPGA,然后由FPGA對(duì)圖像進(jìn)行處理。

在嵌入式FPGA處理架構(gòu)中,您可以將相機(jī)接口直接連接到FPGA的引腳,以便像素可直接從相機(jī)發(fā)送到FPGA。這種架構(gòu)通常與Camera Link相機(jī)一起使用,因?yàn)樗鼈兊牟杉壿嬕子谑褂肍PGA上的數(shù)字電路來(lái)實(shí)現(xiàn)。這個(gè)架構(gòu)有兩個(gè)主要的好處:

首先,與協(xié)處理一樣,在FPGA上執(zhí)行預(yù)處理功能時(shí),可以使用嵌入式處理將部分工作從CPU轉(zhuǎn)移到FPGA。例如,在將像素發(fā)送到CPU之前,可以在FPGA上執(zhí)行高速預(yù)處理,如濾波或閾值處理。這也減少了CPU必須處理的數(shù)據(jù)量,因?yàn)镃PU上的邏輯只需捕獲感興趣區(qū)域的像素,這最終提高了整個(gè)系統(tǒng)的吞吐量。

這種架構(gòu)的第二個(gè)好處是可以在不使用CPU的情況下直接在FPGA內(nèi)進(jìn)行高速控制操作。FPGA是控制應(yīng)用的理想選擇,因?yàn)樗鼈兛梢蕴峁┓浅?焖偾腋叨却_定的循環(huán)速率。其中一個(gè)例子就是高速分類(lèi),其中FPGA向執(zhí)行器發(fā)送脈沖,當(dāng)脈沖通過(guò)執(zhí)行器時(shí),執(zhí)行器會(huì)對(duì)零件進(jìn)行剔除或分類(lèi)操作。

圖2.在嵌入式FPGA處理架構(gòu)中,您可以將相機(jī)接口直接連接到FPGA的引腳,以便像素可直接從相機(jī)發(fā)送到FPGA。

CPU與FPGA視覺(jué)算法

在對(duì)構(gòu)建異構(gòu)視覺(jué)系統(tǒng)的不同方式有了基本了解,您可以看一下在FPGA上運(yùn)行的最佳算法。 首先需要了解CPU和FPGA的工作原理。 為了解釋這一概念,我們假設(shè)一個(gè)理論算法可對(duì)圖像執(zhí)行四個(gè)不同的操作,然后看一下這四個(gè)操作部署到CPU和FPGA上時(shí)分別是如何運(yùn)行的:

CPU按順序執(zhí)行操作,因此第一個(gè)操作必須在整個(gè)圖像上運(yùn)行結(jié)束后,第二個(gè)操作才能啟動(dòng)。在本例中,假設(shè)算法中的每個(gè)步驟在CPU上運(yùn)行需要6ms; 因此,總處理時(shí)間是24ms。

現(xiàn)在考慮在FPGA上運(yùn)行相同的算法。由于FPGA本質(zhì)上是大規(guī)模并行的,所以該算法中的四個(gè)操作可以同時(shí)對(duì)圖像中的不同像素上操作。這意味著接收第一個(gè)處理的像素僅需2ms的時(shí)間,處理整個(gè)圖像需要4ms的時(shí)間,因而總處理時(shí)間為6ms。這比CPU的執(zhí)行速度快得多。

即使使用FPGA協(xié)處理架構(gòu)并將圖像傳輸?shù)紺PU,整個(gè)處理時(shí)間(包括傳輸時(shí)間)也比單獨(dú)使用CPU要短得多。

了解CPU vs FPGA處理技術(shù)的好處和得失來(lái)進(jìn)行圖像處理

圖3.由于FPGA在本質(zhì)上是大規(guī)模并行的,因此相比CPU,可顯著性能提升。

現(xiàn)在考慮一個(gè)真實(shí)的例子,比如粒子計(jì)數(shù)所需的圖像。

首先需要應(yīng)用卷積濾鏡來(lái)銳化圖像。

接下來(lái),通過(guò)閾值運(yùn)行圖像以生成二進(jìn)制圖像。這不僅可以通過(guò)將其從8位單色轉(zhuǎn)換為二進(jìn)制來(lái)減少圖像中的數(shù)據(jù)量,還可以為二進(jìn)制形態(tài)學(xué)應(yīng)用準(zhǔn)備圖像。

最后一步是使用形態(tài)學(xué)來(lái)應(yīng)用關(guān)閉功能。 這會(huì)去除二進(jìn)制粒子中的任何孔。

如果僅在CPU上執(zhí)行上述算法,則必須在閾值步驟開(kāi)始之前完成整個(gè)圖像的卷積步驟。使用NI公司面向LabVIEW的視覺(jué)開(kāi)發(fā)模塊(Vision Development Module)和基于Xilinx Zynq-7020全可編程SoC的cRIO-9068 CompactRIO控制器時(shí),執(zhí)行上述算法需要的時(shí)間為166.7ms。

但是,如果在FPGA上運(yùn)行相同的算法,則可以并行執(zhí)行每個(gè)步驟。在FPGA上運(yùn)行相同的算法只需8ms即可完成。請(qǐng)記住,8ms的時(shí)間中包括將圖像從CPU發(fā)送到FPGA的DMA傳輸時(shí)間,以及算法完成的時(shí)間。在某些應(yīng)用中,可能需要將處理后的圖像發(fā)回到CPU,以供應(yīng)用中的其他部分使用。如果加上這個(gè)時(shí)間的話,整個(gè)過(guò)程也只需8.5ms??偟膩?lái)說(shuō),F(xiàn)PGA執(zhí)行這個(gè)算法要比CPU快20倍。

了解CPU vs FPGA處理技術(shù)的好處和得失來(lái)進(jìn)行圖像處理

圖4:使用FPGA協(xié)同處理架構(gòu)運(yùn)行視覺(jué)算法,性能比僅用CPU運(yùn)行同樣的算法提高了20倍。

那么,為什么不在FPGA上運(yùn)行每個(gè)算法呢?

盡管FPGA比CPU更有益于視覺(jué)處理,但是要享受這些優(yōu)勢(shì)也要做出一定的權(quán)衡。例如,考慮CPU與FPGA的原始時(shí)鐘頻率。FPGA的時(shí)鐘頻率在100~200MHz數(shù)量級(jí)。很顯然,F(xiàn)PGA的時(shí)鐘頻率低于CPU的時(shí)鐘頻率,CPU可以輕松地在3GHz或更高的頻率下運(yùn)行。因此,如果一個(gè)應(yīng)用需要一種必須迭代運(yùn)行的圖像處理算法,并且不能利用FPGA的并行性,那么CPU能夠更快地進(jìn)行處理。

前面討論的示例算法在FPGA上運(yùn)行可以獲得20倍的速度提升。該算法中的每個(gè)處理步驟同時(shí)對(duì)各個(gè)像素或一組像素進(jìn)行操作,因此該算法可以利用FPGA的并行優(yōu)勢(shì)來(lái)處理圖像。然而,如果算法使用諸如模式匹配和OCR這樣的處理步驟,這些要求立即分析整個(gè)圖像,這時(shí)候FPGA的優(yōu)勢(shì)就比較勉強(qiáng)了。這是由于缺少處理步驟的并行化,以及需要大量?jī)?nèi)存進(jìn)行圖像與模板之間的比對(duì)分析。雖然FPGA可以直接訪問(wèn)內(nèi)部和外部存儲(chǔ)器,但通常情況下,F(xiàn)PGA可用的存儲(chǔ)器數(shù)量遠(yuǎn)不及CPU可用的數(shù)量,或是這些處理操作所需的數(shù)量。

克服編程復(fù)雜性

FPGA用于圖像處理的優(yōu)勢(shì),取決于每種應(yīng)用要求,包括應(yīng)用的特定算法、延遲或抖動(dòng)要求、I/O同步和功耗等因素。通常使用具有FPGA和CPU的架構(gòu),能充分利用FPGA和CPU各自的優(yōu)勢(shì),并且在性能、成本和可靠性方面都具有競(jìng)爭(zhēng)優(yōu)勢(shì)。然而,實(shí)現(xiàn)基于FPGA的視覺(jué)系統(tǒng)面臨的最大挑戰(zhàn)之一是克服FPGA的編程復(fù)雜性。視覺(jué)算法開(kāi)發(fā)本質(zhì)上是一個(gè)迭代過(guò)程。完成任何一項(xiàng)任務(wù)都必須嘗試多種方法。大多數(shù)情況下,需要確定的不是哪種方法可行,而是哪種方法最好,而“最好方法”的判定則因應(yīng)用的不同而不同。例如,對(duì)于某些應(yīng)用而言,速度至關(guān)重要;而對(duì)于另一些應(yīng)用,則更看重準(zhǔn)確度。至少,需要嘗試幾種不同的方法才能為特定應(yīng)用找到最好的方法。

為了實(shí)現(xiàn)生產(chǎn)率的最大化,不論使用哪種處理平臺(tái),都需要立即獲得關(guān)于算法的反饋和基準(zhǔn)測(cè)試信息。當(dāng)使用迭代探索性方法時(shí),實(shí)時(shí)查看算法結(jié)果將會(huì)節(jié)省大量時(shí)間。什么是正確的閾值?用二進(jìn)制形態(tài)濾波器剔除的顆粒多大或多??? 哪種圖像預(yù)處理算法和算法參數(shù)可以最好地清理圖像? 這些都是開(kāi)發(fā)視覺(jué)算法時(shí)的常見(jiàn)問(wèn)題,而關(guān)鍵在于是否能夠更改并快速查看結(jié)果。然而,傳統(tǒng)的FPGA開(kāi)發(fā)方法可能會(huì)減緩創(chuàng)新,因?yàn)樗惴ǖ拿總€(gè)設(shè)計(jì)變化之間需要編譯時(shí)間??朔@一點(diǎn)的一個(gè)方法是使用一個(gè)算法開(kāi)發(fā)工具,可讓您在同一個(gè)環(huán)境進(jìn)行CPU和FPGA的開(kāi)發(fā)工作,而不會(huì)在FPGA編譯時(shí)陷入困境。NI Vision Assistant是一種算法工程工具,用于開(kāi)發(fā)部署到CPU或FPGA上的算法,以幫助您簡(jiǎn)化視覺(jué)系統(tǒng)設(shè)計(jì)。您還可以使用Vision Assistant在目標(biāo)硬件上編譯和運(yùn)行之前測(cè)試算法,同時(shí)輕松訪問(wèn)吞吐量和資源利用率信息。

了解CPU vs FPGA處理技術(shù)的好處和得失來(lái)進(jìn)行圖像處理

圖5. 在具有集成基準(zhǔn)測(cè)試的FPGA硬件上使用基于配置的工具開(kāi)發(fā)算法,可減少等待代碼編譯的時(shí)間,從而提高了開(kāi)發(fā)速度。

因此在考慮誰(shuí)更適合進(jìn)行圖像處理時(shí),CPU還是FPGA?答案是“視情況而定”。您需要了解應(yīng)用的目標(biāo),才能使用最適合該設(shè)計(jì)的處理元件。但是,不管是什么應(yīng)用,基于CPU或FPGA的架構(gòu)及其固有的優(yōu)勢(shì)都可以將機(jī)器視覺(jué)應(yīng)用的性能提升一個(gè)等級(jí)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21748

    瀏覽量

    603914
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10873

    瀏覽量

    212020
  • 機(jī)器視覺(jué)
    +關(guān)注

    關(guān)注

    162

    文章

    4378

    瀏覽量

    120396
  • 圖形處理
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    13794

原文標(biāo)題:CPU vs FPGA,圖像處理誰(shuí)更厲害?

文章出處:【微信號(hào):icbank,微信公眾號(hào):icbank】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理

    中相機(jī)從看到物料圖像到給出執(zhí)行指令之間的延時(shí)大概只有幾毫秒,這就要求圖像處理必須很快且延時(shí)固定,只有FPGA進(jìn)行的實(shí)時(shí)流水線運(yùn)算才能滿(mǎn)足這一
    發(fā)表于 06-12 16:26

    FPGA圖像處理領(lǐng)域的優(yōu)勢(shì)有哪些?

    、支持多種接口 FPGA可以支持多種接口,如PCIe、DDR、HDMI等,這使得FPGA可以方便地與其他硬件設(shè)備進(jìn)行連接。在圖像處理系統(tǒng)中,
    發(fā)表于 10-09 14:36

    張工教你FPGA圖像處理技術(shù)

    本帖最后由 enlinux123 于 2014-11-7 16:41 編輯 想?yún)⒓?b class='flag-5'>技術(shù)培訓(xùn)學(xué)習(xí)可以加張工2232894713最近一段時(shí)間一直在研究基于FPGA圖像處理,乘著這個(gè)
    發(fā)表于 11-05 09:50

    CPU vs FPGA?圖像處理誰(shuí)更“應(yīng)景”?

    提高了開(kāi)發(fā)速度。因此在考慮誰(shuí)更適合進(jìn)行圖像處理時(shí),CPU還是FPGA?答案是“視情況而定”。您需要了解
    發(fā)表于 08-03 11:13

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

    上述分類(lèi)之外,還被用于多項(xiàng)任務(wù)(下面顯示了四個(gè)示例)。在 FPGA進(jìn)行深度學(xué)習(xí)的好處我們已經(jīng)提到,許多服務(wù)和技術(shù)都使用深度學(xué)習(xí),而 GPU 大量用于這些計(jì)算。這是因?yàn)榫仃嚦朔ㄗ鳛樯?/div>
    發(fā)表于 02-17 16:56

    薦讀:FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理

    流水線運(yùn)算才能滿(mǎn)足這一要求。 所以要了解FPGA進(jìn)行圖像處理的優(yōu)勢(shì)就必須理解FPGA所能
    發(fā)表于 06-08 15:55

    基于DSP和FPGA的通用圖像處理平臺(tái)設(shè)計(jì)

    設(shè)計(jì)一種基于DSP和FPGA架構(gòu)的通用圖像處理平臺(tái),運(yùn)用FPGA實(shí)現(xiàn)微處理器接口設(shè)計(jì),并對(duì)圖像數(shù)
    發(fā)表于 12-25 17:06 ?61次下載

    基于DSP和FPGA的通用圖像處理平臺(tái)設(shè)計(jì)

    基于DSP和FPGA的通用圖像處理平臺(tái)設(shè)計(jì) 摘要:設(shè)計(jì)一種基于DSP和FPGA架構(gòu)的通用圖像處理
    發(fā)表于 02-01 11:10 ?1507次閱讀
    基于DSP和<b class='flag-5'>FPGA</b>的通用<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>平臺(tái)設(shè)計(jì)

    FPGA圖像處理

    FPGA圖像處理
    發(fā)表于 12-14 22:29 ?19次下載

    FPGA進(jìn)行圖像處理及其示例

    借助FPGA技術(shù)和NI視覺(jué)開(kāi)發(fā)模塊,您可以對(duì)從相機(jī)采集的圖像進(jìn)行高速現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)處理
    發(fā)表于 11-17 06:00 ?1.9w次閱讀

    如何使用FPGA進(jìn)行圖像實(shí)時(shí)處理系統(tǒng)的設(shè)計(jì)

    由于現(xiàn)場(chǎng)實(shí)時(shí)測(cè)量的需要,機(jī)器視覺(jué)技術(shù)越來(lái)越多地借助硬件來(lái)完成,如DSP芯片、專(zhuān)用圖像信號(hào)處理卡等。但是,DSP做圖像
    發(fā)表于 10-23 17:34 ?17次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>圖像</b>實(shí)時(shí)<b class='flag-5'>處理</b>系統(tǒng)的設(shè)計(jì)

    FPGA圖像處理方法

    圖像在采集和傳輸?shù)倪^(guò)程中,通常會(huì)產(chǎn)生噪聲,使圖像質(zhì)量降低,影響后續(xù)處理。因此須對(duì)圖像進(jìn)行一些圖像
    的頭像 發(fā)表于 12-25 14:15 ?3449次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>方法

    FPGA學(xué)習(xí)-基于FPGA圖像處理

    圖像處理系統(tǒng)設(shè)計(jì)注意點(diǎn): 1.將算法開(kāi)發(fā)和 FPGA 實(shí)現(xiàn)分離 用軟件的圖像處理環(huán)境可以使用大批量的圖像
    的頭像 發(fā)表于 02-15 16:35 ?1265次閱讀

    FPGA圖像處理方法

    圖像在采集和傳輸?shù)倪^(guò)程中,通常會(huì)產(chǎn)生噪聲,使圖像質(zhì)量降低,影響后續(xù)處理。因此須對(duì)圖像進(jìn)行一些圖像
    的頭像 發(fā)表于 12-02 13:15 ?1131次閱讀

    FPGA 實(shí)時(shí)信號(hào)處理應(yīng)用 FPGA圖像處理中的優(yōu)勢(shì)

    優(yōu)勢(shì)之一是其并行處理能力。與傳統(tǒng)的CPU或GPU相比,FPGA可以同時(shí)執(zhí)行多個(gè)操作,這在圖像處理中尤為重要,因?yàn)?/div>
    的頭像 發(fā)表于 12-02 10:01 ?639次閱讀