This project provides a prototype that allows for real-time image processing on Nvidia GPUs. The prototype is based on the Basler pylon Camera Software Suite and Fastvideo SDK and enables testing of sophisticated image processing algorithms with Basler USB3 Vision cameras on Windows 7/8.1/10 64bit.
Challenges:
Basler’s machine vision cameras use an internal FPGA for certain image processing tasks, e.g., debayering, automatic exposure time, automatic gain, automatic white balance, gamma, noise reduction, sharpness enhancement, vignetting correction, etc. This means that real-time image processing takes place directly on the camera without causing any delays or additional CPU load on the host computer. However, there are a number of applications with requirements exceeding the feature capabilities offered by Basler’s machine vision cameras. For example, customers may need additional features not included in the respective camera firmware, e.g., rotation, flat-field correction, etc., or extended ranges of existing camera features, e.g., more binning factors. Another aspect is that using the camera’s FPGA to perform certain image processing algorithms in some cases may adversely affect camera performance or frame rate. For example, performing debayering on the camera’s FPGA may require more bandwidth to transfer the image data than the given interface supports, e.g., Gigabit Ethernet (115 MByte/s) or USB 3.0 (380 MByte/s). This may lead to reduction in the camera’s frame rate. To overcome the challenges detailed above, performing real-time image processing on a GPU is worth considering as an alternative approach.
What Does the Prototype Support?
The prototype created in this project supports and is based on the following:
Basler USB3 Vision cameras
Operating systems: Windows 7, 8.1, 10, 64-bit
NVIDIA GPUs: 6xx series and above (computing capability ≥ 3.0). The prototype has been tested with:
CUDA Toolkit 10.2
Basler pylon Camera Software Suite 5.2 for Windows 64-bit:
Fastvideo SDK for Windows 64-bit with watermark (included within the prototype).
Which Image Processing Algorithms Does the Prototype Offer?
Which Additional Features Are Possible on Request?
Performance & Test Results
The following table shows test results that clearly demonstrate that using GPU processing doesn’t reduce camera performance or frame rate. In the case of performing debayering on the GPU, the camera’s frame rate can even be increased.
Performance Issues
The following aspects typically affect the upload and download times possible with the GPU:
Therefore, it’s advisable to test different scenarios in order to determine the PCIe performance.
Next Steps
Have you tested and enjoyed the image processing algorithms implemented in the prototype?
Would you like to use them within your own application without watermark?
Are you looking for even more functionality above what the current prototype offers?
Please refer to the official Fastvideo solution on GitHub (https://github.com/fastvideo/gpu-camera-sample), which provides other/additional functionality. Alternatively, simply get in touch with Fastvideo LLC (https://www.fastcompression.com/) directly.
Title | Description | Format |
---|---|---|
pylon4NvidiaGPU_03032021_wm | This is the pylon4NvidiaGPU prototype itself. | 7z |
README | The README explains how to set up and use the prototype. | txt |
Want to comment this ...
Show more