Loading video...

Video Failed to Load

Go Home

Cool video capturing how computer vision can accurately analyze a random basketball game. Some stuff to notice: 1) This is a random court, not one it was trained on. 2) The camera is moving, meaning the model has to calibrate where all the lines are accordingly. 3) It detects...

14,619 views • 14 days ago •via X (Twitter)

16 Comments

Alex's profile picture
Alex14 days ago

@SportsVisioAI Ex-college player here but beginning to coach my son. I've dreamed of this. Dual monitors, one with the video the other top down 2d view of plays executing all live with stats being recorded. Excited!

Jason Syversen's profile picture
Jason Syversen14 days ago

@SportsVisioAI Follow us and it will be ready to go when your son is! The AI just keeps getting faster and cheaper as we build it, hoping to be realtime by sometime next year Lord willing.

Shawn Becket's profile picture
Shawn Becket14 days ago

@SportsVisioAI This is good stuff.

Paul Chen's profile picture
Paul Chen14 days ago

@SportsVisioAI Is this open source?

Jason Syversen's profile picture
Jason Syversen14 days ago

@SportsVisioAI No, but we have contributed some code to open source. We spent millions to get this far, building a business around it. But the goal is to be much more affordable than paying humans, only a dollar and change per player or even less!

Risk of Ruin Podcast's profile picture
Risk of Ruin Podcast14 days ago

@SportsVisioAI how many frames per second to get this result?

Jason Syversen's profile picture
Jason Syversen14 days ago

@SportsVisioAI We like 30 fps but can go down to 24 without much degradation. Below that it gets dicey and you start to really see the accuracy fall off as you head downwards. 1080p video is also ideal but we can handle 720, again below that you see real performance impact

Risk of Ruin Podcast's profile picture
Risk of Ruin Podcast14 days ago

@SportsVisioAI thx. sorry i should have asked how many frames are you actually achieving on analysis/inference? assume with 10 players and a ball you are not at real time?

Jason Syversen's profile picture
Jason Syversen14 days ago

@SportsVisioAI Sorry I don’t understand the question. We are processing ALL the frames. An hour game takes us about 6 hours to process (down from 22!) and we are trying to get to realtime next year.

Risk of Ruin Podcast's profile picture
Risk of Ruin Podcast14 days ago

@SportsVisioAI Thank you that’s what I was trying to ask. Appreciate it

The Footy Network's profile picture
The Footy Network13 days ago

@SportsVisioAI how do you keep the track the metrics of each player and are you storing them in a relational database?

HappyVolley's profile picture
HappyVolley14 days ago

@SportsVisioAI How do you do ball possession to players? Is it box overlap or distance to nearest player center? How would you tackle adding the ball to the homography chart?

Jason Syversen's profile picture
Jason Syversen14 days ago

We built a ton of custom tracking algorithms. Player tracking, ball tracking, possession tracking, jersey detection, action detection, line detection, etc. Each one was specially trained for that task against our training corpus. We have over 30,000 full games with video and over 100,000 in total now just for basketball. We actually have a crude model showing it on the homography chart, the player with the yellow circle around them.

Jatin Mahajan (Johnathan)'s profile picture
Jatin Mahajan (Johnathan)13 days ago

Love it that people are seeing and brining full potential of ML and CV, Building Similar for Canadian practice games/ sessions, Just reaching good level of Detection + Segmentation + OCR + Team Association actually took me around 3-4 months as a Solo Researcher and Developer. Built it by finetuning the fully open sourced model within our domain.. Also for saving compute resources, I use sam segmentation to segment the Court for scoring system just before the x second of identifying a Make / Miss event.. : ) .. Rn not keeping track of positions.. But I just explored the PTZ for panning camera, and Yes we can create a whole court Panorma and use SIFT for player Position/ feet detection. Its gonna be fun

Brian Raney's profile picture
Brian Raney13 days ago

@SportsVisioAI Got anything for field hockey? I’m two years out from needing this.

Jason Syversen's profile picture
Jason Syversen13 days ago

@SportsVisioAI Not yet but always interested in what new sports to pursue. We do volleyball also currently, and have prototypes for baseball and tennis. Have a lot of requests for lacrosse and flag football, and of course soccer comes up a lot too

Related Videos

AI TENNIS ANALYSIS. A FULL COMPUTER VISION SYSTEM. BUILT ON YOLO, PYTORCH, AND KEYPOINT EXTRACTION. Take any tennis match broadcast, any camera angle, any resolution. Feed it into the pipeline. YOLO detects both players and the tennis ball frame by frame. No manual labeling, no pre-annotated dataset. A fine-tuned YOLOv5 model trained on a Roboflow tennis ball dataset handles the ball - the hardest object to track in any sport. Tiny, fast, constantly occluded. The model finds it anyway. Trackers maintain identity across frames so Player 1 stays Player 1 from the first serve to match point. But detection is just the start. A ResNet50 CNN trained in PyTorch predicts court keypoints from every frame - the corners, service lines, baselines, net posts. Fourteen points that define the entire playing surface geometry. From those keypoints the system builds a homography matrix and warps the broadcast perspective into a top-down mini court with real coordinates. Now every player has a position in real space, not pixel space. Every frame becomes a measurement. Every rally becomes a dataset. Player movement speed - calculated from position deltas between frames, converted to meters per second through the homography. Ball shot speed - measured from the ball trajectory across consecutive detections. Number of shots per rally - counted automatically through ball direction changes. All of this rendered live on the video as an overlay. A mini court in the corner showing both players as dots moving in real time. Stats updating after every point. OpenCV handles the rendering. Pandas handles the math. PyTorch handles the intelligence. YOLO handles the eyes. No Hawkeye subscription, no court-embedded sensors, no tracking chips in the ball. A Python script, a trained model, and a GPU. The full code is on GitHub. The tutorial walks through every module - from ball detector training to court keypoint extraction to the final statistical overlay. Professional teams used to need broadcast deals and proprietary hardware for this kind of analysis. Now you build it in an afternoon with open-source tools. Trading here: Computer vision didn't just enter tennis. It made the expensive stuff free.

zostaff

121,478 views • 5 months ago

Pressing, transitions and goals in Canada! After the hiring of Jesse Marsch this week by Canada Soccer , there has been lots of talk about pressing and transitions in the football community. This is THE style of play that we have used for the last 5 years with Alliance United FC in @L1OMens and will give you some insight in how this can look. We went away from the 'possession' based 1-4-3-3 that everyone has been using as the 'best way' to develop players and win games. Many say this is the 'right way' of playing. However, we use the players' abilities and inabilities as the starting point and based on players produced in Canada, within our youth system, this is the way we think will get us the best results and help our players get to the next level. You need to understand youth development in our country to understand what is and what is not being taught to young players. This is not a negative outlook, it is just looking at the reality. Many mistake this style of play as just non-stop pressing and chaos. Yes, these two aspects are important but it is a much more deliberate and planned way of playing that is used to predict where the opposition will play the ball, where the ball can be dictated and what areas the opposition leave open for transitions when they attack. In 2019, I was introduced to Ernst Tanner former Academy Director of Red Bull Salzburg and current Philadelphia Union Sporting Director that has led the club to being one of the top clubs in MLS and arguably the best academies in North America the last few years. Both organisations are known for their pressing and fast transitions in addition to producing top players. He became a mentor to me and gave me insights and education on this style of play. He has changed the way I look at football. Every season we try to recruit players that can play this style that I will describe below and we do not waiver in the way we played. Every game since 2019 Alliance United FC have played either in a 1-4-2-2-2 or a 1-4-4-2 midfield diamond....every game. We have no secrets in how we play. We focus on defending, pressing, forcing teams into mistakes and transition football. It is important to understand that we do not care how much possession we have and we actually want the opposition to have the ball most of the time. Stats in football show that only when a team has the ball 70% or more in a match their is a correlation to winning. Anything less is not correlated to winning in a certain match. In addition, 80% of goals are scored under 5 passes or less and under 10 seconds when regaining possession. We follow the trend! So, here are some important points based on the video: a) Pressing higher up the pitch when possible. All 11 players are committed to the team intention (principles) and if anybody is not committed and does not contribute to this style of play, they do not play. There is no leeway on this. Either you are in 100% in or you are not. All it takes is one player to not commit and the plan will not work. If we do not win the ball on the high press, everyone is to drop behind the ball as fast as possible to restart the press closer to our goal. b) Based on the opponent's scouting we press certain players and decide if will press closer to the sideline and 'pin' the player to the sideline or we dictate the passes and dribbles centrally and 'surround' the player to win the ball in central positions. We also decide if we will sometimes drop lower for the opposition to advance so we can play behind them when winning the ball. This is done if we scout that the opposition centre-backs are slower than our two strikers. This means we will 'outrun' them in the space they leave behind. c) When winning the ball we want to exploit space behind their backline as the priority which means that a player(s) need to be passing options behind the backline and preferably centrally which is closer to the goal, players winning the ball has to look to play the ball to the player furthest up the pitch. Possession is not a priority but scoring goals as fast as possible is. d) When winning the ball we stay as central as possible with passes and dribbling. We use the width of the penalty area (44 yards) as the preferable dimension when transitioning. We want to stay within this width. The wider the team plays the ball, the more time the opposition has to block the middle. PLAY AS VERTICALLY AS POSSIBLE! The emphasis is to get the ball to the two strikers and play 1v1 against the CBs. e) We know that most youth players grow up playing against a 1-4-3-3 which means there is one central striker meaning the centre-backs one back press and one can cover. Against 2 strikers this is not possible and many centre-backs do not have the ability to play 1v1 with space behind them. They are not taught the cues to step and press or drop to protect space behind them. They are never taught at youth level. We exploit this deficiency. e) All 11 players must get up the pitch to close the spaces if we lose the ball from our attacking transition so the opposition cannot transition against us and we can counter-press. f) A goal is the best outcome based on the objective of attacking but at the minimum we want to get a shot on goal from a transition. This is a quick overview of a different way of playing football that Canada will see with the Men's National Team.

Ilya Orlov

14,134 views • 2 years ago