空間有限且要求功耗較低的應用,通常是嵌入式計算機系統發揮作用的舞臺。典型的例子是移動設備,從工廠中的移動測試設備到牙科掃描儀,其中運行的都是嵌入式計算機系統。嵌入式視覺也是機器人的一個極好解決方案,尤其是將相機集成到機器人的手臂上時。
在機器視覺領域,典型的相機集成工作是通過GigE或USB接口實現的,這可以說是一種將相機連接到PC(或IPC)的即插即用解決方案。與制造商的軟件開發工具包(SDK)一起使用,可以輕松訪問相機,這一工作原理也可以遷移到嵌入式系統中。
圖1:(a)傳統的基于PC的通用機器視覺系統;(b)針對特定解決方案的嵌入式機器視覺或圖像處理系統的相機模塊組件,其在性價比方面更優化。
利用單板計算機(SBC),基本的集成原理依然不變。低成本且易于獲得的單板計算機,在一塊SoC電路板上包含了計算機的所有部分——RAM、存儲器插槽、IO端口(USB 3.0、Gig-E等)。
常用的單板機,如Raspberry Pi或Odroid,都具有兼容的接口(USB /以太網)。還有一些行業公認的來自Toradex或研華等公司的單板機,均提供這些標準接口。
圖2:許多相機制造商提供SDK版本,允許用戶將相機集成到ARM平臺上,就像將相機集成到Windows PC上一樣。
主要區別在于這些單板機所配備的處理器類型。雖然已經有單板機提供基于x86架構的處理器,但是目前大多數單板機上的處理單元使用的都是ARM處理器,因為它們的功耗更低。
越來越多的相機制造商也提供在ARM平臺上工作的軟件開發套件(SDK)版本,以便用戶可以像在Windows PC中集成相機一樣,以熟悉的方式將相機集成到ARM平臺上。
在最好的情況下,SDK為Windows PC和ARM這兩種平臺提供相同的功能和API(應用程序可編程接口),甚至軟件應用代碼的一部分可以重用。因此,相比于標準的基于PC的視覺系統,嵌入式視覺系統的相機集成工作更為簡單。
當需要剝離更多的冗余處理技術時,針對某些特定應用的嵌入式系統,可以做到更精簡的水平。這就是為什么許多系統是基于模塊系統的(SoM)。這些非常緊湊的板卡式電腦模塊只包含一個處理器(準確地說,通常是片上系統SoC)、微控制器、存儲器和其他基本元件。
這種SoM需要安裝在載板上,載板上具有為特定接口準備的插口。有了這樣一個相對便宜的載板,系統可以很容易地針對特定應用和系統要求進行個性化設計,因為SoM是現成的產品,所以可以保證整個系統設置的低成本。
通常,這種設置也可以配備標準接口連接器(如USB)。在這種情況下,即插即用的好處與單板機或是基于PC的機器視覺系統是一樣的。但是,這往往不符合非常具體和精簡的系統設置的想法。同樣,由于空間、重量或功耗方面的要求,USB接口可能并不合適,相反,會使用相機到處理器之間更直接的連接方式。
此外,許多嵌入式視覺系統是基于(或包括)FPGA(現場可編程門陣列)模塊的。這些器件對于立體視覺產品或面部檢測應用中所需要的計算工作是理想的。
所有這些都是為什么可能需要將相機直接連接到FPGA或SoC的原因。
特定圖像數據傳輸
直接將相機連接到SoC用于圖像數據傳輸,可以通過基于LVDS的連接或MIPI CSI2標準實現。這兩種方法在硬件方面都沒有明確的標準化。這意味著沒有指定的連接器,甚至沒有規劃電纜內的通道數量。因此,為了連接特定的相機,通常需要在載板上設計匹配的連接器,并且不是標準形式。
MIPI CSI2是來自移動設備行業的標準,用于描述信號傳輸和軟件協議標準。很多SoC具有CSI接口,并且有可用于選定的相機模塊和專用SoC的驅動程序。但是,它們并不以統一工作方式,也沒有通用的驅動程序。因此,可能需要單獨修改驅動程序,并且與驅動程序的數據連接,可能需要在應用程序軟件側進一步修改,以實現圖像數據的收集。因此,CSI2并不是一個安裝后就可立即使用的解決方案。
雖然LVDS是高速數據傳輸廣泛使用的連接方式,具有明確定義的信號傳輸原理,但LVDS中也沒有用于圖像數據傳輸的標準化軟件協議。因此,也沒有現有的標準驅動程序。一些制造商提供補充系統,如基于專有協議的具有LVDS輸出的相機、以及具有相應適配驅動程序的處理板,它們能夠直接協同工作。這種方式的優點是能實現一個易于集成的完整解決方案,但是用戶在硬件使用方面會受到一定的限制。
其他制造商提供開放的基于LVDS的相機輸出,其對于任何硬件集成都是免費的。在這種情況下,必須要創建一個驅動程序。實際上,這個信號處理可以在FPGA上執行。這種基于FPGA的圖像抓取算法可以從頭開始編程,但是也有一些工具可用于減少集成工作量。
例如,在這種FPGA上使用預開發的IP核。Basler公司具有LVDS接口的板級相機dart,提供的開發套件中就包括一個帶有參考實現(FPGA編程)的處理板,以為集成視覺設備提供直接樣本。
相機配置
這些板對板連接的另一個方面是相機配置??刂菩盘柨梢酝ㄟ^各種總線系統(CAN、SPI或I2C)在SoC和相機之間交換。到目前為止,業界還沒有針對這個功能設置標準。目前哪些成像參數可以控制、以及如何控制,完全取決于相機制造商;即使支持或不支持GenICam的決定,也取決于制造商。但好消息是,所有這些總線系統都得到大多數SoC的支持。因此,使用適當的驅動程序,軟件可以直接訪問相機進行配置和更改成像參數。
一個開放的軟件協議對于訪問相機配置也很重要。Basler通過其pylon SDK中的I2C(作為的BCON的一部分實現LVDS接口)支持相機訪問,從而提供簡化配置編程的標準化API。
對于某些應用而言,嵌入式視覺可能是一個有趣的解決方案;一些基于GigE或USB的應用,可以使用單板計算機開發。由于這些類型的硬件很受歡迎,并且在價格、性能和質量標準(消費者和企業)方面選擇范圍較廣,這使得嵌入式視覺成了很多情況下的理想選擇。朗銳智科(www.lrist.com)多年來從事嵌入式開發及機器視覺方案服務,在嵌入式視覺技術具備豐富的經驗,能為客戶提供全面的技術支持及服務。
來源:朗銳智科
評論