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