Skip to content

Commit e9bdc64

Browse files
committed
feat: add traffic_light_detector launch
Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: tier4 perception launch Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: add multi tlr detector launch Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: tier4 launch Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: tl detector launch Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: data director Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: precision int8 Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> chore: revert to fp16 Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> feat: remove occlusion and add car ped classification merger Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: launch for multi camera Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> chore: pre-commit Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> fix: update matching score Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> feat: add max_iou_threshold Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp> feat: add occlusion unknown classifier Signed-off-by: badai-nguyen <dai.nguyen@tier4.jp>
1 parent 8949358 commit e9bdc64

File tree

4 files changed

+121
-4
lines changed

4 files changed

+121
-4
lines changed

launch/tier4_perception_launch/launch/traffic_light_recognition/traffic_light.launch.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<arg name="all_camera_namespaces" value="$(var all_camera_namespaces)"/>
3535
<arg name="enable_fine_detection" value="$(var enable_fine_detection)"/>
3636
</include>
37+
<!-- <include file="$(find-pkg-share tier4_perception_launch)/launch/traffic_light_recognition/traffic_light_detector.launch.xml"/> -->
3738
<include file="$(find-pkg-share tier4_perception_launch)/launch/traffic_light_recognition/traffic_light_node_container.launch.py">
3839
<arg name="all_camera_namespaces" value="$(var all_camera_namespaces)"/>
3940
<arg name="enable_image_decompressor" value="$(var enable_image_decompressor)"/>
@@ -47,12 +48,12 @@
4748
</group>
4849

4950
<!-- traffic_light_occlusion_predictor on each camera -->
50-
<group>
51+
<!-- <group>
5152
<include file="$(find-pkg-share tier4_perception_launch)/launch/traffic_light_recognition/traffic_light_occlusion_predictor.launch.py">
5253
<arg name="all_camera_namespaces" value="$(var all_camera_namespaces)"/>
5354
<arg name="input/cloud" value="$(var input/cloud)"/>
5455
</include>
55-
</group>
56+
</group> -->
5657

5758
<!-- traffic_light_multi_camera_fusion -->
5859
<group>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<group>
4+
<!-- add namespace -->
5+
<arg name="namespace" default="camera6"/>
6+
<arg name="input/image" default="/sensing/camera/$(var namespace)/image_raw"/>
7+
<arg name="yolox_detected_traffic/rois" default="/perception/traffic_light_recognition/$(var namespace)/detection/yolox/rois"/>
8+
<arg
9+
name="model_name"
10+
default="tlr_car_ped_yolox_s_960_960_batch_1"
11+
description="options `yolox-sPlus-T4-960x960-pseudo-finetune` if only detection is needed, `yolox-sPlus-opt-pseudoV2-T4-960x960-T4-seg16cls` if sematic segmentation is also needed"
12+
/>
13+
<arg name="use_decompress" default="true" description="use image decompress"/>
14+
<arg name="build_only" default="false" description="exit after trt engine is built"/>
15+
16+
<arg name="param_file" default="$(find-pkg-share autoware_image_transport_decompressor)/config/image_transport_decompressor.param.yaml"/>
17+
<node pkg="autoware_image_transport_decompressor" exec="image_transport_decompressor_node" name="image_transport_decompressor_$(var namespace)_node" if="$(var use_decompress)">
18+
<remap from="~/input/compressed_image" to="$(var input/image)/compressed"/>
19+
<remap from="~/output/raw_image" to="$(var input/image)"/>
20+
<param from="$(var param_file)"/>
21+
</node>
22+
23+
<node pkg="autoware_tensorrt_yolox" exec="autoware_tensorrt_yolox_node_exe" name="traffic_light_yolox_$(var namespace)" output="screen">
24+
<remap from="~/in/image" to="$(var input/image)"/>
25+
<remap from="~/out/objects" to="$(var yolox_detected_traffic/rois)"/>
26+
<param name="build_only" value="$(var build_only)"/>
27+
<param name="is_roi_overlap_segment" value="false"/>
28+
<param name="overlap_roi_score_threshold" value="0.3"/>
29+
<param name="is_publish_color_mask" value="false"/>
30+
<param name="roi_overlay_segment_label.UNKNOWN" value="false"/>
31+
<param name="roi_overlay_segment_label.CAR" value="false"/>
32+
<param name="roi_overlay_segment_label.TRUCK" value="false"/>
33+
<param name="roi_overlay_segment_label.BUS" value="false"/>
34+
<param name="roi_overlay_segment_label.MOTORCYCLE" value="false"/>
35+
<param name="roi_overlay_segment_label.BICYCLE" value="false"/>
36+
<param name="roi_overlay_segment_label.PEDESTRIAN" value="false"/>
37+
<param name="roi_overlay_segment_label.ANIMAL" value="false"/>
38+
<param name="model_path" value="/opt/autoware/mlmodels/traffic_light_detector/$(var model_name).onnx"/>
39+
<param name="label_path" value="/opt/autoware/mlmodels/traffic_light_detector/label.txt"/>
40+
<param name="color_map_path" value=""/>
41+
<param name="score_threshold" value="0.35"/>
42+
<param name="nms_threshold" value="0.7"/>
43+
<param name="precision" value="fp16"/>
44+
<param name="calibration_algorithm" value="Entropy"/>
45+
<param name="dla_core_id" value="-1"/>
46+
<param name="quantize_first_layer" value="false"/>
47+
<param name="quantize_last_layer" value="false"/>
48+
<param name="profile_per_layer" value="false"/>
49+
<param name="clip_value" value="6.0"/>
50+
<param name="preprocess_on_gpu" value="true"/>
51+
<param name="gpu_id" value="0"/>
52+
<param name="calibration_image_list_path" value=""/>
53+
</node>
54+
<arg name="input/detected_rois" default="input/detected_rois"/>
55+
<arg name="input/rough_rois" default="/perception/traffic_light_recognition/$(var namespace)/detection/rough/rois"/>
56+
<arg name="output/traffic_light_rois" default="/perception/traffic_light_recognition/$(var namespace)/detection/rois"/>
57+
<arg name="input/expect_rois" default="/perception/traffic_light_recognition/$(var namespace)/detection/expect/rois"/>
58+
<arg name="input/camera_info" default="/sensing/camera/$(var namespace)/camera_info"/>
59+
<!-- Node -->
60+
<node pkg="autoware_traffic_light_selector" exec="traffic_light_selector_node" name="autoware_traffic_light_selector_$(var namespace)" output="screen">
61+
<remap from="input/detected_rois" to="$(var yolox_detected_traffic/rois)"/>
62+
<remap from="input/rough_rois" to="$(var input/rough_rois)"/>
63+
<remap from="input/expect_rois" to="$(var input/expect_rois)"/>
64+
<remap from="output/traffic_light_rois" to="$(var output/traffic_light_rois)"/>
65+
<remap from="input/camera_info" to="$(var input/camera_info)"/>
66+
<param name="max_iou_threshold" value="0.0"/>
67+
<param name="debug" value="true"/>
68+
</node>
69+
</group>
70+
</launch>

launch/tier4_perception_launch/launch/traffic_light_recognition/traffic_light_map_based_detector.launch.py

+28
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,27 @@ def create_traffic_light_map_based_detector(namespace, context):
5656
return group
5757

5858

59+
def create_traffic_light_detector(namespace, context):
60+
package = FindPackageShare("tier4_perception_launch")
61+
include = PathJoinSubstitution(
62+
[package, "launch/traffic_light_recognition/traffic_light_detector.launch.xml"]
63+
)
64+
arguments = {
65+
"namespace": namespace,
66+
"use_decompress": "true",
67+
}.items()
68+
69+
group = GroupAction(
70+
[
71+
PushRosNamespace(namespace),
72+
PushRosNamespace("detection"),
73+
IncludeLaunchDescription(include, launch_arguments=arguments),
74+
]
75+
)
76+
77+
return group
78+
79+
5980
def launch_setup(context, *args, **kwargs):
6081
# Load all camera namespaces
6182
all_camera_namespaces = LaunchConfiguration("all_camera_namespaces").perform(context)
@@ -76,6 +97,13 @@ def launch_setup(context, *args, **kwargs):
7697
create_traffic_light_map_based_detector(namespace, context)
7798
for namespace in all_camera_namespaces
7899
]
100+
101+
_ = [
102+
traffic_light_recognition_containers.append(
103+
create_traffic_light_detector(namespace, context)
104+
)
105+
for namespace in all_camera_namespaces
106+
]
79107
return traffic_light_recognition_containers
80108

81109

launch/tier4_perception_launch/launch/traffic_light_recognition/traffic_light_node_container.launch.py

+20-2
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,24 @@ def create_parameter_dict(*args):
122122
{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}
123123
],
124124
),
125+
ComposableNode(
126+
package="autoware_traffic_light_signals_merger",
127+
plugin="autoware::traffic_light::TrafficLightSignalsMergerNode",
128+
name="traffic_light_signals_merger",
129+
namespace="classification",
130+
remappings=[
131+
("input/car_signals", "classified/car/traffic_signals"),
132+
("input/pedestrian_signals", "classified/pedestrian/traffic_signals"),
133+
(
134+
"input/expect_rois",
135+
f"/perception/traffic_light_recognition/{namespace}/detection/expect/rois",
136+
),
137+
("output/traffic_light_signals", "traffic_signals"),
138+
],
139+
extra_arguments=[
140+
{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}
141+
],
142+
),
125143
ComposableNode(
126144
package="autoware_traffic_light_visualization",
127145
plugin="autoware::traffic_light::TrafficLightRoiVisualizerNode",
@@ -197,8 +215,8 @@ def create_parameter_dict(*args):
197215

198216
return [
199217
GroupAction([PushRosNamespace(namespace), container]),
200-
decompressor_loader,
201-
fine_detector_loader,
218+
# decompressor_loader,
219+
# traffic_light_selector_loader,
202220
]
203221

204222

0 commit comments

Comments
 (0)