如何選擇嵌入式系統(tǒng)中的視覺處理技術
隨著功能越來越強大的處理器、圖像傳感器、存儲器和其他半導體器件以及相關算法的出現(xiàn),可以在多種嵌入式系統(tǒng)中實現(xiàn)計算機視覺功能,通過視頻輸入來分析周圍環(huán)境。微軟的Kinect游戲控制器和Mobileye的輔助駕駛系統(tǒng)等產品都非常重視嵌入式視覺技術的發(fā)展?jié)摿Α=Y果,很多嵌入式系統(tǒng)設計人員開始思考如何實現(xiàn)嵌入式視覺功能。本文研究嵌入式視覺的發(fā)展機遇,對比實現(xiàn)這一技術的各種處理器選擇,介紹幫助工程師在其設計中采用視覺功能的業(yè)界聯(lián)盟。
“嵌入式視覺”這一名詞是指在嵌入式系統(tǒng)中使用計算機視覺技術。換句話說,“嵌入式視覺”是指從視覺輸入中提取出其背后含義的嵌入式系統(tǒng)。與過去10年中無線通信技術的流行相類似,嵌入式視覺技術有望在今后10年得到廣泛應用。
很明顯,嵌入式視覺技術能夠為多種應用帶來巨大的價值(圖1)。兩個例子是,Mobileye基于視覺的輔助駕駛系統(tǒng),用于幫助防止車輛事故的發(fā)生;以及MG國際公司的泳池安全系統(tǒng),旨在防止游泳溺水。還有一些純粹的怪才發(fā)明,Intellectual Ventures的激光滅蚊槍,設計用于防止人們感染瘧疾等。
圖1.嵌入式視覺是從計算機視覺應用開始的,這些應用包括,裝配線檢查、光學字符識別、機器人技術、監(jiān)控和軍事系統(tǒng)等。但是,最近幾年,對降低成本提高性能的需求加速了這一技術在各種其他市場上的廣泛應用。
正如同高速無線互聯(lián)是從高成本新奇技術起步一樣,目前為止,嵌入式視覺技術一般只用于復雜昂貴的系統(tǒng)中,例如,毛發(fā)移植的手術機器人,制造業(yè)的質量控制檢查系統(tǒng)等。
數(shù)字集成電路的發(fā)展是高速無線技術從新奇發(fā)展到主流的關鍵因素。芯片速度足夠快,成本足夠低,能效足夠高時,高速無線技術便成為市場主流技術。今天,人們能夠以不到100美元的價格購買寬帶無線調制解調器。
同樣的,數(shù)字芯片技術的進步為嵌入式視覺的大批量應用鋪平了道路(圖2)。與無線通信相似,嵌入式視覺需要很強的處理能力——特別是,越來越多的應用采用了高分辨率攝像機,開始使用多臺攝像機。以足夠低的成本實現(xiàn)這類處理能力,從而促進大批量應用,這是一個很大的挑戰(zhàn)。事實是嵌入式視覺應用需要很強的可編程能力,進一步增大了這一挑戰(zhàn)的難度。在無線應用中,標準意味著不同手機之間的基帶算法不會有太大的變化,與之相比,在嵌入式視覺應用中,通過獨特的算法,有可能得到更好的結果——實現(xiàn)更有價值的功能。
圖2.嵌入式視覺輔助系統(tǒng)涉及到硬件、半導體和軟件元器件供應商,子系統(tǒng)開發(fā)人員、系統(tǒng)集成商,以及最終用戶,還有實現(xiàn)未來突破的基礎研究等。本文主要關注圖中顯示的嵌入式視覺算法處理技術。
采用嵌入式視覺,業(yè)界進入了一種“良性循環(huán)”,這是很多其他數(shù)字信號處理(DSP)應用領域的特點。目前雖然很少有專門用于嵌入式視覺應用的芯片,但是,這些應用越來越多的采用了針對其他應用開發(fā)的高性能、高性價比處理芯片,包括,數(shù)字信號處理器、CPU、FPGA和GPU等。這些芯片單位成本、單位功率的可編程性能越來越高,因此,能夠支持實現(xiàn)大批量嵌入式視覺產品。這些大批量應用也相應的引起了硅片提供商更多的關注,他們會提供更好的性能、更高的效率和可編程處理能力。
處理選擇
如前所述,視覺算法通常需要很強的計算能力。當然,所有的嵌入式系統(tǒng)一般都受限于嚴格的成本和功耗要求。在其他DSP應用領域,例如,數(shù)字無線通信等,芯片設計人員使用專用協(xié)處理器和加速器來完成應用所要求的苛刻的處理任務,同時滿足了高性能、低成本和低功耗需求,從而解決了這一難題。但是,芯片用戶一般不能對這些協(xié)處理器和加速器進行編程。
無線應用通常能夠接受這些優(yōu)缺點,無線應用標準意味著不同設備設計人員使用的算法之間有很強的共性。然而在視覺應用中,對算法的選擇并沒有標準約束。相反,一般可以選擇很多方法來解決某一特殊的視覺問題。因此,視覺算法是非常多樣的,往往隨著時間的變化而迅速變化。結果,與數(shù)字無線和以壓縮技術為主的消費類視頻設備等應用相比,視覺應用并不傾向于采用非可編程加速器和協(xié)處理器。
但是很難同時實現(xiàn)高性能、低成本和低功耗以及可編程功能。專用硬件通常能夠以低成本實現(xiàn)高性能,但是可編程能力較弱。通用CPU具有可編程能力,但是性能較差,性價比不高,能效也較低。要求較高的嵌入式視覺應用通常結合使用多個處理單元,例如,可能會包括:
●通用CPU,用于啟發(fā)式復雜判決、網(wǎng)絡訪問、用戶接口、存儲管理和總體控制等。
●高性能數(shù)字信號處理器,用于實時中等速率處理,不太復雜的算法等。
●用于簡單算法像素速率處理的一個或者多個高度并行的引擎。
評論