Real-Time Zero-Copy Object Detection on Jetson Orin Nano with CUDA–OpenGL Interop

Hello NVIDIA Developer Community,

I would like to share a real-time zero-copy AI vision project that I developed for the NVIDIA Jetson Orin Nano Super.

The goal of this project is to build a low-latency GPU pipeline that minimizes unnecessary frame copies between the camera, CPU, CUDA, TensorRT, and OpenGL.

The main processing pipeline is:

V4L2 Camera Capture
→ CUDA Image Preprocessing
→ TensorRT Inference
→ CUDA Detection Decoding and NMS
→ CUDA–OpenGL Interoperability
→ Real-Time OpenGL Rendering

Main Features

  • Real-time USB camera capture using V4L2
  • CUDA-based image preprocessing
  • TensorRT inference on Jetson
  • GPU-side detection decoding and NMS
  • CUDA and OpenGL shared rendering resources
  • Multi-threaded capture, inference, and rendering pipeline
  • Real-time object detection boxes rendered with OpenGL
  • Reduced CPU-to-GPU and GPU-to-CPU memory transfers
  • Designed for edge AI and embedded vision applications

The attached video shows the project running in real time, including camera input, TensorRT object detection, CUDA processing, and OpenGL rendering.

This architecture can be extended to robotics, industrial inspection, smart cameras, gesture recognition, autonomous systems, and other Jetson edge-AI applications.

Complete Udemy Course

For developers who would like to learn the complete implementation process, I have also published a Udemy course covering the Jetson zero-copy project, including V4L2, CUDA, TensorRT, OpenGL, multi-threading, and GPU memory optimization.

Udemy course:

https://www.udemy.com/course/jetsonaiv4l2tensorrtcudaopengl/?referralCode=D5C47621D6E5E36867A2

I would appreciate any feedback from the NVIDIA developer community, especially regarding CUDA–OpenGL interoperability, memory-transfer optimization, TensorRT performance, and possible improvements to the pipeline.

Thank you!