[Computer] 什麼是 GigE Vision




什麼是GigE
GigE 指的是 Gigbit Ethernet,也就是我們熟知的1000M bps 的以太網.一般而言,以太網有10Mbps的standard Ethernet,100Mbps的Fast Ethernet 和1000Mbps(也就是每秒可傳輸 1Giga bit) Gigbit Ethernet. 由於機器視覺(Machine Vision)需要高速和及時而穏定的傳輸,GigE 便成為新一代工業相機的最佳選擇.
GigE VisionTM 是由AIA所製訂的一個基於GigE的工業相機高速傳輸的標準.它包含了硬體的規格和標準的相機軟體控制通訊協議(包含Device Discovery,GVCP,GVSP 和 GenICAM). 透過這個標準的GenICAM控制通訊協議,可以達到以下目的:
-GigE Camera (GigE Vision-based) 可以利用 GigE Vision 通訊協議,經由以太網線將大量的影像資料及時的傳輸回給電腦中及使用GigE Visoin協議的應用軟體.
-電腦中的應用程式,可以利用合於GenICam 標準的XML格式檔來控制相機如快門,增益等.
-不同廠商的第三方軟體(如LabView,MIL,Halcon)就可自行依據這個標準開發驅動程序,而這驅動便可使用在所有合乎GigE VisionTM標準的相機,而不必針對不同的相機分別開發個別的驅動.同樣的,系統開發商自行開發的軟體,如果也遵循這個協議,在更換不同廠商合於GgE Vision標準的GigE camera 時,將不必修改驅動,這提供了開發商在選擇不同廠牌的GigE camera時更多的彈性
以下是GigE camera, 電腦,以太網,GigE Vision protocol 和 GenIcam間的關係:


source: Pleora

什麼是GigE Vision (詳述)
GigE Vision標準制訂的主要目的是提供一個開放的平台以供相機和電腦間可以利用Ethernet相互傳輸大量及時的影像和控制訊號.開放相容是它主的目的,在效能上它提供不同的選擇,廠商可以自行依 照產品性能和定位來選擇他們要提供的效能,包括CPU的使用率,幀率(fps), 及時性(real-time)和訊號同步性(precisely timed synchronization requirements of multi-element applications)等.
根據GigE Vision Version1.0(May 2006)所發佈的標準有以下四個部分:
Device Discovery - 定義 GigE camera 如何取得IP 地址和如何在網路上被識別
GVCP(GigE Vision Control Protocol) - 定義如何描述資料流通道(stream channel)和控制,以及 GigE camera的設定.
GVSP(GigE Vision Stream Protocol) - 定義影像在傳送時如何封裝以及GigE camera如何將影像和其他資訊傳送給遠端電腦
XML(extensible mark-up language) Description File 格式- 定義GenICam,並包含了以下資訊 :



什麼是GenICam
GenICam 是由EMVA's (European Machine Vision Association)所定義. 它提供了相機和應用程式間利用簡單的方式交換訊息而不論硬體介面和軟體通訊協議是什麼. 因此,GenICam的主要目的是讓使用者用同一個應用程式便可以控制不同的相機,包括GigE Vision, Camera Link, IEEE1394 IIDC, USB UVC 和其他種類的相機.
GenICam 包含了三個模組:
GenAPI - 是一個XML description file, ,定義如何獲取相機的功能並用標準的方式控制這些功能
GenICam Standard Features Naming Convention - 定義相機功能的命名方式
GenTL - 是一個介於驅動程式和程式連間的Transportation Layer,負摃相機和電腦應用程式間影像資料的傳送.
此外,GenICam 並非GigE Vision-compliant 的必要的相機控制方式,其他任何方式也是可行的.



 

GigE Canera 通常指合於GigE Vision 標準的 Gigabit Ethernet camera,這和一般只使用Gigabit Eithernet為介面的相機不同.簡單的說, Gigabit Ethernet  相機都使用壓縮過的影像資料,並且影像的傳送並非real-time的.使用未壓縮的影像資料和及時傳輸在機器視覺應用中是必要的的.因此,Gigabit Eithernet camera是很少被用於機器視覺的.
-以太網介面接口是目前大多數電腦都有的接口,因此,使用GigE camera時,就不需要額外的增加其他的介面卡如1394卡或Camera Link 卡,同時,也不用影像擷取卡(Grabber card),這大大的節省了系統的成本和 提升了方便性.
-CPU資源的佔用可低至2% (其他如Firewire可佔20-25%, USB可佔約35-40%)
-GigE讓相機能以高速(1Gigabit bps)傳輸未壓縮的影像以real time的方式經由低廉的網路線傳給電腦.這可以比使用Camera Link 的相機節省相當可觀的成本
-GigE camera 使用CAT5e網線直接連接 GigE camera 和 PC 可達100米的距離,若透過 Switch 或光纖來延伸,其最常距離可大於其他介面可達的最大長度如 Camera Link, Firewire 和USB



Source: Basler

- GigE camara可自成一個遠端server, 並可整合I/O和PLC, 以達到降低系統成本的目的.
-GigE camera 可相容於10/100M Eithernet網卡及標準的1Gigabit Either 網卡,可同時在網路上開啟不同的GigE camera 以供不同的應用程式使用,這在機器覺以外的應用如 ITS(Intelligent Traffice System)和 Public Security imaging.
-GigE camera 可以將其影像資料同時傳給網路上不同的電腦,以分散影像處理的工作到不同的電腦,縮短運算的時間.
-CAT5e 或CAT6網線非常易於用一般的工具加工,這對於常要因依現場環境佈線的應用,非常方便
-當接下來的10GigE開始被應用時,目前的Camera Link 將完全的被GigE camera所取代
基本上有以下方式:
-GigE Vision 在 transport layer使用UDP(User Datagram Protocol),而不使用一般的TCP/IP(Transmition Control Protocol).UDP和TCP的差異在於TCP用Hand-shaking和重送的方式,以保證資料没有在傳送時遺失.相對於TCP, UDP是較為簡單的傳送方式,它不保證不會遺失,但GigE Vision將資料遺失的工作,交由位於更上層的網路層中的GVCP, GVSP協議來處理.


- 在需要高效能輸的應用中(高fps,及時傳輸,低延遲),建議使用單一相機的連結單一NIC網卡的架構, 儘量不使用多台相機經過switch始用同一網卡(這會讓多台GigE camea使用同一網卡的帶寬);另外若有其他網路連接見(非連接到GigE Vision 相機),也建議使用另一獨立網卡:


-GigE camera 廠商提供特製的網卡驅動,取代原有網卡的驅動架構:
網卡製造商所提供的驅動(driver)都是使用Winodows或Linux-stack,這種 IP stack會造成大量影像資料傳輸時不可預期的行為,這包括了不定期的延遲(delay).解決方式是在傳送大量資料時,越過原有的IP-stack,將資料直接用DMA(Direct Memory Accss)的方式, 將資料自送系統內核中的記憶體.由於DMA無需使用到CPU的資源,這種做法不儘解決了延遲的問題,同時也讓CPU資源能被完全的應用於time-critical 的應用程式, 因此,一般而言, GigE相機廠商會提供兩種相機的驅動:
-- Filter Driver: 這是用一般Windows 的IP-stack,由CPU負責將影像資料傳給應用程式 缺點是佔用CPU資源,但可以適用於所用NIC網卡,至於CPU的佔用率,和程式的撰寫有很大的關係.
High Performance Driver : 這就是前面所說的DMA的方式.由於DMA的使用和硬有密切的關係(DMA是由硬體來完成資料傳輸,因此,才可完全不使用到CPU資源), Performance Driver要針對不同的NIC 晶片來撰寫,也就是說,不同晶片的網卡,要用不同的High performance Driver. 目前大多數的High Performnace 是基於Intel的NIC網路晶片.High Performance Driver的CPU使用可達2%
GigE Camera 可以做到ral-time的外部觸發嗎
答案是可以的,GigE相機有Time-stamp來記錄正確的記錄觸發時間:


Source:Pleora
使用GigE和其他相機,架構上有何不同



從上圖我們可以看到GigE camera因為用了網路做為介面,這讓GigE相機在視覺系統中有著以下優勢:
1.和電腦的距離更長(在没有中繼下,可達100公尺)
2.相機在網路上自成一個獨立的視覺伺服器,可整合Frame Grabber 和PLC在相機中
3.在多台相機和多台電腦的應用中,可用multicast的方式,將影像分散到不同的電腦做分散式運算,提升影像處理的速度
使用GigE相機如何做到分散式運算
影像處理的分散式運算可以幾種不同的方式來達到縮短運算時間,達到增加產出的目的,其中最簡單的方式就是使GigE相機有Multicast的方式,將待測物的影像同時傳給網路上不同的電腦,而不同的電腦處理不同時間傳來不同待測物的影像,如此,好幾個待測物就可以以平行的方式同時處理好幾個待測物,而不必等前一個待測物處理完後才對下一個待測物取像.比如檢測傳動線上有一台 ,但如果每張影像的運算的處理時間是一秒,如果以單一電腦來處理,那麼只能做到一秒完成一個物體的檢測,但如果GigE相機以每秒二張的速度來對不同的待測物來拍照,同時用兩台電腦來處理不同時間傳來的影像,那麼就能達到每秒二個物件的檢測,讓檢測速度提升了一倍. 以下就是一個例子,其中右下角的機架式電腦(Rack-mounted PCs) 就是就是用來做分散式處理的電腦,當然也以用獨立的電腦來做:


source: Pleora
在上圖中,PLC被整合到GigE Vision相機中了,因而也降低了成本和空間的使用
下圖是更進一步的分散式運算,將整個影像處理的運算,機動的將不同的運算交由當時可用的電腦來處理:



使用GigE camera 有那些不同的連法


關於UDP, GVCP,GVSP的關係
以下是UDP, GVCP 和GVSP在OSI網路模型的關係:



留言