IP Library Granted Patent US 11,594,029
Granted Patent B2
US 11,594,029 · App. 17/829,397 · Granted Feb 28, 2023

Methods and systems for determining ball shot attempt location on ball court

Inventors: Keng Fai Lee (Cupertino, CA); Tin Yin Lam (Fremont, CA); Wing Hung Chan (Hong Kong, HK); Qi Zhang (Hong Kong, HK); On Loy Sung (Hong Kong, HK); Man Hon Chan (Hong Kong, HK)
Assignee: NEX Team Inc.
G06V20/42G06K9/627G06N20/00G06Q50/00G06T7/11G06T7/20G06V10/25G06V10/40G06V10/454G06V40/23G11B27/00G06N3/0454G06N3/08G06T2207/30224G06T2207/30241
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,594,029
App. No.
17/829,397
Granted
Feb 28, 2023
Kind
B2
Abstract

Methods and systems for determining a ball shot attempt location on a ball court are disclosed. The method includes receiving an input video, where the input video includes the ball shot attempt and one or more players; receiving a declared ball shot attempt; determining a potential shooter by detecting a moving object flow in the input video; determining a potential shooter image region in the image plane by analyzing an overlapping image area of the ball trajectory and the potential shooter; determining a shooter foot-on-court time; determining a most probable pair of shooter legs in the potential shooter image region; determining a shooter foot location based on the most probable pair of shooter legs; and determining a ball shot attempt location on the ball court by applying a camera projection to the shooter foot location.

Claims (59)

1. A method for determining a ball shot attempt location on a ball court, comprising:

receiving an input video captured using a camera connected to a computing device, wherein the input video comprises the ball shot attempt and one or more players;

receiving a declared ball shot attempt, wherein the declared ball shot attempt is detected by analyzing a ball trajectory in the input video using a first machine vision algorithm, and wherein the declared ball shot attempt is associated with a ball shot attempt time;

determining a potential shooter for the declared ball shot attempt by detecting a moving object flow in the input video, from one or more frames backtracked in reverse time from the ball shot attempt time;

determining a potential shooter image region in an image plane by analyzing an overlapping image area of the ball trajectory and the potential shooter;

determining a shooter foot-on-court time;

determining a most probable pair of shooter legs in the potential shooter image region around the shooter foot-on-court time;

determining a shooter foot location based on the most probable pair of shooter legs; and

determining a ball shot attempt location on the ball court by applying a camera projection to the shooter foot location.

2. The method of claim 1 , further comprising:

determining a ball shot attempt result associated with the ball shot attempt; and

updating a court-location-indexed shot performance statistics dataset based on the ball shot attempt result.

3. The method of claim 2 , further comprising:

determining a shooter identity as a player having the most probable pair of shooter legs, wherein the updating the court-location-indexed shot performance statistics dataset is further based on the shooter identity.

4. The method of claim 1 , wherein the determining the most probable pair of shooter legs comprises:

detecting one or more pairs of potential shooter legs of the potential shooter by applying a second machine vision algorithm to one or more frames around the shooter foot-on-court time, within the potential shooter image region; and

selecting the most probable pair of shooter legs based on a player score, from the one or more pairs of potential shooter legs.

5. The method of claim 4 , wherein the player score is calculated based on whether a player is in a ball moving direction, whether a player is within a projected shooter region, a distance between the ball and a top of a player bound, a distance between a center of the player bound and a center of a cropped image, and/or a historical shooting zone.

6. The method of claim 1 , wherein the determining the shooter foot-on-court time is based on the ball trajectory.

7. The method of claim 1 , wherein the computing device is a mobile computing device.

8. A non-transitory storage medium storing program code, the program code when executed by a processor, causes the processor to execute a process for determining a ball shot attempt location on a ball court, the program code comprising steps to:

receive an input video captured using a camera connected to a computing device, wherein the input video comprises the ball shot attempt and one or more players;

receive a declared ball shot attempt, wherein the declared ball shot attempt is detected by analyzing a ball trajectory in the input video using a first machine vision algorithm, and wherein the declared ball shot attempt is associated with a ball shot attempt time;

determine a potential shooter for the declared ball shot attempt by detecting a moving object flow in the input video, from one or more frames backtracked in reverse time from the ball shot attempt time;

determine a potential shooter image region in an image plane by analyzing an overlapping image area of the ball trajectory and the potential shooter;

determine a shooter foot-on-court time;

determine a most probable pair of shooter legs in the potential shooter image region around the shooter foot-on-court time;

determine a shooter foot location based on the most probable pair of shooter legs; and

determine a ball shot attempt location on the ball court by applying a camera projection to the shooter foot location.

9. The non-transitory storage medium of claim 8 , the program code further comprising steps to:

determine a ball shot attempt result associated with the ball shot attempt; and

update a court-location-indexed shot performance statistics dataset based on the ball shot attempt result.

10. The non-transitory storage medium of claim 9 , the program code further comprising steps to:

determine a shooter identity as a player having the most probable pair of shooter legs, wherein the program code to update the court-location-indexed shot performance statistics dataset further utilizes the shooter identity.

11. The non-transitory storage medium of claim 8 , wherein the program code to determine the most probable pair of shooter legs comprises program code to:

detect one or more pairs of potential shooter legs of the potential shooter by applying a second machine vision algorithm to one or more frames around the shooter foot-on-court time, within the potential shooter image region; and

select the most probable pair of shooter legs based on a player score, from the one or more pairs of potential shooter legs.

12. The non-transitory storage medium of claim 11 , wherein the player score is calculated based on whether a player is in a ball moving direction, whether a player is within a projected shooter region, a distance between the ball and a top of a player bound, a distance between a center of the player bound and a center of a cropped image, and/or a historical shooting zone.

13. The non-transitory storage medium of claim 8 , wherein the program code to determine the shooter foot-on-court time is based on the ball trajectory.

14. The non-transitory storage medium of claim 8 , wherein the computing device is a mobile computing device.

15. A system comprising a hardware processor and a non-transitory storage medium storing program code, the program code when executed by the hardware processor, causes the hardware processor to execute a process for determining a ball shot attempt location on a ball court, the program code comprising steps to:

receive an input video captured using a camera connected to a computing device, wherein the input video comprises the ball shot attempt and one or more players;

receive a declared ball shot attempt, wherein the declared ball shot attempt is detected by analyzing a ball trajectory in the input video using a first machine vision algorithm, and wherein the declared ball shot attempt is associated with a ball shot attempt time;

determine a potential shooter for the declared ball shot attempt by detecting a moving object flow in the input video, from one or more frames backtracked in reverse time from the ball shot attempt time;

determine a potential shooter image region in an image plane by analyzing an overlapping image area of the ball trajectory and the potential shooter;

determine a shooter foot-on-court time;

determine a most probable pair of shooter legs in the potential shooter image region around the shooter foot-on-court time;

determine a shooter foot location based on the most probable pair of shooter legs; and

determine a ball shot attempt location on the ball court by applying a camera projection to the shooter foot location.

16. The system of claim 15 , the program code further comprising steps to:

determine a ball shot attempt result associated with the ball shot attempt; and

update a court-location-indexed shot performance statistics dataset based on the ball shot attempt result.

17. The system of claim 16 , the program code further comprising steps to:

determine a shooter identity as a player having the most probable pair of shooter legs, wherein the program code to update the court-location-indexed shot performance statistics dataset further utilizes the shooter identity.

18. The system of claim 15 , wherein the program code to determine the most probable pair of shooter legs comprises program code to:

detect one or more pairs of potential shooter legs of the potential shooter by applying a second machine vision algorithm to one or more frames around the shooter foot-on-court time, within the potential shooter image region; and

select the most probable pair of shooter legs based on a player score, from the one or more pairs of potential shooter legs.

19. The system of claim 15 , wherein the program code to determine the shooter foot-on-court time is based on the ball trajectory.

20. The system of claim 15 , wherein the computing device is a mobile computing device.

Assignments (2)
SECURITY INTEREST Recorded Oct 9, 2025
From: NEX TEAM INC.
To: SILVER LAKE WATERMAN FUND III, L.P., AS AGENT
Reel/Frame 072524/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2022
From: LEE, KENG FAI; LAM, TIN YIN; CHAN, WING HUNG; ZHANG, QI; SUNG, ON LOY; CHAN, MAN HON
To: NEX TEAM INC.
Reel/Frame 060062/0944 →
Continuity (5)
Continuation 16664711 · Oct 25, 2019
Continuation 16109923 · Aug 23, 2018
Provisional Application 62631865 · Feb 18, 2018
Provisional Application 62561461 · Sep 21, 2017
Related Publication 20220301309A1 · Sep 22, 2022
Cited By (2)
US 12,194,357 US 12,508,485