Basketball training system
The basketball training system addresses the limitations of existing systems by using computer vision and sensor data to provide real-time feedback and personalized drills, enhancing form consistency and skill development.
Patent Information
- Application Number
- PCT/US2025/023248
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-11-25
- Filing Date
- 2025-04-04
- Publication Date
- 2025-10-09
AI Technical Summary
Existing basketball training systems fail to effectively simulate game-like conditions, leading to limited improvement in shooting skills under pressure and from varying positions on the court, as they do not provide real-time feedback on form deviations and consistency.
A basketball training system that uses computer vision and sensor data to analyze player form, providing real-time feedback and corrective drills, and integrates non-visible wavelength sensing for robustness and privacy, allowing for accurate form tracking and personalized training regimens.
Enhances basketball training by offering real-time feedback, improving form consistency, and enabling personalized drills, thus facilitating more effective skill development than traditional systems.
Smart Images

Figure US2025023248_09102025_PF_FP_ABST
Abstract
Description
[0001] BASKETBALL TRAINING SYSTEM
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 574,581, filed on April 04, 2024, to U.S. Provisional Application No. 63 / 654,426, filed on May 31, 2024, to U.S. Provisional Application No. 63 / 659,020, filed on June 12, 2024, and to U.S. Provisional Application No. 63 / 724,475, filed on November 25, 2024, the contents of which are all hereby incorporated by reference.
[0004] BACKGROUND
[0005] This disclosure relates generally to sports training, and in particular to basketball return systems with a user interface.
[0006] Successful shooting of a basketball can be affected by a number of factors, including a player’s form or technique in shooting. In some cases, poor form or technique may have less effect when the player is taking uncontested shots from similar distances but may limit the player’s ability to score in game conditions when the player is guarded by another player and often must attempt shots from varying positions on the court having varying distances from the basketball goal.
[0007] As players advance in skill and experience, they are often confronted with the realization that the speed of the game gets “faster,” and that he or she will need to consistently score under increasing pressure and from various positions on the court. Continuing to practice under conditions that do not effectively simulate the level of movement and consistency required of the shooter and the variety of shot locations frequently encountered in game conditions can result in some improvement in the player’s shooting but may ultimately limit the player’s success as the player rises through the levels of play from, e.g., junior varsity to varsity, from high school varsity to college, and from college to professional basketball.
[0008] SUMMARY
[0009] This specification describes technologies for providing form training using a basketball training system to provide feedback to players that are practicing using the system. These technologies generally involve a basketball training system that uses collected sensor data to determine action profiles for actions performed by players that are practicing using the system. With these action profiles, the system is able to identify player form relative to ideal form and / or self-consi stent form and provide feedback to the player, e.g., provide suggested drills to correct form deviation. This can allow for real-time feedback to the player, summary and statistical information about the practice session, accurate form tracking, and other advantages compared to environments without this technology.
[0010] The basketball training system can capture sensor data from an external or integrated sensor, e.g., video via a camera on or attached to a basketball training machine, or from a sensor that is separate from a basketball training machine. For example, the basketball training system can use computer vision on a picture or video captured by a user’s camera. The video from the user’s camera (e.g., a user’s mobile device) can be uploaded to, sent to, or otherwise made available to the basketball training system for computer vision.
[0011] The system captures sensor data of a player performing multiple iterations of an action (e.g., a basketball drill or standard) and extracts, from the sensor data, action data representative of the action at a plurality of points, e.g., biometric data of the person as well as object data of an object captured by the sensor data (e.g., the basketball). For example, the system can extract biomechanical points representative of locations of features of the person, e.g., hand location, foot location, as well as define relative locations of biomechanical points between features of the person, e.g., shoulder distance, hip distance, location of hand to face, location of hips over feet, etc.
[0012] The system can generate, from the extracted biometric data and object data, an action profile (e.g., shot profile) for the action, where the action profile tracks (i) timing and (ii) mechanics of the action using a plurality of points of the extracted biometric and object data. The system can determine, from the action profile, multiple different phases of the action profile, each phase corresponding to a sub-action and represented in the action profile by a set of points of the biometric data and object data. Each of the phases can track a different, respective sub-set of the plurality of points of the action data.
[0013] At least one phase can overlap with another different phase in time, for example, a shot motion can overlap with a shot position, shot path, and follow through. Different metrics can be used to quantify each of the phases, and a threshold range of acceptable timing and / or mechanics can be used for each respective phase, i.e., a first phase may have a larger range of acceptable timing and / or mechanics than a different phase.
[0014] Action profiles capturing respective actions by the person can be aligned using a respective reference point in each action profile. For example, a reference point can be a lowest (e.g., along a y-axis) of the shot pocket. The system can average of the action profiles in a sequence of captured action profiles (e.g., during a drill including multiple shots taken) and evaluate the averaged shot profile to determine if one or more of the phases of the averaged action profile is outside a threshold deviation.
[0015] Video data can include videos of the action captured from two or more perspectives (e.g., profile and face-on). In some implementations, computer vision and a trained model can be used to infer additional perspectives from video data capturing one or more perspectives. E.g., a model can infer a profile view of the action using a face-on perspective video data of the action.
[0016] The system includes a user interface to guide the player through collecting the shot action sensor data, e.g., a number of shots from each perspective. The system can provide feedback on the player’s form through the user interface and can include one or more training regimens to assist the player in adjusting form based on an identified deviation of the action profile from an ideal and / or self-consi stent profile.
[0017] In one example, a basketball training system includes a system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
[0018] The technology described in this specification can be implemented so as to realize one or more of the following advantages. The basketball training system can allow a user to practice their basketball skills in an efficient and effective manner. For example, the basketball training system can provide basketball players the ability improve their basketball skills with an increased amount of practice reps in each practice session.
[0019] Further, the basketball training system provides feedback regarding the performance of the basketball player to ensure that the player is practicing properly to ensure their practice time is spent curating habits and skills that are correct and will facilitate the player’s improvement. By representing different phases of the shot action mathematically, the system is able to deconstruct and quantify a user’s action shot into the different phases and automatically determine aspects of the user’s form that deviate from an ideal form and / or a self-consistent form, which may be non-obvious even to a skilled coach or trainer. The system can track a user’s shot over multiple shots in a single session or a user’s shot over multiple sessions such that the system can detect and correct issues with consistency of form that may not be possible for a coach or trainer to track for multiple players over time and / or over a large volume of shots.
[0020] The basketball training system provides real-time performance feedback including shot completion feedback (e.g., make, miss, miss bias, etc.) to a user that allows a user to learn why a shot was made and / or why a shot was missed based on the basketball training 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 / missed outcome and provide feedback regarding the user’s form for made and missed shots. In some implementations, the system can integrate additional shot action data related to spatial location of missed shots with respect to the basketball rim to generate insight of which aspects of a user’s shot action to miss bias of the missed shots and generate, from the insight, targeted training to correct for the problematic aspects of the user’s shot action.
[0021] In some implementations, the synthesized action shot data including shot biomechanics and shot completion feedback (i.e., make / miss, miss bias, etc.) can be used to train a machine learning predictive model such that the user’s shot biomechanics are provided as input to the trained machine learning model and a predictions related to a shot outcome is received as output from the trained machine learning model. The predictive model can further provide non- obvious insight into specific phases of the user’s shot action that are likely leading to shot misses, which can be used to generate customized, specific workouts to target and correct the issues.
[0022] The technology described in this specification can allow users to virtually compete with other users to see who can align their form closest with an ideal form and / or who can be most consistent with their form (e.g., as compared with themselves).
[0023] In some implementations, the basketball training machine, the basketball training system, or both can include a sensing subsystem including a non-visible wavelength source, e.g., emitter, and a sensor, e g., detector, configured to detect reflections of the source from the training environment surrounding the basketball training machine. In such instances, the wavelengths emitted by the source can be, for example, millimeter wave (mmWave), LIDAR, microwave radar, or other non-visible wavelength bands of the electromagnetic spectrum. An operating wavelength band of the sensing subsystem can be selected in part using various factors, for example, accuracy, precision, sensing speed, resolution, and range of detection. The operating wavelength band can be selected, for example, based on a resolution requirement for classifying the different aspects of the shot action.
[0024] Non-visible wavelength-based sensing subsystems can offer increased robustness to environmental factors over visible-based sensing, e.g., cameras. For example, non-visible based sensing can be robust to lighting conditions, weather interference (e.g., rain), contaminants such as dust or other particles, and the like. In some implementations, non-visible frequency-based sensing can be incorporated in addition to, or alternatively to, camera-based sensing in the basketball training system. Non-visible sensing data, e.g., point cloud data, can be used instead of or to enrich visible-wavelength camera-based imaging data. In some examples, non-visible wavelength sensing subsystems can increase privacy of users by limiting feature resolution of the collected sensor data, e.g., not including facial information.
[0025] In some examples, a mmWave-based sensing subsystem can provide high-precision, low latency object (e.g., player and ball) sensing capabilities. A mmWave-based sensing subsystem can provide added robustness, e.g., over alternative radar technologies, to environmental interference. In some examples, mmWave-based sensing can additionally include Doppler functionality, e.g., measuring speed / velocity of a player before, during, and after the shot action.
[0026] For example, a mmWave-based sensing subsystem can offer increased robustness to variations in lighting conditions, e.g., low light, dust / particles, and weather conditions such as rain or fog (if in an outdoor environment). In cases where mmWave-based sensing is used, the collected sensor data, e.g., raw point cloud data, can be processed to protect the privacy of the players captured in the sensor data.
[0027] 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
[0028] FIG. l is a side view of a basketball training machine that includes a ball collection system and a basketball delivery system that delivers basketballs to selected ball delivery locations included in a workout program defined via a graphical user interface.
[0029] FIG. 2 is a block diagram of an example operating environment of a basketball training system.
[0030] FIG. 3 illustrates an example region of interest established by sensors attached to a basketball training system.
[0031] FIG. 4 illustrates another example region of interest established by sensors attached to a basketball training system.
[0032] FIG. 5 is a flow diagram of an example process of the basketball training system for generating a trajectory profile for a player’s shot using a basketball training system.
[0033] Like reference numbers and designations in the various drawings indicate like elements.
[0034] DETAILED DESCRIPTION
[0035] A basketball training system uses computer vision to perform form training for players that are practicing using the system. By collecting and processing player video data of a player performing an action, e.g., during a static or dynamic shooting action, while dribbling, or the like, the system can capture biomechanical information of the player. The system is able to identify player form deviation with respect to an ideal form and / or self-consi stent form, correlate the deviations with corrective drills and standards, and provide feedback to the player. This can allow for real-time feedback and corrective action for the player, summary and statistical information about the practice session, and accurate form tracking and correction.
[0036] The basketball training system can capture video via a camera on or attached to a basketball training machine or can receive captured video from a camera that is separate from the basketball training machine. For example, the computer vision system can receive video data captured by a mobile computing device of a user (e g., a cellular phone or tablet with a camera). An application on the device can record or transmit video, or data from the video, to the basketball training system, or the application on the device itself may perform one or more types of computer-vision analysis. The system can integrate mathematical representations of a shot action, e.g., a basketball shot, and identify a subset of points of the biomechanical data extracted from the video data captured of the shot action to represent the different biomechanical phases of the shot action. The system can assess the shot action over multiple performed shots, e.g., a sequence of shots, to determine consistency of the player with respect to an ideal form and / or self-consi stent form This can advantageously allow for more accurate, dynamic, and proactive basketball training than otherwise possible with other basketball training systems that lack these features. For example, a basketball training system that does not have this type of computer vision analysis would be unable to observe user’s form when they make or miss a shot, meaning less useful feedback could be provided - only that the player missed a shot, and not an analysis of why or automated recommendations for drills specific to the particular form of a given player when missing a shot. For example, two players may both have identical free throw percentages (e.g., 66%). With pose information from the computer vision, the basketball training system may determine that one player has a tendency to flair their elbows when they miss, and the other play tends to release the ball too low when they miss. With this information, the two players can be provided with recommendations for different drills - one to focus on elbow placement and the other on ball-release point.
[0037] Basketball Training System
[0038] FIG. 1 shows a side view of basketball training machine 10. Basketball training machine 10 includes two main systems, ball collection system 12 and ball delivery system 14. Further description of basketball training machine 10 can be found in currently-pending patent application 18 / 100,814, filed on January 24, 2023, and entitled BASKETBALL TRAINING SYSTEM WITH COMPUTER VISION FUNCTIONALITY.
[0039] While described herein with respect to a basketball training machine 10 of a basketball training system, it should be understood that aspects of basketball training machine 10 can be applied to other ball sports as well. For instance, basketball training machine 10 can deliver volleyballs, soccer balls, or other types of balls for training purposes for such other sports. As such, basketball training machine 10 can be considered, in some examples, as a ball sports training machine. Ball collection system 12 includes net 16, net frame 18, base 20, shots made counter 22 (which, in this embodiment, includes made shots funnel 24, shots made sensor 26, and counter support frame 28), and upper ball feeder 30, a component of a ball feeder that is configured to receive a ball from the basketball hoop In this case, the ball feeder includes the upper ball feeder 30 and the main ball feeder 34, which is described in further detail below. In other cases, the basketball training machine 10 can include a single ball feeder configured to receive a ball from the basketball hoop.
[0040] When machine 10 is used for shooting practice, net 16 is positioned in front of a basketball backboard (not shown) so that the basketball hoop and net (not shown) are immediately above shots made counter 22. The size of net 16 is large enough so that missed shots (which do not go through the basketball hoop and net and through shots made counter 22) will still be collected by net 16 and funneled down to upper ball feeder 30.
[0041] Ball delivery system 14 includes a ball delivery machine 32 configured to direct a received ball from the basketball hoop back to a player. In the particular example depicted, the ball delivery machine 32 includes a main ball feeder 34 and a ball holder 36. The inlet of main ball feeder 34 is positioned immediately below the outlet of upper ball feeder 30.
[0042] Ball delivery machine 32 is pivotally mounted on base 20. Ball delivery machine 32 is pivotable about a central axis that is aligned in parallel with the inlet of main ball feeder 34 and the outlet of upper ball feeder 30. Balls drop out of upper ball feeder 30 into main ball feeder 34.
[0043] Balls are delivered one at a time from main ball feeder 34 into ball ready holder 36 at the front of ball delivery machine 32. A launch arm (not shown) launches the basketball out of holder 36 to a location on the floor where the player catches the ball and shoots. The location on the floor where the ball is delivered can be changed by pivoting machine 32 with respect to base 20, e.g., along a central axis 310 of the basketball training machine as depicted in FIG. 3.
[0044] Basketball training machine 10 includes a control system, e.g., controller 94, in data communication with the ball delivery system 14 and ball collection system 12. Controller 94 is a processor-based controller that coordinates the operation of components of the control system of the basketball training machine 10. Controller 94 includes one or more processors and computer-readable memory encoded with instructions that, when executed by the one or more processors, cause controller 94 to operate in accordance with techniques described herein. Examples of one or more processors of controller 94 can include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other equivalent discrete or integrated logic circuitry.
[0045] Computer-readable memory of controller 94 can be configured to store information within controller 94 during operation. Computer-readable memory of controller 94, in some examples, is described as computer-readable storage media. In some examples, a computer- readable storage medium can include a non-transitory medium. The term “non-transitory” can indicate that the storage medium is not embodied in a carrier wave or a propagated signal. In certain examples, a non-transitory storage medium can store data that can, over time, change (e.g., in RAM or cache). In some examples, the computer-readable memory is a temporary memory, meaning that a primary purpose of the computer-readable memory is not long-term storage. Computer-readable memory, in some examples, includes volatile memory that does not maintain stored contents when electrical power to controller 94 is removed. Examples of volatile memories can include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories. In some examples, computer-readable memory of controller 94 is used to store program instructions for execution by the one or more processors of controller 94. For instance, computer-readable memory of controller 94, in some examples, is used by software or applications running on controller 94 to temporarily store information during program execution.
[0046] Computer-readable memory of controller 94, in some examples, also includes one or more computer-readable storage media that can be configured to store larger amounts of information than volatile memory. In some examples, computer-readable memory of controller 94 includes non-volatile storage elements. Examples of such non-volatile storage elements can include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.
[0047] Controller 94 utilizes communication device(s) to communicate with external devices via one or more wired or wireless communication networks, or both. Communication device(s) can include any one or more communication devices, such as network interface cards (e.g., Ethernet cards), optical transceivers, radio frequency transceivers, Bluetooth transceivers, 3G or 4G transceivers, and WiFi radio computing devices. The control system is configured to provide control commands to components of the basketball training machine 10. For example, control system is configured to provide control commands to ball delivery machine 32 to cause ball delivery machine 32 to launch basketballs in directions based upon the selected ball delivery locations.
[0048] In some implementations, the control system is configured to provide control commands to ball delivery machine 32 to cause ball delivery machine 32 to adjust a trajectory of the delivered balls as they exit ball delivery machine 32 to enable effective ball delivery to locations at both shorter and longer distances from ball delivery machine 32, to enable varying types of passes (e.g., bounce passes, chest passes, lob passes, or other types of passes), and / or to accommodate for player height.
[0049] In some implementations, in operation, controller 94 receives, e.g., from a user on a user device 130, a workout program selection. The workout program includes indications of positions of selected ball delivery locations, ball delivery timing (e.g., tempo) information, a number of balls delivered per location, a type of pass (e.g., chest pass, bounce pass, lob pass, or other type of pass), a selected ball delivery height, and position information of ball delivery machine 32 relative to a visual representation of at least a portion of a basketball court presented by a graphical user interface executed by, e.g., a remote server device. Controller 94 provides control signals to components of the control system of ball delivery machine 32 to deliver balls to selected ball delivery locations according to, e.g., user instructions received via a graphical user interface that presents a visual representation of at least a portion of a basketball court.
[0050] The basketball training machine 10 can include and / or be in data communication with one or more sensors, e.g., a sensor 120. Sensor 120 can be an external component in data communication with basketball training machine 10, e.g., a camera of a user device 130 or coupled to the basketball training machine 10 through inclusion in the basketball training system 96. Sensor can be an integrated component of basketball training machine, e.g., a component of a sensing subsystem 124 of the basketball training machine. In some examples, controller 94 can receive data from a sensor 120 of a user device 130, data from a sensor 120 of a sensing subsystem 124, or data from both.
[0051] The sensor 120 includes 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 one or more sensors 120 can capture image data, point cloud data, or another format of data capturing two-dimensional (2D) or three-dimensional (3D) information of the training environment, e.g., including a player. The sensor 120 can capture temporal data of the training environment, e.g., to capture shot actions performed by a player over time.
[0052] The basketball training machine 10 can include and / or be in data communication with one or more signal sources, e.g., source 122. The source 122 can generate electromagnetic radiation in one or more frequency bands. The electromagnetic radiation can be directed into the training environment, e.g., localized, and the reflections off of surfaces of the training environment, e.g., off of the player’s body, the basketball, the floor, etc., can be detectable by sensor 120 to capture information about a training environment surrounding the basketball training machine. For example, the reflections detected by the sensor 120 can be used to extract pose information of a player within the training environment.
[0053] Source 122 can be, for example, a radio frequency (RF) source, microwave source, acoustic signal source, laser sources, e.g., for LIDAR, or another non-visible electromagnetic radiation source. For example, a source 122 can be a millimeter (mmWave) frequency source, e.g., between about 3-30 GHz. In another example, a source 122 can be a Wi-Fi frequency source, e.g., between about 2.5-6 GHz. The source 122 can be configured to generate low power signals, e.g., lOOOx lower than Wi-Fi signals, or otherwise be compatible with the training environment, e.g., low-harm to humans present in the training environment. A frequency band of the source 122 can be selected based in part on a distance of detection, e g., distance of player to the basketball training machine, a degree of precision of the detection, a type of sensor 120 performing the detection, compatibility with the environment, or other design considerations.
[0054] In some implementations, source 122 can be configured to scan the training environment around the basketball training machine 10. The source 122 can be configured to emit electromagnetic radiation signal in a localized direction and to scan over a range of positions in the training environment, e.g., in an arc sweeping the area surrounding the basketball training machine 10. For example, the source 122 can be a laser source of a LIDAR system coupled to a scanner such that the laser is scanned across the training environment and reflected signal from the training environment is captured by the sensor 120. In another example, the source 122 is a mmWave source coupled to a scanner, e.g., a mechanical positioning apparatus, such that the mmWave frequencies are scanned about the training environment and reflected from the training environment is captured by the sensor 120. In such cases, the collected sensor data can include both temporal and spatial resolution.
[0055] In some implementations, sensor 120 and source 122 can be integrated into a subsystem, e.g., a sensing subsystem 124 where the sensing subsystem 124 can transmit frequencies into the training environment surrounding the basketball training machine 10, e.g., using various emitters. The sensing subsystem can detect a spatial resolution of the reflections as well as a temporal resolution of the detected reflections, e.g., measure intensity, direction, etc., of the reflected signal, to generate point cloud data representing a state of the training environment.
[0056] For example, the sensors and various emitters can be included as components of the basketball training machine 10, included as components of the basketball training system 96 that are coupled to the basketball training machine 10, or some combination.
[0057] In some implementations, sensor 120 is camera, e.g., CMOS, CCD, or other device capable of capturing image data and / or video data. The sensor 120 can be configured to capture image data and / or video data in visible wavelengths, infrared wavelengths, or other spectra.
[0058] In some implementations, sensor 120 is a detector capable of capturing non-visible electromagnetic radiation signal data, e.g., point cloud data. Sensor 120 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, sensor 120 can be capable of capturing signal data reflected from (and / or transmitted through) a player’s body and capturing pose information of the player.
[0059] In some implementations, sensor 120 is an acoustic sensor capable of capturing acoustic signal data. For example, sensor 120 can be an ultrasonic sensor configured to capture ultrasonic frequencies reflected from a player’s body and capturing pose information of the player using the reflected ultrasonic frequencies. An ultrasonic source 122, e.g., an ultrasonic transducer, can be used to detect objects at distance of detection, e.g., up to about 25 meters away from the source. In some examples, an ultrasonic sensor can be integrated with a source, where the transducer of the source functions as a microphone to receive and send the ultrasonic waves, and measures the distance to a target by measuring a time lapse (e.g., time of flight) between sending / receiving the ultrasonic pulse. Ultrasonic waves can have the advantage of being able to detect clear or transparent objects, e g., liquids, and can be stable over a large array of surface finish, material, and color. Ultrasonic-based sensing subsystems can be insensitive to ambient lighting conditions. In some examples, a narrow beam ultrasonic sensor can be used to provide increased resolution within a distance range useful for the training environment. In another example, sensor 120 can be configured to capture low-level acoustic signals reflected from and / or transmitted through a player’s body and capturing pose information of the player using the low- level acoustic signals.
[0060] In some implementations, the basketball training machine 10 includes distance sensors such as a light detection and ranging (LIDAR) sensor, a time-of-flight sensor, etc. The data, images, and / or video captured by the image sensor may also be processed to reduce the noise and / or vibration in the signal using. In some implementations, sensor 120 collects pre-data which the basketball training system 96 can process to extract biometric data and / or pose information for the player. For example, the sensor 120 collects point cloud data from which the basketball training system may pre-process, e.g., filter, and extract biometric data for the player. In some implementations, the system can pre-process the sensor data to reduce signal-to-noise, filter, or otherwise clean up the sensor data prior to extracting the action data. The system can pre-process the data by flattening 3D sensor data to a 2D space. In some implementations, sensor 120 is a radar sensor, e.g., mmWave sensor, collecting radar data. Sensor 120 can be integrated with or in data communication with additional processing components, e.g., hardware accelerators, digital signal processors, or the like, which process the radar data to generate further processed data forms. For example, radar data can be analog-to-digital (ADC) data output from the sensor 120, e.g., frames where each frame is a representation of collected chirps for the period of time of the frame (framerate). The radar data can be further processed to produce refined data, e.g., point cloud heat maps, using low-level radar processing. A further refinement of the data can include a first high-level radar processing to produce target tracking and motion / object decisions, e.g., using target information extraction. Another further refinement of the data can include a second high-level radar processing to produce target classification, e.g., using classification information and / or micro-Doppler effects. The additional processing components can generate, from the refined radar data, a visualization including scene interpretation from which form training process described herein can proceed.
[0061] In some implementations, the basketball training system 96 includes one or more sensors least one camera and at least one non-visible electromagnetic radiation sensor. In such examples, the sensors 120 can collect multi-modal data input, e.g., image data and point cloud data, which can be used collectively by the system to generate form training information, e.g., as described in further detail below.
[0062] In particular, the sensor 120 can be attached to the basketball training machine 10 to establish a region of interest, e.g., a sensing region established by the one or more sensors 120 for data collection. The system can establish a region of interest in front of and adjacent to the basketball rim, above the rim, or both based on the arrangement of the one or more sensors 120 relative to the basketball machine 10. In particular, the region of interest can be defined by respective conical detection sub-regions provided by the one or more sensor(s) 120, e.g., as described in more detail with respect to FIGS. 3 and 4.
[0063] As an example, the one or more sensors 120 can be mounted such that the region of interest of the sensor(s) 120 are capable of capturing images of a player when the player receives a ball and takes a shot. As another example, the sensors 120 can be attached to the basketball training machine 10 to establish a region of interest in front of the basketball rim, above the basketball rim, or both to capture movement of a basketball during the shot trajectory.
[0064] In some cases, capturing data of the player, the ball, or both can involve two or more sensors integrated into the ball delivery system 14, and / or one or more sensors physically separate from the rest of the ball delivery system 14 (e.g. in addition to or in the alternative to an integrated sensor). For example, an image sensor is an integrated sensor 120 of a user device 130, e.g., cellular phone with a camera, in data communication with the basketball training machine 10. In some examples, a sensor 120 is a component of a sensing subsystem 124 of the basketball training system 96.
[0065] FIG. 2 is a block diagram of basketball training system 96 that includes basketball training machine 10 communicatively coupled with server 98 that executes workout module 100 to generate a workout program executed by basketball training machine 10. As illustrated in FIG. 2, server 98 includes workout module 100 and application environment 102. Workout module 100 includes database 104, which includes accounts 106, workouts 108, and analytics 110.
[0066] Server 98, as illustrated in FIG. 2, can be a cloud-based or otherwise remote server computer including one or more processors and computer-readable memory encoded with instructions that, when executed by the one or more processors, cause server 98 to execute workout module 100 and application environment 102 according to techniques described herein. Examples of server 98 include, but are not limited to, mainframe computers, desktop computers, laptop computers, or other computing devices capable of implementing workout module 100 and managing operation of (e.g., serving of) application environment 102. In some examples, rather than a single server device, server 98 may be implemented as a server system including a plurality of interconnected server computers that distribute functionality attributed herein to server 98 among the multiple server computers. For instance, in certain examples, server 98 can be implemented as a server system including a first server computer that executes workout module 100 and a second server computer that executes (e.g., serves) application environment 102. Similarly, while database 104 is illustrated as included in workout module 100 of server 98, database 104 can include any one or more databases that may be local to server 98 or distributed among any one or more server devices operatively connected to server 98.
[0067] Workouts 108 store workout programs that include machine workout instructions that are executed by basketball training machine 10 to deliver basketballs to selected ball delivery locations as well as player workout instructions that represent player activity (e.g., player movement, skill development activities such as dribbling or other ball handling maneuvers, exercise activities such as pushups or sit-ups, or other player activity). Workouts 108 are associated with attributes, such as a workout skill level, workout intensity level, workout time, workout type (e.g., offensive skills development, long range shooting development, short range shooting development, free throw shooting development, agility development, strength development, ball handling development, physical conditioning development, or other workout type), or other attributes.
[0068] Workout programs stored at workouts 108 can be associated with any one or more accounts and / or account groups stored in database 104 at accounts 106. For instance, a particular workout program can be associated with (e.g., assigned to) an account group corresponding to a team, and therefore also associated with each individual user account that is a member of the team account group through the hierarchical relationship between the parent team account group and the child user accounts. Workout programs stored at workouts 108 can be associated with a single account of accounts 106 or multiple accounts of accounts 106. As such, workout programs can be generated and stored at workouts 108 of database 104 and utilized by a single user account or shared between multiple user accounts or account groups.
[0069] Analytics 110 of database 104 store analytics data (e.g., statistics) associated with any one or more accounts stored at accounts 106 and / or workout programs stored at workouts 108. Examples of analytics data include form training data (e.g., action profdes), shooting percentage data, a number of attempted shots, a usage time of basketball training machine 10, user heart rate data during any one or more workout programs (e.g., sensed by a heart rate monitor or other physical monitoring device worn by a player during a workout program), shooting percentage relative to heart rate, movement, position on the basketball court, or other analytics data. Analytics data stored at analytics 110 of database 104 can be associated with a workout program, such that each user account that executes a particular workout program contributes to shared analytics corresponding to the executed workout program. In general, analytics 110 can store any statistical or other analytical data that corresponds to user accounts, user account groups (e.g., team account groups), and workout programs to enable comparison of performance between user accounts, between user accounts and benchmark performance criteria, between time-separated performances of a single user account (or account group), or other comparisons. As such, analytics data stored at analytics 110 can enable a coach, player, or other user to track performance of a single player or group of players over time, to compare performances between players or groups of players, and to track progress of skill development and conditioning of players or groups of players. For example, analytics 110 can enable a coach, player, or other user to track user form compared to an ideal form and / or a self-consistent form for multiple different action shots, e.g., three-point shot, free-throw, dynamic shots, static shots, dribbling, etc., over time and between a same session or two or more different sessions.
[0070] As illustrated in FIG. 2, server 98 can execute an application environment 102, for example, through a web browser accessible on a user device 130 or in a local application located on the user device 130. User devices 130 can be, for example, tablet computers, mobile phones (including smartphones), laptop computers, wearable devices such as smartwatches, or other computing devices that can communicate with server 98 to interface with workout module 100. Application environment 102 is communicatively coupled with workout module 100 to provide a user interface that enables user interaction with workout module 100 to create and select workout programs and view analytics data stored at database 104, as is further described below. Basketball training machine 10 is communicatively coupled with server 98 to access application environment 102 via any one or more wired or wireless communication networks, such as a cellular communication network, local area network (LAN), wide area network (WAN) such as the Internet, wireless LAN (WLAN), or other type of communication network. In operation, a player utilizes user device 130 (e.g., a smartphone) to execute application environment 102 through an application (e.g., an app) that interfaces with workout module 100 or to access application environment 102 via a web browser that presents a graphical user interface managed by workout module 100. The graphical user interface presents a login screen that enables the player to provide account login information, such as username and passcode. Workout module 100 accesses the account stored in accounts 106 associated with the login information (or enables the player to create a new account) and presents the user with graphical control elements to either select a workout program stored at workouts 108 of database 104 or create a new workout program, as is further described below.
[0071] Basketball training machine 10, as illustrated in FIG. 2, includes an interface (illustrated as I / F), such as console 58, a touchscreen interface, a keyboard and / or mouse interface, or other type of interface to enable user interaction with application environment 102 to create a workout program and / or select a workout program stored at workouts 108 for execution by basketball training machine 10.
[0072] In operation, a user selects, through the graphical user interface of application environment 102, a workout program stored at workouts 108 and / or create a new workout program via the interface provided by application environment 102 and managed by workout module 100. Server 98 transmits the selected or created workout program to basketball training machine 10. The workout program includes both machine workout instructions for execution by basketball training machine 10 and player workout instructions representing player activity during workout program. Basketball training machine 10 executes the machine workout instructions by delivering basketballs to identified ball delivery locations at a selected tempo (i.e., relative timing) and tracking made and missed shots via shots made sensor 26. Basketball training machine 10 presents, through a graphical user interface of the application environment 102, player instructions for review prior to execution of the workout program and, in certain examples, presents the player instructions during execution of the workout program via a display, speakers, or other output device. Results of the workout program corresponding to made and missed shots, duration of one or more portions of the workout program, or other analytics data can be transmitted by basketball training machine 10 to workout module 100 of server 98. Accordingly, system 96 enables a user to select one or more workout programs stored at workouts 108 of database 104, create a new workout program that can optionally be stored in workouts 108, and execute the workout program to enable effective training for the player.
[0073] A user of the basketball training machine 10, e.g., a player, coach, or other interested part, can interact with the basketball training machine 10 through a graphical user interface (GUI) of the application environment 102, that receives user input and provides feedback to the user through the graphical user interface. As described in further details below, the graphical user interface can be presented in an application environment on a user device 130, e.g., a player’s mobile device, or in display of a console 58 of the basketball training machine 10. A user can interact with the basketball training machine 10 through the graphical user interface, for example, to define a workout program that includes selected ball delivery locations desired by a user and to receive feedback related to a workout program in progress and / or completed, e.g., form training.
[0074] The basketball training system 96 presents, through the graphical user interface, graphical control elements that enable the user to interact with the basketball training machine 10, e.g., to select a workout. The graphical user interface can be managed by a server device, communicatively coupled with a controller 94 of the basketball training machine 10 or a separate computing device, e.g., a user device 130, to receive the workout program including machine workout instructions executed by basketball training machine 10 and player workout instructions presented to the user.
[0075] As such, the basketball training system 96, through to the graphical user interface, enables a user (e g., a player, coach, administrator, training expert, or other user) to define a workout program via the graphical user interface that is communicated to ball delivery machine 32 of the basketball training machine 10 for execution and, in certain examples, enables selection of desired ball delivery locations that are not limited by indications of predetermined ball delivery locations. In this way, the basketball training machine 10 enables the generation of workout programs by differing users via one or more computing devices that are communicatively coupled with a server device that manages operation of the graphical user interface. In some implementations, the basketball training system 96 presents, through the graphical user interface, a visual representation of at least a portion of a basketball court representing predetermined ball delivery locations on the basketball court, such as visual markings, buttons, lights, or other physical or graphically-rendered indications of predetermined ball delivery (or shot) locations. In such examples, the graphical user interface enables a greater range of ball delivery locations and player movement that can help to simulate game-like scenarios and increase an effectiveness of training.
[0076] The basketball training system 96 can receive, through the graphical user interface, inputs from a user (e.g., gesture input at a touch-sensitive and / or presence-sensitive device, input from a mouse, keyboard, voice command, or other input) relative to a presented visual representation of the basketball court that identify the selected ball delivery locations.
[0077] Though described with reference to FIG. 2 as a basketball training system 96 in data communication with a basketball training machine 10, in some implementations, the basketball training system 96 provides the form training processes described in this specification without using some or all of the functionality of the basketball training machine 10. In some examples, the basketball training system 96 can collect captured sensor data using a standalone sensing subsystem 124 and / or from a sensor 120 of a user device 130, where the captured sensor data includes the player performing the shot action, the trajectory of the ball during a shot (“shot trajectory”), etc.
[0078] In particular, the one or more sensors 120 can be placed to establish a region of interest, e.g., a region that is captured by one or more sensors 120 for data collection.
[0079] As an example, the one or more sensors 120 can be placed on a surface near to the basketball training machine 10, e.g., on the floor of the court, within a receptacle on the floor of the court, on a stand or mount on the floor of the court, or the like. For example, a single sensor can be placed underneath the basketball hoop oriented to capture a region of interest including the area above and below the basketball hoop. As another example, three sensors can be placed at respective locations on the floor of the court, e.g., in a triangular formation, with the apex of the triangle below the hoop. In this case, the threes sensors can be oriented to capture a region of interest above and in front of the basketball hoop.
[0080] As another example, the one or more sensors 120 can be an integrated component of the basketball training machine 10 or a component of a user device 130 in data communication with the basketball training machine 10. As described above, the sensor(s) 120 can be, for example, a camera of the user’s device 130 having a field of view of the user or the ball as the user is performing the workout program. A position of the field of view of the sensor(s) 120 can be specific to a target angle, e.g., face-on, side-view, or another angle, of the user’s form with respect to the basketball training machine 10.
[0081] In the case that the sensor(s) 120 are an integrated component of the basketball training machine 10, e.g., and are attached to the basketball training machine 10, the one or more sensor(s) 120 can be attached to one or more components of the basketball training machine 10 to establish a region of interest. In particular, the system can establish a region of interest in front of and adjacent to the basketball rim, above the rim, or both based on the placement of the sensor(s) 120.
[0082] For example, the sensor(s) 120 can be attached to the base 20 of the ball delivery machine 32. As another example, the sensor(s) 120 can be attached to the ball feeder, e.g., the upper ball feeder 30, main ball feeder 34, or both, or the ball delivery machine 32, e.g., the holder 36 of the ball delivery machine 32, as is described in more detail with respect to FIG. 3. As another example, the sensor(s) 120 can be attached to one or more poles arranged about the perimeter of the basketball hoop, e.g., to support nets of the basketball collection system 12, as is described in more detail with respect to FIG. 4. As yet another example, the sensor(s) 120 can be attached to the shots made counter 22.
[0083] In such cases, the system can provide guidance to the user to collect the sensor data, e.g., of the player performing the shot action using a basketball hoop, e.g., a standard play basketball hoop or another configuration not in data communication with the basketball training system 96. As another example, the system can provide guidance to the user to collect the sensor data of the player’s shot trajectory.
[0084] The guidance can include positioning of the camera of the user device 130 or components of the sensing subsystem 124 with respect to a player’s position and a receiving basketball hoop. The system can receive the collected data from the user device 130 and / or the sensing subsystem 124 and process the collected sensor data at server 98 to proceed with the form training process, as described herein.
[0085] FIGS. 3 and 4 illustrate example regions of interest established by multiple sensors arranged with respect to the basketball training machine. While two example configurations are depicted in FIGS. 3 and 4, the examples should not be interpreted as limiting. The basketball training machine can support various appropriate arrangements of sensors for the collection of form training data.
[0086] FIG. 3 illustrates an example region of interest 330 established by sensors arranged with respect to the basketball training machine 300. In particular, the basketball training machine 300 can include a controller 350, control unit, or another processor configured to perform the actions of the various emitters and sensors described below. For example, the basketball training machine 300 can be implemented as the basketball training machine 10 of FIG. 1.
[0087] While the basketball hoop is not depicted in FIG. 3, the basketball training machine 300 can be aligned with the basketball hoop to capture the region of interest 330 along the path of shots from one or more players toward the hoop. In this context, a region of interest refers to a region that is captured by one or more sensors for data collection.
[0088] In the example depicted, two sensors are attached to the ball delivery machine 340 of the basketball training machine 300. The ball delivery machine 340 is configured to direct a received ball from the basketball hoop back to a user, e.g., the player 305. In particular, sensor A 312 is attached to the upper ball feeder 344 of the ball delivery machine 340, and sensor B 314 is attached to the holder 342 of the ball delivery machine 340.
[0089] Each sensor of the basketball training machine 300 can capture data in a conical detection sub-region. In some cases, the conical detection sub-region is the field of view of the sensor, e.g., for a camera sensor. In the example depicted in FIG. 3, sensor A 312 and sensor B 314 establish a conical region of interest 330 that is defined by an overlap between the respective conical detection sub-regions provided by sensor A 312 and sensor B 314.
[0090] In some cases, the ball delivery machine 340 is configured to pivot about a central axis of the basketball training machine 300, e.g., the central axis 310. In particular, the ball delivery machine 340 can be rotated about the central axis 310, e.g., by repositioning the ball delivery machine 32 relative to the base 315, to modify the location on the floor where the ball is delivered.
[0091] In this case, since sensors A 312 and B 314 are attached to the ball delivery machine 340, the region of interest established by the sensors 312, 314 will be adjusted responsive to the degree of rotation of the ball delivery machine 32. For example, the sensors A 312 and B 314 can be used to detect a trajectory of the basketball in the established region of interest 330. As an example, the basketball training machine 300 can pass the ball to the player, and the player can take a shot. As the ball travels from the player toward the basketball hoop, the sensors 312 and 314 can capture sensor data of the ball’s movement in the region of interest 330.
[0092] In some examples, the sensors 312, 314 can be configured to capture sensor data in a frequency band of the electromagnetic spectrum outside the visible frequency band. In particular, the sensors can be configured to capture radio waves, e.g., waves of electromagnetic radiation having wavelengths corresponding to the radio range of the electromagnetic spectrum. For example, the sensors can be configured to capture sensor data in one of radio frequency bands, microwave frequency bands, acoustic frequency bands, and infrared frequency bands. As another example, the sensors can be configured to capture sensor data in a millimeter frequency band, e.g., from approximately .1 -10 mm range.
[0093] More specifically, the basketball training machine 300 can emit a source signal from one or more emitter(s) 320 and the source signal can contact and reflect off of objects in the region of interest 330 established by the sensors 312, 314 for data collection. In particular, the controller 350 can control the emission of the signal from the one or more emitter(s) 350. For example, the emitter 320 can be an antenna. As another example, the emitter can be a waveguide or a dielectric resonator 320. As yet another example, the sensors 312, 314 can be configured to emit source signals and receive sensor data.
[0094] In particular, the emitter 320 can provide a signal for the detection of three-dimensional information, e.g., including an elevation position of an object relative to the position and orientation of the sensors 312, 314. For example, the sensors 312, 314 can capture point cloud data representing a basketball during a shot trajectory in the region of interest 330.
[0095] For example, the emitter 320 can be an antenna. As another example, the emitter can be. a waveguide or a dielectric resonator 320. As yet another example, the sensors can be configured to emit source signals and receive sensor data. In particular, the emitter 320 can provide a signal for the detection of three-dimensional information, e.g., including an elevation position of an objective relative to the sensors.
[0096] In some cases, the basketball training machine 300 can provide an interference signal from two or more emitters, e.g., an array of emitters or two sensors acting as emitters. In this case, the basketball training machine 300 can establish an interference pattern by providing a first source signal from a first emitter and a second source signal from a second emitter, where the wavelengths emitted between the sources are offset by a phase value, which indicates a measure of how off-cycle the source signals are based on the differing wavelengths.
[0097] More specifically, the basketball training machine 300 can establish different interference patterns by creating regions of constructive and destructive interference between the first source signal and the second source signal by modifying the phase value, thereby controlling the position and orientation of the region of interest 330. As an example, in the case that the interference signal is in the millimeter wave range, the basketball training machine 300 can perform beam steering by modifying the phase value between the first and second emitter to the control the position and orientation of the region of interest 330. The basketball training machine 300 can use the sensor data obtained from the sensors 312, 314 to extract trajectory data including a sequence of points tracking the movement of the basketball along the trajectory within the region of interest 330. The basketball training machine 300 can then determine a trajectory profile for the trajectory using the extracted trajectory data. As an example, the basketball training machine 300 can track the position of the ball’s trajectory in the region of interest 330 using the point cloud data. In particular, the basketball training machine 300 can determine a position of the ball at each of the sequence of points within the region of interest.
[0098] At times, multiple sensors 120 can be used to capture sensor data of the shot trajectory simultaneously or sequentially. In some implementations, the basketball training machine 300 obtains the sensor data, e.g., image or video data, by capturing sensor data including the trajectory of the ball in the region of interest 330. The basketball training machine 300 can capture sensor data simultaneously from two or more different angles of a same shot trajectory, e.g., using the same or different sensors 120. Alternatively, or additionally, the basketball training machine 300 can capture video data the shot trajectory from two or more different angles.
[0099] As an example, the basketball training machine 300 can determine a measure of rotation of the ball, e.g., the rate per minute (RPM) of the rotation, in addition to the position of the ball in the trajectory by identifying micro-Doppler signatures. In this context, identifying microDoppler signatures refers to measuring different points on the ball’s surface as the points move toward or away from the source signal at varying speeds. For example, the machine 300 can detect the Doppler frequency shifts at multiple ball positions in the shot trajectory to estimate the rotation of the ball.
[0100] As another example, in the case that the basketball training machine 300 collects image or video data, the basketball training machine 300 can determine a measure of rotation of the ball, e.g., the rate per minute (RPM) of the rotation, using the image or video data. For example, the basketball training machine 300 can use feature-based tracking to determine the measure of rotation by determining the displacement of key points in each image or video frame. As another example, the basketball training machine 300 can process the video frames using a machine learning model that has been configured to identify a measure of rotation or use an optical flow algorithm to identify pixel movement between adjacent images or video frames.
[0101] The basketball training machine 300 can perform further processing on the trajectory data to identify one or more of angle of ball entry at rim, angle of release, or front-back bias at rim from the trajectory data, e.g., as part of the trajectory profile. As an example, the basketball training machine 300 can decompose the velocity of the ball in different dimensions and use kinematics to determine the angle of ball entry at rim and the angle of release. As yet another example, the basketball training machine 300 can triangulate the ball’s position in the plane of the rim with respect to a center point to determine the front-back bias.
[0102] Moreover, the basketball training machine 300 can use the trajectory data to analyze miss bias of a user’s missed shots. In particular, the basketball training machine 300 can identify which aspects of a user’s shot trajectory deviate from a reference trajectory, e.g., by identifying a tendency of the user’s shot trajectory to have a bias to the left, right, long, short, or some combination with respect to the rim of the basketball hoop. As an example, the system can identify different reference trajectories depending on the type of shot, e.g., a bank shot for a layup as opposed to a “swish” shot outside of the paint. In some cases, this information can be used to identify and correct for airballs.
[0103] In some cases, the reference trajectory can be provided by a pro-athlete. In other cases, the reference trajectory can be provided by a coach or trainer. In yet another case, the user can elect to set the reference trajectory to their previous best trajectory profde, or a previous best trajectory of a teammate or friend. In a further case, the user can elect to set the reference trajectory to a recent trajectory and / or a real-time trajectory from another active user. As an example, the basketball training machine 300 can determine whether a user’s shot is flat or has too high of an arc with respect to the reference trajectory. As another example, the basketball training machine 300 can determine whether a user’s shot is too far to the left, right, back, or front of a center point of the rim, whether the user’s shot is too short or too long. As yet another example, the basketball training machine 300 can determine whether a user’s shot has no backspin or too much backspin.
[0104] While described here with respect to the basketball training machine 300, in some cases, the various sensors and emitters are external to the basketball training machine 300 and are coupled to the machine 300. For example, the basketball training machine 300 and the various sensors and emitters can be included in a basketball training system. In this case, the controller, control unit, or another processor of the basketball training system can perform the actions of the various sensors and emitters described above.
[0105] As described with reference to FIGS. 1 and 2, the basketball training system that includes basketball training machine 300, e.g., the basketball training system 96, can be used to perform form training for a player. Form training includes determining consistency of a player’s form performing an action shot (e.g., dribbling, dynamic shot, static shot, or other movement) with respect to an ideal form and / or a self-consistent form. In particular, the system can use the data captured by the sensors to determine different aspects of a player’s game, e.g., the player’s shot, dribbling technique, defense skills, etc.
[0106] For example, form training can include determining a release point and a release time of the ball in a shot. In some cases, the system can evaluate shooting on the move, e.g., speeding into a shot or following jab steps, and faking an opponent, e.g., using pump fakes. As another example, form training can include detecting where a player is on a court, e.g., at the baseline, at the top of the key, at the free-throw line, and measuring athleticism movement to suggest drills that correspond with the detected motion, e.g., pro agility drills, sprint drills, defensive drills, vertical jump drills, baseline to baseline speed drills, lateral quickness drills, etc. In some cases, the system can assign punishment drills. As yet another example, form training can include determining the number of dribbles in a predetermined amount of time, e.g., using one or both hands.
[0107] As a further example, form training includes determining consistency of a trajectory profile of a player’s shot. A self-consistent form includes the player’s own historical form data, in other words, how their form performing the action shot varies over time within a single workout program or multiple workout programs.
[0108] The basketball training system can also generate insight on how the deviation from the reference trajectory relates to the user’s shot action. More specifically, the system can generate, from the insight, targeted training to correct for the problematic aspects of the user’s shot action in order to improve the shot trajectory.
[0109] For example, the system can initiate a shot consistency training program in response to receiving a selected workout program from a user, e.g., the player or their trainer. The basketball training system 96 can provide an audio and / or visual representation of the workout program to the user, e.g., through the graphical user interface of the application environment, to provide guidance before, during, and after the workout program is run. The basketball training system can provide control signals to cause the basketball training machine 300 to enact the workout program, e.g., specifying shot locations and providing directives regarding the trajectory profile of the player’s shot.
[0110] In particular, the system can determine which aspects of a user’s shot action contribute to deviation from the reference trajectory and miss bias of the missed shots to generate, from the insight, targeted training to correct for the problematic aspects of the user’s shot action. For example, in the case that a user’s shot tends to miss with a right bias or left bias, the system can assign drills to improve wrist alignment and proper follow-through. As another example, in the case that a user’s shot is too flat, the system can assign drills to improve release timing. As yet another example, in the case that a user’s shot is too short, the system can assign drills to improve use of legs while shooting the basketball.
[0111] Moreover, in some case, the system can extract trajectory data from several shots made by a user and determine a measure of shooting path consistency based on a measure of discrepancy between the position of the ball at each of the respective sequence of points in the trajectory profiles. For, the system can provide shooting path consistency training for a user that is working to improve their free-throw. In particular, the system can use the consistency information to identify further drills for the user, e.g., based on a measure of variance for the shots.
[0112] FIG. 4 illustrates another example of a region of interest 410 established by sensors attached to the basketball training machine 400. While the basketball hoop is not depicted in FIG. 4, the basketball training system 400 can be aligned with the basketball hoop to capture the region of interest 410 along the path of shots from one or more players toward the hoop.
[0113] In the example depicted, four sensors are attached to four poles that are arranged around the perimeter of the hoop, e.g., as the net frame 18 of the collection system 12 of FIG. 1. In this case, the region of interest 410 is established by sensor A 402, sensor B 404, sensor C 406, and sensor D 408, which are arranged approximately equidistantly about the perimeter of the hoop on pole A 412, pole B 414, pole C 416, and pole D 418, respectively.
[0114] As an example, each sensor 402, 404, 406, 408 can be oriented on the respective poles 412, 414, 416, 418 to provide respective conical sub-regions of detection above and in front of the hoop. In particular, the sensors 402, 404, 406, and 408 can be attached to align the conical sub-regions towards a central axis defined perpendicular to a plane intersecting the four poles.
[0115] As depicted, when the respective conical sub-region of detection provided by each of the sensors 402, 404, 406, and 408 is combined, the region of interest 410 includes a region of detection where each of the conical sub-regions overlap. Since each sensor provides directional and elevational information, the system can collect more precise data of the trajectory of the ball in the region of overlap of all four sensors, e.g., relative to data captured by only one, two, or three sensors.
[0116] As described with respect to FIG. 3, sensor A 402, sensor B 404, sensor C 406, and sensor D 408 can be used to detect a trajectory of the basketball in the established region of interest 330. As an example, the basketball training machine 300 can pass the ball to the player, and the player can take a shot. As the ball travels from the player toward the basketball hoop, the sensors 402, 404, 406, and 408 can capture sensor data of the ball’s movement in the region of interest 410.
[0117] FIG. 5 is a flow diagram of an example process 500 for generating a trajectory profile for a player’s shot using a basketball training system.
[0118] The system establishes 510 a region of interest for data collection using two or more sensors and at least one emitter. In particular, the system can establish a region of interest in front of and adjacent to the basketball rim, above the rim, or both. The region of interest can be defined by respective overlapping conical detection sub-regions provided by each of the two or more sensors. For example, the sensors can be attached to the basketball training machine, e.g., to the base, to the ball feeder, e.g., main ball feeder 34, to a ball delivery device, e.g., the holder 36, on one or more poles arranged about a perimeter of the basketball hoop, e.g., the net frame 18 of the ball collection system 12, or to the shots made counter 22.
[0119] The system provides 520 a source signal including a non-visible wavelength. For example, the system can provide, by at least one emitter corresponding with the two or more sensors, a source signal. As another example, the system can provide an interference signal using a first source signal provided by a first emitter and a second source signal provided by a second emitter . In this case, the system can provide a first source signal that includes a first non-visible wavelength and the second source signal that includes a second non-visible wavelength that is offset by a phase value from the first non-visible wavelength. In this context, a non-visible wavelength refers to frequencies of the electromagnetic radiation spectrum outside the visible light spectrum. For example, the system can modify a position and orientation of the region of interest by modifying the phase value for the second source signal.
[0120] The system captures 530 sensor data including a trajectory of a ball in the region of interest. In particular, the system can capture the sensor data by capturing reflections of the source signal, e.g., from the ball, by the two or more sensors. For example, the basketball training system can leverage data collected by one or more sensors configured to capture non- visible light signal data, e g., in addition to or instead of video and / or image data collected by an image sensor. In the case that the data includes reflections of non-visible light signal data, the one or more sensors can be millimeter wave (mmWave) sensors that capture wavelengths of .1 - 10 mm range.
[0121] The system extracts 540 trajectory data from the sensor data, e.g., by one or more processors. The trajectory data can include a sequence of points tracking movement of the ball along the trajectory within the region of interest. As an example, the trajectory data can include coordinate points and vectors tracking movement of the ball within the region of interest.
[0122] The system generates 550 a trajectory profile for the trajectory from the extracted trajectory data, e.g., by the one or more processors. For example, the trajectory profile can include a position of the ball at each of the sequence of points within the region of interest. As another example, the system can additionally identify one or more of (i) angle of ball entry at rim, (ii) angle of release, or (iii) front-back bias at rim from the trajectory data. In the case that at least one of the two or more sensors is a camera, the system can additionally determine a measure of rotation of the ball in the region of interest.
[0123] In particular, the system can be used to improve player shot consistency and decrease miss bias. As an example, the system can determine a deviation between the trajectory profde and a reference trajectory profile. As another example, the system can generate a number of trajectory profiles for a first player, and can determine, from the number of trajectory profiles, a measure of shooting path consistency based on a measure of discrepancy between the position of the ball at each of the respective sequence of points in the number of trajectory profiles for the first player.
[0124] 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-transitory 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.
[0125] 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 specialpurpose 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. 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 software 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.
[0126] 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.
[0127] 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.
[0128] Computers suitable for the execution of a computer program can be based on general or special-purpose microprocessors or microcontrollers or a combination of them, 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.
[0129] 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. 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.
[0130] 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., on 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.
[0131] 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.
[0132] In addition to the embodiments described above, the following embodiments are also innovative:
[0133] Embodiment l is a basketball training system comprising: a basketball training machine configurable to align with a basketball hoop; one or more sensors that are arranged with respect to the basketball training machine and that are oriented to capture data from a region of interest established adjacent to and in front of the basketball hoop; and one or more processors coupled to one or more computer-readable storage media having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: obtaining, from the one or more sensors, sensor data including a trajectory of a ball in the region of interest; extracting, from the sensor data, trajectory data comprising a sequence of points tracking movement of the ball along the trajectory within the region of interest; and generating, from the extracted trajectory data, a trajectory profile for the trajectory comprising a position of the ball at each of the sequence of points within the region of interest.
[0134] Embodiment 2 is the basketball training system of embodiment 1, wherein the one or more sensors are configurable to capture data from at least one emitter.
[0135] Embodiment 3 is the basketball training system of any one of embodiments 1-2, wherein the one or more sensors are millimeter wave (mmWave) sensors.
[0136] Embodiment 4 is the basketball training system of any one of embodiments 1-3, wherein the region of interest is defined by a conical detection sub-region provided by a first sensor of the one or more sensors.
[0137] Embodiment 5 is the basketball training system of any one of embodiments 1-3, wherein the one or more sensors comprise at least two sensors, each sensor defining a respective conical detection sub-region, and wherein the region of interest is defined by an overlap between the respective conical detection sub-regions provided by the at least two sensors.
[0138] Embodiment 6 is the basketball training system of any one of embodiments 1-5, wherein at least one of the one or more sensors is attached to the basketball training machine.
[0139] Embodiment 7 is the basketball training system of embodiment 6, wherein the basketball training machine comprises a ball delivery machine configured to direct a received ball from the basketball hoop back to a player when the basketball training machine is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the ball delivery machine.
[0140] Embodiment 8 is the basketball training system of embodiment 7, wherein an orientation of the ball delivery machine is pivotable about a central axis of the basketball training machine, and wherein the one or more sensors are configurable to adjust a location and orientation of the region of interest responsive to a degree of rotation of the ball delivery machine with respect to the central axis.
[0141] Embodiment 9 is the basketball training system of embodiment 6, wherein the basketball training machine comprises one or more poles arranged about a perimeter of the basketball hoop when the basketball training machine is aligned with the basketball hoop, and wherein each of the one or more sensors is attached to a respective pole of the one or more poles.
[0142] Embodiment 10 is the basketball training system of embodiment 9, wherein the one or more poles are four poles, and wherein the region of interest is defined by an overlap of respective conical detection sub-regions provided by the one or more sensors attached to respective poles of the four poles.
[0143] Embodiment 11 is the basketball training system of any one of embodiments 6-10, wherein the basketball training machine comprises a base, and wherein at least one of the one or more sensors is attached to the base.
[0144] Embodiment 12 is the basketball training system of any one of embodiments 6-11, wherein the basketball training machine comprises a shots made counter arranged with respect to the basketball hoop when the basketball training machine is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the shots made counter.
[0145] Embodiment 13 is the basketball training system of any one of embodiments 6-12, wherein the basketball training machine comprises a ball feeder configured to receive a ball from the basketball hoop when the basketball training system is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the ball feeder.
[0146] Embodiment 14 is a basketball training method comprising: establishing a region of interest for data collection using two or more sensors and at least one emitter, wherein the region of interest is defined by respective overlapping conical detection sub-regions provided by each of the two or more sensors; providing, by at least one emitter corresponding with the two or more sensors, a source signal comprising a non-visible wavelength; and capturing, by the two or more sensors and from reflections of the source signal, sensor data including a trajectory of a ball in the region of interest; extracting, by one or more processors and from the sensor data, trajectory data comprising a sequence of points tracking movement of the ball along the trajectory within the region of interest; and generating, by the one or more processors and from the extracted trajectory data, a trajectory profile for the trajectory comprising a position of the ball at each of the sequence of points within the region of interest.
[0147] Embodiment 15 is the basketball training method of embodiment 14, further comprising identifying, from the trajectory data, one or more of (i) angle of ball entry at rim, (ii) an angle of release, or (iii) front-back bias at rim.
[0148] Embodiment 16 is the basketball training method of any one of embodiments 14-15, further comprising determining a measure of rotation of the ball.
[0149] Embodiment 17 is the basketball training method of any one of embodiments 14-16, further comprising: generating a plurality of trajectory profiles for a first player; and determining, from the plurality of trajectory profiles for the first player, a measure of shooting path consistency based on a measure of discrepancy between the position of the ball at each of the respective sequence of points in the plurality of trajectory profiles for the first player.
[0150] Embodiment 18 is the basketball training method of any one of embodiments 14-17, further comprising: determining a deviation between the trajectory profile and a reference trajectory profile.
[0151] Embodiment 19 is the basketball training method of any one of embodiments 14-18, wherein providing the source signal comprising the non-visible wavelength comprises: providing a first source signal by a first emitter of the at least one emitter, wherein the first source signal comprises a first non-visible wavelength; providing a second source signal by a second emitter of the at least one emitter, wherein the second source signal comprises a second non-visible wavelength that is offset by a phase value from the first non-visible wavelength; and providing an interference signal using the first and second source signals.
[0152] Embodiment 20 is the basketball training method of embodiment 19, further comprising modifying a position and orientation of the region of interest by modifying the phase value for the second source signal. 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 implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations 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 subcombination or variation of a subcombination.
[0153] 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 of various system modules and components in the implementations described above should not be understood as requiring such separation in all implementations, 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.
[0154] Particular implementations of the subject matter have been described. Other implementations 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.
[0155] What is claimed is:
Claims
CLAIMS1. A basketball training system comprising: a basketball training machine configurable to align with a basketball hoop; one or more sensors that are arranged with respect to the basketball training machine and that are oriented to capture data from a region of interest established adjacent to and in front of the basketball hoop; and one or more processors coupled to one or more computer-readable storage media having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: obtaining, from the one or more sensors, sensor data including a trajectory of a ball in the region of interest; extracting, from the sensor data, trajectory data comprising a sequence of points tracking movement of the ball along the trajectory within the region of interest; and generating, from the extracted trajectory data, a trajectory profile for the trajectory comprising a position of the ball at each of the sequence of points within the region of interest.
2. The basketball training system of claim 1, wherein the one or more sensors are configurable to capture data from at least one emitter.
3. The basketball training system of any one of claims 1-2, wherein the one or more sensors are millimeter wave (mmWave) sensors.
4. The basketball training system of any one of claims 1-3, wherein the region of interest is defined by a conical detection sub-region provided by a first sensor of the one or more sensors.
5. The basketball training system of any one of claims 1-3, wherein the one or more sensors comprise at least two sensors, each sensor defining a respective conical detection sub-region, and wherein the region of interest is defined by an overlap between the respective conical detection sub-regions provided by the at least two sensors.
6. The basketball training system of any one of claims 1-5, wherein at least one of the one or more sensors is attached to the basketball training machine.
7. The basketball training system of claim 6, wherein the basketball training machine comprises a ball delivery machine configured to direct a received ball from the basketball hoop back to a player when the basketball training machine is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the ball delivery machine.
8. The basketball training system of claim 7, wherein an orientation of the ball delivery machine is pivotable about a central axis of the basketball training machine, and wherein the one or more sensors are configurable to adjust a location and orientation of the region of interest responsive to a degree of rotation of the ball delivery machine with respect to the central axis.
9. The basketball training system of claim 6, wherein the basketball training machine comprises one or more poles arranged about a perimeter of the basketball hoop when the basketball training machine is aligned with the basketball hoop, and wherein each of the one or more sensors is attached to a respective pole of the one or more poles.
10. The basketball training system of claim 9, wherein the one or more poles are four poles, and wherein the region of interest is defined by an overlap of respective conical detection subregions provided by the one or more sensors attached to respective poles of the four poles.
11. The basketball training system of any one of claims 6-10, wherein the basketball training machine comprises a base, and wherein at least one of the one or more sensors is attached to the base.
12. The basketball training system of any one of claims claim 6-11, wherein the basketball training machine comprises a shots made counter arranged with respect to the basketball hoop when the basketball training machine is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the shots made counter.
13. The basketball training system of any one of claims 6-12, wherein the basketball training machine comprises a ball feeder configured to receive a ball from the basketball hoop when the basketball training system is aligned with the basketball hoop, and wherein at least one of the one or more sensors is attached to the ball feeder.
14. A basketball training method comprising: establishing a region of interest for data collection using two or more sensors and at least one emitter, wherein the region of interest is defined by respective overlapping conical detection sub-regions provided by each of the two or more sensors; providing, by at least one emitter corresponding with the two or more sensors, a source signal comprising a non-visible wavelength; and capturing, by the two or more sensors and from reflections of the source signal, sensor data including a trajectory of a ball in the region of interest; extracting, by one or more processors and from the sensor data, trajectory data comprising a sequence of points tracking movement of the ball along the trajectory within the region of interest; and generating, by the one or more processors and from the extracted trajectory data, a trajectory profile for the trajectory comprising a position of the ball at each of the sequence of points within the region of interest.
15. The basketball training method of claim 14, further comprising identifying, from the trajectory data, one or more of (i) angle of ball entry at rim, (ii) an angle of release, or (iii) front- back bias at rim.
16. The basketball training method of any one of claims 14-15, further comprising determining a measure of rotation of the ball.
17. The basketball training method of any one of claims 14-16, further comprising: generating a plurality of trajectory profiles for a first player; anddetermining, from the plurality of trajectory profiles for the first player, a measure of shooting path consistency based on a measure of discrepancy between the position of the ball at each of the respective sequence of points in the plurality of trajectory profiles for the first player.
18. The basketball training method of any one of claims 14-17, further comprising: determining a deviation between the trajectory profile and a reference trajectory profile.
19. The basketball training method of any one of claims 14-18, wherein providing the source signal comprising the non-visible wavelength comprises: providing a first source signal by a first emitter of the at least one emitter, wherein the first source signal comprises a first non-visible wavelength; providing a second source signal by a second emitter of the at least one emitter, wherein the second source signal comprises a second non-visible wavelength that is offset by a phase value from the first non-visible wavelength; and providing an interference signal using the first and second source signals.
20. The basketball training method of claim 19, further comprising modifying a position and orientation of the region of interest by modifying the phase value for the second source signal.
Citation Information
Patent Citations
Method for producing a cladding element
US20140158286A1
A basketball training aid system
CN110075498B
Basketball training system
US10596436B1
Training devices for trajectory-based sports
US20110143868A1
Basketball performance monitoring system
US20150265897A1