Calibration Status Classifier for Autoware (calibration_status_classifier)

Deep learning model for real-time LiDAR-camera calibration validation, used by the autoware_calibration_status_classifier node in Autoware.

The node projects the LiDAR point cloud onto the (undistorted) camera image, feeds the resulting 5-channel tensor to this network, and classifies whether the LiDAR-camera extrinsic calibration is still valid. The model is exported as ONNX and runs with TensorRT inside Autoware; Autoware builds the TensorRT engine from the ONNX file on first launch.

Model overview

Task Binary classification of LiDAR-camera calibration status (calibrated vs. miscalibrated)
Input 5-channel normalized image tensor: RGB + projected LiDAR depth + intensity
Output Calibration status with a miscalibration confidence score
Input resolution Dynamic; TensorRT optimization profile height [1080, 1860, 2160], width [1920, 2880, 3840] (min, opt, max)
Runtime TensorRT (FP16 by default, FP32 selectable) via the autoware_calibration_status_classifier ROS 2 node
Format ONNX (Autoware builds the TensorRT engine locally on first launch)
License Apache-2.0

Pre-processing runs CUDA-accelerated in the node, not in the ONNX graph: image undistortion, projection of 3D LiDAR points onto the 2D image plane (adding depth and intensity channels), and morphological dilation of the projected points.

Files

File Description
calibration_status_classifier.onnx Calibration status classification network
ml_package_calibration_status_classifier.param.yaml Model parameters (max projection depth, dilation kernel size, input resolution profile)
deploy_metadata.yaml Deployment metadata recording the artifact version of this repository

TensorRT engines are not distributed here. TensorRT engines are specific to the GPU architecture and TensorRT version they are built on and are not portable, so Autoware builds them locally from the ONNX file on first launch (or via build_only:=true).

Inputs and outputs (as used by the node)

Inputs

  • LiDAR point cloud topics (sensor_msgs/msg/PointCloud2, XYZIRC format with intensity)
  • Camera image topics (sensor_msgs/msg/Image, BGR8 format)
  • Camera info topics (sensor_msgs/msg/CameraInfo, intrinsics and distortion coefficients)

Outputs

  • /diagnostics (diagnostic_msgs/msg/DiagnosticArray): calibration status per camera-LiDAR pair
  • Preview image topics (sensor_msgs/msg/Image): visualization with projected points

The node supports three runtime modes: MANUAL (on-demand validation via a std_srvs/srv/Trigger service), PERIODIC (validation at a configurable interval), and ACTIVE (continuous monitoring with synchronized sensor data). Inference is gated by configurable prerequisite checks on vehicle linear velocity, angular velocity, and the number of detected objects in the scene.

Usage in Autoware

The node loads these artifacts from ~/autoware_data/ml_models/calibration_status_classifier/ and launches with:

ros2 launch autoware_calibration_status_classifier calibration_status_classifier.launch.xml

Add build_only:=true to build the TensorRT engine from the ONNX as a one-off pre-task, and model_path:=... to point at a non-default artifact directory. See the package README for the full parameter reference.

Training

The model was trained with the AWML CalibrationStatusClassification project: https://github.com/tier4/AWML/tree/main/projects/CalibrationStatusClassification. It was trained on calibrated and miscalibrated LiDAR-camera data; the exact training datasets and schedules are not publicly documented beyond the AWML project page.

Provenance and versioning

Hugging Face tag Original source
v2.0 https://awf.ml.dev.web.auto/sensing/models/calibration_status_classifier/v2/

This repository migrates the artifacts previously hosted at the URL above. Consumers should pin a tag (--revision v2.0) rather than tracking main.

Limitations

  • Input images must be BGR8 (8-bit per channel); input point clouds must contain intensity (XYZIRC format).
  • The classifier judges calibration from the projected overlay, so scenes must satisfy the node's prerequisite checks (motion and object-count gates) for reliable results.
  • Sensor setups that differ substantially from the training configuration may require retraining via the AWML project.

References

Downloads last month
6
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support