Giter Site home page Giter Site logo

mstiehm-nf / isaac_ros_object_detection Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nvidia-isaac-ros/isaac_ros_object_detection

0.0 0.0 0.0 132 KB

Deep learning model support for object detection including DetectNet

Home Page: https://developer.nvidia.com/isaac-ros-gems

License: Apache License 2.0

Shell 3.03% C++ 78.37% CMake 4.30% C 14.29%

isaac_ros_object_detection's Introduction

Isaac ROS Object Detection

Hardware-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains an ROS 2 package to perform object detection. isaac_ros_detectnet provides a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated DetectNet model. The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

isaac_ros_detectnet is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A DetectNet model is required to produce the detection array. Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of DetectNet; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides a DNN encoder to process the input image into Tensors for the DetectNet model. Prediction results are clustered in the DNN decoder to group multiple detections on the same object. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

Note

DetectNet is similar to other popular object detection models such as YOLOV3, FasterRCNN, and SSD, while being efficient at detecting multiple object classes in large images.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

Isaac ROS NITROS Acceleration

This package is powered by NVIDIA Isaac Transport for ROS (NITROS), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes.

Performance

Sample Graph

Input Size

AGX Orin

Orin NX

Orin Nano 8GB

x86_64 w/ RTX 4060 Ti

DetectNet Object Detection Graph



544p



232 fps


11 ms

105 fps


15 ms

74.2 fps


22 ms

644 fps


5.6 ms


Documentation

Please visit the Isaac ROS Documentation to learn how to use this repository.


Packages

Latest

Update 2023-10-18: Adding NITROS YOLOv8 decoder.

isaac_ros_object_detection's People

Contributors

hemalshahnv avatar mstiehm-nf avatar jaiveersinghnv avatar nirshalchandrasekar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.