Skip to content

heatmap_visualizer#

Purpose#

heatmap_visualizer is a package for visualizing heatmap of detected 3D objects' positions on the BEV space.

This package is used for qualitative evaluation and trend analysis of the detector, it means, for instance, the heatmap shows "This detector performs good for near around of our vehicle, but far is bad".

How to run#

ros2 launch heatmap_visualizer heatmap_visualizer.launch.xml input/objects:=<DETECTED_OBJECTS_TOPIC>

Inner-workings / Algorithms#

In this implementation, create heatmap of the center position of detected objects for each classes, for instance, CAR, PEDESTRIAN, etc, and publish them as occupancy grid maps.

heatmap_visualizer_sample

In the above figure, the pink represents high detection frequency area and blue one is low, or black represents there is no detection.

heatmap_visualizer

As inner-workings, add center positions of detected objects to index of each corresponding grid map cell in a buffer. The created heatmap will be published by each specific frame, which can be specified with frame_count. Note that the buffer to be add the positions is not reset per publishing. When publishing, firstly these values are normalized to [0, 1] using maximum and minimum values in the buffer. Secondly, they are scaled to integer in [0, 100] because nav_msgs::msg::OccupancyGrid only allow the value in [0, 100].

Inputs / Outputs#

Input#

Name Type Description
~/input/objects autoware_auto_perception_msgs::msg::DetectedObjects detected objects

Output#

Name Type Description
~/output/objects/<CLASS_NAME> nav_msgs::msg::OccupancyGrid visualized heatmap

Parameters#

Core Parameters#

Name Type Default Value Description
frame_count int 50 The number of frames to publish heatmap
map_frame string base_link the frame of heatmap to be respected
map_length float 200.0 the length of map in meter
map_resolution float 0.8 the resolution of map
use_confidence bool false the flag if use confidence score as heatmap value
rename_car_to_truck_and_bus bool true the flag if rename car to truck or bus

Assumptions / Known limits#

The heatmap depends on the data to be used, so if the objects in data are sparse the heatmap will be sparse.

(Optional) Error detection and handling#

(Optional) Performance characterization#

(Optional) Future extensions / Unimplemented parts#