Making 10GigE Machine Vision Reliable and Affordable - Including Multi-Camera Setups


Several vision system applications like fast moving inspection lines, semiconductor fabs, intelligent traffic systems, sports analytics and volumetric capture require high resolution, high FPS and transfer of data to deliver better outcomes. For vision system engineers looking to improve output using faster framerates and higher resolution machine vision cameras, upgrading from 1GigE to 10GigE is an obvious option. However, according to research from the AIA (Automated Imaging Association), adoption has been fairly slow. This is understandable considering three technical challenges arising out of this upgrade: reliability (dropped packets), high CPU usage, and high latency. This article provides an update on how the Teledyne FLIR Oryx + Myricom bundled solution is addressing those challenges.


Update 1: Flawless Performance

While 10GigE Vision has increased bandwidth 10 times over the GigE Vision protocol, 10GigE host adapter performance has not kept up. Transferring data from camera to host generally results in overloading the CPU, leading to application buffer overflows, and a level of packet loss which is unacceptable for demanding applications.

By using host adapters to handle packet receipt and image reconstruction directly on the card, the CPU no longer needs to manage these tasks. Teledyne FLIR Oryx + Myricom bundle is specifically designed to address such situations. As noted in our test results below, system reliability can increase dramatically, resulting in significantly reduced packet loss, and in turn, dropped frames.

The bundle works seamlessly with our new custom SDK driver devoted to handling data provided by the Myricom card. With this combination, image data transfers flawlessly and reliably from camera to host PC. See test results below in Appendix: Reliability and CPU Usage testing.

The price to performance ratio of our Teledyne FLIR Oryx + Myricom bundle make it an easy choice; providing an affordable and highly reliable setup compared to purchasing and integrating hardware separately.


Update 2: Managed CPU Usage

Theoretically, CPUs could devote up to 100% of one of its cores for handling incoming data from a 10GigE connection and multiple cores can be utilized when running multiple applications / cameras. By using the Myricom card to manage packet receipt and image reconstruction, CPU usage goes down to as low as 1% for each application, allowing for additional CPU cycles to be used for image processing. See test results below in Appendix: Reliability and CPU Usage testing


Update 3: Reduced Latency

10GigE Vision frame latency is not deterministic; this means frames can arrive with a significant time jitter. In some conditions, especially with switches, not only is there packet loss, sometimes frames are received in opposite order. The Teledyne FLIR Oryx + Myricom bundle addresses this with timely notification of frame completions for lower latency and less jitter.


Appendix: Reliability and CPU Usage testing


Test 1: High Bandwidth 7-day Stream

Using a custom console application created through the Teledyne FLIR Spinnaker API, an 8.9MP Teledyne FLIR Oryx camera was set to capture images continuously and keep track of any incomplete images with no additional processing or third-party resource intensive programs running concurrently.

Test Results: ~40 million images acquired; 0 incomplete/dropped images detected.

Note: CPU Usage was checked throughout the 7 days of testing and found to stay consistently at 1%. With the new Myricom driver disabled, and solely relying on the FLIR standard filter driver, CPU usage for the CPU core devoted to the application stayed at roughly 100%.


Test 2: Dual Camera stream

This test includes two Oryx cameras (ORX-10G-123S6M and ORX-10G-89S6C) running in the same custom console application, each capturing images at a bandwidth of 6.7 Gb/s, for 24 hours continuously.

Test Results: ~6 million images acquired per camera; 0 incomplete/dropped images detected


Test 3:  24-hour CPU Stress Test

This test includes a single Oryx camera (ORX-10G-123S6M) with the same settings as in Test 1.

The same console application used in Test 1 is used, except this time, another application is used at the same time; this custom application is meant to simulate a high workload, taking up about 90% of total CPU utilization (across all eight cores).

Test Results: ~6 million images acquired; 0 incomplete/dropped images detected


Test System Hardware & Software Specifications:

i7-9700k @ 3.6GHz | 16GB | Windows 10 1809

Teledyne FLIR Spinnaker and PgrLwf vs custom 2.3.0.x build with Myricom support

Oryx ORX-10G-123S6M

Oryx ORX-10G-89S6C


Related Articles