All work05 / 07
Fédération Française de BadmintonEfrei Paris · Efrei Research LabVillejuif, France
2022Apr – Sep 2022

Sports video analysis

Badminton Tracking Framework

From a badminton rally to tactics, automatically.

An end-to-end pipeline that finds the court, tracks both players and the shuttlecock, recognises each stroke and turns the rally into tactical statistics.

  • 4 modelscourt, players, shuttlecock and strokes, chained in one pipeline
  • 96.7%of 704 strokes classified correctly on a test match (5 stroke types)
  • FFBaDthe code now belongs to the French Badminton Federation

Overview

The problem

Coaches want to know how a rally was played: where each player stood, where the shuttle went and which strokes built the point. In broadcast video the shuttlecock is tiny and fast, players occlude each other, and the camera view changes. Doing it by hand takes hours per match.

What was missing

No single tool chained court geometry, player pose, shuttle tracking and stroke recognition into rally-level statistics for the federation's footage. Each piece existed separately; the work was to make them run together on real rallies.

Architecture

INPUTRally videobroadcast, onerally at a timePER-FRAME PERCEPTIONPROCESSINGCourt lineswhite-pixel threshold ·Hough transformPROCESSINGHomographyline intersections → courtmodelPROCESSINGTop-view minimapcourt-plane coordinatesFROZENMoveNet MultiPoseLightning · 17 keypoints perplayerPROCESSINGPlayer assignmentnear / far player by courtpositionPROCESSINGCourt positionsfeet projected through thehomographyPROCESSINGPose embeddinghip-centred, torso-scaledkeypointsLEARNEDStroke classifierMLP 128 → 64 → 5 coarseclassesPROCESSINGShuttle-velocity ruleslob · net · smash · drop · clearLEARNEDTrackNetV23 frames in · 288 × 512heatmap outPROCESSINGShuttle trajectoryper-frame (x, y) andvisibilityOUTPUTAnnotated rally videoskeletons, shuttle trail, strokes,minimapOUTPUTStroke log per playerframe-stamped CSVOUTPUTTactical balanceoffensive vs defensive stroke score perplayerRules read the shuttle's vertical motion over the frames after contact.

Swipe to see the whole diagram →

Four perception models run on every frame of a rally; their outputs meet in an annotated video, per-player stroke logs and tactical statistics.
Technical details
  • Stack: Python 3.9, TensorFlow 2.5 / Keras, TensorFlow Hub, OpenCV 4.5.
  • Pose embedding: MoveNet keypoints centred on the hips and scaled by torso size, then a dense classifier (128 → 64, ReLU6, dropout 0.5) over five coarse classes: forehand serve, backhand serve, lob-net, drop-clear-drive-smash, no pose.
  • Shuttle tracking: TrackNetV2-style encoder–decoder, 3 stacked frames at 288 × 512, trained and evaluated with a pixel tolerance for true positives.
  • Rally input: the pipeline runs per rally; full matches are first split into rallies.
  • Outputs: annotated video (skeletons, shuttle trail, detected strokes, minimap), a frame-stamped stroke CSV per player and an offensive/defensive score.

What I built

  1. 01

    Court detection and minimap

    White-line extraction and a Hough transform find the court lines; their intersections give a homography to the official court model and a top-view minimap.

  2. 02

    Players as skeletons

    MoveNet MultiPose (Lightning) gives 17 keypoints for both players; each is assigned near or far by court position and projected onto the minimap.

  3. 03

    Shuttlecock tracking

    A TrackNetV2 network, trained on labelled shuttle frames, takes three consecutive frames and outputs a heatmap of the shuttle position.

  4. 04

    Stroke recognition and tactics

    A pose-embedding classifier detects the stroke family; rules on the shuttle's motion after contact split it into lob, net, smash, drop or clear, then into an offensive or defensive balance per player.

Main results

96.7%strokes correctly classified on a test match: 681 of 704Net, Lob, Smash, Drop, Clear
Confusion matrix on a test match (rows: annotated stroke, columns: predicted)
Annotated ↓ / Predicted →NetLobSmashDropClear
Net2658010
Lob5188000
Smash0219622
Drop00030
Clear001229
  • Drop shots are rare in this match (3 annotated), so the per-class picture there is thin.

Qualitative results

Contact

Interested in the work?

I'm looking for AI research engineer roles in computer vision and video understanding, ideally in sports analytics, though not only. Ready to start a new journey.

Paris, France

jouiniahmed66@gmail.com Email me