來源:Alacron
Imaging systems employed in demanding industrial and military applications, such as computer vision and
automatic target recognition, typically require real-time high-performance computing resources. While these
systems have traditionally relied on proprietary architectures and custom components, recent advances in highperformance general-purpose microprocessor technology have produced an abundance of low cost components
suitable for use in high-performance computing systems.
簡介
一般來說,在諸如機器視覺、目標自動識別等要求嚴格的工業和軍事應用場合中使用的成像系統都需要有實時高性能的計算處理能力。一直以來,這些成像系統依靠著專有的體系結構和定制的組件實現各自的性能,但近年來高性能通用微處理器技術的進步已經使人們生產出了大量可應用于高性能處理系統的低成本元件。
高性能成像系統尤其是使用了可擴展的多處理器體系結構的系統的設計的一個普遍缺陷就是不能平衡好計算帶寬和帶I/O接口的存儲帶寬之間的關系。最近,帶有大容量內部高速緩存和高性能外部存儲器接口的微處理器的引入,使得設計一個計算和存儲帶寬之間得到平衡的高性能成像系統成為現實。
微處理器利用了板級存儲器和I/O體系結構,使用這種微處理器及存儲器的系統有一個重要性能。系統并不擴展存儲器總線帶寬,同樣的,微處理器的引入一般不是為了改善性能,在提升了一些性能后它們會達到一個極限值。另外,I/O帶寬在總體性能上發揮著重要的作用。
這篇文章的目的是為了引入一個框架,使得開發者能夠選擇一個能提供實時視覺應用場合所需要的性能和可擴展性的微處理器系統。在可編程成像系統的選擇問題上,我們重點考慮下面三個方面:(a)系統是“本機”的還是采用協處理器模型?(b)哪種處理器在平衡應用中的處理和I/O關系上更具恰當性?(c)總成本是多少?為了更好的理解我們的假設,我們將對四種不同的處理器在元件檢測應用中表現出的性能進行分析。
微處理器評估
為了體現各種具有尖端技術的微處理器的優點,我們選擇了四種新型微處理器進行評估:Analog Devices公司的21160Hammerhead,Intel®(P3-450),Philips公司的半導體TM1300 TriMedia和德州儀器(TI)的C6701.你也可以使用這種框架評估其他的處理器。
下表給出了所選處理器的重要特性。假定各種處理器在測試計算性能時是相互獨立的。集群模式設計將很快使總線達到飽和——也就是說增加額外的處理器并不能達到提升速度以提高計算性能的目的。做出這個假定是因為大多數多處理器為了達到可擴展性,其協處理器板已經獨立開或采用本地存儲器設計。唯一采用非本地存儲器設計的是PⅢ-450,引入它是為了與其他處理器進行比較。
上表的性能參數在它們各自公司的文獻中可以找到,它們是以優化了的匯編語言程序為基礎的。除了Intel使用復雜指令系統計算機(CISC)外,所有的微處理器都使用了超長指令集架構(VLIW)體系結構。每個CPU的膠連邏輯成本體現了連接處理器與外在系統所需額外組件的成本。
應用描述:產品線上的元件工業檢測
當產品經過檢測站時,檢測站檢測產品的顏色和形狀,然后,根據標準來判斷是否接受這件產品。元件以任意角度安置在傳送器上以供成像。檢測算法檢測連接顏色和形狀的區域,并處理在這些區域內的數據,再把結果應用于神經網絡識別器中。產品在快速駛下生產線的時候被檢測。照相機以每秒30張的速度收集圖像以確保在每張圖像上有至少有50%交疊,從而確保每一部分至少有一次被完全顯現。圖像規格是512×512,24位彩色(RGB).
算法流程圖
上圖給出了檢測圖像缺陷的算法。原始圖像通過過濾去掉噪聲,并平滑由于傳送器上的角度問題而造成的部分顏色和明亮度的變化。
圖像轉化為HLS模型,以便再通過兩個16位輸入8位輸出的查找表轉化成單色。HLS模型中,色度(H)和飽和度(S)由顏色決定,而明亮度(L)主要由能被光照到的物體表面的方位決定。這兩要素在8位單色像(圖表中為M)的結構中被編碼。這一步驟可以用于檢測顏色錯誤和總體方向錯誤,因而顯得比較重要。
在對圖像進行去斑降噪之后,開始對圖像進行連接性的分析。分析結果用于從單色和彩色圖像中選擇區域,以獲得另外的特性。這一步一般會減少百分之七十的像素數量。
所選區域用單色進行量測,彩色則用于發展每個區域的特性。獲得的特性是顏色,通過單色圖像、連接框、邊界圓、周長、凸包和面積等要素修正。
這些特性作為神經網絡識別器的輸入。之所以選擇神經網絡識別器是因為要處理的圖像區域相當復雜。統計型的識別器難以進行計算,而且對噪聲敏感。神經網絡使用100個輸入,在第一個隱藏層使用200個節點,第二層使用100個節點,輸出層(通過/未通過)使用一個節點。
選擇處理系統的下一步就是要使用下面所選的微處理器進行評估算法:Analog Devices公司的21160Hammerhead,Intel®(P3-450),Philips公司的半導體TM1300 TriMedia和德州儀器(TI)的C6701。每種處理器的編碼已經優化過,每種類型單個處理器的執行時間也已測過。下表給出了每個處理器執行每一步算法的結果。
分析與結果
所有時間單位為毫秒
從上表中,我們可以發現每種處理器都有各自的優點。若以總時間來論,則PⅢ-450無疑是最佳的。其中兩種處理器需要保持與照相機同步的圖像速度。所有情況下,系統需要另外一個處理器來提供操作系統支持,如磁盤驅動和用戶界面。PⅢ的計算能力似乎不夠理想,但在限制于存儲器總線性能的應用中,它仍然是個相當出色的處理器。PⅢ的存儲器總線速度是其他處理器的兩倍,TM1300是個例外,PⅢ的存儲器總線速度只是它的1.4倍(800MB/s VS 572MB/s)。
Philips和TI的處理器擁有許多處理單元,這使得它們具有相當好的總體性能,盡管在時鐘速度上它們遠慢于Intel PⅢ-450。Philips的TM1300使用一個視覺端口對處理器進行直接的讀取和顯示。Intel PⅢ-450、Analog Devices 21160和TI C6701則使用DMA控制器進行讀取和顯示。
上圖給出了隨著處理器的增加可達到的幀速率。從圖中可以看出,TM1300和PⅢ-450在此應用中性能相當,居于最前,TMS320C6701稍慢些,ADI21160則是最慢的。Philip TM1300、Analog Devices 21160和TI C6701都需要兩個處理器以保持圖像速率。但它們(在PC上的協處理器板上)的成本卻遠低于PⅢ-450。一個多處理器的PⅢ-450系統需要花費幾千美元(大約3000美元)——價格高于基本的單處理器PC. Philip TM1300、Analog Devices 21160和TI C6701的協處理器系統最低只需1500美元。
另外,隨著額外的處理器的增加,PⅢ的效率開始降低。多處理器PⅢ系統中使用的共享多處理器(SMP)總線因為處理器間的總線沖突從而降低了存儲器密集應用的性能。隨著額外處理器的增加,沖突更加突出,效率也就更低了。裝有超過4個PⅢ處理器的系統并不多見。連接處理器到照相機需要有特定的硬件。基于21160和TMS320C6701的解決方案所要花的成本要高于基于TriMedia和PⅢ的解決方案所花的成本。
結論
以元件檢測應用為例,我們發現在存儲器帶寬發揮重要作用的應用場合,奔騰PⅢ-450無疑是個極為出色的處理器。然而,基于集群的體系結構卻產生了負面影響,因為存儲器總線飽和嚴重制約了將來的可擴展性(如PⅢ-450)。相反,基于本地存儲器體系解決方案的處理器卻能隨著處理器的增加而線性地提高其處理量。
Intel PⅢ受其外圍邏輯(PC)的限制,在一些應用場合不能發揮其性能。盡管AGP總線的使用會改善這種情況,但其SMP設計最終將限制其擴展性。因此,在要求嚴格的視覺應用場合尤其是需要用于將來擴展的應用場合,最可行的辦法是保留一個更易擴展、有更高吞吐量的協處理器板,最終使得成本低于本地解決方案所花的成本。