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















評(píng)論