Road Segmentation for Autoware YabLoc (yabloc_pose_initializer)

Road semantic segmentation model used by the yabloc_pose_initializer package in Autoware.

The camera_pose_initializer node estimates the vehicle's initial pose from a camera image at the request of AD API. It segments the road surface in the undistorted camera image with this model and matches the result against the Lanelet2 vector map to score initial pose candidates.

The model is Intel Open Model Zoo's road-segmentation-adas-0001, converted to a TensorFlow frozen graph via the PINTO model zoo (entry 136). It runs on CPU through OpenCV DNN inside the node; no TensorRT or ONNX runtime is involved.

Model overview

Task Road semantic segmentation of a camera image, used for camera-based initial pose estimation
Origin Intel Open Model Zoo road-segmentation-adas-0001, converted by the PINTO model zoo
Runtime OpenCV DNN (cv::dnn::readNet), OpenCV backend, CPU target
Format TensorFlow frozen graph, float32 (model_float32.pb)
Network input 1 x 3 x 512 x 896 float32 blob (RGB, scale 1.0, no mean subtraction)
Network output 4-channel segmentation score map
License Apache-2.0 (Intel Open Model Zoo)

For the class definitions and architecture details of the segmentation network, see the upstream Intel Open Model Zoo model page.

Files

File Description
saved_model/model_float32.pb TensorFlow frozen graph, float32; the only file the node loads
deploy_metadata.yaml Deployment metadata recording the artifact version of this repository

The upstream PINTO model zoo export also contains other formats (TFLite, TF.js, OpenVINO IR, ONNX, pre-serialized TensorRT saved models). They are intentionally not distributed here: the node consumes only the TensorFlow frozen graph, and pre-built TensorRT engines are environment-specific and not portable.

The directory layout (saved_model/model_float32.pb) is preserved exactly as the package's launch file expects it.

Inputs and outputs (as used by the node)

Subscriptions

Topic Type Description
~/input/camera_info sensor_msgs/msg/CameraInfo undistorted camera info
~/input/image_raw sensor_msgs/msg/Image undistorted camera image
~/input/vector_map autoware_map_msgs/msg/LaneletMapBin vector map

Publications

Topic Type Description
~/debug/init_candidates visualization_msgs/msg/MarkerArray initial pose candidates (the package README lists this topic as output/candidates, but the node publishes it under debug/init_candidates)

Services

Service Type Description
~/yabloc_align_srv autoware_internal_localization_msgs/srv/PoseWithCovarianceStamped initial pose estimation request

Pre-processing and post-processing run in the node: the image is resized to 896 x 512 and converted to a float32 RGB blob; the 4-channel output score map is resized back to the image resolution, the first (background) channel is dropped, and the remaining three channels are thresholded into a binary mask image used for map matching.

The node's only ROS parameter besides model_path is angle_resolution (default 30, the number of divisions of the 1 sigma angle range).

Usage in Autoware

Autoware downloads this artifact to ~/autoware_data/ml_models/yabloc_pose_initializer/ during environment setup (the ansible artifacts role). To fetch it manually:

hf download AutowareFoundation/yabloc_pose_initializer --revision v1.0 \
  --local-dir ~/autoware_data/ml_models/yabloc_pose_initializer

The package's launch file resolves the model at:

$HOME/autoware_data/ml_models/yabloc_pose_initializer/saved_model/model_float32.pb

and passes it to the node as the model_path parameter (overridable via the model_path launch argument). The node is started as part of the YabLoc localization stack; see the package README for details. If the model is missing, initialization still completes, but accuracy may be compromised.

Training

This model was not trained by the Autoware project; it is redistributed as-is from upstream:

Training datasets, schedules, and metrics are not documented in the Autoware sources; refer to the Intel Open Model Zoo model page for upstream details.

Provenance and versioning

Tag v1.0
Original source https://autoware-files.s3.us-west-2.amazonaws.com/models/yabloc/136_road-segmentation-adas-0001/resources.tar.gz (unversioned tarball)
saved_model/model_float32.pb sha256 c4e373552f4efb91592ed99f49afc6df179f8a95174ceaddd1ab35692f435b47

The original tarball bundled the full PINTO model zoo export; only the file the node consumes is distributed here.

Limitations

  • Inference runs on CPU via OpenCV DNN; the node does not use a GPU for this model.
  • The network operates at a fixed 896 x 512 input resolution; images are resized by the node.
  • The model was trained upstream by Intel, not on Autoware-specific data; segmentation quality on cameras or scenes that differ from the upstream training domain is not characterized here.
  • Pose initialization quality depends on the vector map and the undistorted camera input; a missing or poorly matching segmentation degrades the initial pose accuracy.

References

Acknowledgment

Special thanks to openvinotoolkit/open_model_zoo and PINTO0309 for providing and converting the original model.

Legal Notice

The original model is distributed by Intel Open Model Zoo under the Apache License, Version 2.0. The PINTO model zoo conversion scripts are released under the MIT license. See the upstream repositories for the full license terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support