Skip to content

This is an implementation for preprocessing steps done for image data on CUDA using NPP.

Notifications You must be signed in to change notification settings

yucedagonurcan/ImageCudaPrepRosNode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA Image Processing ROS Node

This is a ROS implementation of a fairly common image processing pipeline with using CUDA and NPP:

  1. Debayer
  2. Undistort(Rectify)
  3. Resize

Used Packages & Resources

  1. NPP library for Debayer & Resize classes
  2. Code structure and function of Undistort class are highly related to the dusty-nv/jetson-utils

Run in your machine

  1. Go to nearest ROS workspace and clone this repo:
cd catkin_ws/src
git clone https://github.com/yucedagonurcan/ImageCudaPrepRosNode.git
  1. Build the node:
catkin build cuda_img_processing --cmake-args -DCMAKE_BUILD_TYPE=Release

Benchmarks & Thoughts

  • I don't think this pipeline alone can make a drastic difference in terms of throughput and data shows that too:
    • Delay per image (CPU) = 0.055
    • Delay per image (GPU) : 0.050
  • The most important metric in this project can be freeing the CPU from this pipeline:
    • CPU usage ( CPU ): 26.5%
    • CPU usage ( GPU ): 11.5%
    • I am pretty sure that we can further optimize this code too.

Example run

Example Run

About

This is an implementation for preprocessing steps done for image data on CUDA using NPP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published