2015-04-15 71 views
4

由於火線攝像機由於帶寬限制而變得過時,所以好像攝像機制造商正在切換到USB 3.0或千兆以太網接口。兩者都有許多製造商都遵守的標準USB3 Vision和GigE Vision。然而,似乎每個製造商 - Basler,Pointgrey,Ximia和其他公司 - 都有自己的SDK,用於與他們的相機進行接口連接。在開發應用程序時,開發人員需要學習和接觸每個API,這很痛苦,或者堅持一個製造商。我可能會誤解,但在這種情況下,如果開發人員需要使用依賴製造商的API,那麼行業標準的重點是什麼?是否會有用於USB3 Vision和/或GigE Vision相機的類似libdc1394的API?

對於FireWire攝像機,開發人員可以訪問libdc1394跨平臺的高級API。他們不需要擔心製造相機的人是誰,也不需要另外編寫驅動程序。對於USB3 Vision和GigE Vision來說甚至有可能這樣嗎?如果是這樣,誰來開發呢?

回答

2

我對libdc1394並不是很熟悉,但是我對其他所有接口都瞭解很多。 GenICam

GenICamTM的目標是提供一個通用的編程接口 各類相機和設備 USB3視覺,千兆位以太網視覺和所有其他標準可以使用一個通用的接口進行連接。不管使用什麼接口 技術(GigE Vision,USB3 Vision,CoaXPress,Camera Link HS, Camera Link,1394 DCAM等),或者它們具有哪些功能 實現,應用程序編程接口(API)應該是 總是一樣。

的GenICamTM標準根據要解決的 主要任務由多個模塊組成:

GenApi:配置所述相機。

標準 功能命名約定(SFNC): 常用設備功能的標準化名稱和類型。包括像素格式命名約定 (PFNC)。

GenTL:傳輸層接口,抓取圖像。

CLProtocol:GenICam for Camera Link。

GenCP:通用控制協議。

GenTL SFNC:傳輸層接口的推薦名稱和類型。

大多數最大的相機生產商都提供GenTL提供商與他們的相機一起工作。

不幸的是,我不知道GenICam的任何開源高級API。我知道有GenICam支持的2個圖像處理庫:Adaptive Vision LibraryHalcon,但它們不是免費的。

另一個不太受歡迎的行業常見圖像抓取界面是:DirectShow。 例如:Ximea,Net-Gmbh,Basler和幾乎所有的網絡攝像頭均支持DirectShow。

所以在我看來,如果你想爲所有相機使用一個通用接口,你應該考慮使用GenICam接口。

+0

此主題已超過一年,但我有幾個問題。 「GenTL提供者」是指傳輸層的實現嗎?我是GenICam的新手,所以我不確定誰實現了傳輸層。我期望GenICam兼容相機供應商提供XML文件描述符和傳輸層實現嗎? – M312V

+0

大多數相機供應商提供他們的GenTL實現(cti文件)和xml文件。 GenTL標準描述瞭如何接收xml文件。有關更多詳細信息,請閱讀此處提供的標準規範:http://www.emva.org/standards-technology/genicam/genicam-downloads/。 – AdamF

3

至少對於GigEVision來說,讓我來提一下Aravis項目是否適用於linux。它是GenTL/GenICam庫,但由於下面列出的驅動程序約束問題,目前僅支持GigE。

首先,我同意Martin的觀點,即創建一個通用的SDK由於競爭和支持的原因不符合相機制造商的利益。製造商與他們的SDK一起開發專有的USB驅動程序(適用於USB3Vision)和NIC過濾器驅動程序(適用於GigE,但強​​烈推薦)。它激勵他們將用戶鎖定到他們的生態系統並將他們與競爭對手分開。

這就是我不同意AdamF的原因 - 我不認爲GenTL得到相機制造商的廣泛支持,特別是GigE或USB3Vision相機。支持GenTL將有效地讓用戶使用任何通用SDK 同時還利用製造商的專有驅動

我認爲這將是更容易的OpenCV在這一點上支持GenTL代替千兆以太網/ U3V因爲巨大的障礙,開發GigE/U3V驅動程序跨越可用的硬件平臺。在這一點上,GenTL支持至少只能是基於軟件的界面。

1

退房https://github.com/ni/usb3vision

它實現了核心USB3視覺規格爲內核驅動程序。要控制攝像頭,您仍然需要在其周圍包裹一些用戶模式邏輯,將其連接至GenApi(GenICam的參考實現),並處理排隊/退出隊列的驅動程序。

此外,關於您是否有可能實施獨立於供應商的驅動程序的問題,當然是這樣。這確實是標準的重點。大多數相機供應商出於各種原因爲其相機提供了自己的專有SDK,但是有獨立的SDK可以與任何符合標準的GigE Vision和USB3 Vision相機配合使用。這些是否是開放源代碼是一個很好的問題,我不知道這些是什麼。 National Instruments的IMAQdx驅動程序使用上述USB3 Vision驅動程序,該驅動程序是商業和閉源程序。

相關問題