Learning-Based Ground Localization

A learning-based system using a neural network estimates shooter position in sports by compensating for camera and target area movements, addressing inaccuracies in conventional methods and reducing computational requirements, thus improving performance analysis.

JP7763281B2Active Publication Date: 2025-10-31RAPSODO
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024022842
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-10-30
Filing Date
2024-02-19
Publication Date
2025-10-31
Estimated Expiration
2039-10-28

AI Technical Summary

Technical Problem

Conventional methods for determining the shooter's position in sports, such as basketball or netball, are inaccurate due to occlusions, fixed camera assumptions, and require computationally intensive calibration, leading to incorrect estimations and high resource usage.

Method used

A learning-based system that uses a neural network to estimate the shooter's position without precise camera coordinates, compensating for camera and target area movements, and varying trajectory starting points, reducing computational requirements and improving accuracy.

Benefits of technology

The system provides accurate shooter position estimation with reduced computational demands, maintaining accuracy despite camera and target area movements, and varying shot types, enhancing performance analysis in sports.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007763281000001
    Figure 0007763281000001
  • Figure 0007763281000002
    Figure 0007763281000002
  • Figure 0007763281000003
    Figure 0007763281000003
Patent Text Reader

Abstract

To make it possible to include acquisition of a plurality of images taken by a camera over time in an environment.SOLUTION: Operations may include identifying a first position of an object in a target region of an environment in a first image of a group of images and identifying a second position of the object in a second image of the group of images. Additionally, the operations may include determining an estimated trajectory of the object based on the first position of the object and the second position of the object. The operations may further include, based on the estimated trajectory, estimating a ground position in the environment associated with a starting point of the estimated trajectory of the object. Additionally, the operations may include providing the ground position associated with the starting point of the estimated trajectory of the object for display in a graphical user interface.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application generally relates to learning-based geolocation estimation. [Background technology]

[0002] Objects may sometimes move through the air. When a ball is released, it can be difficult to determine its location, especially if the location of the ball release is obscured from view. Some computer systems may attempt to determine the location of the ball release, but are generally inaccurate even in the simplest scenarios.

[0003] The subject matter claimed herein is not limited to embodiments that solve any shortcomings or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced. Summary of the Invention [Means for solving the problem]

[0004] Embodiments of the present disclosure discuss various operations performed by a method, system, and / or computer-readable medium. The operations may include acquiring a plurality of images taken with a camera over a period of time within an environment. The operations may also include identifying a first position of an object within a target region of the environment in a first image of the plurality of images and identifying a second position of the object in a second image of the plurality of images. Additionally, the operations may include determining an estimated trajectory of the object based on the first position of the object and the second position of the object. The operations may further include estimating a ground position in the environment associated with a starting point of the estimated trajectory of the object based on the estimated trajectory. Additionally, the operations may include providing the ground position associated with the starting point of the estimated trajectory of the object for display in a graphical user interface. [Brief explanation of the drawings]

[0005] The exemplary embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings.

[0006] [Figure 1] FIG. 1 illustrates an exemplary environment for estimating ground position. [Figure 2A] FIG. 2A illustrates an exemplary embodiment in which the ground position of FIG. 1 is estimated. [Figure 2B] FIG. 2B illustrates another exemplary embodiment in which the ground position of FIG. 1 is estimated. [Figure 2C] FIG. 2C illustrates yet another exemplary embodiment in which the ground position of FIG. 1 is estimated. [Figure 3] FIG. 3 illustrates an exemplary method for estimating the ground position of any of FIGS. 1, 2A, 2B, and 2C. [Figure 4] FIG. 4 shows a block diagram of an exemplary computing system. DETAILED DESCRIPTION OF THE INVENTION

[0007] Many techniques and fields can benefit from imaging analysis. For example, in sports, players can improve their performance by reviewing certain aspects of their performance, such as specific parts of the backswing in a golf stroke, the follow-through on a tennis forehand, the placement of the fist during a jab-cross combination in boxing, the arch of a free throw in basketball, the spike angle in volleyball, etc. Imaging analysis can help players identify areas of strength, weakness, poor form, etc.

[0008] Imaging analysis can be used to identify a launch location of an object. A launch location can be referred to as the spatial location where an object is released into the air. In at least one embodiment, a launch location can represent a spatial location on a surface or plane at the time the object is released into the air. In sports, for example, a launch location can represent a location on a playing field, such as a point on a basketball court where a player was when they released the ball (such as in a shot at a goal or in a pass to another player). Alternatively, a shooting location can represent a spatial location of an object at the moment the object is released into the air. For example, in sports, a shooting location can represent the location of the ball when it is released into the air.

[0009] In certain sports, such as basketball or netball, shooting position is often related to measures of performance (e.g., game statistics), such as field goal percentage, free throw percentage, three-point percentage, points in the paint, etc. Shooting position also relates to individual progress, not necessarily game statistics (e.g., "my left corner three-point shots are not as consistent as my right corner three-point shots"). Shooting position is thus relevant to many aspects of basketball and netball. Therefore, shooting position receives a lot of time and attention for imaging analysis.

[0010] In some conventional methods and systems, identifying the shooter's position can be a difficult task and / or computationally intensive. For example, some conventional methods and systems may attempt to identify the shooter's position using trajectory analysis. However, these conventional methods and systems may identify or maintain fixed positions of the cameras used in the imaging analysis using a calibration process and / or fixed imaging parameters. For example, some existing systems may detect the shooter by tracing back the ball's trajectory and performing person detection in the nearby area. This approach typically involves drawing a bounding box of the player in the image. The bottom center of the bounding box is then projected downward onto the court using an estimated projection from the image plane to the ground plane.

[0011] Problems with these conventional systems include: 1) the shooter's view may be occluded by other players, which can result in inaccurate identification of the shooter and therefore an incorrect shooting position, 2) the shooter's bounding box may be inaccurate, for example, the player's feet may fall outside the bounding box, 3) these systems typically assume that the shooter's feet are on the ground when shooting the ball, and 4) a calibration process is often required to estimate the projection from the image plane to the court coordinate system (ground plane). Conventional systems also suffer from myriad other shortcomings.

[0012] Aspects of the present disclosure address these and other problems with conventional methods and systems by providing a novel computer-based approach that improves the accuracy of shooter position estimation while allowing for system flexibility (e.g., use on client devices). Furthermore, the disclosed systems and methods offer significant improvements over conventional systems through reduced computational requirements that achieve significantly better results compared to conventional systems. For example, according to exemplary embodiments of the present disclosure, a learning-based system can be implemented such that it is unnecessary to have precise position coordinates of the camera. Additionally or alternatively, in exemplary embodiments of the present disclosure, the computational cycles required by conventional systems for player detection are not required or implemented by the present disclosure.

[0013] Furthermore, according to one or more embodiments of the present disclosure, movement of the camera and / or target area (such as the backboard area) may not affect the accuracy of determining the shooting position, as may be the case in conventional methods and systems. For example, movement of the camera and / or target area may be compensated for according to methods of the present disclosure that involve locating the target area, as described in more detail below.

[0014] Furthermore, according to one or more embodiments of the present disclosure, variations in the starting point of the object's trajectory (e.g., due to different player heights and / or different types of shots, such as jump shots or free throws) may not affect the accuracy of determining the shooting position, as may be the case with conventional methods and systems. For example, the object's time of flight may be determined to compensate for variations in the starting point of the object's trajectory, as described in more detail below.

[0015] 1 illustrates an exemplary environment for estimating ground position. Environment 100 is configured in accordance with at least one embodiment of the present disclosure. As shown, environment 100 may include a data manager 105 having a computing system 110 and a neural network 115, a camera 120 having a field of view 122, a trajectory 125, an object 130, a starting point 135, and a ground position 140.

[0016] In some embodiments, data manager 105 may manage the operation of computing system 110 and / or neural network 115. Additionally or alternatively, data manager 105 may facilitate communication between system 110 and neural network 115. Additionally or alternatively, data manager 105 may facilitate communication between camera 120 and any of computing system 110 and neural network 115.

[0017] In some embodiments, data manager 105 may be part of a client device. Some examples of client devices may include a mobile phone, a smartphone, a tablet computer, a laptop computer, a desktop computer, a set-top box, a virtual reality device, a wearable device, or a connected device, etc.

[0018] In some embodiments, computing system 110 may include any computer system, such as system 400 described in connection with FIG. 4. In these or other embodiments, neural network 115 may include any learning-based mechanism. Examples of neural networks may include perceptrons, multilayer perceptrons, feedforward, radial basis networks, deep feedforward, recurrent neural networks, long / short-term memory, gated recurrent units, autoencoders, variational autoencoders, denoising autoencoders, sparse autoencoders, any sequence transformation model, shallow neural networks, Markov chains, Hopfield networks, Boltzmann machines, restricted Boltzmann machines, deep belief networks, deep convolutional networks, convolutional neural networks (e.g., VGG-16), deconvolutional networks, deep convolutional inverse graphics networks, modular neural networks, generative adversarial networks, liquid state machines, extreme learning machines, echo state networks, recurrent neural networks, deep residual networks, Kohonen networks, support vector machines, neural Turing machines, etc.

[0019] Neural network 115 may receive data from camera 120. Camera 120 may be included as part of a client device or may be a device separate from the client device. In some embodiments, field of view 122 may be a three-dimensional space that camera 120 may image (e.g., in video mode or picture mode). Camera 120 may be positioned such that field of view 122 includes starting point 135 of trajectory 125, a target area (e.g., target area 202 in FIGS. 2A, 2B, and 2C), and at least a majority of the area between starting point 135 and the target area.

[0020] Neural network 115 may learn during the training process (e.g., to populate one or more layers or neurons in neural network 115) by using data generated by camera 120. Additionally or alternatively, neural network 115 may learn after training (e.g., to re-populate one or more layers or neurons in neural network 115 or to populate layers or neurons in response to changed conditions in environment 100) by using data generated by camera 120.

[0021] For example, using data generated by camera 120, neuron 115 may know where starting point 135 of trajectory 125 is for a given player (e.g., after a few, tens, or hundreds of training shots). As referenced in this disclosure, starting point 135 may include a location of object 130 at which the start of motion of object 130 generally along trajectory 125 is detected. For example, starting point 135 may include a location at which object 130 is detected as leaving a player's hand at the moment object 130 is released into the air. Additionally or alternatively, starting point 135 may include a location at which object 130 is detected as being in the player's hand at a moment in the process of object 130 being released into the air (e.g., a moment at which a force is exerted on object 130 to impart a directional movement to object 130 generally along trajectory 125). Additionally or alternatively, starting point 135 may include the location at which object 130 is detected as being in the player's hand at the moment when object 130 is about to begin the process of being launched into the air (e.g., the moment when object 130 is substantially stationary before having a force applied to object 130 in a direction substantially along trajectory 125). Thus, in some embodiments, starting point 135 of trajectory 125 may include the location of object 130 at a time before, during, or after object 130 is launched along trajectory 125.

[0022] Training the neural network 115 to learn the starting point 135 may include receiving data generated by the camera 120, where the data corresponds to different shots taken by the player. Examples of different shots taken by the player may include shots taken at different locations in the environment 100, such as at different ground positions 140. Additionally or alternatively, the different shots taken by the player may include different types of shots, such as standing shots, jump shots, fadeaway shots, floater shots, etc. The more data the neural network 115 receives corresponding to different shots taken by the player, the more accurate the neural network 115 may be in determining the starting point 135. Additionally or alternatively, the neural network 115 may learn a range of starting points 135 specific to the player (e.g., specific to the player's height, shot type, jumping ability, release mode, etc.). Other examples involving the neural network 115 are described with further detail in conjunction with FIGS. 2A, 2B, and 2C.

[0023] In some embodiments, trajectory 125 may include a flight path of object 130. In these or other embodiments, camera 120 may generate data depicting object 130 at various positions. Based on the generated data from camera 120 depicting object 130 at various positions, data manager 105 may determine trajectory 125 of object 130. Determining trajectory 125 of object 130 is described in more detail in conjunction with FIGS. 2A, 2B, and 2C.

[0024] In some embodiments, object 130 may include any projectile (e.g., any projectile that is not substantially affected by the Magnus force). Thus, in some embodiments, object 130 may include any object that may be suitable for any low-velocity object sport. In these or other embodiments, object 130 may include, for example, a basketball, soccer ball, football, rugby ball, ping-pong ball, kickball, volleyball, dodgeball, cricket ball, shuttlecock, tennis ball, baseball, etc. Accordingly, the scope of the present disclosure may include a wide range of sports and activities in which it may be desirable to determine ground position 140 based on trajectory 125 of object 130. While some of the figures and corresponding descriptions may be associated with one or more example sports or activities, the scope of the present disclosure is not limited to those sports or activities in view of the broad range of applications contemplated herein.

[0025] In some embodiments, ground location 140 may correspond to the player's location on the ground (e.g., court, field, playing surface, etc.) near the time when object 130 is located at start point 135 of trajectory 125. For example, ground location 140 may include an estimated area (e.g., a circular, rectangular, or triangular area having a boundary of some size, such as approximately 2 feet by 2 feet). In these or other embodiments, ground location 140 may include an estimated area where the player jumps / stands after, during, or before the time when object 130 is located at start point 135. Additionally or alternatively, ground location 140 may include an estimated point (e.g., a dot, an "X," or other symbol) indicating a coordinate system on the ground. For example, ground location 140 may include estimated coordinates or a pinpoint location on the ground corresponding to a point on the player projected onto the ground near the time when object 130 is located at start point 135. Examples of points on a player that may be projected onto the ground as ground position 140 may include the player's center of mass, center of gravity, elbows, heels, and hip lines.

[0026] Modifications, additions, or omissions may be made to environment 100 without departing from the scope of the present disclosure. For example, in some embodiments, environment 100 may include any number of other elements not explicitly shown or described.

[0027] Furthermore, the separation of various elements in the embodiments described herein is not intended to indicate that such separation occurs in all embodiments, and it will be understood in light of this disclosure that the elements described may be combined into a single element or separated into multiple element groups.

[0028] 2A illustrates an example embodiment environment 200 in which a ground position is estimated. Environment 200 is configured in accordance with one or more embodiments of the present disclosure. As shown, environment 200 may include a target area 202, images 204-216, a camera 220, a field of view 222, a trajectory 225, an object 230, a starting point 235, and a ground position 240. In some embodiments, camera 220, field of view 222, trajectory 225, object 230, starting point 235, and ground position 240 may be the same as or similar to camera 120, field of view 122, trajectory 125, object 130, starting point 135, and ground position 140, respectively, of FIG. 1 .

[0029] 2A , a trajectory 225 of object 230 may be determined (e.g., in data manager 105 of FIG. 1 ) to estimate ground position 240. Trajectory 225 may be determined using data generated by camera 220. For example, camera 220 may generate an image of object 230 within field of view 222 of environment 200. In these and other embodiments, identifying object 230 in target region 202 may trigger the determination of trajectory 225 of object 230. For example, data generated by camera 220 may identify object 230 as being within target region 202. Based on this identification, performed by data manager 105 of FIG. 1 , that object 230 is within target region 202, the generated image of object 230 may begin to be analyzed to determine trajectory 225, as described further below.

[0030] In some embodiments, the target region 202 may include a region of interest defined by parameters. Additionally or alternatively, the target region 202 may be associated with a first position (U2, V2) in a UV coordinate system that represents a two-dimensional coordinate system (e.g., a coordinate system relative to the camera 220) within the image generated by the camera 220. Examples of the target region 202 may include a basketball backboard, a soccer goal, a football end zone, a specific portion of a court, a table or field, an archery target, a bullet target, etc. In some embodiments, the parameters defining the target region 202 may include preset parameters corresponding to one or more features and / or boundaries of the target region 202, such as corners, lines, hashes, rims, nets, plates, bags, cones, chalk, goal posts, tape, dots, etc. Additionally or alternatively, the parameters defining the target region 202 may be obtained using a neural network, such as the neural network 115 of FIG. 1. Locating the target region 202 using a neural network is described in further detail in connection with FIG. 2B.

[0031] In one embodiment, the object 230 may be detected within the target region 202 as having entered the target region 202, such as in image 204, using a background subtraction method. The background subtraction method may include any set of techniques for detecting changes in data (e.g., scene changes due to changes in pixilation) with respect to a pre-processed image. Some exemplary background subtraction methods may include a time average filter algorithm, a frame difference algorithm, a mean filter algorithm, a moving Gaussian mean algorithm, a background blending algorithm, etc., and any combination thereof.

[0032] Additionally or alternatively, based on this identification, e.g., in data manager 105 of FIG. 1 , that object 230 is present within target region 202, the generated images of object 230 may begin to be further analyzed to determine object trajectory 225. For ease of explanation, the set of images 204, 206, 208, 210, 212, 214, and 216 are moved, and the object in each of these images is present in a different location, while the remaining features in environment 200 appear stationary and unchanged. For example, image 204 may comprise the first image in which the location of object 230 is identified (e.g., in a UV coordinate system). Images that precede image 204 in time may also be analyzed to identify object 230. For example, analysis of images prior to image 204 may identify the respective locations of object 230 shown in images 206, 208, 210, 212, 214, and 216. In these or other embodiments, more or fewer images than those shown may be analyzed to determine trajectory 225, such as 3 images, 5 images, 7 images, 15 images, about 50 images, or any other number of images.

[0033] In some embodiments, analyzing the images, including any of images 204, 206, 208, 210, 212, 214, and 216, may include analyzing the images to identify pixels that represent at least a portion of object 230. For example, pixels that represent at least a portion of object 230 may be located and / or identified (e.g., by data manager 105 of FIG. 1 ) using the background subtraction techniques described above. Additionally or alternatively, pixels that represent at least a portion of object 230 may be located and / or identified using a K-nearest neighbor algorithm. In these or other embodiments, a neural network, such as neural network 115 of FIG. 1 , may be implemented in identifying pixels that represent at least a portion of object 230.

[0034] In some embodiments, the identified pixels representing at least a portion of object 230 may represent a particular aspect or feature of object 230. For example, the identified pixels may represent a center of gravity, midpoint, centerline, stitching, seams, air intakes, lettering, etc. of object 230. In these or other embodiments, the identified pixels representing a particular aspect or feature of object 230 may in turn be used to identify a location of object 230 in each image. For example, a pixel or group of pixels may correspond to the center of gravity of object 230. The location of the center of gravity of object 230 (e.g., in a UV coordinate system) may be specified as the location of object 230 as a whole. In this manner, the location of object 230 in one or more images generated by camera 220 may be identified.

[0035] In some embodiments, analysis of the images generated by camera 220 may proceed seemingly backward from image 204 (e.g., until image 216, or an image between images 204 and 216, is reached). In these or other embodiments, image 216 may include a stop image in which the center location of a pixel associated with object 230 is unidentifiable. As used herein, the term “unidentifiable” may refer to a threshold above which a determining difference between a pixel associated with object 230 and a pixel associated with an occlusion (such as a player's body, head, or hand, another object, an inanimate object, etc.) is considered indistinguishable, for example, according to data manager 105 of FIG. 1 . For example, the pixel associated with object 230 and the pixel associated with the occlusion may be of a similar color, a similar outline or shape, etc. Additionally or alternatively, the term “unidentifiable” may refer to a threshold above which there are no pixels associated with object 230. For example, a certain amount of pixels associated with object 230 may not be detected within field of view 222 because the pixels associated with occlusion are located between camera 220 and object 230. In some embodiments, if the detected amount of pixels associated with object 230 is less than a threshold amount, or if the pixels define less than a threshold portion of object 230 (e.g., less than 50%, about 25%, about 10%, etc.) of the entire object 230, the pixels associated with object 230 may be considered unidentifiable.

[0036] In some embodiments, where analysis of images generated by camera 220 may proceed backward from image 204, such analysis may proceed image by image. Alternatively, analysis of images may proceed backward from image 204 in a non-image-by-image manner, such as every other image, every fifth image, or any other increment, including non-periodic increments. Additionally or alternatively, analysis of images may proceed backward from image 204 according to predetermined time periods on the order of microseconds, milliseconds, seconds, etc. In these or other embodiments, the location of object 230 may thereby be identified at various locations between image 204 and image 216.

[0037] In some embodiments, the manner in which images generated by camera 220 are analyzed may help improve efficiency, computational speed, etc. in determining trajectory 225. For example, by skipping images or analyzing a subset of images generated by camera 220, the number of images analyzed to determine each position of object 230 may be reduced, which may in turn lead to reduced processing resources. Additionally or alternatively, the number of images analyzed to determine each position of object 230 may be based on a minimum amount of images that can be used to generate a curve fit for estimating trajectory 225. For example, the minimum amount of images to generate a curve fit (e.g., a minimum amount of object 230 positions) may be approximately three images, approximately five images, etc. In these or other embodiments, a larger number of analyzed images may result in increased accuracy of the curve fit, with an inverse increase in computation and / or processing time. Additionally or alternatively, any images between image 204 and image 216 that have occlusions, blurry pixels, non-deterministic data, or are corrupted may be skipped. In some embodiments, more images may be used when object 230 has a relatively high velocity, and fewer images may be used when object 230 has a relatively low velocity. In at least one embodiment, more images may be used when object 230 is in an area of ​​the environment where it is more difficult to detect object 230 or to detect pixels associated with object 230 to increase the likelihood of accurately detecting object 230. Additionally, more images may be used as the object approaches the endpoints of trajectory 225 to more accurately identify the endpoints of the trajectory.

[0038] After image 216 is determined to be the stop image (or in some embodiments before) due to some of the pixels associated with object 230 being unidentifiable, another image may be identified as the second image (e.g., the start image of trajectory 225 in which object 230 is identifiable). The second image may be chronologically positioned between image 204 and image 216. Additionally or alternatively, the second image may correspond to the position of object 230 at start point 235 in the UV coordinate system (U1, V1).

[0039] In some embodiments, the positions of object 230 identified in images 204, 206, 208, 210, 212, 214, and 216 generated by camera 220 may be curve-fitted to estimate trajectory 225. For example, a first position and a second position of object 230 may be curve-fitted. Additionally or alternatively, a third position, a fourth position, a fifth position, etc. may be curve-fitted. In these or other embodiments, more or fewer positions may be curve-fitted. As referred to in this disclosure, "curve fitting" may include aspects relating to any process of constructing a curve, or mathematical function, which applies a fit model (e.g., a best fit model) to a set of data points. Thus, curve fitting in this disclosure may include the reconstruction or estimation of trajectory 225.

[0040] In some embodiments, for example, the position of object 230 in image 204 (e.g., first position) may be used to create the curve. Additionally or alternatively, the curve may be fit to a second position of object 230, where the second image may be positioned in time sequence between image 204 and image 216. For example, the second position used to fit the curve may be starting point 235. In these or other embodiments, additional positions of object 230 corresponding to each image between the first and second images may be used to fit the curve. In this manner, trajectory 225 of object 230 may be based at least on the first position in the first image (e.g., image 204) and the second position in the second image (e.g., the image corresponding to starting point 235). Additionally, in some embodiments, the trajectory 225 of the object 230 may be based on one or more positions between a first position in a first image (e.g., image 204) and a second position in a second image (e.g., an image corresponding to the starting point 235), including, for example, one or more positions corresponding to images 206-214.

[0041] Additionally or alternatively, using the position of object 230 to create the curve may generate a curve equation, including curve coefficients in the curve equation. In some embodiments, the curve coefficients may be input to a neural network, such as neural network 115 of FIG. 1. In these or other embodiments, the neural network may output (e.g., estimate) ground position 240 based on inputs to the neural network, including the curve coefficients of trajectory 225.

[0042] Thus, in one embodiment, ground position 240 may be determined based on trajectory 225 without further constraints other than target region 202 located at (U2, V2) and starting point 235 located at (U1, V1) in the UV coordinate system of the images generated by camera 220. For example, camera 220 may be located at an unknown location (X1, Y1, Z1) in the three-dimensional space of environment 200. In these or other embodiments, the accuracy of estimated ground position 240 may be within a threshold accuracy as long as camera 220 is located somewhere within a predetermined area. For example, camera 220 may be positioned at various locations within an 8-cubic meter space while training a neural network (e.g., neural network 115 of FIG. 1 ). According to this example, the accuracy of estimated ground position 240 may be within the threshold accuracy as long as camera 220 is located anywhere within that 8-cubic meter space while generating images 204-216 of object 230 used to determine trajectory 225. If camera 220 is positioned outside of the 8 cubic meter space while generating images 204-216 of object 230 used to determine trajectory 225, the accuracy of estimated ground position 240 may be outside or fall outside the threshold accuracy. Other sizes of the predetermined area larger or smaller than 8 cubic meter space are contemplated, such as about 1 / 2 cubic meter, about 2 cubic meters, about 4 cubic meters, about 6 cubic meters, about 10 cubic meters, about 15 cubic meters, about 30 cubic meters, or any other size or shape of space.

[0043] Modifications, additions, or omissions may be made to environment 200 without departing from the scope of the present disclosure. For example, in some embodiments, environment 200 may include any number of other elements that may not be explicitly shown or described.

[0044] 2B illustrates an environment 200 in another exemplary embodiment in which a ground position is estimated. FIG. 2B is configured in accordance with one or more embodiments of the present disclosure. As illustrated, FIG. 2B includes the same or similar elements as FIG. 2A, but with the following differences: a target area 202 at a position (U2′, V2′), a camera 220 at a position (X1′, Y1′, Z1′), and / or definition points 245a-245e of the target area 202 are different.

[0045] In some embodiments, ground location 240 may be determined based on trajectory 225 regardless of movement of one or both of camera 220 and target region 202. For example, in response to movement of camera 220 relative to location (X1', Y1', Z1'), after identifying a group of defining points 245a-245e corresponding to features for target region 202, trajectory 225 may be estimated as described above in reference to FIG. 2A. In these or other embodiments, (X1', Y1', Z1') may be outside the predetermined region in which camera 220 was used while training the neural network (e.g., neural network 115 of FIG. 1). Additionally or alternatively, in response to movement of target region 202 relative to (U2', V2'), trajectory 225 may be estimated as described above in reference to FIG. 2A after identifying a group of defining points 245a-245e corresponding to features for target region 202. In these or other embodiments, the position (U2', V2') of the target region 202 may include a different position than that used to train the neural network. Alternatively, the target region 202 may not have been moved, and the position of the target region 202 may have changed from (U2, V2) to (U2', V2') due to movement of the camera 220 in the XYZ coordinate system, because the UV coordinate system may be relative to the viewpoint of the camera 220.

[0046] In some embodiments, movement of the camera 220 and / or the target area 202 may be detected (e.g., automatically). For example, using the background subtraction method described above, differences between images used to train the neural network and images later generated by the camera 220 may indicate that movement of the camera 220 and / or the target area 202 has occurred. Additionally or alternatively, movement of the camera 220 and / or the target area 202 may be designated as having occurred. For example, a user may input (e.g., into the data manager 105 of FIG. 1 ) a “new session,” “new gym,” etc., which may be automatically inferred as having occurred movement of the camera 220 and / or the target area 202. In other examples, a user may input (e.g., into the data manager 105 of FIG. 1 ) a “new position,” “new setup,” “new gym” for one or both of the camera 220 and the target area 202.

[0047] In these or other embodiments where movement of one or both of camera 220 and target area 202 occurs, the accuracy of the estimate of ground location 240 may be maintained by locating the location (e.g., (U2', V2')) of target area 202. In some embodiments, locating target area 202 may include identifying defining points 245a-245e by using a neural network, such as neural network 115 of FIG.

[0048] In these or other embodiments, the defining points 245a-245e may represent geometric points in a UV coordinate system that correspond to structures in the target area 202. Similar to the parameters defining the target area 202 described above, the defining points 245a-245e may correspond to one or more features and / or boundaries of the target area 202, such as corners, lines, hashes, rims, nets, plates, bags, cones, chalk, goal posts, tape, dots, etc. In these or other embodiments, a neural network, such as the neural network 115 of FIG. 1, may be trained to associate elements or combinations of elements depicted in the two-dimensional image generated by the camera 220 with one or more features and / or boundaries of the target area 202.

[0049] In one example of image recognition training of a neural network, the neural network can be provided with input data (e.g., images), and the neural network's output (e.g., guesses) can be compared to expected results, such as predetermined or human-assigned labels. Using additional cycles through the input data, the neural network's weights can be changed to reduce the error rate of the guesses. For example, the weights in the neural network can be adjusted so that the guesses better match the predetermined or human-assigned labels of the images.

[0050] In these or other embodiments, input data provided to the neural network for training purposes may include images of the target area 202. Hundreds, thousands, or millions of images of the target area 202 may be provided to the neural network. Additionally or alternatively, the images of the target area 202 provided to the neural network may include labels corresponding to one or more features and / or boundaries of the target area 202, such as corners, lines, hashes, rims, nets, plates, bags, cones, chalk, goal posts, tape, dots, etc. For example, the following labels may be applied in the input data: defining point 245a of the target area 202 may be labeled "top left backboard corner," defining point 245b may be labeled "top right backboard corner," defining point 245c may be labeled "top left rectangle corner," defining point 245d may be labeled "top right rectangle corner," and defining point 245e may be labeled "center rim." In this manner, the neural network's predictions may be compared to the labels, and additional learning cycles through the input data may allow modification of the learned data and weights to reduce the error rate in identifying the target region 202, including identifying one or more features and / or boundaries of the target region 202.

[0051] After training a neural network (e.g., neural network 115 of FIG. 1 ), target region 202 may be found by the neural network in response to movement of one or both of camera 220 and target region 202. For example, after training the neural network, the neural network may identify definition points 245a-245e in images generated by camera 220. For example, after training the neural network, the neural network may identify definition points 245a-245e in images generated by camera 220 using learned data and modified weights from the training process. In these or other embodiments, additional or alternative image recognition techniques may be used in conjunction with the neural network to identify definition points 245a-245e. Examples may include using grayscale, RGB (red, green, and blue) values ​​ranging from 0 to 255, preprocessing techniques (e.g., image cropping / flipping / angle manipulation, adjusting image color tone, contrast, and saturation, etc.), testing a subset or small batch size of data against the entire dataset, and max pooling to reduce image dimensions by taking the maximum pixel value of a grid. In these or other embodiments, after definition points 245a-245e are identified, definition points 245a-245e may each be associated with a UV coordinate system. Additionally or alternatively, after definition points 245a-245e are identified, target region 202 may be associated as a whole with a new location (U2', V2').

[0052] Modifications, additions, or omissions may be made to environment 200 without departing from the scope of the present disclosure. For example, in some embodiments, environment 200 may include any number of other elements that may not be explicitly shown or described.

[0053] FIG. 2C illustrates an environment 200 in yet another example embodiment in which a ground position is estimated, configured in accordance with one or more embodiments of the present disclosure. As shown, FIG. 2C includes elements that are the same as or similar to those in FIG. 2A, with the following differences: a starting point 235 at location (U1′, V1′) and / or image times 250-264 corresponding to images 204-216, respectively.

[0054] In some embodiments, ground position 240 may be determined based on trajectory 225 despite movement (e.g., variation) of starting point 235 to unknown or different locations (U1', V1'). In these or other embodiments, variation in starting point 235 may be the result of a different player than the player used to train the neural network, a new shot not observed during training of the neural network, a higher or lower jump height than observed during training of the neural network, etc.

[0055] In some embodiments, movement of the starting point 235 may be detected. For example, using the background subtraction method described above, differences between the images used to train the neural network and images later generated by the camera 220 may indicate that movement of the starting point 235 has occurred. For example, in one example, the neural network may detect that a new player's starting point 235 is outside the range of observed starting points 235 for different players used to train the neural network. Additionally or alternatively, movement of the starting point 235 may be designated as having occurred. For example, a user may input (e.g., into the data manager 105 of FIG. 1 ) a “new session,” “new player,” “new shot development,” “new player height,” “new jump height,” etc., which will automatically be inferred as having caused movement of the starting point 235.

[0056] In these or other embodiments, variations in starting point 235, if not compensated for, may lead to a deterioration in the accuracy of estimated ground position 240. For example, variations in starting point 235 that exceed a threshold amount of variation may lead to estimated ground position 240 becoming less accurate and / or falling outside of an accuracy range (e.g., falling outside or exceeding an accuracy confidence interval). Thus, in some embodiments, a time-of-flight of object 230 may be calculated to compensate for variations in starting point 235. By calculating the time-of-flight of object 230, the previously unknown position of starting point 235 at (U1′, V1′) may be determined using the projectile's equations of motion. For example, given a known position (U2, V2) or calculated position (U2', V2') of target area 202, the time of flight of object 230, and / or various positions of object 230 during flight, starting point 235 at (U1', V1') can be solved to determine trajectory 225 and then ground position 240 using the projectile's equations of motion.

[0057] In these or other embodiments, the time of flight of object 230 may be determined by counting the number of images between the first and second images described above. Given a predetermined imaging frequency at which camera 220 generates images, the scalar product of the predetermined imaging frequency and the number of images (including the first image and images between the first and second images) may yield the time of flight of object 230. For example, image 204 (e.g., the first image) may correspond to time 250=t0. Image 206 may correspond to time 252=t1. Image 208 may correspond to time 254=t2. Image 210 may correspond to time 256=t3. Image 212 may correspond to time 258=t4. Image 214 may correspond to time 260=t5. The image associated with starting point 235 (e.g., the second image) may correspond to time 262=t n-1 and the image 216 (e.g., a stop image) may correspond to time 264 = t n Therefore, the time of flight of object 230 is approximately equal to time 262 minus time 250 (e.g., flight time t n-1Additionally or alternatively, the time of flight of the object 230 may be determined for a given imaging frequency within a semi-closed interval (t n-1 , t0] multiplied by the number of images in

[0058] Additionally or alternatively, the accuracy of the estimated time-of-flight of object 230 may be increased using interpolation and / or extrapolation. For example, image 204 may be the first image in which object 230 is shown to have entered target area 202. However, image 204 at time 250 may not correspond to the first instant in which object 230 enters target area 202. Thus, in some embodiments, interpolation may be used to more precisely define the time between images (e.g., image 204 and image 206) at which object 230 enters target area 202.

[0059] In these or other embodiments, the second image associated with the starting point 235 may be the last image in which a portion of the object 230 can be identified, as described above. However, the second image associated with the starting point 235 may not correspond to the first moment the object 230 begins moving along the trajectory 225. Thus, in some embodiments, extrapolation may be used to more precisely define the time beyond the image (e.g., the second image associated with the starting point 235) at which the object 230 begins moving along the trajectory 225. Additionally or alternatively, interpolation may be used to more precisely define the time between the images (e.g., the second image associated with the starting point 235 and the stop image 216) at which the object 230 first begins moving along the trajectory 225. Using the determined time-of-flight of the object 230, as described above for embodiments of the present disclosure, the starting point 235 at (U1′, V1′) may be solved to determine the trajectory 225 and then the ground position 240 using the projectile's equations of motion.

[0060] FIG. 3 illustrates an example method 300 for estimating the geolocation of any of FIGS. 1, 2A, 2B, and 2C. Method 300 may be performed by processing logic, which may include hardware (circuitry, dedicated logic, etc.), software (as executed on a computer system), or a combination of both, and the processing logic may be included in a client device or other computer system or device. However, other systems or combinations of systems may be used to perform method 300. For ease of explanation, the methods described herein are shown and described as a series of acts. However, acts in accordance with the present disclosure may occur in various orders and / or simultaneously, and may occur with other acts not shown and described herein. Furthermore, not all illustrated acts may be used to implement a method in accordance with the disclosed subject matter. Additionally, those skilled in the art will understand and appreciate that the methods may alternatively be represented as a series of interrelated states or events via a state diagram. Additionally, the methods disclosed herein can be stored on an article of manufacture, such as a non-transitory computer-readable medium, that facilitates transmitting and transferring such methods to a computing device. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage medium. Although illustrated as individual blocks, various blocks may be divided into further blocks, combined into fewer blocks, or omitted, depending on the desired implementation.

[0061] Method 300 may begin at block 305, where a group of images taken by a camera over time in an environment is received. At block 310, a first location of an object in a target region of the environment in a first image of the group of images may be identified. At block 315, a second location of the object in a second image of the group of images may be identified.

[0062] At block 320, an estimated trajectory of the object may be determined based on the first position of the object and the second position of the object. In some embodiments, the estimated trajectory of the object may be determined based on multiple positions of the object, such as three positions, five positions, seven positions, fifteen positions, approximately fifty positions, or any number of positions. In these or other embodiments, the estimated trajectory of the object may be based on the first position of the object and the second position of the object without further constraints other than the target region being located at a previously identified position in the UV coordinate system and the starting point of the trajectory being located at another previously identified position in the UV coordinate system. Additionally or alternatively, the estimated trajectory of the object may be determined despite movement of one or both of the camera and the target region. For example, in response to movement of one or both of the camera and the target region, a neural network may find the target region by identifying a set of defining points corresponding to features within the target region, thereby determining the trajectory of the object. Additionally or alternatively, the estimated trajectory of the object may be determined despite movement and / or variation of the starting point of the trajectory. For example, in response to movement and / or variation in the starting point, the time of flight of the object may be determined by counting the number of images between the first and second images.

[0063] At block 325, a ground position within the environment associated with the starting point of the object's estimated trajectory may be estimated based on the estimated trajectory of block 320. In these or other embodiments, the ground position may be estimated based on any combination of the aforementioned embodiments of block 320. For example, estimating the ground position may include inputting into a neural network curve coefficients corresponding to the object's trajectory and one or both of a set of defining points corresponding to features within the target region and a time-of-flight of the object. At block 330, the ground position associated with the starting point of the object's estimated trajectory may be provided for display in a graphical user interface.

[0064] Those skilled in the art will understand that for these processes, operations, and methods, the functions and / or operations performed may be realized in differing orders. Furthermore, the outlined functions and operations are provided only as examples, and some of the functions and operations may be optional, combined into fewer functions and operations, or expanded into additional functions and operations without detracting from the essence of the disclosed embodiments.

[0065] FIG. 4 illustrates an example system 400 that may be used to estimate ground position. System 400 may be configured in accordance with at least one embodiment described herein. System 400 may include a processor 410, a memory 412, a communication unit 416, a display 418, a user interface unit 420, and peripherals 422, all of which may be communicatively coupled. In some embodiments, system 400 may be part of any of the systems or devices described in this disclosure. For example, system 400 may be part of data manager 105 of FIG. 1 . Additionally or alternatively, system 400 may be part of computing system 110 and / or neural network 115.

[0066] In general, processor 410 may include any computer, computing entity, or processing device, including various computer hardware or software modules, configured to execute instructions stored on any applicable computer-readable storage medium. For example, processor 410 may include a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), or any other digital or analog circuit configured to interpret and / or execute program instructions and / or process data.

[0067] 4 as a single processor, it will be understood that processor 410 may include any number of processors distributed across any number of networks or physical locations configured to individually or collectively perform any number of operations described in this disclosure. In one embodiment, processor 410 may execute and / or interpret program instructions and / or process data stored in memory 412. In one embodiment, processor 410 may execute program instructions stored in memory 412.

[0068] For example, in some embodiments, processor 410 may execute program instructions stored in memory 412, e.g., related to determining ground positions, such that system 400 may perform or direct the performance of operations associated therewith as directed by the instructions. In these and other embodiments, the instructions may be used to perform one or more operations of method 300 of FIG. 3 described above.

[0069] Memory 412 may include a computer-readable storage medium or one or more computer-readable storage media that carry or have computer-executable instructions or data structures stored thereon. Such computer-readable storage media may include any available medium that can be accessed by a computer, such as processor 410. By way of example, and not limitation, such computer-readable storage media may include non-transitory computer-readable storage media, including random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid-state memory devices), or any other storage medium that can be used to carry or store specific program code in the form of computer-executable instructions or data structures and that can be accessed by a computer. Combinations of the above may also be included within the scope of computer-readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause processor 410 to perform an operation or group of operations described in this disclosure. In these and other embodiments, the term "non-transitory" as described in this disclosure should be intended to exclude only those types of transitory media held to be outside the scope of patentable subject matter in Federal Circuit decision In re Nuijten, 500 F.3d 1346 (Fed. Cir. 2007). Combinations of the above may also be included within the scope of computer-readable media.

[0070] The communications unit 416 may include any element, device, system, or combination thereof configured to transmit or receive information over a network. In some embodiments, the communications unit 416 may communicate with other locations, other devices at the same location, or other elements within the same system. For example, the communications unit 416 may include a modem, a network card (wireless or wired), an infrared optical communications device, a wireless communications device (such as an antenna), and / or a chipset (such as a Bluetooth device, an 802.6 device (e.g., a metropolitan area network (MAN)), a Wi-Fi device, a WiMax device, a cellular communications device, etc.), etc. The communications unit 416 may enable data to be exchanged with a network such as those described in this disclosure and / or any other device or system.

[0071] Display 418 may be configured as one or more displays, such as an LCD, LED, or other type of display. Display 418 may be configured to output a ground location associated with the starting point of the object's trajectory, a schematic or representation of the environment in which the ground location is located, a user interface, and other data as directed by processor 410.

[0072] The user interface 420 may include any device for allowing a user to interact with the system 400. The user interface 420 may include a mouse, a trackpad, a keyboard, buttons, and / or a touch screen, among other devices. The user interface unit 420 may receive input from a user and provide the input to the processor 410. In some embodiments, the user interface unit 420 and the display 418 may be combined.

[0073] Peripherals 422 may include one or more devices. For example, peripherals may include sensors, microphones, and / or speakers, among other peripherals. In these and other embodiments, microphones may be configured to capture audio. Speakers may broadcast audio received by or otherwise generated by system 400. Sensors may be configured to sense changes in light, pixels, sound, motion, rotation, position, orientation, magnetization, acceleration, tilt, vibration, etc.

[0074] Modifications, additions, or omissions may be made to system 400 without departing from the scope of the present disclosure. For example, in some embodiments, system 400 may include any number of other elements that may not be explicitly shown or described. Furthermore, depending on the particular implementation, system 400 may not include one or more of the elements shown and described.

[0075] As mentioned above, the embodiments described herein may involve the use of a computer (e.g., a processor element) including various computer hardware or software modules. Further, as mentioned above, the embodiments described herein may be implemented using computer-readable media (e.g., memory elements) for carrying or having computer-executable instructions or data structures stored thereon.

[0076] In accordance with common practice, the various features illustrated in the drawings may not be drawn to scale. The illustrations presented in this disclosure are not intended to represent the actual appearance of particular apparatuses (e.g., devices, systems, etc.) or methods, but are merely idealized representations employed to describe various embodiments of the present disclosure. Accordingly, dimensions of various features may be arbitrarily increased or decreased for clarity. In addition, some of the drawings may be simplified for clarity. Thus, the drawings may not depict every element of a given apparatus (e.g., device) or every operation of a particular method.

[0077] Herein, the terms used, particularly in the appended claims (e.g., the body of the appended claims), are intended to be broadly "open" terms (e.g., the word "including" should be interpreted as "including, but not limited to," the word "having" should be interpreted as "having at least," the word "includes" should be interpreted as "including, but not limited to," etc.).

[0078] Additionally, if a specific number of introduced claim recitations is intended, such intention shall be expressly recited in the claim, and no such intention exists absent such recitation. For example, as an aid to understanding, the following appended claims may include the use of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed as implying that introducing a claim recitation with the indefinite article "a" or "an" limits any particular claim including such introduced claim recitation to embodiments including only one such recitation (e.g., "a" and / or "an" should be construed to mean "at least one" or "one or more"). The same applies to the use of definite articles used to introduce claim recitations, even when the same claim includes the introductory phrases "one or more" or "at least one" and an indefinite article such as "a" or "an."

[0079] Additionally, even if a specific number is explicitly recited for an introduced claim recitation, a person skilled in the art will recognize that such a recitation should be interpreted to mean at least the recited number (e.g., the unqualified recitation "two recitations" without other modifiers means at least two recitations, i.e., two or more recitations). Furthermore, when similar conventions such as "at least one of A, B, and C, etc." or "one or more of A, B, and C, etc." are used, this interpretation is generally intended to include A only, B only, C only, A and B together, A and C together, B and C together, or A, B, and C together, etc. For example, the use of the word "and / or" is intended to be interpreted in this manner.

[0080] Furthermore, any alternative word or phrase presenting two or more alternative words, whether in the specification, claims, or drawings, should be understood to contemplate the possibility of including one of those words, either of those words, or both words. For example, the phrase "A or B" should be understood to include the possibilities of "A" or "B" or "A and B."

[0081] However, the use of such phrases should not be construed as implying that introducing a claim recitation with the indefinite article "a" or "an" limits any particular claim that includes such an introduced claim recitation to embodiments containing only one such recitation, even when the same claim includes the introductory phrase "one or more" or "at least one" and an indefinite article such as "a" or "an" (e.g., "a" and / or "an" should be construed to mean "at least one" or "one or more"). The same applies to the use of definite articles used to introduce claim recitations.

[0082] Additionally, terms such as "first," "second," and "third" are not necessarily used herein to imply a particular order or number of elements. Generally, terms such as "first," "second," and "third" are used as generic identifiers to distinguish between different elements. Terms such as "first," "second," and "third" should not be understood to imply a particular order unless otherwise indicated. Furthermore, terms such as "first," "second," and "third" should not be understood to imply a particular number of elements unless otherwise indicated. For example, a first device may be described as having a first side, and a second device may be described as having a second side. Use of the term "second side" for a second device may be intended to distinguish such side of the second device from the "first side" of the first device and does not imply that the second device has two sides.

[0083] All examples and conditional language described herein are intended as educational materials to help the reader understand the disclosure and concepts contributed by the inventors to advance the technology, and should not be construed as being limited to such specifically described examples and conditions. Although embodiments of the present disclosure have been described in detail, various changes, substitutions, and alterations may be made therein without departing from the spirit and scope of the present disclosure. [Explanation of symbols]

[0084] 100 Environment 105 Data Manager 110 Computing Systems 115 Neural Networks 120 Camera 122 Field of view 125 orbit 130 Object 135 Starting point 140 Ground position 200 Environment 202 Target Area 220 Camera 222 Field of view 225 orbit 230 Object 235 Starting point 240 Ground position 245a-245e Definition points 400 System 410 processor 412 memory 416 Communication Unit 418 Display 420 User Interface Unit 422 Peripheral Equipment

Claims

1. acquiring a plurality of images taken with a single camera over a period of time within an environment, at least some of the plurality of images including objects launched into the air by a player; locating the target region of the environment by identifying a plurality of defining points corresponding to features within the target region using a neural network in response to movement of one or both of the camera and the target region of the environment; identifying a first location of the object within the target region of the environment in a first image of the plurality of images in a UV coordinate system; identifying a second location of the object in a second image of the plurality of images in the UV coordinate system by analyzing the plurality of images backward from the first image until a center portion of a pixel associated with the object is reached in a stop image where the center portion of the pixel is not identified, the second image being chronologically positioned between the first image and the stop image; determining an estimated trajectory of the object based on the first position of the object and the second position of the object; estimating, based on the estimated trajectory, a ground position in the environment associated with a starting point of the estimated trajectory of the object, wherein the ground position is estimated based on a line of the player's center of mass, center of gravity, elbow, heel, or hip, and the starting point is identified based on a neural network trained with data of different shots taken by the player; and providing the ground position associated with the starting point of the estimated trajectory of the object for display in a graphical user interface. A method comprising:

2. 2. The method of claim 1, wherein the ground location is further estimated by projecting a point on the player onto the ground near a time when the object is located at the starting point based on a location where the player jumped or stood after, including, or before the time when the object is located at the starting point.

3. The method of claim 1 , wherein the shot comprises at least one of a standing shot, a jump shot, a fadeaway shot, and a floater shot.

4. Identifying the object within the target region triggers determining the estimated trajectory of the object. The method of claim 1.

5. Identifying the first location of the object in the first image and the second location of the object in the second image includes identifying pixels representing at least a portion of the object. The method of claim 1.

6. Identifying pixels representing at least a portion of the object includes identifying pixels using a K-nearest neighbor algorithm; The central portion of the identified pixel represents the center of gravity of the object. The method of claim 5.

7. locating the object is performed backward from the first image until a stop image is reached; a center portion of pixels associated with the object in the still image is unidentifiable; The second image is arranged in time order between the first image and the stop image. The method of claim 5.

8. the second position of the object corresponds to the starting point of the estimated trajectory of the object; The method comprises: determining a time-of-flight of the object in response to a variance in the starting point of the estimated trajectory exceeding a variance threshold; further comprising The time of flight is determined by counting the number of images between the first image and the second image. The method of claim 1.

9. Determining the estimated trajectory includes identifying curve coefficients by fitting the first position and the second position to a curve. The method of claim 1.

10. Estimating the ground position includes inputting the curve coefficients and one or both of a plurality of defining points corresponding to features within the target region and a time of flight of the object into a neural network.

10. The method of claim 9.

11. memory, and one or more processors communicatively coupled to the memory; A system comprising: The one or more processors execute instructions stored in the memory to provide the system acquiring a plurality of images taken with a single camera over a period of time within an environment, wherein at least some of the plurality of images include an object that has been launched into the air by a player; using a neural network to locate a target area of ​​the environment by identifying a plurality of defining points corresponding to features within the target area in response to movement of one or both of the camera and a target area of ​​the environment; identifying a first location of the object within the target region of the environment in a first image of the plurality of images in a UV coordinate system; identifying a second location of the object in a second image of the plurality of images in the UV coordinate system by analyzing the plurality of images backward from the first image until a stop image is reached in which a center portion of a pixel associated with the object is not identified, wherein the second image is chronologically arranged between the first image and the stop image; determining an estimated trajectory of the object based on the first position of the object and the second position of the object; based on the estimated trajectory, estimating a ground position in the environment associated with a starting point of the estimated trajectory of the object, the ground position being estimated based on a line of the player's center of mass, center of gravity, elbow, heel, or hip, and the starting point being identified based on a neural network trained with data of different shots taken by the player; and providing the ground position associated with the starting point of the estimated trajectory of the object for display in a graphical user interface. A system configured to cause a user to perform operations including:

12. Identifying the object within the target region triggers determining the estimated trajectory of the object. The system of claim 11.

13. Identifying the first location of the object in the first image and the second location of the object in the second image includes identifying pixels representing at least a portion of the object. The system of claim 11.

14. Identifying pixels representing at least a portion of the object includes identifying pixels using a K-nearest neighbor algorithm; The central portion of the identified pixel represents the center of gravity of the object. The system of claim 13.

15. locating the object is performed backward from the first image until a stop image is reached; a center portion of pixels associated with the object in the still image is unidentifiable; The second image is arranged in time order between the first image and the stop image. The system of claim 13.

16. the second position of the object corresponds to the starting point of the estimated trajectory of the object; Execution of the instructions further causes the system to: determining a time-of-flight of the object in response to a variation in the starting point of the estimated trajectory exceeding a variation threshold; The time of flight is determined by counting the number of images between the first image and the second image. The system of claim 11.

17. Determining the estimated trajectory includes identifying curve coefficients by fitting the first position and the second position to a curve. The system of claim 11.

18. one or more processors; and Non-transitory computer-readable medium containing instructions A system comprising: The instructions, in response to execution by the one or more processors, acquiring a plurality of images taken with a single camera over a period of time within an environment, wherein at least some of the plurality of images include an object that has been launched into the air by a player; locating the target area of ​​the environment by identifying a plurality of defining points corresponding to features within the target area using a neural network in response to movement of one or both of the camera and the target area of ​​the environment; Identifying a first location of the object within the target region of the environment in a first image of the plurality of images in a UV coordinate system; identifying a second location of the object in a second image of the plurality of images in the UV coordinate system by analyzing the plurality of images backward from the first image until a stop image is reached in which a center portion of a pixel associated with the object is not identified, the second image being chronologically arranged between the first image and the stop image; determining an estimated trajectory of the object based on the first position of the object and the second position of the object; Based on the estimated trajectory, estimate a ground position in the environment associated with a starting point of the estimated trajectory of the object, the ground position being estimated based on a line of the player's center of mass, center of gravity, elbow, heel, or hip, and the starting point being identified based on a neural network trained with data of different shots taken by the player; and providing the ground position associated with the starting point of the estimated trajectory of the object for display in a graphical user interface. Controlling the execution of operations, including the system.

Citation Information

Patent Citations

  • Offside line detector, program therefor, and player location detector

    JP2005209148A

  • Method and system for detecting and classifying events during exercise

    JP2008538623A

  • Image recognition device, image recognition method and computer program for image recognition

    JP2013012163A

  • Image processing method, image processing program, and image processing apparatus

    JP2017091092A

  • Systems and methods for tracking basketball player performance

    US20180056124A1