DLT + TPS
Mô hình sân có 35 landmark. DLT ánh xạ điểm ảnh; TPS hiệu chỉnh méo còn lại. Điểm chân từ bbox được chiếu xuống sân.
footlytics biến video bóng đá thành dữ liệu sân. Từ nhận diện và hình học tới tracking, radar và phân tích cấu trúc đội.
Xem demo thậtPrototype đang phát triển · Xử lý offline
Bốn đoạn phim từ repository Footlytics. Ground truth cho thấy cách đọc dữ liệu; video prediction cho thấy cả đầu ra và lỗi còn lại của model.
Chọn Phát để tải video. Không tự tải cả thư viện.
Footage thật, bbox và số áo từ annotations, cùng radar và quỹ đạo. Hai góc nhìn của cùng một đoạn trận đấu.
Dùng ground truth cung cấp sẵn, không đo accuracy của model.
Hai video prediction đổi cả confidence lẫn pitch margin. Chưa thể dùng chúng như thí nghiệm chỉ thay một ngưỡng.
SoccerTrack v2 / AtomScott và các contributors · Dataset gốc · CC BY 4.0. Footlytics trích đoạn, mã hoá lại và thêm bbox, radar, quỹ đạo, smoothing và bố cục ghép. Không hàm ý tác giả dataset bảo chứng sản phẩm.
Radar legacy dùng giả định sân 105 × 76m chưa xác minh, trong khi dataset card ghi 105 × 68m. Những demo này minh hoạ cách hiển thị; chưa chứng minh calibration trong mét, tốc độ, formation hay identity chính xác.
Đọc README của bản demo đã công bố · Commit c787ff6.
Perception nhìn điểm ảnh. Analytics đọc vị trí trong mét. Match State là hợp đồng nối hai phần, để đầu ra có thể kiểm tra và dùng lại.
Camera & thời gian
Detection & geometry
Tracking · mét · validate
Đặc trưng & chỉ số
Radar · overlay · quality
Frame, thời gian, track, vai trò, đội, bbox, confidence, vị trí và động học. Parquet lưu quan sát; metadata giữ ngữ cảnh trận.
validate() kiểm cấu trúc và điều kiện dữ liệu; không tự chứng minh vị trí đúng ground truth.
frame_idx period timestamp
track_id role team jersey
bbox_x bbox_y bbox_w bbox_h
det_conf x y z
speed accel
tracks.parquet + meta.jsonĐộ chính xác bắt đầu trước tracking: mô hình sân, điểm chân và phép chiếu. Sai số hình học đi qua mọi lớp phía sau.
Minh hoạ cơ chế · dữ liệu tổng hợp. Các điểm được đưa về hệ toạ độ sân; không phải bản chạy pipeline.
Đổi lớp để khám phá phép chiếu và quỹ đạo. Đây là minh hoạ tương tác dùng dữ liệu tổng hợp; các video trận thật nằm ở showcase phía trên.
Đối chiếu với demo thậtMô hình sân có 35 landmark. DLT ánh xạ điểm ảnh; TPS hiệu chỉnh méo còn lại. Điểm chân từ bbox được chiếu xuống sân.
Theo chuyển động giữa frame và neo lại vào frame tham chiếu để hạn chế drift khi lia/zoom. Điểm được đưa về frame neo trước khi qua calibration.
Frame không xác định được phép chiếu không được dùng như vị trí mét hợp lệ. Tracking coast có giới hạn; cut dài có thể tạo tracklet mới.
Residual trên landmark đã dùng để fit không đại diện sai số vị trí toàn sân. Drift camera đo bằng pixel không là tracking error trong mét. Cần ground truth và phép đo riêng để khẳng định độ chính xác.
Camera cố định là trường hợp biến đổi gần identity; không có cam kết tự hiệu chuẩn hoặc hỗ trợ mọi broadcast cut.
Pixel không có một tỷ lệ vận tốc ổn định khi camera thay đổi. Tracking trên sân dùng vị trí và chuyển động trong mét.
YOLO cho người; pass riêng cho bóng nhỏ. Tile và độ phân giải là cấu hình từng lượt chạy.
bbox → feet → (x, y)Kalman giữ trạng thái vị trí/vận tốc. Hungarian ghép quan sát với track; appearance và gate chuyển động hỗ trợ phân biệt.
[x, y, vx, vy] · metresRàng buộc thời gian, đội và jersey veto khi có dữ liệu đọc. Quota đội theo thời gian hạn chế ghép thiếu cân bằng.
track → tracklet → identityGiao cắt, occlusion và mất calibration còn gây phân mảnh. Interface nhận số áo chưa là OCR hoàn thiện; quota 11 người không chứng minh luôn có 22 ID chính xác. Tách trọng tài còn hạn chế trên clip 3 phút.
Jitter không tự triệt tiêu khi cộng quãng đường. Pipeline dùng Hampel và làm mượt trước khi tính động học.
Tốc độ, gia tốc, quãng đường; add_kinematics dùng cửa sổ làm mượt mặc định 0.8 giây.
Width, depth, centroid, formation, press distance và transitions có nền tảng module. Mỗi hàm cần dữ liệu đầu vào phù hợp.
Possession hiện lấy từ ballStatus/event feed. PPDA cần events; chưa tự suy ra mọi sự kiện từ video.
Quality report ghi phần dữ liệu xuất được. Presence, calibration, sai số vị trí và độ đúng identity là các phép đo khác nhau.
Brazil–France tactical cam · M2 · YOLOv8x6 tile=0 / 1280 + bóng riêng 1920 · stride 1
| Phép đo | Kết quả | Phạm vi & giới hạn |
|---|---|---|
| Presence bóng · 30 giây | 745 / 750 | 99.3% frame; không phải accuracy |
| Presence bóng · 3 phút | 3605 / 3657 | 98.6% frame có calibration; 80.1% toàn clip |
| Calibration · 3 phút | 81.23% | 139 re-anchor; cut cảnh 34 giây bị loại |
| Identity · 3 phút | 261 → 179 | Raw track → tracklet; còn phân mảnh |
| Compute trên M2 | ~595 s | Mỗi phút trận, có model bóng; xử lý offline |
Các cửa sổ 30 giây và 3 phút khác nhau. Không ngoại suy sang cả trận, GPU hoặc mọi camera; không đổi presence thành accuracy.
Đọc nguồn, cấu hình và ca lỗiBáo cáo F2 ghi nhận dùng lề sân cầu thủ cho cả bóng làm mất output gần biên. Tách ball margin đưa presence clip 30 giây từ 11.7% lên 99.3%.
11.7% 99.3%
Bài học: kiểm cả geometry và bộ lọc sau detector. Presence tăng không tự chứng minh sai số toạ độ giảm.
Case báo cáo lịch sử; chưa có before/after footage công bố trên trang.
Match State và đặc trưng đội là nền tảng. Tìm chuỗi chiến thuật trong nhiều trận cần thêm các lớp suy luận, xác thực và chỉ mục.
Vị trí và cấu trúc đội tạo đầu vào cho bước diễn giải.
Suy ra possession độc lập event feed; phát hiện chuỗi bằng quy tắc, để analyst chấm và điều chỉnh.
Thiết kế DuckDB index, đồng bộ clip/radar và vòng rule → analyst → classifier.
Đọc tầm nhìn và các lớp còn thiếu“Tìm các đoạn đối thủ dựng khối phòng ngự thấp.”
footlytics là dự án khởi nghiệp đang phát triển pipeline phân tích video và dữ liệu sân. Pilot kỹ thuật tập trung vào một tác vụ, footage có quyền xử lý và đầu ra analyst có thể chấm.
Xác định câu hỏi chuyên môn và điều kiện footage.
Đối chiếu geometry, tracking, quality và đầu ra.
Chấm lỗi, điều chỉnh phạm vi, xác định điều kiện mở rộng.
Pilot chưa mở đăng ký. Bắt đầu từ mã nguồn, demo công khai và một câu hỏi chuyên môn có thể kiểm chứng.
Xem dự án trên GitHub