宾馆看国模裸体私拍视频I 美女被啪啪激烈爽到喷水免费I 欧美特黄不卡I 亚洲清纯唯美I 999av电影I 26uuu另类亚洲欧美日本老年I 国产精品外国I 欧美国产精品一区I 女同久久另类99精品国产I 亚洲日本japanese丝袜I 黄色美女久久I 亚洲日本aⅴ片在线观看香蕉I 亚洲色图欧美制服丝袜另类第一页I 色综合av在线I 少妇视频在线观看I 男男互操视频网站I 美女扒开腿男人爽桶I 美女福利在线I 深夜激情影院I 69成人精品免费视频I 色婷婷老汉avI 亚洲第一二区I 夜色av资源网站I 黑人精品欧美一区二区蜜桃I 电影essuess在线观看高清I 白丝美女被到娇喘流白I 4p变态网欧美系列I 亚洲精品videosex极品I 欧美天堂一区二区I 国内精品免费在线观看I 国产免费黄网站I 国产国语videosex另类I 成人亚洲在线

010-51626348
解決方案

光潤通網絡傳輸解決方案

技術解決方案 行業解決方案 定制化解決方案

客戶成功案例

查看光潤通網絡解決方案在各行業的成功應用,了解客戶對光潤通的評價。

了解更多信息>
服務與支持

服務宗旨

你的滿意是光潤通畢生的追求,

您的煩惱也是困擾光潤通的煩惱,

請將你的聲音傳達給我們,

讓我們為你竭心盡力!

光纖網卡
關于光潤通

我們的使命

加強產業核心技術和前沿技術研發并轉換成生產力,讓中國自己的民族企業支撐和指引整個高端光產業的健康發展。

光纖網卡
官方商城
選擇語言
  • 中文簡體 English
  • 首頁 > 新聞資訊 > 行業洞察
  • CPU vs FPGA,圖像處理誰更厲害?

  • 發表時間:2020年06月24日
  • 機器視覺在工業自動化系統中的應用已經有一些的歷史,它取代了傳統的人工檢查,提高了生產質量和產量。 我們已經看到了相機在計算機、移動設備和汽車等日常生活設備中的迅速普及,但是機器視覺的最大進步莫過于處理能力。


    隨著處理器的性能以每兩年翻一番的速度不斷提升,以及多核CPU和FPGA等并行處理技術日益受到關注,視覺系統設計人員現在可以應用復雜的算法來可視化數據,并創建出更加智能的系統。


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


    隨著視覺系統越來越多地集成最新一代多核CPU和強大FPGA,視覺系統設計人員需要了解使用這些處理元件的好處和得失。他們不僅需要在正確的硬件上運行正確的算法,還需要了解哪些架構最適合作為其設計的基礎。


    1、內聯處理和協處理

    在研究哪種類型的算法最適合哪個處理元件之前,您應該了解每個應用最適合的架構類型。在開發基于CPU和FPGA的異構架構的視覺系統時,需要考慮兩個主要的使用情況: 嵌入式處理和協處理。


    如果是FPGA協處理,FPGA和CPU將共同工作,共享處理負載。這種架構最常用于GigE Vision和USB3 Vision相機,因為它們的采集邏輯最好是在CPU上實現:


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


    在某些情況下,您可以在FPGA上實現所有的處理步驟,并只將處理結果發送回CPU。這使得CPU可以將更多的資源用于運動控制、網絡通信和圖像顯示等其他操作。

    CPU vs FPGA,圖像處理誰更厲害?(圖1)

    圖1.在FPGA協處理中,圖像使用CPU進行采集后,通過DMA發送到FPGA,然后由FPGA對圖像進行處理。


    在嵌入式FPGA處理架構中,您可以將相機接口直接連接到FPGA的引腳,以便像素可直接從相機發送到FPGA。這種架構通常與Camera Link相機一起使用,因為它們的采集邏輯易于使用FPGA上的數字電路來實現。 這個架構有兩個主要的好處:


    首先,與協處理一樣,在FPGA上執行預處理功能時,可以使用嵌入式處理將部分工作從CPU轉移到FPGA。例如,在將像素發送到CPU之前,可以在FPGA上執行高速預處理,如濾波或閾值處理。這也減少了CPU必須處理的數據量,因為CPU上的邏輯只需捕獲感興趣區域的像素,這最終提高了整個系統的吞吐量。


    這種架構的第二個好處是可以在不使用CPU的情況下直接在FPGA內進行高速控制操作。FPGA是控制應用的理想選擇,因為它們可以提供非常快速且高度確定的循環速率。其中一個例子就是高速分類,其中FPGA向執行器發送脈沖,當脈沖通過執行器時,執行器會對零件進行剔除或分類操作。

    CPU vs FPGA,圖像處理誰更厲害?(圖2)

    圖2.在嵌入式FPGA處理架構中,您可以將相機接口直接連接到FPGA的引腳,以便像素可直接從相機發送到FPGA。


    2CPU與FPGA視覺算法

    在對構建異構視覺系統的不同方式有了基本了解,您可以看一下在FPGA上運行的最佳算法。 首先需要了解CPU和FPGA的工作原理。 為了解釋這一概念,我們假設一個理論算法可對圖像執行四個不同的操作,然后看一下這四個操作部署到CPU和FPGA上時分別是如何運行的:


    CPU按順序執行操作,因此第一個操作必須在整個圖像上運行結束后,第二個操作才能啟動。在本例中,假設算法中的每個步驟在CPU上運行需要6ms; 因此,總處理時間是24ms。


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


    即使使用FPGA協處理架構并將圖像傳輸到CPU,整個處理時間(包括傳輸時間)也比單獨使用CPU要短得多。

    CPU vs FPGA,圖像處理誰更厲害?(圖3)

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


    現在考慮一個真實的例子,比如粒子計數所需的圖像。首先需要應用卷積濾鏡來銳化圖像。接下來,通過閾值運行圖像以生成二進制圖像。這不僅可以通過將其從8位單色轉換為二進制來減少圖像中的數據量,還可以為二進制形態學應用準備圖像。最后一步是使用形態學來應用關閉功能。 這會去除二進制粒子中的任何孔。


    如果僅在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倍。


    CPU vs FPGA,圖像處理誰更厲害?(圖4)

    圖4:使用FPGA協同處理架構運行視覺算法,性能比僅用CPU運行同樣的算法提高了20倍。


    3那么,為什么不在FPGA上運行每個算法呢?

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


    前面討論的示例算法在FPGA上運行可以獲得20倍的速度提升。該算法中的每個處理步驟同時對各個像素或一組像素進行操作,因此該算法可以利用FPGA的并行優勢來處理圖像。 然而,如果算法使用諸如模式匹配和OCR這樣的處理步驟,這些要求立即分析整個圖像,這時候FPGA的優勢就比較勉強了。這是由于缺少處理步驟的并行化,以及需要大量內存進行圖像與模板之間的比對分析。


    雖然FPGA可以直接訪問內部和外部存儲器,但通常情況下,FPGA可用的存儲器數量遠不及CPU可用的數量,或是這些處理操作所需的數量。


    4克服編程復雜性

    FPGA用于圖像處理的優勢,取決于每種應用要求,包括應用的特定算法、延遲或抖動要求、I/O同步和功耗等因素。通常使用具有FPGA和CPU的架構,能充分利用FPGA和CPU各自的優勢,并且在性能、成本和可靠性方面都具有競爭優勢。然而,實現基于FPGA的視覺系統面臨的最大挑戰之一是克服FPGA的編程復雜性。

    CPU vs FPGA,圖像處理誰更厲害?(圖5)


    視覺算法開發本質上是一個迭代過程。完成任何一項任務都必須嘗試多種方法。大多數情況下,需要確定的不是哪種方法可行,而是哪種方法最好,而“最好方法”的判定則因應用的不同而不同。例如,對于某些應用而言,速度至關重要;而對于另一些應用,則更看重準確度。至少,需要嘗試幾種不同的方法才能為特定應用找到最好的方法。


    因此在考慮誰更適合進行圖像處理時,CPU還是FPGA?答案是“視情況而定”。您需要了解應用的目標,才能使用最適合該設計的處理元件。但是,不管是什么應用,基于CPU或FPGA的架構及其固有的優勢都可以將機器視覺應用的性能提升一個等級。

    分享: