基于FPGA的機(jī)器視覺設(shè)計
摘要:為實(shí)現(xiàn)系統(tǒng)快速更新,在此設(shè)計了一種新的機(jī)器視頻解決方案,借助FPGA技術(shù),實(shí)現(xiàn)視頻輸入端口與Gige Vision IP的使用以及系統(tǒng)與計算機(jī)主機(jī)的連接。設(shè)計方案中采用了新的Gige Vision標(biāo)準(zhǔn)及Gige Vision IP核,使系統(tǒng)相比其他現(xiàn)有相關(guān)標(biāo)準(zhǔn)更簡單、速度更快,是未來的發(fā)展方向。
關(guān)鍵詞:機(jī)器視覺;視頻;FPGA;Gige Vision
0 引言
機(jī)器視覺就是用機(jī)器代替人眼來做測量和判斷。機(jī)器視覺作為人類視覺與大腦的延伸,是衡量現(xiàn)代工業(yè)自動化程度的標(biāo)志之一。近年來,隨著計算機(jī)技術(shù)尤其是多媒體技術(shù)和數(shù)字圖像處理及分析理論的成熟,以及大規(guī)模集成電路的迅速發(fā)展,機(jī)器視覺技術(shù)得到了廣泛的應(yīng)用研究,取得了巨大的經(jīng)濟(jì)與社會效益。
機(jī)器視覺系統(tǒng)主要由3部分組成:圖像的獲取、圖像的處理和分析、輸出或顯示。本文介紹了基于FPGA的一種機(jī)器視覺系統(tǒng),該系統(tǒng)采用Gige Vision攝像機(jī)來獲取圖像,在FPGA中采用了Gige Vision IP核,根據(jù)TCP/IP傳送協(xié)議實(shí)現(xiàn)了FPGA與PC機(jī)的數(shù)據(jù)通訊。
1 FPGA實(shí)現(xiàn)機(jī)器視覺的優(yōu)勢
隨著機(jī)器視覺系統(tǒng)應(yīng)用中分辨率的提高和壓縮算法的進(jìn)步,對系統(tǒng)性能和構(gòu)架靈活性提出了更高的要求,以實(shí)現(xiàn)系統(tǒng)的快速更新??蛇x擇的系統(tǒng)構(gòu)架包括標(biāo)準(zhǔn)單元ASIC,ASSP以及各種可編程解決方案,如數(shù)字信號處理器(DSP)或媒體處理器和FPGA。每種構(gòu)架都具有各自的優(yōu)缺點(diǎn),最終選擇取決于終端設(shè)備要求和解決方案的可用性。理想構(gòu)架應(yīng)具有以下特點(diǎn):高性能、靈活性、易升級性、低開發(fā)成本以及具有隨著應(yīng)用成熟和產(chǎn)量增加向更低成本遷移的能力。FPGA具有并行運(yùn)算、反復(fù)使用、大量可使用的軟核的優(yōu)勢,是實(shí)現(xiàn)機(jī)器視覺理想構(gòu)架的合理選擇。
FPGA是小批量系統(tǒng)提高集成度、可靠性的最佳選擇之一。隨著VLSI工藝的不斷提高,單一芯片內(nèi)部已可以容納上百萬個晶體管,這使得FPGA芯片所能實(shí)現(xiàn)的功能也越來越強(qiáng),同時也可以實(shí)現(xiàn)系統(tǒng)集成。
FPGA有大量軟核,可以方便進(jìn)行二次開發(fā)。FPGA甚至包含單片機(jī)和DSP軟核,并且IO數(shù)僅受FPGA自身IO限制,所以,F(xiàn)PGA又是單片機(jī)和DSP的超集。也就是說,單片機(jī)和DSP能實(shí)現(xiàn)的功能,F(xiàn)PGA一般都能實(shí)現(xiàn)。在SoC設(shè)計中,基于FPGA器件設(shè)計工藝的發(fā)展使得越來越多的功能集成到一個芯片成為可能。為實(shí)現(xiàn)這一目標(biāo),有一種非常實(shí)用的SoC設(shè)計方法,稱為基于核的設(shè)計,它將系統(tǒng)的功能劃分為不同的核。采用IP(Intellectual Property)核來完成特定的設(shè)計功能。本文就是采用了Gige Vision的IP核來完成主要部分設(shè)計的。
2 機(jī)器視覺系統(tǒng)設(shè)計
2.1 設(shè)計原理
系統(tǒng)原理框圖如圖1所示。
這個解決方案基于Xilinx低功耗低成本的Spartan 3E FPGA芯片上實(shí)現(xiàn),它提供了整合CameraLink,Gige Vision IP,千兆以太網(wǎng)MAC的平臺和可選的Visual Applets軟件。
2.2 視頻輸入模塊
在ITS及安防行業(yè),現(xiàn)在主要使用的是模擬攝像機(jī),也有部分廠家推出了網(wǎng)絡(luò)攝像機(jī)(Pcamera)。GigeVision攝像機(jī)與他們之間的對比如表1所示。
[!--empirenews.page--]
從以上的對比表可以看出,Gige Vision攝像機(jī)的主要優(yōu)點(diǎn)是:
(1)逐行掃描;
(2)高清晰,緩高分辨率達(dá)到4百萬像素;
(3)幀率高:最高幀率達(dá)到200 f/s;
(4)數(shù)據(jù)未經(jīng)壓縮,無損失;
(5)可以根據(jù)需要輸出部分掃描數(shù)據(jù);
(6)可以通過軟件自動改變攝像機(jī)參數(shù),適應(yīng)變化的現(xiàn)場環(huán)境;
(7)后期應(yīng)用開發(fā)方便。
基于Gige Vision攝像機(jī)的優(yōu)點(diǎn),本系統(tǒng)采用GigeVision攝像機(jī)。
2.3 FPGA中使用的模塊
FPGA中使用Camera Link來進(jìn)行與相機(jī)的互連。Camera Link是一個應(yīng)用于高端機(jī)器視覺的強(qiáng)大的數(shù)據(jù)通道。它使用一個專門的電纜連接和標(biāo)準(zhǔn)化的通信協(xié)議。Camera Link支持大量的數(shù)據(jù)和高數(shù)據(jù)傳輸率,適合今天的圖像數(shù)據(jù)傳輸?shù)囊蟆?br />
在系統(tǒng)中Xilinx FPGA中使用的Gige Vision是一種由AIA(Automated Imaging AsSoCiation)開發(fā)的相機(jī)接口標(biāo)準(zhǔn)。這是一項開放性的標(biāo)準(zhǔn),它能讓來自不同廠家的攝像機(jī)與應(yīng)用軟件通過吉比特以太網(wǎng)實(shí)現(xiàn)相互間的無間合作。Gige Vision使用了一個標(biāo)準(zhǔn)的千兆以太網(wǎng)連接同其高帶寬(1 Gb/s)實(shí)現(xiàn)了未經(jīng)壓縮圖像和數(shù)據(jù)的實(shí)時傳輸。使用Gige Vision IP是實(shí)現(xiàn)高性能機(jī)器視覺應(yīng)用的理想解決方案。一個吉比特以太網(wǎng)相機(jī)使用Camera Link與Gige Vision相連。
Gige Vision是一種實(shí)現(xiàn)單/多相機(jī)與單/多計算機(jī)相連接進(jìn)行數(shù)據(jù)集中和分布式處理的理想標(biāo)準(zhǔn)。使用標(biāo)準(zhǔn)千兆以太網(wǎng)允許使用標(biāo)準(zhǔn)電纜和連接器,從而降低材料費(fèi)和整合成本以及后續(xù)增長以太網(wǎng)帶寬的可擴(kuò)展性。
本方案中使用的Gige Vision IP核是根據(jù)的GigeVision規(guī)范1.0版的Gige Vision數(shù)據(jù)流協(xié)議的硬件實(shí)現(xiàn)。它是由Xilinx的合作伙伴Feith Sensor-to-Image。GmhH發(fā)開的。因為通過硬件來實(shí)現(xiàn)數(shù)據(jù)流通道可以達(dá)到千兆以太網(wǎng)的最大吞吐量。IP核的結(jié)構(gòu)如圖2所示。
Gige Vision的核心由內(nèi)存控制器、吉比特以太網(wǎng)MAC、控制微處理器和一個視頻處理單元組成。
Gige Vision核提供了吉比特以太網(wǎng)MAC接入系統(tǒng)的其余部分,處理Gige Vision數(shù)據(jù)流通道,對GigeVision通道再發(fā)送申請包進(jìn)行解碼,并提供一個嵌入式CPU的網(wǎng)絡(luò)接口。CPU處理了除Gige Vision數(shù)據(jù)流控制以外的所有網(wǎng)絡(luò)協(xié)議。內(nèi)存控制器作為特殊的視頻幀緩沖區(qū),它不是緩沖輸入的視頻幀,而是把它們分成可供網(wǎng)絡(luò)傳輸和實(shí)現(xiàn)Gige Vision數(shù)據(jù)流協(xié)議的部分處理包重發(fā)送功能的較小區(qū)域。
FPGA中與計算機(jī)相連的部分使用的是FingerLakes Engineering為Xilinx開發(fā)的Phantom TriMode MAC IP核。它與Gige Vision IP核集成在一起,充分應(yīng)用1 Gb/x Rx/Tx速率,支持IPv4,IPv6,Jumbo Packet和MDIO。Phantom核具有獨(dú)特的重新計時路徑,從而能降低時鐘緩沖器計數(shù)值同時簡化核的集成度,對于低成本的Spartan器件和高性能的Virtex構(gòu)架都是理想的選擇。
2.4 主機(jī)接口設(shè)計
本方案中使用吉比特以太網(wǎng)與計算機(jī)連接,計算機(jī)上需安裝Visual Applets軟件。
Visual Applets是由Silicon Software開發(fā)的一款軟件,可完全兼容Xilinx的FPGA。Visual Applets完成了一個極其強(qiáng)大、靈活、快速和優(yōu)化的Gige Vision開發(fā)平臺,它使不熟悉FPGA的機(jī)器視覺專家也能簡單地操作這個系統(tǒng)。
Silicon Software開發(fā)的Visual Applets為最先進(jìn)的FPGA設(shè)計工具,經(jīng)由易學(xué)易用的圖形接口,可以開發(fā)出圖像處理專用的FPGA confi guration,即所謂的applet。
借由Visual Applets可以:
(1)使影像卡變成一個高效能的影像處理器;
(2)現(xiàn)代FPGA的潛能可由任何使用者自行發(fā)揮;
(3)影像處理的解決方案可在數(shù)分鐘內(nèi)完成;
(4)達(dá)成硬件階層的快速開發(fā)。
使用Visual Applets,不必?fù)碛休^深的硬件知識,如數(shù)字電路、時間分析、FPGA硬件設(shè)計語言。使用VisuaI Applets只要將各個處理模塊之問作鏈接,各種鏈接的兼容性可實(shí)時顯示,各模塊間能以不同的位相關(guān)系作鏈接,同時也能評估系統(tǒng)需求資源與數(shù)據(jù)帶寬分析,甚至于分析每個模塊連接點(diǎn)之間的流量,快速找到設(shè)計瓶頸。設(shè)計完成后,產(chǎn)生編譯檔只要幾分鐘的時間,期間不需要任何人工動作,Applet可立即在microDisplay中使用并進(jìn)行參數(shù)設(shè)定,同時也會自動產(chǎn)生一個Visual C++ SDK project。
3 結(jié)語
本文根據(jù)以FPGA芯片為核心設(shè)計了一種通用的機(jī)器視覺系統(tǒng),可以應(yīng)用到產(chǎn)品生產(chǎn)線、車輛智能監(jiān)控管理等各種場合。采用最新的高性能視覺標(biāo)準(zhǔn)和國際知名大公司開發(fā)的IP核以及主機(jī)Visual Applets軟件的使用極大地提升了系統(tǒng)的性能、可靠性。