Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

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...

121,478 görüntüleme • 5 ay önce •via X (Twitter)

31 Yorum

Mauro Casas profil fotoğrafı
Mauro Casas5 ay önce

Pretty useless if you have latency, what you see on TV/online already has a few seconds of delay from the actual moment the swing happened. It's probably more effective to toss a coin, at least you get 50/50.

zostaff profil fotoğrafı
zostaff5 ay önce

Well, if you want to do everything in real time, there are APIs for $12k a year that can feed you data with a 100-300ms delay

Mauro Casas profil fotoğrafı
Mauro Casas5 ay önce

Double click there. Why would you bet on the past and not the real time analysis? You have no edge.

zostaff profil fotoğrafı
zostaff5 ay önce

Bro, I build systems that help analyze matches, and I'm also adapting them into systems that analyze matches in real time. I'm not concerned about latency, since what matters to me is the overall analysis and the discrepancy between my model and the market.

Mauro Casas profil fotoğrafı
Mauro Casas5 ay önce

Let me sneak into your DMs.

zostaff profil fotoğrafı
zostaff5 ay önce

my tg channel:

Gipp 🦅 profil fotoğrafı
Gipp 🦅5 ay önce

Thanks for the complete setup!

vorty profil fotoğrafı
vorty5 ay önce

even a vegan would eat this meat

Steve profil fotoğrafı
Steve5 ay önce

is this open source and MIT? do you have a demo for “any angle”?

BuBBliK profil fotoğrafı
BuBBliK5 ay önce

pro-level tennis tracking for free… your broadcast, your GPU, your data

Lummox profil fotoğrafı
Lummox5 ay önce

It makes sense to bet on tennis with the bot

John Palmer profil fotoğrafı
John Palmer5 ay önce

Cc @Gill_Gross @ThreadOrder this is cool.

BullsimusMaximus profil fotoğrafı
BullsimusMaximus5 ay önce

Is there one for Padel?

Yield Architect profil fotoğrafı
Yield Architect5 ay önce

Tracking the ball is the "hello world" of sports CV, but mapping it to a top-down homography matrix is the real alpha. Moving from pixel-space to real-world metrics kills the legacy hardware moat instantly.

grev profil fotoğrafı
grev5 ay önce

That's unbelievable!

Insomnia profil fotoğrafı
Insomnia5 ay önce

new way to trade win AI

Ventry profil fotoğrafı
Ventry5 ay önce

wow, looks cool bro hope this helps me

zostaff profil fotoğrafı
zostaff5 ay önce

ty broski

Even Money Sniper profil fotoğrafı
Even Money Sniper5 ay önce

👀👀👀

tawer profil fotoğrafı
tawer5 ay önce

Ball tracking in yolov5 struggles with heavy occlusion

Madhusudan profil fotoğrafı
Madhusudan5 ay önce

How do I get access to this?

cvxv666 profil fotoğrafı
cvxv6665 ay önce

an insanely cool system bro

slash1s profil fotoğrafı
slash1s5 ay önce

It looks absolutely amazing, I really like it

Mark profil fotoğrafı
Mark5 ay önce

This is nothing. I spun this up in an afternoon. Fun project to get internships though!

Stefanos profil fotoğrafı
Stefanos5 ay önce

Amazing work! This YOLO + ResNet50 + homography pipeline is next-level. Extract real playing styles (aggressiveness, movement patterns, rally dynamics, shot speeds) from any broadcast and train ML models to predict outcomes based on how players actually play not just scores. Pure gold for live betting & in-play edges. 🌟

mmm profil fotoğrafı
mmm5 ay önce

This is far from reality implementations

Bruno Rodrigo profil fotoğrafı
Bruno Rodrigo5 ay önce

@grok como tenista como me beneficio de esto

Valentin profil fotoğrafı
Valentin5 ay önce

Wow tennis AI looks interesting

Gravy profil fotoğrafı
Gravy5 ay önce

That's quite insane, I'm going to check it out more 🤝

Regi Kusumaatmadja profil fotoğrafı
Regi Kusumaatmadja5 ay önce

cool!

wast3 profil fotoğrafı
wast35 ay önce

excellent tennis analysis

Benzer Videolar

7 repos that mass replace a $50,000/year sports analytics department. all free. all open source. -> replaces Hawkeye-level court analysis YOLO tracks players and ball from any broadcast. ResNet50 extracts court keypoints. homography converts pixels to real meters. speed, position, aggression - all from a TV feed. -> replaces paid sports data subscriptions ($500/mo) every ATP match since 1968. rankings, results, stats. 1.5K stars. the holy grail dataset that every tennis ML project is built on. -> replaces point-level data feeds ($200/mo) point-by-point data for every Grand Slam since 2011. the kind of granularity you need for live Bayesian models. -> replaces shot-by-shot scouting reports 5,000+ matches charted shot by shot. direction, depth, error type. crowdsourced and free. -> replaces pre-match and in-match prediction services ELO + serve/return stats → win probability. updates during the match. exactly what a live Bayesian engine needs. -> replaces ball trajectory prediction tools CV analysis + CatBoost bounce prediction + separate court detector neural net. most advanced open-source tennis CV pipeline. -> replaces traditional bookmaker APIs Polymarket CLOB API. real-time share prices, orderbook depth, bid/ask spreads. no margin, no bookmaker - just the crowd. trade positions mid-match, not just pre-match. total before: $50K/year sports analytics stack total now: $0 like + bookmark you'll need this when you build your first tennis bot

zostaff

36,160 görüntüleme • 5 ay önce

9 repos that mass replace a $150,000/year NBA analytics department. all free. all open source. -> replaces Second Spectrum and SportVU YOLO tracks every player and ball from any broadcast. assigns teams by jersey color. court keypoint detection builds a tactical top-down map. speed, distance, passes - all from a TV feed. no sensors. -> replaces paid NBA prediction services ($100/mo) XGBoost + Neural Net. moneyline and totals. Kelly Criterion sizing. 69% accuracy. pulls odds from FanDuel/DraftKings automatically. the most starred NBA betting repo on GitHub. -> replaces an entire quant sports desk 5-model ensemble: XGBoost + PyTorch MLP + Ridge + Lasso + baseline. Optuna-tuned hyperparameters. SQLite database with box scores, play-by-play, betting lines, injury reports. production-grade. -> replaces manual daily prediction workflows XGBoost/LightGBM with GitHub Actions automation. scrapes new data, retrains models, outputs daily win probabilities. set it and forget it. -> replaces ELO subscription services custom ELO + Ridge + XGBoost + Neural Networks ensemble. full data scraping pipeline. comprehensive visualizations. FiveThirtyEight-style ratings from scratch. -> replaces Four Factors analytics dashboards ELO rating system + Four Factors + PCA dimensionality reduction. detailed comparison of 10+ models. honest 65.3% accuracy - because that's what real NBA prediction looks like. -> replaces computer vision analytics platforms ($500/mo) YOLO player/ball tracking. automatic team assignment. court keypoints. pass and interception detection. speed and distance. full tactical view. modular architecture. -> replaces shot tracking hardware YOLOv8 detects ball and hoop in real-time. linear regression predicts trajectory. registers makes and misses automatically. works on any video feed. -> replaces paid sports data subscriptions ($300/mo) official Python client for NBA. com API. box scores, play-by-play, shot charts, player tracking. 40+ years of data. zero cost. the foundation every NBA ML project is built on. like + bookmark you'll need this when you build your first NBA prediction bot

zostaff

103,649 görüntüleme • 5 ay önce

I take back my statement that “Anyone can build a game with AI.” After 256 prompts building Top Tennis, I think people underestimate the person giving the instructions. One example from a prompt I wrote for Top Tennis: “i feel like the only way to score is going under the net or waiting for the CPU to make a mistake. there should be other ways. a deep ball should push the opponent behind the baseline, leaving space for a drop shot. after a difficult return, it should take longer to recover. changing direction should cost it time. give the CPU a reaction delay before it responds to my shot. it shouldn’t know where i’m aiming before racket contact. when it changes direction, make it decelerate before accelerating the other way. make return quality depend on positioning, incoming ball speed and preparation time. a stretched player running at full speed shouldn’t hit with the same accuracy and power as one waiting in position. look at player speed, acceleration, court size and ball speed together. compare how long the ball takes to reach its destination with how long the opponent needs to get there. test specific patterns: deep ball then drop shot, wide crosscourt then down the line, and hitting behind a moving opponent. check whether they create real openings without making every combination an automatic winner. beating the CPU should feel like you’re learning how to play tennis. analyze this deeply before changing anything.”

Matteo V.

71,310 görüntüleme • 16 gün önce

Perfect 1v1 Drill For Finding Your LOCKDOWN Defenders! Coach LoGalbo takes you through a drill that is perfect for finding your lockdown defenders that you can rely on when the lights turn on. As Nick LoGalbo says, it's a great way to find your "Rambo" which is a defender that you can rely on to defend your opponent’s best ball handler in the full court. And, an added offensive benefit to this drill, is that it allows for offensive players to work on their ball handling in the face of defensive pressure! This 1 on 1 Contain Drill is from Nick LoGalbo's Outer Third Defense (No Middle Defense). That's why the goal of this basketball drill is to force the opponent's primary ball handlers to the outer thirds of the basketball court (and out of the middle!) as soon as they catch the ball. By doing this, it allows the defense to dictate the entry pass to one side of the floor. By keeping the ball on the outer third of the basketball court, you can overload the backside of the defense which helps control the opponents passing lanes, deters easy passes and helps eliminate the dribble drive. You can incorporate this drill every other day in practice to re-emphasize to your defenders the importance of keeping the ball handlers out of the middle of the basketball court. Instructions and Keys to the 1 on 1 Contain Drill: - Give the ball handler a cushion. This makes it easier to contain them in the outer thirds. - Chest and contest a crossover to the middle. You do not turn your body. You must beat the offensive player to the spot and turn them back to the outer thirds. - If you get beat, you sprint ahead of the ball. You do not continue shuffling. - Keep the ball in the outer thirds the entire length of the court. It does not stop after the offensive player gets past half court. - The goal of the drill is to simply keep the ball handler in the outer thirds. - The defense should focus on beating the ball to the spot and chest to contest defense. - As soon as the first group gets to halfcourt, the second group begins. - After a group makes it all the way to the opposite baseline, they switch positions and get in line to repeat the drill going the opposite direction. Coaching Tips - Once a player gets chest to contest, they must spring back to get in front of the ball. Your goal is not to be running side by side. You must get in front of the offensive player. This prevents the offensive player from getting an angle to the basket. - After running through the drill for a specified amount of time, switch directions so the offensive players must focus on using both hands as their primary dribbling hand. - It is important to mix up players rather than like positions always competing against each other, so that players get used to guarding a wide variety of positions. It forces the players to adjust defensively regarding speed and skill. - Another positive of this drill is it gives you the ability to assess who your Rambo is: players who can work the point guard up the floor.

Joe Haefner | Breakthrough Basketball

38,092 görüntüleme • 1 yıl önce

The 3D data from FIFA's cameras around the stadium seem to contradict FIFA's official statement that the ball never made contact with the camera cable in Norway vs England. FIFA has 16 dedicated high resolution optical cameras positioned around every World Cup stadium to capture player and ball movements throughout the match. They use these to create the precise 3D renderings of gameplay which are used in-game for things like offsides graphics and then also used by broadcasters to create programming visuals. In this rendering, you can see the ball "hitch" in the air at the moment it supposedly contacted the cable. Now that by itself is interesting, but the part that really convinces me is the behavior of the English player that comes up to play the ball. This is especially clear in the second wide-angle shot. Watch his angle on the ball. Watch what angle he takes before the ball hitches in the air and then after. He clearly has to adjust his angle to play the ball...and suspiciously, that adjustment happens right after it takes that hitch and appears to change trajectory. To me, this is fairly compelling evidence that the ball hit the cable. This brings up a very interesting point though...this comes from FIFA's data. They would have had access to this in their analysis of the event. Which begs the question...why would they release some statement claiming no evidence of the ball contacting the cable existed when their own data seems to suggest that it did? Just adds to the mounting list of procedural questions that have really overshadowed the actual gameplay of this World Cup.

Mark Valorian

150,134 görüntüleme • 3 ay önce

Ferris State HC Tony Annese - Mesh (QB/Ball Carrier) & Motion Fundamentals QB Mesh Fundamentals - Regardless of play, the first thing the QB needs to do to make sure he has a good mesh is stab the ball back off his hip towards the ball carrier as far as he can. - His arms should be straightened with his eyes at the HOK. - The ball should move with the back through his track. - If the ball is pulled the decision must be made by the time the ball gets to the QB's front hip. Ball Carrier Mesh Fundamentals - The potential ball carrier is the one that is responsible for his track. He needs to make sure his is at the mesh point that the QB is creating. - He must maintain a pocket that is firm enough to secure the ball but loose enough that the QB can pull the ball if the read is a pull read. - Do not deviate from the track until you fully clear the mesh. - If you do not get the ball then track away from the HOK and make him chase you. Motion Fundamentals - All of our motions start up at FULL SPEED! It is incredibly important to make every motion at full speed so the QB has a consistent timing. - The QB is responsible for sending the motion back on every play except for the triple option. - This allows us to control each motion easier. - Every Jet motion should be timed as if the jet back was getting the ball regardless of play. - The motion back will change his depth based on play. - This allows us to use motion with a multitude of schemes. - The motion stops at different spots on different plays and each perimeter player must understand where he should stop for each play.

James Light

19,145 görüntüleme • 9 ay önce

Why the character movement in my custom game engine felt janky and how I fixed it. In a game engine, most often, a character moves using the physics engine. Meaning, the player is not just a coordinate in space but a physical body. It has velocity, it handles collisions, and it interacts with the world. Now, as you might know, physics engines need stability. If you run them at variable framerates, things start breaking. Objects phase through walls or fly off into space because the math becomes unpredictable. This is why most game engines lock their physics loop to a 60Hz fixed rate. But here’s the problem: If you have a high-end system, you don't want to limit it at 60 FPS. That's a waste of good hardware. Now, that said, if the GPU is rendering at 144 FPS but the player's position (physics driven) only updates 60 times a second, it creates a micro-stutter that ruins the "smooth" feel of the game. A good way to fix this is to treat the character as two separate things: 1. The Physics Body (Invisible part): This is the "real" character. It lives in the 60Hz physics world, it moves the player and handles collisions. 2. The Visual Model and Camera (Visible part): This is what the player actually sees. It doesn't care about collisions, its only job is to look nice and smooth at whatever framerate the GPU is pushing. Once you have this separation, you can use interpolation to keep them in sync. Every time the physics clock ticks, you save the previous position of the invisible body before moving it to the new one. Between those ticks, calculate how far we are between the last physics update and the next one. By using this to drive the visible parts of the game, the stutters disappear. The physics loop stays fixed behind the scenes, while the visuals slide smoothly between the snapshots. Example: - Right after a tick: blend_weight= 0.0 (The visual model stays at the old physics position). - Halfway to the next: blend_weight= 0.5 (The visual model slides to the middle point). - Just before the next: blend_weight= 0.9 (The visual model is almost at the new physics position). Pro-Tip A critical mistake I made initially, and one many devs make, is parenting the camera and visible parts directly to the player body. If you do this, the camera inherits the discrete 60Hz physics movement by default. In that setup, interpolation won't work because the camera is "stuck" to the physics clock. For this fix to work you must decouple the camera and visuals from the body and move them separately. Player movement processing in Detis Engine: - fixed_process: Physics runs at 60Hz. Handles collisions and raw movement. - process: Variable rate. Mainly used for player input caching in the player case. - late_process: Variable rate. Handles interpolated camera movement after physics and everything else is done being processed. - render. Submits the final interpolated transforms to the GPU. The test environment in the video is running on an old 2070-based laptop. Hopefully the video compression won't introduce any stutter... I’m sharing this in hopes it helps a fellow dev. Cheers.

Ioannis Koukourakis

48,703 görüntüleme • 9 ay önce

🚨 Regarding Croatia's disallowed goal, this "super slow-motion" replay shows that the ball was indeed almost certainly touched by Matanović—at the very least, a graze of the hair. We can obviously question the "spirit" of how the rules are applied here, but since technology allows us to detect even the slightest micro-touch of the ball, we might as well use it. 🤯 HOWEVER, the main aspect of this decision to analyze is the subsequent header deflection by Veiga. Indeed, two questions arise here (in relation to the Laws of the Game): - Was it a "deliberate play" on his part or not ? If it is deliberate, he plays the Croatian player behind him onside. If it is not, offside should be called. - Was it a save ? (i.e., "preventing or attempting to prevent the ball from going into or very close to the goal"). If it is a save, then offside must be called. According to the Laws of the Game: "The following criteria should be used, as appropriate, as indicators that a player had control of the ball and, as a result, can be considered to have 'deliberately played' the ball: - The ball had travelled from distance and the player had a clear view of it; - The ball was not moving quickly; - The direction of the ball was not unexpected; - The player had time to coordinate their body movement, i.e. it was not a case of instinctive stretching or jumping, or a movement that achieved limited contact/control; - A ball on the ground is much easier to play than a ball in the air." We are therefore in the realm of pure referee interpretation. While waiting for our referees' analysis, my personal view is that the ball's trajectory was absolutely not altered by Matanović's "hair". Therefore, Veiga made a deliberate play, as he had time to coordinate his movement to head the ball. Furthermore, since the ball was not heading towards the goal, it cannot be considered a save. Consequently, he would have played the Croatian player behind him (Pašalić) onside. Hrvatski nogometni savez Portugal #WC2026 #Refereeing

Check VAR Ligue 1

74,646 görüntüleme • 3 ay önce

How a 24-year-old programmer from Portugal made $18,200 in a month on football betting He created an AI analyst that finds flaws in bookmakers' live lines in real time and delivers predictions with an 84% win rate. Costs: $0 (Used free APIs and Windsurf IDE) He launched a Python script that maps out match videos in real time: Top layer: A Computer Vision algorithm recognizes the positions of players from both teams (blue and pink dots) and the ball, instantly transferring them onto a 2D pitch layout. This allows the AI to track team formations and open spaces in high detail, things regular bettors completely miss. Bottom layer: Python code (written alongside the Windsurf AI assistant), where the SoccerPitchConfiguration class defines the field, penalty box, and center circle dimensions down to the centimeter for perfect player-distance calculations. The AI constantly correlates the real-time movement of players on the pitch with live bookmaker odds. The moment the algorithm detects that a team has pinned their opponent into a specific zone or exposed their flanks, while the bookmaker hasn't adjusted the odds yet, the script automatically fires a betting signal. First week: >Live bets placed: 142 > Won bets: 119 > Net profit: +$4,350 using a flat $50 stake The AI completely automated the entire cycle: Windsurf and Claude wrote the tracking code, and the algorithm autonomously parses live odds, calculates the mathematical expectation of value bets, generates player heatmaps, and spots hidden tactical anomalies. It runs 100% autonomously. Bookmark it and check out the article below 👇

Ridark

374,470 görüntüleme • 3 ay önce

🚨 SAFA with Blunders, rember the ref complaint about the NET before the game? This is why VAR is needed in PSL That was not a goal—the ball hit the side netting from the outside. Breakdown of the Sequence The Corner Kick: Polokwane City take a corner kick from the left flank (0:15–0:16). Flight of the Ball: The cross curls over the pack in the box and dips toward the near post / side of the net. The Contact & Optical Illusion (0:17–0:21): The ball lands on the outside side-netting right next to the post. Because of the angle and how the net bulges outward, it briefly gives the visual illusion from the opposite side that the ball went inside. The Goalkeeper’s Position (0:20–0:22): Goalkeeper Brandon Peterson immediately drops to his knees outside the goal frame against the side mesh where the ball settled—he is not picking the ball out from inside the net. Player Reactions (0:03–0:07 & 0:22–0:31): While a few Chiefs players initially raise their hands thinking it went in, the referee and assistant failed to correct the call: no goal, side netting / this was supposed to be a goal kick. But the Ref gave it a Goal which I think PSL will look at this on Monday and I think the game might be replayed Polokwane City v Kaizer Chiefs | Match Highlights This highlight video provides a complete view of key match moments and decisions.🙆‍♂️ 📲 𝐅𝐨𝐥𝐥𝐨𝐰 𝐚𝐥𝐥 𝐭𝐡𝐞 BREAKING NEWS 𝐨𝐧 Twitter :

MrksPSLClub

123,247 görüntüleme • 1 ay önce