IP Library Granted Patent US 12667767
Granted Patent B2
US 12667767 · App. 18/198,167 · Granted Jun 30, 2026

Automatic ball machine apparatus utilizing player identification and player tracking

Inventors: Lukasz Masiukiewicz (York, PA); Christopher Decker (Papillion, NE); Stephen Titus (Herndon, VA); John Weinlader (Wilmette, IL); Daniel Weinlader (Lititiz, PA)
Assignee: Volley LLC
A63B69/406A63B71/0622A63B2069/402A63B2071/0627A63B2214/00A63B2220/05A63B2220/13A63B2220/806A63B2225/50A63B2230/625
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 12667767
App. No.
18/198,167
Granted
Jun 30, 2026
Kind
B2
Abstract

A ball machine comprising an imaging system to capture image data and a processor configured to, for a frame of the image data, analyze the image data using a neural network to detect a plurality of persons, determine a coordinate position on a playing surface of each of the plurality of detected persons, extract features of each of the plurality of detected persons, generate a first set of feature vectors corresponding to the plurality of detected persons, associate a first feature vector to the coordinate position on the playing surface of a first detected person to generate a first unique identifier, associate a second feature vector to the coordinate position on the playing surface of a second detected person to generate a second unique identifier, and control the ball machine to launch balls based on first settings corresponding to the first unique identifier and second settings corresponding to the second unique identifier.

Claims (68)

1 . A ball machine comprising:

an imaging system attached to the ball machine and configured to capture image data of a playing surface of a court;

a processor configured to

analyze a first frame of the image data using a neural network to detect a plurality of persons in the first frame,

determine, using coordinate mapping, a coordinate position on the playing surface of each of the plurality of detected persons in the first frame,

extract, from the first frame, features of each of the plurality of detected persons in the first frame,

generate, using the extracted features of each of the plurality of detected persons in the first frame, a first set of feature vectors corresponding to the plurality of detected persons in the first frame, each of the first set of feature vectors being different from each other,

associate a first feature vector, included in the first set of feature vectors, to the coordinate position on the playing surface of a first detected person included in the plurality of detected persons in the first frame to generate a first unique identifier,

associate a second feature vector, included in the first set of feature vectors, to the coordinate position on the playing surface of a second detected person included in the plurality of detected persons in the first frame to generate a second unique identifier, and

control settings of the ball machine to provide first settings based on the first unique identifier and to provide second settings based on second unique identifier, the second settings being different from the first settings; and

a ball launching system configured to launch balls based on the first settings and the second settings.

2 . The ball machine of claim 1 , wherein the ball launching system is further configured to launch a sequence of balls, and

wherein within the sequence of balls, a first subset of balls are launched based on the first settings and a second subset of balls are launched based on the second settings.

3 . The ball machine of claim 1 , wherein the first settings control one or more of the speed, magnitude of spin, orientation of spin, height, and slice of the balls launched,

wherein the second settings further control one or more of the speed, magnitude of spin, orientation of spin, height, and slice of the balls launched, and

wherein the first settings are different from the second settings.

4 . The ball machine of claim 1 ,

wherein the first settings are based on the coordinate position on the playing surface associated with the first unique identifier, and

wherein the second settings are based on the coordinate position on the playing surface associated with the second unique identifier.

5 . The ball machine of claim 4 , wherein the first settings control a distance between the position to which launched balls are placed with respect to the playing surface and the coordinate position associated with the first unique identifier, and

wherein the second settings control a distance between the position to which launched balls are placed with respect to the playing surface and the coordinate position associated with the second unique identifier.

6 . The ball machine of claim 1 , wherein the processor is further configured to:

analyze a second frame of the image data using the neural network to detect a plurality of persons in the second frame,

determine, using coordinate mapping, a position on the playing surface of each of the plurality of detected persons in the second frame,

extract, from the second frame, features of each of the plurality of detected persons in the second frame,

generate, using the extracted features of each of the plurality of detected persons in the second frame, a second set of feature vectors corresponding to the plurality of detected persons in the second frame, each of the second set of feature vectors being different from each other,

associate a first feature vector in the second set of feature vectors to the first unique identifier when a mathematical distance between the first feature vector included in the second set of feature vectors and the first feature vector included in the first set of feature vectors is less than a predetermined threshold, and

associate a second feature vector in the second set of feature vectors to the second unique identifier when a mathematical distance between the second feature vector included in the second set of feature vectors and the second feature vector included in the first set of feature vectors is less than the predetermined threshold.

7 . The ball machine of claim 6 , wherein the processor is further configured to predict, based on a plurality of coordinate positions on the playing surface associated with the first unique identifier in previous frames, a future coordinate position on the playing surface that will be associated with the first unique identifier in a subsequent frame.

8 . The ball machine of claim 7 ,

wherein the first settings are based on the future coordinate position on the playing surface.

9 . The ball machine of claim 1 , wherein the processor is further configured to extract joint information for the detected person associated with the first unique identifier to generate a pose estimation of the first detected person associated with the first unique identifier.

10 . The ball machine of claim 9 , wherein the first settings are based on the pose estimation of the first detected person associated with the first unique identifier.

11 . A method of operating a ball machine, the method comprising:

capturing, using an imaging system attached to the ball machine, image data of a playing surface of a court;

analyzing a first frame of the image data using a neural network to detect a plurality of persons in the first frame,

determining, using coordinate mapping, a coordinate position on the playing surface of each of the plurality of detected persons in the first frame,

extracting, from the first frame, features of each of the plurality of detected persons in the first frame,

generating, using the extracted features of each of the plurality of detected persons in the first frame, a first set of feature vectors corresponding to the plurality of detected persons in the first frame, each of the first set of feature vectors being different from each other,

associating a first feature vector, included in the first set of feature vectors, to the coordinate position on the playing surface of a first detected person included in the plurality of detected persons in the first frame to generate a first unique identifier,

associating a second feature vector, included in the first set of feature vectors, to the coordinate position on the playing surface of a second detected person included in the plurality of detected persons in the first frame to generate a second unique identifier, and

controlling settings of the ball machine to provide first settings based on the first unique identifier and to provide second settings based on second unique identifier, the second settings being different from the first settings; and

launching balls based on the first settings and the second settings.

12 . The method of claim 11 , further comprises:

launching a sequence of balls,

wherein within the sequence of balls, a first subset of balls are launched based on the first settings and a second subset of balls are launched based on the second settings.

13 . The method of claim 11 , wherein the first settings control one or more of the speed, magnitude of spin, orientation of spin, height, and slice of the balls launched,

wherein the second settings further control one or more of the speed, magnitude of spin, orientation of spin, height, and slice of the balls launched, and

wherein the first settings are different from the second settings.

14 . The method of claim 11 ,

wherein the first settings are based on the coordinate position on the playing surface associated with the first unique identifier, and

wherein the second settings are based on the coordinate position on the playing surface associated with the second unique identifier.

15 . The method of claim 14 , wherein the first settings control a distance between the position to which launched balls are placed with respect to the playing surface and the coordinate position associated with the first unique identifier, and

wherein the second settings control a distance between the position to which launched balls are placed with respect to the playing surface and the coordinate position associated with the second unique identifier.

16 . The method of claim 11 , further comprising:

analyzing a second frame of the image data using the neural network to detect a plurality of persons in the second frame,

determining, using coordinate mapping, a position on the playing surface of each of the plurality of detected persons in the second frame,

extracting, from the second frame, features of each of the plurality of detected persons in the second frame,

generating, using the extracted features of each of the plurality of detected persons in the second frame, a second set of feature vectors corresponding to the plurality of detected persons in the second frame, each of the second set of feature vectors being different from each other,

associating a first feature vector in the second set of feature vectors to the first unique identifier when a mathematical distance between the first feature vector included in the second set of feature vectors and the first feature vector included in the first set of feature vectors is less than a predetermined threshold, and

associating a second feature vector in the second set of feature vectors to the second unique identifier when a mathematical distance between the second feature vector included in the second set of feature vectors and the second feature vector included in the first set of feature vectors is less than the predetermined threshold.

17 . The method of claim 16 , further comprising:

predicting, based on a plurality of coordinate positions on the playing surface associated with the first unique identifier in previous frames, a future coordinate position on the playing surface that will be associated with the first unique identifier in a subsequent frame.

18 . The method of claim 17 ,

wherein the first settings are based on the future coordinate position on the playing surface.

19 . The method of claim 11 , further comprising:

extracting joint information for the detected person associated with the first unique identifier to generate a pose estimation of the first detected person associated with the first unique identifier.

20 . The method of claim 19 , wherein the first settings are based on the pose estimation of the first detected person associated with the first unique identifier.