熱線電話:0755-23712116
郵箱:contact@shuangyi-tech.com
地址:深圳市寶安區(qū)沙井街道后亭茅洲山工業(yè)園工業(yè)大廈全至科技創(chuàng)新園科創(chuàng)大廈2層2A
三種最常見的圖像處理平臺的優(yōu)勢和潛在應用
圖1:使用GPU實現(xiàn)快速圖像處理速度的焊接檢查應用程序的UI。
機器視覺應用中圖像處理平臺的三個最常見的選擇是中央處理器(CPU),圖形處理器(GPU)和現(xiàn)場可編程門陣列(FPGA)。
CPU是傳統(tǒng)臺式計算機和筆記本電腦的心臟。在手機或平板電腦中,消耗較少功率的ARM處理器可提供CPU功能。CPU具有更大的指令集和大量的本地計算機語言庫,例如C,C ++,Java,C#和Python。其中一些語言具有可將功能轉(zhuǎn)移到GPU并在GPU上運行的軟件包。
傳統(tǒng)上,GPU已用于在PC上的視頻游戲中渲染像素(即圖形)。便攜式計算機通常還具有GPU。GPU越好,圖形質(zhì)量越好,幀速率越高。對于圖像處理應用,GPU執(zhí)行相同的功能,但相反。
在機器視覺中,不是從視頻游戲中的條件開始,而是嘗試將其渲染到具有數(shù)百萬個像素的屏幕上,而是處理數(shù)百萬個像素以幫助軟件解釋和理解圖像。由于它們具有由許多并行內(nèi)核和優(yōu)化的像素數(shù)學組成的架構(gòu),因此GPU非常有效地處理圖像和繪制圖形。
FPGA的可編程電路運行下載到卡上的自定義程序,以將其配置為以比CPU或GPU功耗更低的低級邏輯來完成所需的任務(wù)。FPGA還不需要操作系統(tǒng)的開銷。
機器視覺系統(tǒng)的開發(fā)人員和集成人員可以在開發(fā)系統(tǒng)的其余部分之前,嘗試決定使用哪些平臺。首先對系統(tǒng)進行原型設(shè)計通??梢源_定平臺的選擇。如果特定應用程序的數(shù)學運算無法在一個平臺上運行,則可能無法在任何平臺上運行。
設(shè)置系統(tǒng)的物理特性(鏡頭,照明燈,照相機等),收集圖像選擇并在任何舒適的環(huán)境中測試數(shù)學都可以為平臺選擇提供依據(jù)。例如,某些智能相機包括板載FPGA,以對相機進行編程以進行不同的測試。如果原型可以使用智能相機按預期運行,則FPGA可能是該應用程序的正確平臺,并且可能不需要考慮CPU或GPU。
選擇特定平臺的第一個也是最重要的標準是速度。原型應用程序一旦在測試臺上工作,就必須確定該應用程序每秒需要處理多少部分,或者必須處理實時視頻每秒要處理多少幀。通常,對于實時視頻,約30 fps會創(chuàng)建逼真的圖像。
還必須考慮速度的其他方面,例如延遲。系統(tǒng)可能能夠在10毫秒內(nèi)處理一幀,但需要200毫秒才能從相機上取下該幀,GigE Vision驅(qū)動程序需要100毫秒來接收該幀并將其提供給應用程序,另外需要10毫秒來處理該幀。 。在零件檢查應用程序中,可能是在框架到達應用程序時,相關(guān)零件已經(jīng)移動。
一個假想的系統(tǒng)可能必須開始排隊零件圖像,以跟上零件在生產(chǎn)線上的移動速度。將需要具有確定性時序的可編程邏輯控制器(PLC)來跟蹤生成排隊圖像的零件的位置,以便如果零件未通過機器視覺系統(tǒng)檢查,則可以將其從生產(chǎn)線中拉出。
還必須考慮啟動延遲。并非所有的應用程序都可以在工廠車間連續(xù)運行,或者在生產(chǎn)線開始運行前讓其啟動幾分鐘。諸如戶外和消費市場系統(tǒng)之類的某些應用(例如自動駕駛汽車中的系統(tǒng))可能需要加電并準備在幾毫秒內(nèi)運行。具有多層軟件的機器視覺系統(tǒng)(例如具有操作系統(tǒng)的CPU)可能難以滿足較短的啟動時間要求。
以原型速度制作時,可以通過拍攝高分辨率秒表來進行測試??梢詫秩镜狡聊簧系膸c秒表上顯示的時間進行比較,從而可以輕松量化等待時間并確定系統(tǒng)可能需要更改或改進的方式。
考慮系統(tǒng)所需的功率對于某些應用程序至關(guān)重要,而對于其他應用程序則不那么重要。對于在移動設(shè)備或無人機等電池供電的硬件上運行的應用程序,可能不適合使用CPU或傳統(tǒng)GPU,因為這些平臺可能會耗電。但是,像NVIDIA的Jetson這樣的移動GPU(www.nvidia.com)提供了低功耗選項?;赗aspberry Pi的片上系統(tǒng)(SoC)平臺還將比CPU具有更低的功耗要求。
應該考慮電源的可靠性,尤其是對于基于無人機的戶外或移動應用,要求平臺具有足夠的魯棒性以應對反復的電源中斷,機器視覺公眾號。
應該考慮平臺的熱量和所需空間。為工廠車間構(gòu)建的應用程序通常有一個面板空間,該面板可以容納所有電子設(shè)備以及一個風扇,以幫助冷卻系統(tǒng)。在多塵的環(huán)境或設(shè)備必須防水的情況下,需要適當?shù)姆雷o等級(分別為IP65 / IP67),還可能需要密封的面板,這些面板可能會迅速升溫。在這些條件下,需要更大的面板和無風扇組件。必須裝入面板的物品越多,它們產(chǎn)生的熱量就越大,系統(tǒng)可能引起的問題也就越多,并且價格可能會更高。
在幾乎所有情況下,所選平臺都需要與其他設(shè)備通信,這是機器視覺應用程序的關(guān)鍵方面,直到設(shè)計過程結(jié)束才可能被考慮。以必須傳輸數(shù)據(jù)以進行打印的應用程序為例??赡車栏褚驝PU與打印機通信。
數(shù)據(jù)存儲和檢索要求也可能會影響平臺選擇。CPU提供了將信息寫入硬盤的功能。在GPU和FPGA上處理內(nèi)存和持久性存儲可能會更加困難。在某些情況下,可能需要CPU來擴充GPU或FPGA,以嚴格處理與數(shù)據(jù)相關(guān)的問題。智能相機和緊湊的嵌入式視覺系統(tǒng)可以是包括CPU,GPU,F(xiàn)PGA和數(shù)字處理器(DSP)的平臺的組合。
還必須考慮系統(tǒng)依賴性和將來的證明。硬件可靠性和潛在的更換時間表應予估計。硬件和軟件可以購買多長時間?如果所需的處理能力發(fā)生變化,系統(tǒng)是否允許按比例放大或縮???所選組件將提供多長時間的技術(shù)支持?是否有足夠的人具備操作組件的必要技能?將來尋找人員來運行系統(tǒng)是否會引起長期關(guān)注?
應該考慮所選組件的發(fā)展以及它們將來是否會滿足系統(tǒng)要求。如果一系列FPGA或GPU背后的工程師以解決機器視覺系統(tǒng)將要遇到的特定挑戰(zhàn)的心態(tài)開發(fā)下一代硬件,那么這可能意味著贊成在應用中采用這些FPGA或GPU。如果硬件供應商試圖針對其他問題進行工程設(shè)計,而忽略了特定應用程序的需求,則可能會打擊使用該供應商的硬件產(chǎn)品線。
考慮定制代碼開發(fā)的要求以創(chuàng)建變通辦法,有助于將來驗證系統(tǒng)。機器視覺應用程序需要的自定義代碼越多,系統(tǒng)開發(fā)漏洞的潛力就越大,這是不利的一面。但是,如果您需要長期使最終用戶使用該應用程序,則還需要自定義和擴展功能。如果用于特定平臺的供應商工具提供了很少甚至沒有定制代碼的解決方案,但是如果需要的話,可以添加定制代碼,這可能就是采用該平臺的原因。
用戶界面要求經(jīng)常被視為平臺選擇的標準。大多數(shù)系統(tǒng)最終不得不與人進行某種程度的交流。像素處理可以100%正確,但是如果系統(tǒng)無法與任何人交流信息,則系統(tǒng)可能不適合執(zhí)行任務(wù)。CPU是開發(fā)用戶界面的最佳工具?;贕PU,F(xiàn)PGA或CPU / GPU組合的系統(tǒng)可以不使用用戶界面進行設(shè)計,而是通過網(wǎng)頁提供摘要信息以監(jiān)控結(jié)果。
對于任何機器視覺任務(wù),都沒有唯一正確的答案。但是,三個不同的機器視覺系統(tǒng)的樣本演示了如何考慮平臺標準來推動這些系統(tǒng)的設(shè)計-機器視覺公眾號。
Artemis Vision(www.artemisvision.com)與Melt Tools(www.melttools.com)簽訂合同,主要設(shè)計用于教室的焊接觀察器。焊接涉及視野中間非常明亮的光線和黑暗的環(huán)境/背景,需要高動態(tài)范圍(HDR)成像才能同時顯示焊接位置的背景和細節(jié)(圖1)。
該應用程序需要在不同的曝光時間進行多次曝光,然后將圖像拼接在一起,以渲染顯示不同光照水平的單個幀。要產(chǎn)生流暢的視頻,需要30 fps的輸出。該系統(tǒng)最初是在Intel i7 CPU上原型設(shè)計的。每個輸入幀需要30到35毫秒來處理,這意味著每60到70毫秒輸出一個組合的,已處理的幀。速度太慢,無法支持30 fps的輸出速率,每幀需要30到35 ms,因此CPU對于該應用程序不是一個可行的平臺。
考慮將算法轉(zhuǎn)移到FPGA上,然后考慮轉(zhuǎn)移到多核服務(wù)器并并行化算法??蛻粝胍粋€適合教室使用的系統(tǒng),但是,該系統(tǒng)需要使用工程教室中已經(jīng)存在的硬件進行構(gòu)造。
教室中的計算機具有相當強大的GPU,可為工程軟件渲染圖像。將HDR算法放到GPU上的選項最有意義。
該算法是在CUDA中實現(xiàn)的,是一款中游NVIDIA圖形卡。GPU在5到6毫秒內(nèi)處理了一個幀,并在另外5到6毫秒內(nèi)將幀復制到了GPU內(nèi)存中。除了攝像頭本身以外,不需要其他硬件即可創(chuàng)建焊接查看器。
3D激光輪廓儀需要快速處理才能支持高線速度。對于垂直于行進軸的視場中的1000個像素,最佳系統(tǒng)將捕獲正方形輪廓。在1000毫米的視野和1000毫米的行程范圍內(nèi),該系統(tǒng)應能夠處理1000幀以獲得1毫米/像素的分辨率,通常每秒可計算出數(shù)百赫茲或幀(圖2)。
需要快速啟動時間,以使3D Profiler能夠充分捕獲和處理運動中的零件的圖像。確定性時序可避免使用編碼器和排隊部件,從而使系統(tǒng)更易于組裝和調(diào)試。
直接將GPU內(nèi)存進出的能力給將GPU與3D激光輪廓分析應用程序結(jié)合使用提出了挑戰(zhàn)。設(shè)計為PC組件的GPU不需要操作系統(tǒng),但最容易通過該CPU的OS使用。因此,F(xiàn)PGA通常被視為3D激光線輪廓儀的平臺。FPGA提供速度,確定性時序,快速啟動時間和可靠性。
使用片狀材料的客戶希望采用各種尺寸的板。需要兩秒鐘的測量時間。生產(chǎn)線以每分鐘120英尺的速度運行。電路板的尺寸從4 x 4英尺到4 x 8英尺,并且該系統(tǒng)需要檢測拐角和邊緣上的芯片。
需要一個操作員界面,以便可以更改板的類型,并且與任何工業(yè)系統(tǒng)一樣,如果系統(tǒng)運行不正常,則需要一個用戶界面來提供錯誤消息。
該系統(tǒng)首先由運行速度太慢的CPU構(gòu)建。評估電路板尺寸并計算拐角和邊緣是否完整,大約需要5000毫秒。邊角算法花費了大量時間。
通過指定感興趣區(qū)域(ROI)減少需要處理的像素數(shù)量可以提高應用程序的速度。實施了一個系統(tǒng)來裁剪有限的邊緣和角落的ROI。由于使用了裁剪緊密的區(qū)域來驗證邊緣和角落,因此計算時間減少到800到1200毫秒。對算法的更改使將應用程序保留在基于CPU的平臺上成為可能(圖3)。
如這些示例所示,不存在適用于機器視覺應用的千篇一律的平臺。許多變量會影響應該選擇CPU,GPU還是FPGA或這三者的某種組合。智能相機可以使用CPU,DSP或CPU和FPGA的組合。在單個平臺中可能存在有關(guān)功耗和處理速度的多種選擇。最佳性能決定了正確的解決方案。