Basketball goal system
Patent Information
- Application Number
- PCT/US2026/021251
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-03-28
- Filing Date
- 2026-03-27
- Publication Date
- 2026-10-01
Smart Images

Figure US2026021251_01102026_PF_FP_ABST
Abstract
Description
Attorney Docket No. 47361 -0129WO1BASKETBALL GOAL SYSTEMCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 779,626, filed on March 28, 2025, the contents of which is hereby incorporated by reference.BACKGROUND
[0002] The game of basketball requires a player to have physical strength and conditioning, and also to have special skills. Successful development of those skills requires repetition during practice.SUMMARY
[0003] This specification describes technologies for a basketball goal system. The basketball goal system can determine an identity of a player that is associated with an attempted shot. These technologies can include determining a trajectory of a shot using sensor data, and using the trajectory to determine an identity of a player that is associated with the shot. The system can identify one of multiple players of a game as the player associated with the attempted shot through captured sensor data without pre-determining locations of each player.
[0004] In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of obtaining sensor data from one or more sensors that are associated with a basketball goal; determining a trajectory of a basketball based at least on the sensor data; determining shot timing information and shot location information based on the determined trajectory of the basketball; obtaining, from among multiple images that are each associated with different time points, a particular image whose time point is associated with the shot timing information; determining an identity of a particular player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information; and associating the particular player with a made shot or a missed shot.Attorney Docket No. 47361 -0129WO1
[0005] The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. In particular, one embodiment includes all the following features in combination.
[0006] In some implementations, the multiple images that are each associated with different time points are captured by one or more cameras.
[0007] In some implementations, a camera is mounted on a basketball rim of the basketball goal.
[0008] In some implementations, a camera is mounted on a backboard associated with the basketball goal.
[0009] In some implementations, the one or more cameras include a mobile device belonging to a player.
[0010] In some implementations, determining the identity of a particular player includes collecting, for one or more potential players, an image depicting each potential player and determining, for the one or more potential players, a unique feature for each potential player.
[0011] In some implementations, determining the identity of the particular player includes processing the particular image whose time point is associated with the shot timing information to determine whether the particular image depicts a player that is associated with the shot location information, in response to determining that the image depicts a player that is associated with the shot location information, determining a unique feature characterizing the player, and associating the unique feature with the particular player to determine a unique feature for the particular player.
[0012] In some implementations, determining the identity of the particular player further includes for each potential player, comparing the unique feature for the potential player to the unique feature for the particular player to determine whether the potential player has the unique feature for the particular player and in response to determining that a potential player has the unique feature for the particular player, identifying the particular player as the potential player.
[0013] In some implementations, the unique feature is a height of the player.
[0014] In some implementations, the unique feature is a color of a shirt that the player is wearing.Attorney Docket No. 47361 -0129WO1
[0015] In some implementations, the method includes processing the particular image whose time point is associated with the shot timing information to determine whether the particular image depicts a player.
[0016] In some implementations, the method includes in response to determining that a particular player is depicted in the image, identifying a position of the player.
[0017] In some implementations, the position is a shooting position.
[0018] In some implementations, the shot timing information includes a time that the made shot or the missed shot was initiated.
[0019] In some implementations, determining shot timing information includes receiving, from the one or more sensors, a time that the shot was made or missed, determining, based on the trajectory, a duration of the shot, and subtracting the duration of the shot from the time that the shot was made or missed.
[0020] In some implementations, the multiple images that are each associated with different time points are still frames of a video depicting the shot.
[0021] In some implementations, the still frames are captured at predetermined time intervals.
[0022] In some implementations, determining a trajectory of a basketball based at least on the sensor data includes processing the sensor data using a trajectory prediction software.
[0023] In some implementations, the method includes providing an output including the identity of the particular player to a display interface.
[0024] In some implementations, determining shot timing information and shot location information based on the determined trajectory of the basketball includes extrapolating the trajectory to a surface associated with a base of the basketball goal and identifying a location associated with an origin of a shot in three-dimensional space.
[0025] In some implementations, the one or more sensors include a first sensor mounted to a first side of a basketball rim, a second sensor mounted to a second side of the basketball rim, the second side of the basketball rim being opposite the first side, and a third sensor mounted to a front of the basketball rim.
[0026] In some implementations, the first, second, and third sensors are three-axis accelerometers.
[0027] In some implementations, the basketball goal includes a basketball rim.Attorney Docket No. 47361 -0129WO1
[0028] In some implementations, the basketball rim is a flexible rim including a ball and socket and a spring at a base of the rim.
[0029] In some implementations, the one or more sensors include at least one of an ultrasonic sensor or a millimeter wave (mmWave) radar sensor.
[0030] In some implementations, associating the particular player with a made shot or a missed shot includes in response to associating the particular player with a made shot, awarding a number of points to the particular player.
[0031] The technology described in this specification can be implemented so as to realize one or more of the following advantages. For example, a ball goal system can obtain sensor data during one or more workouts and use the obtained data to determine which of multiple players of a game attempted a goal. The ball goal system can track goal statistics of each player of a game without pre-determining a location of each player. The goal statistics can be used to determine a winner of a game and associate point values with specific players. The system improves over pre-programmed systems by eliminating a need to constantly track a location of each player e.g., using a secondary smart sensor worn by each user.
[0032] After a shot is detected, the system can generate a trajectory for the shot based on the sensor data. The system can determine shot timing and shot location information based on the trajectory and use the shot timing and shot location information to determine a time point and location in an environment of the game to evaluate. The system can process an image that is associated with shot timing and shot location information to identify a player depicted in the image. Because the system identifies the player after the location and timing information is determined, the system can reduce power usage during identification. By using data-efficient sensors in addition to visual cameras, the system can reduce the amount of data required to identify location of a player. Determining the identity of the player after the shot is detected using data-efficient sensors eliminates the need to use computational resources to track the location of each player individually throughout the game. This reduces the amount of power resources that would be used for tracking the players.
[0033] The system can provide results of identifying the player. Results can include point values for each of multiple players after the shot, identity of a player associated with a shot, a winner of a game, etc. In some cases, data recorded during a workout can be optimized or filtered, e.g., sensors of a system can be selectively activated during workouts. SelectiveAttorney Docket No. 47361 -0129WO1activation can help to reduce storage of data that might be unused. In general, selective activation can reduce storage requirements and required bandwidth, e.g., for providing data from a sensor to a processing unit or between one or more elements of a processing device.
[0034] The system can automatically enter a sleep mode or an off mode when a game session ends. The system can determine that a game session ends when it does not detect any players or movement in the vicinity of the system. Automatically turning off or entering a sleep mode allows the system to turn off its sensors and reduce power consumption when not in use.
[0035] The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0036] FIG. 1 shows an environment that includes an example ball goal system.
[0037] FIG. 2 is a flowchart of an example process for a basketball goal system.
[0038] FIG. 3 shows a perspective view of the ball goal system including the rim.
[0039] Like reference numbers and designations in the various drawings indicate like elements.DETAILED DESCRIPTION
[0040] FIG. 1 shows an environment that includes a ball goal system 100. The ball goal system 100 can facilitate identifying individual players of a ball sport. When multiple players are shooting a ball at a goal, e.g., a basketball goal, the ball goal system 100 can facilitate tracking shooting statistics for each player, independently, without pre-determining the location of each of the players.
[0041] The ball goal system 100 can obtain sensor data from one or more sensors 128a-d that are associated with a basketball goal 108. Generally, the ball goal system 100 can capture data, e.g., using sensors, at a basketball rim 104, or basketball goal, related to a user shooting a basketball. The data can include makes, misses, or a combination of these among others. The ball goal system 100 can be used to determine the identity of and track shooting statistics of users associated with each of one or more attempts of shooting basketballs at theAttorney Docket No. 47361 -0129WO1basketball rim 104. The analysis and evaluation can include the identification of a user that attempted a particular made shot or missed shot. Additionally, the ball goal system can determine and provide each user with performance data capturing the user’s shot statistics.
[0042] Multiple players 120, 122 can attempt to shoot a ball 102 toward a rim 104 of the ball goal system 100 during a game session. The ball goal system 100 in this case is monitoring shooting activities, e.g., workouts, of the players 120 and 122 that involve one or more of the players taking one or more basketball shots of the basketball 102 towards the rim 104.During execution of the workout the ball goal system 100 obtains and processes sensor data from one or more sensors that are associated with the basketball goal. Obtaining and processing the sensor data can be performed by a control unit 126 of the ball goal system 100.
[0043] In more detail, the ball goal system 100 can use one or more sensors, e.g., sensor(s) 128a-d, to detect various features of a workout, such as makes, misses, shot locations, shot characteristics, shot timing, or a combination of these among others. Sensors can be used to track the impact of a basketball shot at the rim 104 to provide player identification results by, e.g., using visual or audio indicators, device notifications, or the like. For example, the sensors 128a-d can be housed within the rim 104 at various positions to detect forces that result from the basketball 102 impacting the rim 104, the backboard 114, or the net 106. The sensors 128a-d can include sensors that track forces impacting the rim 104, resulting movement of the rim 104, and a combination of the impact forces at the rim 104 and the rim movement 104. Additionally, one or more of the sensors 128a-d can operate together to detect impact forces and movement at various positions around the rim 104.
[0044] The ball goal system 100 includes an indicator 124, sensor(s) 128a-d, the rim 104, and a control unit 126. The indicator 124 can include a display or audio device configured to provide information, e.g., to the player 120 and 122. In some cases, the indicator 124 includes a visual or audio output e.g., a number of shots made by each player 120 and 122, a indication of an identity of a player that made a particular shot, etc. The sensor(s) 128a-d can include one or more sensors — e.g., accelerometers, gyroscopes, camera, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, light curtains, photo diodes, among others. The rim 104 is configured toAttorney Docket No. 47361 -0129WO1be connected to the backboard 114, and the rim 104 can house the sensors 128a-d, and the control unit 126. The control unit 126 can include one or more computers. The control unit 126 can include edge devices affixed to the ball goal system 100 and cloud computing components communicably connected to one or more computers affixed to the ball goal system 100.
[0045] FIG. 3 shows a perspective view of the ball goal system 100 including the rim 104. The rim 104 can be a basketball rim that is configured to deflect in various directions in response to external forces at the rim 104, e.g., impact forces from basketballs hitting the rim and / or the backboard 114. For example, the rim 104 can include a hinge 130 and one or more springs 132 that facilitate deflection of the rim 104 in multiple degrees of freedom. In some embodiments, the rim 104 can be a breakaway rim that can bend and flex in response to impacts and forces at the rim 104 and returns to a resting horizontal position after the impact or force is released. In some embodiments, the rim 104 is a flexible rim that includes a ball and socket and at least one spring. Some examples include a gimbal instead of a ball and socket. Some examples can include one spring, two springs, or three springs. The ball and socket and one or more springs can be positioned in or near a base 104a of the rim. The ball and socket and at least one spring can facilitate a connection between a fixed portion of the rim, e.g., at an interface with a backboard, and a flexible portion of the rim, e.g., extending from the backboard.
[0046] The flexibility of the rim 104 facilitates additional reaction forces on the rim 104 in response to basketball shots impacting the rim 104, backboard 114, or net 106. In this way, the rim 110 is not significantly mechanically restrained in any degree of freedom. The flexibility of the rim 104 in multiple degrees of freedom can reduce the frequency of vibrations that occur throughout the rim 104 in response to impacts from basketballs. The reduction in the frequency of vibrations facilitates improved sensor data acquired by the sensor(s) 128a-d. While the rim 104 includes flexibility, the rim 104 provides a balance of flexibility with rigidity to perform in a basketball environment that facilitates comfortable rebounding feel to a user.
[0047] The rim 104 can house the sensors 128a-d, and the control unit 126. The rim 104 can also house the indicator 124. Additionally, the indicator 124 can also be arranged at various positions around the basketball goal system 100 and is not limited to the positions illustratedAttorney Docket No. 47361 -0129WO1in FIGS. 1 and 3. Each of the sensors 128a-d and any optional physical connectors such as wired connections 117 to the control unit 126 are embedded within, attached within, or otherwise integral with the body of the rim 104. In this way, the rim 104 facilitates the identification of players associated with made or missed shots while not impeding the operation of the rim 104 for basketball activities, e.g., shooting, dunking, etc. In addition, the ball goal system 100 is suitable for indoor and outdoor use. The rim 104 protects the integrated components such as the sensors 128a-d, any optional physical connections, the indicator 124, and the control unit 126 from the outdoor elements and the impacts of basketball use. The rim 104 is removably attachable to the backboard 114. In some embodiments, the ball goal system 100 is removeable from the backboard 114 along with the rim 104.
[0048] The one or more sensors 128a-d can be spaced apart at various positions around the rim 104. In some embodiments, the one or more sensors 128a-d can include an array of the same or similar sensors, e.g., three-axis accelerometers, gyroscopes, or combinations thereof. In some embodiments, the sensors 128a-d can include different types of sensors, e.g., one or more accelerometers, one or more gyroscopes, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, light curtains, photo diodes, among others.
[0049] The ball goal system 100 can include various numbers of sensors 128a-d in different configurations. For example, the ball goal system 100 can include one sensor, e.g., any one of the sensors 128a-d, two sensors, e.g., any two of the sensors 128a-d, three sensors, e.g., any three of the sensors 128a-d, four sensors, e.g., each of the sensors 128a-d, or four or more sensors, e.g., at the same or different positions of the sensors 109a-e. Additionally, any of the variations in the number of sensors 128a-d can also be arranged at various positions around the rim 104 and are not limited to the positions illustrated in FIG. 1. In some examples, one or more of the sensor(s) 128a-d can be integrated into the backboard 114. For example, one or more of the sensors can be placed on one or more the corners of the backboard 114.
[0050] In addition to the sensors 128a-d, the ball goal system 100 can include other sensors. For example, the ball goal system 100 can include a sensor 110 that can be a camera thatAttorney Docket No. 47361 -0129WO1captures imaging data of basketball shots at the rim 104 and backboard 114. In some embodiments, the sensor 110 captures images of basketballs and facilitates a determination of made and missed shots. The sensor 110 can also capture imaging data capturing the ball flight and trajectory of each basketball shot. The sensor 110 can include a camera, such as a smartphone or digital camera, positioned to capture images of one or more shooters. A camera can be affixed to a basketball hoop or situated on a tripod or other means of fixing a camera view to capture movement of the players 120 and 122.
[0051] In addition to the sensors 128a-d and the sensor 110, the ball goal system 100 can include additional sensor(s) — e.g., a camera, motion detector, infrared sensor, , heat sensor, one or more accelerometers, one or more gyroscopes, conductive paint, laser sensors, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, millimeter wave (mmWave) sensors, light curtains, photo diodes, among others. For example, the net 106 can include one or more sensors attached to the net 106 or otherwise integrated within the net 106. In some embodiments, the net 106 can include wiring throughout the net 106 that operates as a sensor to detect impacts of balls passing through the net 106.
[0052] In some implementations, any combination of the sensors 128a-d and the sensor 110 can include one or more hardware devices capable of receiving input from the environment and converting that input into data accessible by computing elements. For example, the sensors 128a-d and the sensor 110 can capture image data, point cloud data, or another format of data capturing two-dimensional (2D) or three-dimensional (3D) information of the game environment, e.g., including a player. The sensors 128a-d and the sensor 110 capture temporal data of the game environment, e.g., to capture shot actions performed by one or more players over time.
[0053] In some implementations, one or more of the sensors 128a-d and sensor 110 can be a camera, e.g., CMOS, CCD, or other device capable of capturing image data and / or video data. The one or more sensors can be configured to capture image data and / or video data in visible wavelengths, infrared wavelengths, or other spectra.
[0054] In some implementations, one or more of the sensors 128a-d can be a detector capable of capturing non-visible electromagnetic radiation signal data, e.g., point cloud data.Attorney Docket No. 47361 -0129WO1One or more of the sensors 128a-d can be a detector configured to capture signal in one or more frequency bands, including, for example, millimeter wave (mmWave), radio frequency (RF), Wi-Fi signal bands (2.4 GHz), frequency modulated continuous wave (FMCW) radar (77-81 GHz), or other frequency bands. For example, one or more of the sensors 128a-d can be capable of capturing signal data reflected from, and / or transmitted through, a player’s body and capturing pose information of the player, location of a shot, form data, and shot trajectory of a basketball shot from the player. Signal data reflected from, and / or transmitted through, a player’s body can be captured from a device, e.g., operated by a player. The device can be a smartphone. The device can transmit signal data that is captured by one or more sensors of a system, such as the system 100.
[0055] In some implementations, one or more sensors, such as the sensors 128a-d, can include ultrasonic, mmWave sensors, or a combination of these. Sensors, including ultrasonic or mmWave sensors, can be used to detect various features of a game session — e.g., detecting makes or misses, or a combination of these.
[0056] In some cases, a smartphone can be used to determine features of a shot. Features of a shot can include whether the shot is made or missed, location of a shot, type of made shot, e.g., a swish, bank shot, high arcing bank shot, among others, or a combination of these among others.
[0057] A basketball goal system can be paired with one or more devices. For example, the system 100 can be paired with a smartphone, such as a smartphone of a player 120, 122. The smartphone may be in the pocket of the player, affixed to an arm of the player, or be left on a chair, or other place not on the person. Information can be provided by a user of a paired device to the system 100. Via the pairing, the smartphone can transmit data to the system 100, e.g., where the control unit 126 obtains sensor data indicating information transmitted by the smartphone. Pairing can include Bluetooth pairing, Wi-Fi pairing, or other forms of wireless pairing to ensure a communication channel between a device and a receiving sensor of a goal system, such as the system 100. Data provided by the device can include data determined using an image sensor, e.g., on the device, that captures images of a player and that can be transmitted to the system 100 or used on the device for processing of game session output.Attorney Docket No. 47361 -0129WO1
[0058] Data provided by a paired device to a goal system can be entered manually by a user or provided autonomously. For example, an interface on a device can enable a user to enter details using a keyboard, speech detection, graphical user interface, or a combination of these among others. A device can send signals autonomously, e.g., after a user configures autonomous data sending. A device can send signals indicating a player location or other features of a game session to the system 100.
[0059] In some implementations, acoustic sensors can be used to identify one or more sound sources in the game environment. Acoustic sensors can include ultrasonic sensors, microphones, or a combination of these. In some cases, acoustic sensors are used to detect human speech. For example, a person can speak and the system 100 can use sensors to detect the human speech. Human speech can describe elements of a game session, such as specific drills to perform, time constraints, movements of the system or player, player location, or a combination of these among others. Human speech can be used to control operation of one or more elements of the system 100.
[0060] Acoustic sensors can be used to detect made or missed shots. Acoustic sensors can transmit acoustic signals and use interference of objects, such as a basketball, to detect a make or a miss or other features of a shot. In some cases, an acoustic sensor can transmit acoustic signals across a plane of a shot trajectory. As a basketball intersects the plane, an acoustic sensor can register the ball location based on the interference in reflected sound signals caused by the ball. Using reflected sound signals, the system 106 can determine features of a game session, such as shot characteristics which can include whether or not a shot was a make or a miss.
[0061] The system 100 can obtain acoustic data using one or more acoustic sensors and process the received sensor data to determine various features of a game environment. The features can include language detection, e.g., where information is obtained from processing language received in acoustic sensor data. The features can include a location of one or more sound sources, e g., by using one or more acoustic sensors to determine a distance from a sensor to a sound source. In some cases, multiple acoustic sensors can be used to triangulate a position of a sound source, such as a player. Features can include a player’s location determined using one or more microphones where the player is a sound source — e.g., making sound that is detected by sensors, e.g., before, during, or after a drill. A location of a player,Attorney Docket No. 47361 -0129WO1or other person or object, can be determined from sound detection or from detected speech, e.g., a person speaking and the system using language detection processes to interpret human speech of “Top of the key!” as a location within a game environment.
[0062] The control unit 126 obtains sensor data from one or more of the sensor(s) 128a-d. The control unit 126 can obtain sensor data over wired or wireless networks from one or more of the sensor(s) 128a-e. The control unit 126 can perform one or more data transformations to convert sensor data from a raw type captured by one or more of the sensor(s) 128a-d to a type for processing by the control unit.
[0063] In some implementations, sensor data represents mechanical inputs from various impacts of basketballs on the rim 104, backboard 114, and / or net 106. For example, sensor data can include three-axis force data, e.g., X, Y, and Z axis, and three-axis rotational data, e g., x-gyro, y-gyro, z-gyro. Mechanical input can be provided to the control unit 126, e.g., to be included as one or more elements of a generated trajectory. In general, any sensor data can be used to generate a shot trajectory 116 for a detected shot based on processing performed by the control unit 126, including processing performed by one or more machine learning models trained to predict one or more elements.
[0064] In response to detecting impact forces for each made shot or missed shot of the basketball 102, the control unit 126 generates a shot trajectory 116 using sensor data obtained from the one or more sensor(s) 128a-d. Each shot trajectory 116 includes positional elements for the basketball shot detected by the one or more sensor(s) 128a-d. Each shot trajectory 116 includes a predicted position of the basketball 102 at series of time points for the shot. For example, each shot detected by the ball goal system 100 includes impact data collected by the sensor(s) 128a-e. The shot trajectory for each shot represents locations of the ball in relation to the rim 104 for the shot over a period of time based on the sensor data. The period of time can encompass a predetermined window of time, e.g., 5 seconds, 7, seconds, 10 seconds, etc., before a time of impact identified using the impact data. In some cases, the predetermined window of time can begin at a predicted initiation time for the shot and end at a time that the one or more sensor(s) 128a-d detects the shot. The control unit 126 can determine the predicted initiation time using a prediction module e.g., a trajectory prediction software model, a machine learning model, etc.Attorney Docket No. 47361 -0129WO1
[0065] In some cases, a shot trajectory can be represented as a point or an area representative of a center of a basketball at multiple time points before the detected shot. In some cases, a shot trajectory can be represented as a mathematical function of position and time e.g., a parabolic function. The position can be a two-dimensional or three-dimensional position and can be represented in a two-dimensional or three-dimensional coordinate system respectively. Position and time values of the shot trajectory can be generated by the control unit 126 processing sensor data obtained from the one or more sensor(s) 128a-d.
[0066] In some cases, a shot trajectory can be represented in other ways — e.g., a set of one or more values where the one or more values indicate at least a portion of sensor data. In some embodiments, the shot trajectory can be represented as a heat map of shot locations positioned in relation to the rim 104. The heat map can include calculated shot positions of the basketball based on the sensor data that includes impact data from each basketball shot.
[0067] The control unit 126 can process sensor data to determine one or more elements of the shot trajectory. Elements of the shot trajectory can include one or more of: (1) shot position relative to the rim; (2) whether the shot is made or missed; (3) timing characteristics of a shot — such as shot impact time, shot initiation time; (4) features of a shot — such as velocity of ball, arc, spin, among others, (5) an arc of the shot, (6) a release speed of the shot, or (7) a path of a ball.
[0068] In some implementations, the control unit 126 processes sensor data using a trajectory prediction software. In other implementations, the control unit 126 processes sensor data using one or more machine learning algorithms. For example, the control unit 126 can process mechanical data to detect ball position, such as the position of the ball when the ball impacts the rim 104, backboard 114, or net 106. By detecting ball position over time, the control unit 126 can generate one or more elements of a trajectory, such as one or more elements described in this document.
[0069] In some implementations, the ball goal system 100 includes a machine learning training system. For example, the ball goal system 100 can train one or more machine learning algorithms using ground truth data indicating sensor data for which known elements occurred. In some cases, ground truth data can indicate whether or not a shot arc corresponds to a particular angular degree, a particular velocity of a ball shot, a particular path of a ball,Attorney Docket No. 47361 -0129WO1among others. Using such ground truth data, the ball goal system 100 can train one or more models to predict one or more elements of a trajectory.
[0070] The control unit 126 determines shot timing information and shot location information based on the generated trajectory 116 of the basketball. The control unit 126 extrapolates the trajectory to a surface associated with a base 112 of the basketball goal system. For example, the surface can be a floor of a real-world game environment. The control unit 126 maps the trajectory to a position in the game environment relative to the floor of the real-world environment. For example, when a trajectory is represented as a series of sets of two-dimensional, e.g., x-coordinate and y-coordinate, or three-dimensional location coordinates, e.g., x-coordinate, y-coordinate, and z-coordinate, for multiple time points, the control unit 126 can map the location coordinates as a position relative the floor of the real-world environment. As another example, when a trajectory is represented as mathematical function, the control unit 126 can map the mathematical function relative the floor of the real-world environment.
[0071] In some cases, the control system selects a subset of representative points to sample from the trajectory and map to the real-world environment. In some cases, the representative points can be sampled at predetermined time intervals, e.g., every 0.01 seconds, every 0.05 seconds, every 0.1 seconds, every 0.5 seconds, etc., in the trajectory. In other cases, the control system selects a predetermined number, e g., 50, 100, 200, etc., of representative points to sample from the trajectory. The control unit 126 uses the mapped trajectory to identify a location associated with an initiation of the shot the in three-dimensional space. The location associated with the initiation of the shot can be a location of a first, e.g., earliest, point in the trajectory.
[0072] The control unit 126 determines a time that the shot was initiated. The control unit 126 obtains a time that the ball impacts the rim 104, backboard 114, or net 106 from the one or more sensor(s) 128a-d. The control unit 126 can determine, based on the trajectory, a predicted duration of the shot e g., a time period encompassing the series of time points of the trajectory, a duration predicted by a machine learning model, etc. The control unit 126 can determine the time that the shot was initiated by subtracting the predicted duration of the shot from the time that a time that the ball impacts the rim 104, backboard 114, or net 106.Attorney Docket No. 47361 -0129WO1
[0073] The control unit 126 obtains multiple images 118 of the game environment that are each associated with different time points from the one or more sensor(s), e.g., the sensor 110, a smartphone of a player, etc. The time points are within a time window that includes the time that the ball impacts the rim 104, backboard 114, or net 106 and the time that the shot was initiated. The multiple images can be, for example, still frames of a video depicting the shot. In some examples, the still frames can be captured at predetermined time intervals e.g., every 0.01 seconds, every 0.05 seconds, every second etc. In other examples, the control unit 126 can received a predetermined number, 4, 5, 10, etc., of still frames that occur before the time that the ball impacts the rim 104, backboard 114, or net 106.
[0074] The control unit 126 can determine, from the multiple images 118, a particular image whose time point is associated with the time that the shot was initiated. The particular image can be an image of the game environment at the time that the shot was initiated. In some cases, the particular image can be a section of an image of the game environment that depicts the location associated with the initiation of the shot.
[0075] The control unit 126 can process the particular image to determine whether the particular image depicts a player 120 at the location of the initiation of the shot. If the image depicts a player, the control unit can identify a position of the player, e.g., a shooting position, holding a ball, etc., to confirm that the particular image is associated with the initiation of a shot.
[0076] The control unit 126 determines an identity of the player 120 that is at the location of the initiation of the shot in the particular image. When there is a player at the location of the initiation of the shot in the particular image, the control unit 126 determines one or more unique features characterizing the player 120 and associates the unique features with an identity the player. The unique features can include, for example, a height of the player, a color of a clothing item that the player is wearing, a number that is written on a jersey that the player is wearing, a hair color of the player, a shape of the player’s head, facial hair of the player, etc. In some cases, the unique features are features that characterize only one of multiple potential players. For example, if three out of four players for a game are wearing black shirts, a black shirt would not be a unique feature. However, if the four players are wearing blue, green, white, and black shirts respectively, a black shirt would be a unique feature.Attorney Docket No. 47361 -0129WO1
[0077] The control unit 126 can associate the one or more unique features of the player that is at the location of the initiation of the shot with one of multiple players 120, 122 for the game. The control unit can receive one or more images of the game environment from the sensor 110 or another camera that depict each of the multiple players 120, 122. The control unit 126 can process, e.g., using an image processing model, images of the multiple players to determine a list of one or more unique features associated with each player. The control unit 126 processes the particular image to determine one or more features of the player that is at the location of the initiation of the shot and compares the one or more features to the list of unique features for each player for the game. If the player 120 that is at the location of the initiation of the shot has one or more unique features associated with a player for the game, the control unit 126 identifies the player 120 that is at the location of the initiation of the shot as the player that is associated with the one or more unique features.
[0078] In some cases, the control unit 126 can determine the unique features of the multiple players 120, 122 using a startup routine before the start of the game. The startup routine can include instructing each of the multiple players to pose in front of a sensor e.g., the sensor 110. For example, when each of four players are wearing green shoes, yellow shoes, red shoes, and black shoes respectively, the control unit 126 can identify shoe color as a unique feature. When processing the particular image, the control unit 126 can determine that the player that is at the location of the initiation of the shot is wearing red shoes and can identify the player as the player that was wearing red shoes during the startup routine.
[0079] The control unit 126 can associate the identity of the player with the shot. For example, if a player is identified as the player that is at the location of the initiation of a made shot, the player 120 is credited with the shot and receives any associated points. The ball goal system 100 can keep track of point values for each of the multiple players. For example, point values can indicate a number of shots made. In some cases, the number of shots made in a row can increase a point value for the shots made. For example, if a shot is made, a point value of a player can increase by 1 or some other value. But if a shot is made within a sequence of one or more made shots, the point value can increase by more than the point value for a single shot — e.g., a multiple or increased value. Throughout a game, the ball goal system 100 can keep track of point values awarded to each of the multiple players 120, 122 for the game.Attorney Docket No. 47361 -0129WO1
[0080] For example, as illustrated in FIG. 1, the control unit 126 can obtain still frames 118 of a video from the sensor 110 for every second starting backwards from time that a made shot is detected, e.g., 9 seconds after the start of the game, to a time that the made shot is initiated, e.g., 5 seconds after the start of the game. The control unit 126 obtains the still frames 118 of the game environment during each second in this time period, e.g., at 5 seconds, 6 seconds, 7 seconds, 8 seconds, and 9 seconds after the start of the game. The particular image can be the still frame associated with the time that the shot is initiated, e.g., the still frame associated with 5 seconds after the start of the game. The particular image depicts a single player 120 that can be associated with the initial shot. The control unit 126 can determine a unique feature of the player 120, e.g., a shape of the player’s head, and credit the player 120, or a group with which the player 120 is associated, with the made shot.
[0081] In some implementations, the ball goal system 100 uses the indicator 124 to provide a result. For example, the control unit 126 can activate a display or audio device of the indicator 108 to provide a message to the multiple players 120, 122. The message can include text, colors, audio, or other symbols. For example, the message can include an audio recording that expresses an identity of a player associated with a most recent shot attempt, e.g., “Nice shot player ‘Square’”, “Try again player ‘Circle’”, etc., a number of points associated with each of multiple players, a winner of a game, among others. The message can include a results summary that includes the identities of players associated with particular shots and number of points associated with each player. The results summary can be communicated to the user electronically in addition to or in the place of the indicator 124. For example, the results summary can be communicated to the user via an electronic message, electronic mail, text message, e.g., via SMS protocol or other text message protocols, user-device notifications, e.g., in-app notifications, among other communication methods.
[0082] In some implementations, the control unit 126 can determine performance information for a player associated with a most recent shot attempt. The performance information can include, for example, shot completion characteristics, spin rates, shot information, etc. The shot completion characteristics can include a shot miss rate, a shot make rate, a shot miss bias, a shot make bias, etc.Attorney Docket No. 47361 -0129WO1
[0083] In some examples, the message can include real-time performance feedback for a player associated with a most recent shot attempt. For example, the real-time performance feedback can include shot completion feedback, e.g., determined from the performance information. For example, the shot completion feedback can include a shot miss rate, a shot make rate, a shot miss bias, a shot make bias, etc. The message can provide information about why a shot was made or why a shot was missed based on the goal system’s ability to analyze the form of the user, e.g., which phases of the shot action are likely leading to the shot made or missed outcome, and provide feedback regarding the user’s form for made and missed shots. In some examples, the real-time performance feedback can include spin rate feedback, e.g., whether a user’s shot has no backspin or too much backspin. In some examples, the real-time performance feedback can include shot form information, e.g., an elbow orientation, a follow through shot pocket, etc. In some examples, the real-time performance feedback can characteristics of the shot, e g., a direction of movement of the player associated with the most recent shot attempt or a label associated with a type of ball shooting technique.
[0084] The digital message can be generated and transmitted by the control unit 126 using various communication means, such as email, SMS, in-app notifications, or a combination of these among others.
[0085] In some embodiments, the indicator 124 can output an indication as a display readout. The display can include an LCD, LED, or other suitable display technology. The display can be mounted on the ball goal system 100 or communicably connected to the ball goal system 100 — e.g., using wireless or wired signals. The display can represent features of a shot e.g., whether the shot was made or missed, an identity of a player that attempted the shot, among others. For example, the indicator can output a visual indication of a player associated with a made or missed shot. The ball goal system 100 can adjust the display based on a time of the workout. For example, point values associated with each player can be changed with each shot recorded by the ball goal system 100.
[0086] In some embodiments, the indicator 124 can output audio outputs from an audio device of the ball goal system 100. The audio device can be a speaker configured to play real time or pre-recorded audio files. The audio indications can represent updates indicating anAttorney Docket No. 47361 -0129WO1identity of a player that attempted a made shot or missed shot, a point value for a particular shot, a point value associated with each of multiple players, among others.
[0087] In some cases, techniques described can reduce storage or processing requirements. For example, the ball goal system 100 can remove data items based on a determination or prediction of use. In some cases, the ball goal system 100 can determine or predict that an item of recorded data or a stream from a sensor is not used or is not likely to be used, e.g., in processing or in generating a shot trajectory. In response to such a determination, the ball goal system 100 can not store the recorded data or data from the stream of the sensor or can initiate a turning off procedure of a sensor — e.g., by generating and sending a signal configured to turn off the sensor to the sensor.
[0088] In some cases, the ball goal system 100 can remove data previously stored. For example, the ball goal system 100 can delete shot trajectories after the identity of the player associated with the shot is determined based on the shot trajectory — e.g., the ball goal system 100 can maintain a single shot trajectory to avoid storing data for all previously recorded shot attempts. In this way, storage requirements for a system can be reduced. Reducing data can also reduce latency for searching or other processing — e.g., by reducing the size of datasets to be searched.
[0089] In some embodiments, the ball goal system 100 can automatically enter a ‘sleep’ mode or an ‘off mode after determining that a game session has ended. The ball goal system 110 can stop or reduce collecting sensor data when in the ‘sleep’ mode or ‘off mode.
[0090] For example, the ball goal system 100 can determine that a game session has ended if the sensor(s) 128a-d, 110 do not detect at least one player in the game environment for a predetermined time period e.g., 20 seconds, 1 minute, 10 minutes, etc. As another example, the ball goal system can determine that a game session has ended if the sensors do not detect movement in the game environment for a predetermined time period e.g., 20 seconds, 1 minute, 10 minutes, etc. As a precaution, the ball goal system can remain in an ‘on’ mode for a predetermined amount of time, e.g., 30 seconds, 1 minute, 2 minutes, etc., after a last detected shot before entering the ‘sleep’ mode or ‘off mode. FIG. 2 is a flowchart of an example process 200 for a basketball goal system. For convenience, the process 200 will be described as being performed by a system of one or more computers, located in one or more locations, and programmed appropriately in accordance with this specification. For example,Attorney Docket No. 47361 -0129WO1a ball delivery system, e.g., the ball goal system 100 of FIG. 1, appropriately programmed, can perform the process 200.
[0091] The process 200 includes obtaining sensor data from one or more sensors of a ball goal system (202). For example, obtaining sensor data can occur while multiple users, such as the players 120, 122, are performing a workout using the ball goal system 100. The control unit 126 can obtain sensor data from one or more sensor(s) 128a-d.
[0092] The process 200 includes determining a trajectory of a basketball based at least on the sensor data (204). For example, the control unit 126 can generate a shot trajectory for each shot that the ball goal system 100 detects. Each trajectory can include a representation of locations of a basketball for a series of multiple time points for the shot.
[0093] The process 200 includes determining shot timing information and shot location information based on the determined trajectory of the basketball (206). For example, the shot timing information can include a time that the made shot or the missed shot was initiated. The control unit 126 can receive, from the one or more sensors 128a-d, a time that the shot was made or missed and a duration of the shot. The control unit 126 can subtract the duration of the shot from the time that the shot was made or missed to determine the time that the shot was initiated. For example, the shot location information can include a location from where the shot was initiated.
[0094] The process 200 includes obtaining, from among multiple images that are each associated with different time points, a particular image whose time point is associated with the shot timing information (208). For example, the control unit 126 can select a still frame of a video depicting the game environment that is associated with the time that the shot was initiated as the particular image. The multiple images can be captured by one or more cameras e.g., a camera is mounted on the basketball rim 104, a camera mounted on a backboard 114, a mobile device belonging to a player, etc.
[0095] The process 200 includes determining an identity of a particular player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information (210). For example, the particular player can be a player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information. The control unit 126 can determine a unique feature, e.g., a height, a shirt color, etc., characterizing the particular player. TheAttorney Docket No. 47361 -0129WO1control unit can collect, for one or more potential players, an image depicting each of the multiple players 120, 122 and compare the unique feature to each image depicting each potential player to determine whether the potential player has the unique feature. In response to determining that a potential player has the unique feature, the control unit 126 can identify the particular player as the potential player.
[0096] The process 200 includes associating the particular player with a made shot or a missed shot (212). For example, the control unit 126 can associate the particular player with a number of points for a made shot. For example, the ball goal system can include the indicator 124 that provides information. The indicator 124 can include a screen, audio device, or other means for providing information. The information can include a representation of the association — e.g., an indication of which of multiple players 120, 122 attempted the shot, a point value associated with each player. Indications can include audio, visual, or other cues. The indicator 124 can be configured with appropriate mechanisms to provide indications, such as an audio device or digital screen.
[0097] Although techniques and technologies are described in reference to basketball, the same techniques or technologies can be applied, with suitable adjustments, to various sports or activities. Other ball sports, such as ping-pong, bowling, tennis, golf, among others, can be aided by systems similar to the basketball implementation of the training system and techniques shown and described. For example, a training system described in this document can be applied to other ball sports by using similar sensor methods and an appropriate ball delivery system for the sport — e.g., a golfball distributor located near a golf club swinger connected to one or more sensors and a control unit, similar to the ball training system 106. A training system for a ball sport can include elements shown in FIG. 1 including sensors, a control unit, and a return system. Such a training system can obtain sensor data to generate a signature and use the generated signature for evaluation of a user based on elements of the signature — e.g., golf swing, tennis swing, bowling stroke, or the like. Such a training system can provide results to a user with appropriate notifications, such as audio or visual notifications, mobile device notifications, or the like.
[0098] In this specification, the term “engine” or “software engine” refers to a software implemented input / output system that provides an output that is different from the input. An engine can be an encoded block of functionality, such as a library, a platform, a softwareAttorney Docket No. 47361 -0129WO1development kit (“SDK”), or an object. Each engine can be implemented on any appropriate type of computing device, e.g., servers, mobile phones, tablet computers, notebook computers, music players, e-book readers, laptop or desktop computers, PDAs, smart phones, or other stationary or portable devices, that includes one or more processors and computer readable media. Additionally, two or more of the engines may be implemented on the same computing device, or on different computing devices.
[0099] The subject matter and the actions and operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter and the actions and operations described in this specification can be implemented as or in one or more computer programs, e g., one or more modules of computer program instructions, encoded on a computer program carrier, for execution by, or to control the operation of, data processing apparatus. The carrier can be a tangible non-transitoiy computer storage medium. Alternatively or in addition, the carrier can be an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be or be part of a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. A computer storage medium is not a propagated signal.
[0100] The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. Data processing apparatus can include special -purpose logic circuitry, e.g., an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit), or a GPU (graphics processing unit). The apparatus can also include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.Attorney Docket No. 47361 -0129WO1
[0101] A computer program can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program, e.g., as an app, or as a module, component, engine, subroutine, or other unit suitable for executing in a computing environment, which environment may include one or more computers interconnected by a data communication network in one or more locations.
[0102] A computer program may, but need not, correspond to a file in a file system. A computer program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code.
[0103] The processes and logic flows described in this specification can be performed by one or more computers executing one or more computer programs to perform operations by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuitry, e.g., an FPGA, an ASIC, or a GPU, or by a combination of special-purpose logic circuitry and one or more programmed computers.
[0104] Computers suitable for the execution of a computer program can be based on general or special-purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for executing instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special-purpose logic circuitry.
[0105] Generally, a computer will also include, or be operatively coupled to, one or more mass storage devices, and be configured to receive data from or transfer data to the mass storage devices. The mass storage devices can be, for example, magnetic, magnetooptical, or optical disks, or solid state drives. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.Attorney Docket No. 47361 -0129WO1
[0106] To provide for interaction with a user, the subject matter described in this specification can be implemented on one or more computers having, or configured to communicate with, a display device, e.g., a LCD (liquid crystal display) monitor, or a virtual-reality (VR) or augmented-reality (AR) display, for displaying information to the user, and an input device by which the user can provide input to the computer, e.g., a keyboard and a pointing device, e.g., a mouse, a trackball or touchpad. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback and responses provided to the user can be any form of sensory feedback, e.g., visual, auditory, speech, or tactile feedback or responses; and input from the user can be received in any form, including acoustic, speech, tactile, or eye tracking input, including touch motion or gestures, or kinetic motion or gestures or orientation motion or gestures. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user’s device in response to requests received from the web browser, or by interacting with an app running on a user device, e.g., a smartphone or electronic tablet. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.
[0107] This specification uses the term “configured to” in connection with systems, apparatus, and computer program components. That a system of one or more computers is configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. That one or more computer programs is configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. That special-purpose logic circuitry is configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.
[0108] The subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component,Attorney Docket No. 47361 -0129WO1e g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[0109] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, a server transmits data, e.g., an HTML page, to a user device, e g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.
[0110] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what is being claimed, which is defined by the claims themselves, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially be claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claim may be directed to a sub combi nation or variation of a subcombination.
[0111] Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this by itself should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation ofAttorney Docket No. 47361 -0129WO1various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0112] Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
[0113] What is claimed is:
Claims
Attorney Docket No. 47361 -0129WO1CLAIMS1. A computer-implemented method comprising:obtaining sensor data from one or more sensors that are associated with a basketball goal;determining a trajectory of a basketball based at least on the sensor data; determining shot timing information and shot location information based on the determined trajectory of the basketball;obtaining, from among multiple images that are each associated with different time points, a particular image whose time point is associated with the shot timing information;determining an identity of a particular player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information; andassociating the particular player with a made shot or a missed shot.
2. The method of claim 1, wherein the multiple images that are each associated with different time points are captured by one or more cameras.
3. The method of claim 2, wherein a camera is mounted on a basketball rim of the basketball goal.
4. The method of claim 2 or claim 3, wherein a camera is mounted on a backboard associated with the basketball goal.
5. The method of any one of claims 2-4, wherein the one or more cameras include a mobile device belonging to a player.
6. The method of any preceding claim, wherein determining the identity of a particular player comprises:collecting, for one or more potential players, an image depicting each potential player;Attorney Docket No. 47361 -0129WO1determining, for the one or more potential players, a unique feature for each potential player.
7. The method of claim 6, wherein determining the identity of the particular player further comprises:processing the particular image whose time point is associated with the shot timing information to determine whether the particular image depicts a player that is associated with the shot location information;in response to determining that the image depicts a player that is associated with the shot location information, determining a unique feature characterizing the player; andassociating the unique feature with the particular player to determine a unique feature for the particular player.
8. The method of claim 7, wherein determining the identity of the particular player further comprises:for each potential player, comparing the unique feature for the potential player to the unique feature for the particular player to determine whether the potential player has the unique feature for the particular player; andin response to determining that a potential player has the unique feature for the particular player, identifying the particular player as the potential player.
9. The method of any one of claims 6-8, wherein the unique feature is a height of the player.
10. The method of any one of claims 6-9, wherein the unique feature is a color of a shirt that the player is wearing.
11. The method of any preceding claim, further comprising:processing the particular image whose time point is associated with the shot timing information to determine whether the particular image depicts a player.Attorney Docket No. 47361 -0129WO112. The method of claim 11, further comprising:in response to determining that a particular player is depicted in the image, identifying a position of the player.
13. The method of any preceding claim, wherein the shot timing information comprises a time that the made shot or the missed shot was initiated.
14. The method of claim 13, wherein determining shot timing information comprises:receiving, from the one or more sensors, a time that the shot was made or missed;determining, based on the trajectory, a duration of the shot; and subtracting the duration of the shot from the time that the shot was made or missed.
15. The method of any preceding claim, wherein the multiple images that are each associated with different time points are still frames of a video depicting the shot.
16. The method of any preceding claim, wherein determining a trajectory of a basketball based at least on the sensor data comprises processing the sensor data using a trajectory prediction software.
17. The method of any preceding claim, wherein determining shot timing information and shot location information based on the determined trajectory of the basketball comprises:extrapolating the trajectory to a surface associated with a base of the basketball goal; andidentifying a location associated with an origin of a shot in three-dimensional space.Attorney Docket No. 47361 -0129WO118. The method of any preceding claim, wherein associating the particular player with a made shot or a missed shot comprises:in response to associating the particular player with a made shot, awarding a number of points to the particular player.
19. A system comprising one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: obtaining sensor data from one or more sensors that are associated with a basketball goal;determining a trajectory of a basketball based at least on the sensor data; determining shot timing information and shot location information based on the determined trajectory of the basketball;obtaining, from among multiple images that are each associated with different time points, a particular image whose time point is associated with the shot timing information;determining an identity of a particular player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information; andassociating the particular player with a made shot or a missed shot.
20. One or more computer storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:obtaining sensor data from one or more sensors that are associated with a basketball goal;determining a trajectory of a basketball based at least on the sensor data; determining shot timing information and shot location information based on the determined trajectory of the basketball;obtaining, from among multiple images that are each associated with different time points, a particular image whose time point is associated with the shot timing information;Attorney Docket No. 47361 -0129WO1determining an identity of a particular player that is associated with the shot location information in the particular image whose time point is associated with the shot timing information; andassociating the particular player with a made shot or a missed shot.