BallSpeed bir radar tabancası değildir; mutlak doğruluk iddia etmez. Herkes aynı algoritmayla ölçüldüğü için asıl hedef tutarlılık ve göreceli karşılaştırmadır: aynı şut farklı telefonlarda ölçüldüğünde yakın sonuç verir ve kendi gelişimini adil biçimde takip edebilirsin.
Nasıl ölçüyoruz
Algoritma her karede topu takip eder, işaretlediğin referanstan piksel-metre ölçeğini bulur ve 5 karelik en hızlı pencerede x(t), y(t) doğrusal regresyonuyla hızı hesaplar. Aynı kod hem tarayıcıda hem de sunucu yedeğinde çalışır.
Kare hızı (fps) ve hata
Daha yüksek fps, hareket bulanıklığını azaltır ve her kareyi daha kesin konumlandırır:
| fps | Beklenen kararlılık |
|---|---|
| 30 | Zayıf — belirgin bulanıklık |
| 60 | Orta |
| 120 | İyi |
| 240 | En iyi (önerilen) |
Sentetik testler
Bilinen hızda hareket eden daireler üreten sentetik videolarla algoritmayı doğruluyoruz; sonuç ±%3 tolerans içinde kalır. Aynı test paketi hem Node’da hem de gerçek tarayıcıda çalışır ve iki ortam birbirinden en fazla %1 sapar.
Tutarlılık kriterleri
Aynı şutu farklı telefonlarla (iPhone, Samsung, Pixel) eş zamanlı çekip karşılaştırıyoruz. Kabul kriterlerimiz:
- Telefonlar arası fark: medyan ≤ %3, %95 yüzdelik ≤ %6.
- Aynı videonun tekrar analizi: sapma yok (deterministik).
Bilinen sınırlamalar
Tek kamera düzlemsel hareket varsayar; kameraya doğru/uzağa giden şutlar, 30 fps’de bulanıklık ve yanlış ölçek sonucu etkiler. Bu yüzden güven skorunu gösterir ve liderliğe yalnızca güven ≥ 60 ölçümleri alırız.