Dmytro Honcharenko

I estimated a go-kart’s yaw rate from onboard video alone — no sensors.

Seeking a 2027 alternance in computer vision / ML.

FastTrack

I've spent years picking apart Formula 1 onboard telemetry — steering angle, yaw rate, g-force, all captured by sensors a karting club could never afford. FastTrack, a research project at SERLI, started from the question that habit leaves you with: could a single onboard camera recover that telemetry instead, with no sensor at all? My part of it was the yaw rate itself — how fast the kart's heading changes, frame by frame — the number a coach actually needs to tell whether a driver turned in early or late.

One thing up front, because it matters more than any number below: what follows is validated against a physics simulator, not a racetrack. Assetto Corsa's engine supplied clean, frame-synchronized ground truth at 10 Hz. Real karting footage went through the same pipeline, but no frame-by-frame telemetry existed for those clips, so nothing on real track could be checked quantitatively — only in the simulator.

Getting there took six iterations. The first used ORB feature matching and a homography estimated between consecutive frames, weighted across shear, translation and rotation — quick, but thrown off by glare and repetitive asphalt texture. A monocular depth model then masked out the kart's hood and the sky, keeping only the useful mid-distance band. A two-lap comparison mode, for measuring where one driver turns in earlier than another, was prototyped and paused until a single-video estimate held up on its own. Replacing ORB with SuperPoint and LightGlue, a learned feature matcher, fixed most of the remaining mismatches, at the cost of GPU time. The angle calculation was then rebuilt geometrically: decomposing the homography into rotation candidates and keeping the one consistent with the visible points, weighted toward the distant background least affected by parallax. The final pipeline added chunked processing for long videos, automatic handling of stationary frames, and outlier rejection across multiple frame pairs.

Two synchronized onboard-camera frames from the Assetto Corsa simulator, connected by green and red lines marking matched features between them.
SuperPoint/LightGlue correspondences between consecutive frames — the geometric core of the yaw estimate.

The published result is the median-filtered estimate: r = 0.934, MAE 3.20°/s, RMSE 5.01°/s against simulator ground truth, with 81.7% of turns classified in the exact direction and 99.6% within one category.

Line chart comparing the median-filtered yaw-rate estimate to simulator telemetry over an eighteen-minute session; the two lines track closely throughout.
Median-filtered estimate — r = 0.934 · MAE 3.20°/s · RMSE 5.01°/s · 81.7% exact direction (99.6% within one category)

The largest errors clustered in the sharpest, fastest corners — where lens distortion and keypoint saturation stressed the matching most. That was also where coaching precision mattered most, which is exactly why I focused on tightening it there.

The last direction I took it, before the internship ended, was full 3D scene reconstruction with COLMAP: recovering the camera's actual pose per frame instead of decomposing homographies pairwise.

  1. Internship report — French, 20 pp (English abstract, p. 1)
  2. Reference implementation — extracted from the original project, not runnable standalone

Engineering background

Three years of freelance engineering, Binaryx as the main client — full-stack web and mobile development, CRM integration, and cloud delivery, before turning to computer vision.

React · TypeScript · Next.js · Nest.js · PostgreSQL · Swift · SwiftUI · React Native · AWS

Education

  1. M1 Computer Science – Université de Poitiers, France · 2026–2028
  2. Licence, Computer Science – Université de Poitiers, France · 2023–2026
  3. Junior specialist – Cherkasy State Business College, Ukraine · 2018–2022

Beyond engineering

Linguistics · International law · Formula 1

Contact