“A variety of vision system application scenarios, such as rapid inspection lines, semiconductor factories, intelligent transportation systems, motion analysis, and volumetric capture, require high resolution, high FPS, and high data transfer rates for better results. Upgrading from 1GigE to 10GigE is an obvious choice for vision system engineers looking to improve output with faster frame rates and higher resolution machine vision cameras.
A variety of vision system application scenarios, such as rapid inspection lines, semiconductor factories, intelligent transportation systems, motion analysis, and volumetric capture, require high resolution, high FPS, and high data transfer rates for better results. Upgrading from 1GigE to 10GigE is an obvious choice for vision system engineers looking to improve output with faster frame rates and higher resolution machine vision cameras. However, according to the AIA (Automated Imaging Association), its adoption has been rather slow. This is understandable given the three technical challenges this upgrade presents: reliability (packet loss), high CPU usage, and high latency. This article describes how the Teledyne FLIR Oryx + Myricom bundled solution addresses these challenges.
Update 1: Perfect performance
While 10GigE Vision has 10 times the bandwidth of the GigE Vision protocol, there is no commensurate increase in 10GigE host adapter performance. Data transfers from the camera to the host often result in CPU overload, application buffer overflows, and unacceptable levels of packet loss for demanding applications.
By utilizing the host adapter to handle packet reception and image reconstruction directly on the card, the CPU no longer needs to manage these tasks. Teledyne FLIR Oryx + Myricom bundled solutions are designed for such situations. As shown in our test results below, system reliability can be greatly improved, resulting in a significant reduction in packet loss, which in turn reduces frame loss.
This bundled solution works seamlessly with our new custom SDK driver designed to handle the data provided by the Myricom card. With this combination, image data can be transferred from the camera to the host PC flawlessly and reliably. The test results are shown in the appendix below: Reliability and CPU Utilization Tests.
The cost-effectiveness of the Teledyne FLIR Oryx + Myricom bundled solution makes it an obvious choice; it is a cost-effective and highly reliable setup compared to purchasing hardware separately for integration.
Update 2: CPU usage is manageable
In theory, the CPU can use up to 100% of a core to process input data coming in from 10GigE, and multiple cores can be used when running multiple applications/cameras. By using the Myricom card to manage packet reception and image reconstruction, CPU usage per application can be as low as 1%, allowing more CPU cycles to be devoted to image processing.The test results are shown in the appendix below: Reliability and CPU Utilization Test
Update 3: Latency reduced
10GigE Vision’s frame delay is not deterministic; this means that frames may arrive with significant timing jitter. In some cases, especially for switches, not only are there packet loss, but sometimes frames are received in reverse order. The Teledyne FLIR Oryx + Myricom bundled solution solves this problem by notifying frame completion in time to reduce latency, as well as reducing timing jitter.
Appendix: Reliability and CPU Utilization Tests
Test 1: High-bandwidth 7-day streaming
Using a custom console application created through the Teledyne FLIR Spinnaker API, set up the 8.9-megapixel Teledyne FLIR Oryx camera to continuously capture images and track any incomplete images without additional processing or third-party resource-intensive programs running concurrently.
Test results: About 40 million frames of images were collected; 0 incomplete/missing images were detected.
Note: CPU usage was checked throughout the 7-day test period and found to remain at 1% throughout. With the new Myricom driver disabled and relying only on the FLIR standard filter driver, the CPU usage of the CPU cores dedicated to the application remained at about 100%.
Test 2: Dual Camera Streaming
The test included two Oryx cameras (ORX-10G-123S6M and ORX-10G-89S6C) running in the same custom console application, each with 6.7 Gb/s of bandwidth, for 24 hours of continuous operation.
Test results: ~6 million frames captured per camera; 0 incomplete/missing images detected
Test 3: 24-hour CPU stress test
This test included an Oryx camera (ORX-10G-123S6M) with the same setup as Test 1.
The same console application was used as in Test 1, but this time with another application; the custom application was designed to simulate a high workload, with a total CPU utilization of about 90% (all eight cores).
Test Results: Approximately 6 million frames captured; 0 incomplete/missing images detected
Test System Hardware and Software Specifications:
i7-9700k @ 3.6GHz | 16GB | Windows 10 1809
Teledyne FLIR Spinnaker 126.96.36.199 and PGRLwf 188.8.131.527 and custom 2.3.0.x version with Myricom support