快速檢測線、半導(dǎo)體工廠、智能交通系統(tǒng)、運(yùn)動(dòng)分析和容積捕捉等多種視覺系統(tǒng)應(yīng)用場景都需要高分辨率、高 FPS 和高數(shù)據(jù)傳輸率來達(dá)到更好的結(jié)果。對于希望利用幀率更快和分辨率更高的機(jī)器視覺攝像頭來改進(jìn)輸出的視覺系統(tǒng)工程師來說,從 1GigE 升級到 10GigE 是顯而易見的選擇。然而,根據(jù) AIA(自動(dòng)成像協(xié)會(huì))的研究,其采用相當(dāng)緩慢??紤]到這種升級帶來的三個(gè)技術(shù)挑戰(zhàn):可靠性(丟包)、高 CPU 使用率和高延遲,這一點(diǎn)可以理解。本文介紹了 Teledyne FLIR Oryx + Myricom 捆綁解決方案如何解決這些挑戰(zhàn)。
更新 1:完美的性能
雖然 10GigE Vision 的帶寬比 GigE Vision 協(xié)議高 10 倍,但 10GigE 主機(jī)適配器性能卻并未相應(yīng)提高。從攝像頭向主機(jī)的數(shù)據(jù)傳輸通常會(huì)導(dǎo)致 CPU 過載,造成應(yīng)用程序緩沖區(qū)溢出,以及對于要求苛刻的應(yīng)用程序而言不可接受的丟包水平。
通過利用主機(jī)適配器直接在卡上處理數(shù)據(jù)包接收和圖像重建,CPU 就不再需要管理這些任務(wù)。Teledyne FLIR Oryx + Myricom 捆綁解決方案專為應(yīng)對此類情況而設(shè)計(jì)。如我們下方的測試結(jié)果所示,系統(tǒng)可靠性可大幅提高,從而顯著減少丟包,進(jìn)而減少丟幀。
該捆綁解決方案可與我們?nèi)碌亩ㄖ?SDK 驅(qū)動(dòng)程序無縫結(jié)合,專門用于處理 Myricom 卡提供的數(shù)據(jù)。通過這種組合,可以完美、可靠地將圖像數(shù)據(jù)從攝像頭傳輸?shù)街鳈C(jī) PC 上。檢測結(jié)果見下方附錄:可靠性和 CPU 使用率測試。
Teledyne FLIR Oryx + Myricom 捆綁解決方案的高性價(jià)比使其成為顯而易見的選擇;與分別購買硬件再集成相比,這是一種經(jīng)濟(jì)實(shí)惠且高度可靠的設(shè)置。
更新 2:CPU 使用率可管理
理論上,CPU 最高可以用一個(gè)內(nèi)核的 100% 來處理從 10GigE 接入的輸入數(shù)據(jù),并且在運(yùn)行多個(gè)應(yīng)用程序/攝像頭時(shí)可以使用多個(gè)內(nèi)核。通過使用 Myricom 卡來管理數(shù)據(jù)包接收和圖像重建,每個(gè)應(yīng)用程序的 CPU 使用率可以低至 1%,從而可以將更多的 CPU 周期用于圖像處理。檢測結(jié)果見下方附錄:可靠性和 CPU 使用率測試
更新 3:延遲縮短
10GigE Vision 的幀延遲不是確定的;這意味著幀的到達(dá)可能伴隨顯著的時(shí)基抖動(dòng)。在某些情況下,特別是對于交換機(jī),不僅存在丟包,有時(shí)幀的接收會(huì)出現(xiàn)逆序現(xiàn)象。Teledyne FLIR Oryx + Myricom 捆綁解決方案通過及時(shí)通知幀完成以縮短延遲,以及減少時(shí)基抖動(dòng)來解決這個(gè)問題。
附錄:可靠性和 CPU 使用率測試
測試 1:高帶寬 7 天串流
使用通過 Teledyne FLIR Spinnaker API 創(chuàng)建的定制控制臺應(yīng)用程序,設(shè)置由 890 萬像素 Teledyne FLIR Oryx 攝像頭來連續(xù)捕捉圖像,并跟蹤任何不完整的圖像,無額外的處理或第三方資源密集型程序同時(shí)運(yùn)行。
測試結(jié)果:采集約 4000 萬幀圖像;檢測到 0 幀不完整/丟失的圖像。
注:在整個(gè) 7 天的測試期間檢查了 CPU 使用率,發(fā)現(xiàn)始終保持在 1%。在停用新的 Myricom 驅(qū)動(dòng)程序,僅依靠 FLIR 標(biāo)準(zhǔn)濾波器驅(qū)動(dòng)器的情況下,專門用于應(yīng)用程序的 CPU 核心的 CPU 使用率保持在大約 100% 的水平。
測試 2:雙攝像頭串流
該測試包括在同一定制控制臺應(yīng)用程序中運(yùn)行的兩臺 Oryx 攝像頭(ORX-10G-123S6M 和 ORX-10G-89S6C),每臺攝像頭的帶寬為 6.7 Gb/s,連續(xù)運(yùn)行 24 小時(shí)。
測試結(jié)果:每個(gè)攝像頭采集約 600 萬幀圖像;檢測到 0 幀不完整/丟失的圖像
測試 3:24 小時(shí) CPU 壓力測試
該測試包括一臺 Oryx 攝像頭(ORX-10G-123S6M),其設(shè)置與測試 1 相同。
使用了與測試 1 相同的控制臺應(yīng)用程序,但這次同時(shí)使用了另一個(gè)應(yīng)用程序;該定制應(yīng)用程序旨在模擬高工作負(fù)荷,CPU 的總使用率約為 90%(所有八個(gè)內(nèi)核)。
測試結(jié)果:采集約 600 萬幀圖像;檢測到 0 幀不完整/丟失的圖像
測試系統(tǒng)硬件和軟件規(guī)格:
i7-9700k @ 3.6GHz | 16GB | Windows 10 1809
Teledyne FLIR Spinnaker 2.1.0.82 和 PGRLwf 2.7.3.397 與帶 Myricom 支持的定制 2.3.0.x 版本
Oryx ORX-10G-123S6M
Oryx ORX-10G-89S6C