善用嵌入式處理器元件 實現低成本監控應用 智慧應用 影音
hotspot
DForum0515

善用嵌入式處理器元件 實現低成本監控應用

ASIC雖效能表現優異,尤其在信號處理方面,但擴充彈性較小。CSEM
ASIC雖效能表現優異,尤其在信號處理方面,但擴充彈性較小。CSEM

視訊分析技術,一向是產線自動控制/檢測、視訊監控、醫學影像應用...等應用現場經常出現的技術,因為以機器視覺來取代人眼,不但可以更精確發現細微差異,設備主動判斷差異也可避免人力造成的倦怠與失誤,對於需要即時、長時間監看的應用環境更是最佳方案,而建構機器視覺監控應用也可用嵌入式元件達到設計目標...

視訊監控系統,在相關機器視覺技術持續改善下,目前已全面進入高畫質時代,但對於需要利用機器視覺進行監控、篩選狀態的應用來說,高畫質影像雖在機器視覺可判斷的差異處顯得更加細緻,但記錄影像的資料量可說是呈倍數成長,對於設備的運算處理能力,是一大設計考驗。

FPGA可針對工業用的影像比對、監看應用,發展具可擴充性的功能系統。XILINX

FPGA可針對工業用的影像比對、監看應用,發展具可擴充性的功能系統。XILINX

FPGA具較大的功能擴充彈性,加上整合控制單元功能,讓眾多應用處理可在單一晶片內完成。(Altera)

FPGA具較大的功能擴充彈性,加上整合控制單元功能,讓眾多應用處理可在單一晶片內完成。(Altera)

面對這麼龐大的影像資料流量,還要同步、即時進行視訊分析/比對,自然對於硬體架構設計來說並不容易達成,即便要辦到,想透過通用處理器來進行實時分析,可能要針對通用處理器的效能部分持續強化,但這對工業電腦應用而言,並不是較佳的解決方案,因為工業電腦應用要求的是穩定運行、更高的環境耐受能力,但核心應用的通用處理器若持續追求性能規格升級,也代表成本的提升,處理器可能造成的功耗、高效能可能衍生的設備高度散熱需求,都會影響設備本身的運行穩定性,與工業電腦的設計核心目標背道而馳。

而因應機器視覺必備的影像主動監控、比對應用,多數的產品設計會採取避免造成一般通用型處理器運行負荷的設計形式,將影像視覺處理的工作分散到專用處理器甚至是FPGA(Field-programmable gate array)的整合ASIC設計,來分散核心處理器的運算負擔,讓核心處理器可以用較低規格就能達到穩定運行要求,而同時經由專用晶片的分工將繁複運行工作轉專用功能設計來實現,一方面此方案可以達到分散運算負荷目的,另一方面還兼具成本優勢,讓設備成本得以降低。

但這類嵌入式系統的設計挑戰,其實是須能準確預估相關應用服務的硬體性能與資料處理狀況,整體系統效能可否因應作業目標並符合應用水準,以避免當系統碰到突發狀況需觸發相關提示程序時,卻被處理程序或是系統運行效能所延誤。確定設備效能,一方面要考量實際應用需求,同時還要注意突發狀況必須預留的系統緩衝空間。

雖說這種分散運算負荷的作法,將設備的通用運算集中在核心處理器,而將負載較大之影像辨識、分析演算項目,轉移至嵌入式系統進行處理,可達到關鍵運算分流處理的優勢,但實際在進行設備開發時,對嵌入式設計系統的運算能量需求規劃,在初期開案時因為參考資料偏少,以至於難以評估影像分析嵌入式系統的硬體與運算能力需求,規格上的不確定性,將造成開發端無法評估設計範圍。

開發初期若不進行系統能量評估,其實也可以朝另一個開發方向著手,例如,在建構嵌入式系統時,採用具備高度擴充性的設計架構,只要子系統具擴充性,在整個分析系統出現效能瓶頸時,即可以透過擴充設計來提升系統運行效能,例如嵌入式系統可運用現場可編程閘陣列(FPGA),元件架構本身內部建置Control Plane與Data Plane,滿足整體運行性能與功能擴充的設計要求。

對開發者而言,可以利用對稱或非對稱多處理器方案,來達到性能的擴充。例如,在應用如系統架構管理性的運算任務、用戶操作介面呈現的運算任務,將任務分別拆離交付給單個或多個運算核心,提高運行效率。其中Data Plane即為資料在系統中傳遞型態,例如,影音視訊的串流資料處理,開發人員可以善用多管線(Pipeline)的技術方案,來強化資料傳輸效能,至於在Control Plane方面可進行的處理,例如高速信號的處理、資料封包的處理等。

本文討論的HD視訊監控、動態偵測應用,其中關鍵就是影像分析識別的問題,這可將串流視訊即時分拆至Control Plane與Data Plane同步進行分析處理,有效強化整體運算效能。若視訊串流畫面解析度達720p,影像畫面的更新頻率達60Hz,需要超過200MBit/s的處理速率,若採用高效平行處理的元件來建構系統,以FPGA專責處理視訊資料,再由FPGA內部分派處理器來執行管線管理,或運行嵌入式系統,透過硬/軟混合的影像分析設計架構,即可實現高效能、低成本的影像資料處理解決方案。相同的,設計方案也可以導入特定的應用積體電路ASIC來建置,但實際上,為求高經濟效益、高擴展性等,採用FPGA是相對較經濟的作法。

在以前,系統設計人員多半透過外部獨立處理器來控制系統,但隨著處理時脈增快、資料量增多,透過外部控制很容易出現設計瓶頸,而FPGA目前大多已整合多項控制功能處理器,開發人員不用再找獨立處理器方案來完備系統架構,而可就近利用現有方案來進行功能整合,不但可簡化模組設計與線路控制,資料傳遞、處理與控制可在FPGA內完成絕大部分的工作項目,讓內部資料的傳遞效能不會因控制需求而減緩,同時亦可減少晶片接腳數量。

採行FPGA的另一個好處是,晶片本身的接腳數量減少了,內部的處理延遲時間相對縮短,這代表系統可以釋出更多處理器的可用週期,系統運算核心更有餘裕去處理外部控制指令,因為在這類系統設計中,核心處理系統多半扮演對外溝通、傳輸、聯繫的角色,而當設備的負載明顯被紓解,自然可應付一般性的設備運行作業,也會有更多空間處理臨時或緊急任務,讓系統的反應速度提升。