Skip to content

autoware_tensorrt_rtmdet#

Purpose#

RTMDet is a real-time instance segmentation model which can be used for detecting objects like cars, pedestrians, bicycles, etc. in a scene. This package provides a ROS 2 interface for RTMDet using TensorRT.

Inner-workings / Algorithms#

Inputs / Outputs#

Input#

Name Type Description
in/image sensor_msgs/Image The input image

Output#

Name Type Description
out/objects tier4_perception_msgs/DetectedObjectsWithFeature The detected objects with 2D bounding boxes and scores
out/mask autoware_internal_perception_msgs/SegmentationMask The instance segmentation mask
out/color_mask sensor_msgs/Image The colorized image of instance segmentation mask for visualization
out/debug_image sensor_msgs/Image The image with 2D bounding boxes for visualization

Parameters#

Name Type Description Default Range
is_publish_debug_image boolean If true, debug image which contain bounding boxes is published at runtime. False N/A
is_publish_color_mask boolean If true, debug image which contain colorful masks is published at runtime. False N/A
model_path string Path to ONNX file. \((var data_path)/tensorrt_rtmdet/\)(var model_name).onnx N/A
color_map_path string Path to color map file. $(var data_path)/tensorrt_rtmdet/color_map.csv N/A
plugin_paths array Path to plugin files. ['./build/tensorrt_rtmdet/libtensorrt_rtmdet_plugin.so'] N/A
input_image_mean array Mean values for the model. [103.53, 116.28, 123.675] N/A
input_image_std_dev array Standard deviation values for model. [57.375, 57.12, 58.395] N/A
score_threshold float A threshold value of existence probability score, all of objects with score less than this threshold are ignored. 0.3 ≥0.0
≤1.0
nms_threshold float A threshold value of NMS. 0.0 ≥0.0
≤1.0
mask_threshold float A threshold value of pixel values in the output mask. 0.7 ≥0.0
≤1.0
precision string Operation precision to be used on inference. Valid value is one of: [fp32, fp16, int8]. fp16 N/A
dla_core_id float If positive ID value is specified, the node assign inference task to the DLA core. -1 N/A
quantize_first_layer boolean If true, set the operating precision for the first (input) layer to be fp16. This option is valid only when precision==int8. False N/A
quantize_last_layer boolean If true, set the operating precision for the last (output) layer to be fp16. This option is valid only when precision==int8. False N/A
profile_per_layer boolean If true, profiler function will be enabled. Since the profile function may affect execution speed, it is recommended to set this flag true only for development purpose. False N/A
clip_value float If positive value is specified, the value of each layer output will be clipped between [0.0, clip_value]. This option is valid only when precision==int8 and used to manually specify the dynamic range instead of using any calibration. 0.0 N/A
apply_erosion boolean If true, apply erosion to the output mask. False N/A
calibration_image_list_path string Path to a file which contains path to images. Those images will be used for int8 quantization. N/A

Assumptions / Known limits#

Onnx model#

A sample model is provided in autoware_data folder by ansible script on env preparation stage. If you cannot find the model, you follow instructions from the link to download the model.

The shared model was trained by open-mmlab using the COCO dataset. For more details, see link.

Package acceptable model generation#

Users can generate their own model using official RTMDet repository. Please refer to the official repository

Label file#

A sample label file (named label.txt) and instance segmentation color map file (name color_map.csv) are also downloaded automatically during env preparation process.

These files are used to map the class index to class name and color respectively.

Reference repositories#

Citation#

@misc{lyu2022rtmdetempiricalstudydesigning,
title={RTMDet: An Empirical Study of Designing Real-Time Object Detectors},
author={Chengqi Lyu and Wenwei Zhang and Haian Huang and Yue Zhou and Yudong Wang and Yanyi Liu and Shilong Zhang and Kai Chen},
year={2022},
eprint={2212.07784},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2212.07784},
}