← Back to projects

Radar-to-Video Golf Trace Calibration System

A computer vision and 3D projection project for aligning radar-generated ball trajectories with external camera footage.

PythonOpenCVChArUco3D ProjectionRadar Data
Radar-to-Video Golf Trace Calibration System screenshot

Overview

This system aligns radar-generated golf ball trajectories with footage from an external camera, so a true 3D ball flight can be drawn directly onto video. It bridges two coordinate systems — the radar’s world-space and the camera’s image-space — using camera calibration and projection math.

The Problem

Radar produces accurate 3D trajectory data, but that data lives in the radar’s coordinate frame. To overlay a trace on video, every 3D point has to be mapped to the correct pixel in each frame, accounting for the camera’s intrinsics, position, and orientation relative to the radar.

Camera and alignment-pole setup on the range, with the camera positioned behind the hitting area.

Field setup: external camera positioned behind the hitting area with an alignment pole used to ground the calibration geometry.

Approach

  • Camera calibration with ChArUco boards to recover intrinsics and lens distortion.
  • Extrinsic estimation to find the camera pose relative to the radar’s world origin.
  • 3D → 2D projection of radar trajectory points into image space per frame.
  • Trajectory visualization rendered as a smooth, anti-aliased trace.

Calibration Workspace

A 3D scene workspace lets me inspect the radar trajectory, camera frustum, and projected trace together, then tune the virtual camera, ball start, radar position, and target direction until the overlay locks to the footage.

3D scene workspace showing the radar trajectory, camera frustum, projection overlay, and calibration controls.

The interactive 3D workspace used to align the virtual camera, radar frame, and 2D projection before rendering.

App demo: walking through the calibration and tracing workflow.

Outcome

A repeatable calibration workflow that produces accurate, broadcast-style trace overlays from raw radar data and standard camera footage.

Final result: the radar trajectory projected and drawn onto the camera footage as a broadcast-style trace.