Software Services for NVIDIA Jetson

From RidgeRun Developer Wiki



Introduction

RidgeRun, LLC is an embedded Linux product and service business founded in 2006. We are a high-touch company with +80 engineers focused on reducing our customer's time-to-market and product quality. We specialize in streaming media products and applications and are experts in GStreamer based technology and NVIDIA Jetson. RidgeRun is a proud NVIDIA Jetson Preferred Partner.

What services does RidgeRun offer for NVIDIA Jetson?



Linux Camera Drivers

Do you have a custom camera module and don't know how to make it work on a NVIDIA Jetson board? RidgeRun can help you from the initial analysis of features to choose the right NVIDIA Jetson, to the testing and validation of the sensor image acquisition. RidgeRun has created +50 camera drivers for NVIDIA Jetson, including;

  • Sony, Omnivision, OnSemi, and many more Color Bayer image sensors
  • Monochrome sensors
  • Complex architectures with serializer and deserializer configurations, using GMSL and FPD-Link technology
  • ISP drivers for GeoSemi, OnSemi, and many more
  • Complex architectures with sensor + external ISP
  • Radar and Lidar Sensors

A typical process to develop a Linux Camera driver is as follows:

  • Features request analysis
  • Sensor / ISP datasheet and documentation review.
  • V4L2 driver implementation, sensor initialization, capture modes settings
  • DTB configuration
  • Basic Driver validation
  • Custom V4L2 controls implementation like framerate, gain, exposure, etc
  • Profiling and testing with V4L2 or NVIDIA capture tools (LibArgus, nvarguscamerasrc, etc)

In addition, RidgeRun could help you with custom features like:

  • Multi-camera setup
  • Cameras synchronization
  • Frames timestamping
  • Trigger mode configuration

RidgeRun has NDAs with most of the sensor module manufacturers. If you don't have the datasheet or documentation, we got you covered. You can read more about our Linux camera driver services for NVIDIA Jetson on our V4L2 drivers for Jetson SoCs developer wiki page.

Deepstream Applications

NVIDIA Deepstream is one of the most powerful tools to develop edge AI multimedia applications, combining GStreamer and NVIDIA technology to offer state-of-the-art options for customers creating AI applications in NVIDIA hardware. RidgeRun, the expert in GStreamer and multimedia embedded applications development, found Deepstream a perfect match and an addition to the services offered.

If you are looking to start the development of your edge AI application using Deepstream, RidgeRun can help you with:

  • Use case and customer ideas analysis to find out the best way to leverage Deepstream features in the customer application.
  • Deepstream application consultancy and profiling
  • Proof of concept (PoC) implementation using Deepstream.
  • Customer models porting and optimization for Deepstream
  • Deepstream-based production-ready application design and development.

RidgeRun has used Deepstream for a wide range of applications:

  • Simple object detection and tracking with bounding boxes overlay for display, streaming, or recording.
  • Intelligent Video Analytics, using Deepstream inference metadata to trigger custom actions in the application. Take a snapshot or video recording, send a notification, raise an alarm, log events and activity, etc.
  • Use message broker functionality to send events through MQTT, AMQP, and Redis.
  • Port ONNX, TensorFlow, or Pytorch models to TensorRT to be used with Deepstream.
  • Integrate NVIDIA NGC segmentation, face detection, face mesh, and gaze estimation models in customer applications.
  • Transfer Deepstream metadata results between video streams for custom processing.
  • Full Deepstream-based application and reference design such as the Automatic Parking Lot Registration.
  • Custom tracker implementation.
  • GStreamer and Deepstream integration, profiling, and pipeline optimization.

In general, Deepstream has dozens of interesting features that RidgeRun can leverage to bring your application and ideas to the next level in the edge AI field.

Multimedia Servers

RidgeRun expertise in GStreamer helps customers to speed up their product's time to market and build their multimedia applications with the foundations provided by a highly efficient and experienced GStreamer team. When thinking about multimedia applications for embedded systems, RidgeRun is the right partner for:

  • Design multimedia servers to architect applications involving camera capture, video recording, video streaming, snapshot, video image processing, edge AI inference, video analytics, WebRTC, computer vision, etc.
  • Use the most out of the platform taking advantage of hardware accelerators in NVIDIA Jetson, such as the GPU, hardware encoders and decoders, VIC for image processing, PVA for computer vision tasks, and DLA units for Deep Learning tasks.
  • Optimize customer's solution with NVIDIA GStreamer elements.
  • Profile, debug, and optimize customer's solution leveraging NVIDIA Nsight tools.
  • Use NVIDIA's powerful GPU to implement Computer Vision tasks and integrate them into complex multimedia solutions. Object tracking, image stabilization, image stitching, Birds Eye View, image filtering, and many more algorithms have been implemented by RidgeRun's team for customer-specific requirements.
  • Enable streaming-based solutions, using NVIDIA powerful encoder and decoders to implement streaming applications using RTSP, WebRTC, RTMP, HLS, UDP/TCP, and SRT solutions.
  • Create metadata-based solutions, by extracting data from peripheral sensors (GPS, proximity sensors, accelerometers, etc) or AI metadata from Deepstream, users can send metadata to users attached to the video streaming, log data, or send it through message brokers such as MQTT or AMQP.
  • User interface applications, using NVIDIA's optimized EGL display element to create user interfaces with live camera preview, image filter options, menus to enable or disable video recording, take a snapshot, etc.

RidgeRun's multimedia server solutions are fully driven by the customer's scope, working as an extension of their engineering team to speed up the development and achieve high efficiency and optimized applications.

CUDA Development

When talking about NVIDIA it is hard to not mention CUDA, the powerful library and API to develop GPU-based applications. RidgeRun has been using CUDA for several years, and we can offer you services and solutions using CUDA as the core. RidgeRun can help you with:

  • RidgeRun can assist in integrating CUDA technology into your multimedia applications, enabling hardware acceleration for various computational tasks.
  • CUDA Optimization. We can help you maximize the performance of CUDA-based applications, ensuring efficient utilization of GPU resources for improved speed and reliability.
  • Custom CUDA Development services for CUDA-based applications, tailoring solutions to specific client needs or hardware requirements.
  • We specialize in CUDA-accelerated video processing, leveraging NVIDIA GPUs to enhance computer vision tasks and offload the CPU with heavy processing tasks that only the GPU can handle efficiently.
  • RidgeRun offers you debugging and support services for CUDA applications, helping troubleshoot issues, optimize code, and ensure the smooth functioning of CUDA-powered applications.
  • GStreamer and CUDA integration made easy with our GstCUDA product, allowing customers to easily integrate their custom CUDA cores in GStreamer, with zero memory copy mechanisms and NVMM integration for NVIDIA Jetson.

Several RidgeRun products use CUDA as the core, some them are the Image Stitching, CUDA Undistort, and CUDA ISP.

Board Bringup

When creating custom hardware, it is not all about hardware, software support has equal importance and you must let experts take care of that. RidgeRun is your solution if you require:

  • Kernel and DTB customization. If you are connecting a custom GPS or LTE module, proximity, gyroscope, accelerometer over GPIOs, an LCD or touch screen, a custom FPGA through PCIe, routing the USB differently, connecting a battery monitor, adding hardware interruptions or anything different than the carrier boards, you will likely need custom Linux drivers and device tree modifications.
  • Customize bootloader to speed up booting time, change booting mechanisms, or add security options.
  • Create custom scripts or unit/integration tests at the user space level, to validate the peripherals connected and make sure the entire system is properly set up and ready to use for user space applications.

Yocto Support

If you are a Yocto fan and want to leverage Yocto for your Jetson project, RidgeRun is here to help you:

  • Ramp up the Yocto integration with your team, designing the right strategy to transfer your custom changes or applications to Yocto.
  • Design your Yocto-based system depending on your needs, custom hardware, and custom applications.
  • System minimization based on customer needs.
  • Customer dependencies integration.
  • Maintain your Yocto build by updating packages as NVIDIA releases new Jetpack versions.

RidgeRun has helped the Yocto community to support NVIDIA Jetson, you can read more about Yocto services on our Yocto for NVIDIA Jetson developer wiki page.

RidgeRun Products

To support all the services provided around NVIDIA Jetson, and solve common tasks requested by customers, RidgeRun has created a set of products that have proved to be successful in building applications for Jetson, some of them are:

RidgeRun's products for NVIDIA Jetson
Product Category Description Store Link
GstCUDA Computer Vision GstCUDA project is a development effort from RidgeRun to ease CUDA algorithms integration in GStreamer pipelines. It offers the framework to develop custom elements that execute different CUDA algorithms based on a series of base classes that abstract the complexity of both CUDA and GStreamer. GstCUDA
GstVPI Computer Vision GstVPI is a GStreamer plugin that simplifies the integration of NVIDIA VPI algorithms into GStreamer pipelines. NVIDIA VPI provides a series of Computer Vision / Image Processing algorithms ready to be deployed in different backends: GPU, PVA, and CPU. GstVPI abstracts the complexity of GStreamer and NVIDIA VPI into a set of base classes and GStreamer elements. GstVPI
Image Stitching Computer Vision Image Stitching for NVIDIA Jetson is a RidgeRun product that implements the stitcher algorithm along with other utilities to improve the final result. Image Stitching leverages the GPU to offer real-time performances of up to 4K at 30fps of multiple image stitching. Image Stitching
Motion Detector Computer Vision The GPU Accelerated Motion Detector solution is made up of a C++ library and a GStreamer element that makes use of this library. The algorithm works by detecting parts of the scene that have changed and highlighting them to be used. Motion Detector
CUDA ISP Computer Vision CUDA-based Image Signal Processing (ISP) Library accelerates Image Processing algorithms, such as debayering, by offloading their execution to an available NVIDIA GPU, allowing the CPU to handle more critical tasks. CUDA ISP
CUDA Undistort Computer Vision CUDA Accelerated GStreamer Camera Undistort is a RidgeRun product that implements this algorithm, as well as a GStreamer element so that you can integrate it into your pipeline for any other further needed processing. It transforms the input images in such a way that the distortion is no longer detected. CUDA Undistort
GstQTOverlay Computer Vision GstQtOverlay is a GStreamer plug-in that renders QT graphics on top of a video stream. The rendered GUIs will be available not only at the video display, but also embedded in file recordings and network streaming, for example. GstQTOverlay
GstSEI Metadata GStreamer plugin for inserting metadata into H264 and H264 encoded video. GstSEI
In-band Metadata Metadata This GStreamer product adds custom metadata into Transport Stream, for video streaming and video recording with synchronized metadata In-band Metadata
GstRTSPsink Video Streaming RidgeRun RTSP Sink is a GStreamer element that permits high performance streaming to multiple clients using the RTSP / RTP protocols GstRTSPsink
WebRTC Wrapper Video Streaming Turn your existing GStreamer pipeline into a standard WebRTC endpoint with GstWebRTC Wrapper. WebRTC Wrapper
ONVIF Server Video Streaming Ridgerun offers a solution that can turn any Linux device into an ONVIF Profile S compliant device. Its core is based on GStreamer using GStreamer Daemon. ONVIF Server
LibGUVC USB Our UVC Video Class Gadget Library simplifies the development of UVC based gadget devices. LibGUVC

Next Steps

Interested in hiring RidgeRun for your NVIDIA Jetson project? You can read the RidgeRun Process to get Support Or Please email to support@ridgerun.com for more information.


RidgeRun Resources

Quick Start Client Engagement Process RidgeRun Blog Homepage
Technical and Sales Support RidgeRun Online Store RidgeRun Videos Contact Us
RidgeRun.ai: Artificial Intelligence | Generative AI | Machine Learning

Contact Us

Visit our Main Website for the RidgeRun Products and Online Store. RidgeRun Engineering information is available at RidgeRun Engineering Services, RidgeRun Professional Services, RidgeRun Subscription Model and Client Engagement Process wiki pages. Please email to support@ridgerun.com for technical questions and contactus@ridgerun.com for other queries. Contact details for sponsoring the RidgeRun GStreamer projects are available in Sponsor Projects page.