Comparing a general YOLOv8n detector with E-BARD on NBA Finals broadcasts: what improved vertical basketball framing

I replaced the generic COCO YOLOv8n detector in my open-source basketball clip generator with E-BARD’s basketball-trained YOLOv8n, loaded unmodified under CC BY 4.0.

On 256 frames sampled from last season’s NBA Finals highlights, 172 had a visible ball. With a presence-based check at confidence 0.10, the original COCO detector found the ball in 2.9% of those frames; E-BARD reached 86% at 960 px. This check uses the centre of a detection relative to a labelled ball, so it is not directly comparable with the E-BARD model card’s reported recall of 0.566.

The more useful outcome was the finished video. On the rendered 9:16 clips, the ball stayed inside the crop in 162/172 frames (94%), compared with 85/172 (49%) in the original version. The rim was inside the crop as the ball arrived in 46/47 evaluated moments (98%), compared with 20/47 (43%).

The result required more than changing the detector: false-positive filtering, camera-pan compensation, ball tracking and a crop planner all contribute. The benchmark is limited to a small sample from one Finals highlights package, and there are still failures on close-camera broadcasts.

Demo comparison: https://youtu.be/g1dMqrq-YaI

Thanks for sharing, @Colin! Evaluating the finished crop, while distinguishing your presence-based check from model-card recall, makes the comparison useful without overstating what it proves.

For a follow-up, I’d suggest swapping only the detector while keeping input resolution, filtering, tracking, and crop planning fixed. That would help isolate the detector’s contribution from the other pipeline changes. Could you share the repository and evaluation script so others can reproduce the comparison and investigate the close-camera failures?