Recognition of the position of the striker of an object

By utilizing audio data and physical models, the tracking system accurately identifies and associates the strike positions of players in open space golf courses, solving the problem of difficulty in accurately tracking strikers in undivided areas in the prior art, improving real-time information feedback and gaming experience.

CN114901368BActive Publication Date: 2025-06-24TOP GOLF INT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180007844.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-01-06
Filing Date
2021-01-05
Publication Date
2025-06-24
Estimated Expiration
2041-01-05

AI Technical Summary

Technical Problem

In open space golf course tees, it is difficult to accurately identify and track players’ strike positions, especially if there is no explicitly divided area.

Method used

Identify and associate the location of the hitter by using audio data recorded by the hitter-operated computing devices, combined with the tracking system's observation of object strike events and extrapolation of physical models.

Benefits of technology

It realizes accurate identification and tracking of players' strike positions in an undivided open space, improves the real-time information feedback and gaming experience of hitters, and reduces dependence on additional sensor devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114901368B_ABST
    Figure CN114901368B_ABST
Patent Text Reader

Abstract

A method, system, and apparatus of a computer program product including media encoding for identifying the position of a striker of an object, in at least one aspect, includes the following method, which includes: receiving a request from a mobile computing device operated by the striker, the striker being located in a striking area having space for two or more strikers to strike an object into a target area; initiating an audio recording through a microphone of the mobile computing device; identifying a physical position in the striking area and a first strike time determination of the object struck from the striking area based on sensor observations of an object flying between the striking area and the target area; identifying a second strike time determination in the audio recording; and associating the physical position with the mobile computing device when the second strike time determination matches the first strike time determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the benefit of priority of U.S. Patent Application No. 62 / 957,766, filed on January 6, 2020, entitled "IDENTIFYING A LOCATION FOR A STRIKER OF AN OBJECT", which is incorporated herein by reference in its entirety. Background Art

[0003] This specification relates to identifying the location of a striker of an object and tracking information corresponding to the striker and the object in motion.

[0004] The striker can be a golfer, the object can be a golf ball, and the area where the golf ball is struck can be a tee box. A tee box is an area designated for a player to strike a golf ball and is typically part of a larger area known as a driving range. The driving range is maintained as an environment for players to strike golf balls. The tee box can be divided into one or more "bays", and one or more players can occupy a bay.

[0005] In some cases, the tee box is not divided into bays but is an open space, such as a grassland. Typically, players maintain a safe distance from other players who are also striking golf balls. However, unlike a tee box with designated bays, an open - space tee box is not divided, and players can freely strike a golf ball from any position that is not currently occupied by another player. Summary of the Invention

[0006] This specification describes techniques related to identifying the location of a striker who strikes an object, such as a golf ball, from a designated striking area monitored by a tracking system.

[0007] The techniques described include using data obtained from an audio recording made by a computing device operated by the striker to identify the location of the striker. The tracking system identifies the location of the striker by comparing the strike time of the object struck from the striking area as determined by the tracking system with the strike time of the object determined using the audio recording received from the computing device. In this specification, a strike event is the striking of an object in the striking area observed by the tracking system using one or more sensors. Information about the strike event includes the time when the object was struck (i.e., its strike time), and the physical location within the striking area where the object was struck.

[0008] The tracking system can observe an object in motion after it has been struck and can extrapolate the trajectory of the object backward in time (and potentially forward). The tracking system can use a physical model and the observed motion characteristics of the object (such as the angle, pitch, or velocity of the object) and potentially the characteristics of the target area where the object was struck (such as the wind conditions in the target area) to generate the trajectory. Based on the extrapolated trajectory, the tracking system can identify the strike location of the object in the strike area at the time it was struck and the strike time of the object. The tracking system can observe two or more objects struck from the strike area and can extrapolate the trajectory of each object in real time. In some embodiments, the tracking system directly observes the initial position of the object before it was struck and the time it was struck.

[0009] The tracking system can associate the physical position of the struck object in the strike area with the striker who owns the computing device that sent the audio recording. As part of associating the physical position of the struck object with the computing device, the tracking system can determine whether the strike time of the object heard in the audio recording matches the observed strike time of the object within a time threshold.

[0010] The tracking system can distinguish among the heard strikes by determining whether the strike location of one of the heard strikes is from a position previously associated with the computing device.

[0011] The tracking system can initiate one or more audio recordings and identify one or more strike events of the object as occurring due to the striker striking the object. Based on the identified strike events, the tracking system can associate the location of the striker with the average position of the strike locations of the strike events.

[0012] Once the tracking system makes the association and identifies the location of the striker, the system can send information about subsequent strikes of objects at the location of the striker to be presented on the display of the computing device owned by the striker.

[0013] In general, one or more aspects of the subject matter described in this specification can be embodied in a method that includes the following actions: receiving a request from a mobile computing device operated by a striker located in a strike area that has space for two or more strikers to strike an object into a target area, where the mobile computing device includes a display and a microphone; in response to the request, initiating an audio recording via the microphone of the mobile computing device; identifying a physical position in the strike area and a first determination of a strike time of an object struck from the strike area based on sensor observations of an object flying between the strike area and the target area; identifying a second determination of a strike time in the audio recording; and when the second determination of the strike time matches the first determination of the strike time, associating the physical position that has been identified based on the sensor observations with the mobile computing device.

[0014] Other embodiments of this aspect include corresponding systems, devices, and computer program products. These and other embodiments may optionally include one or more of the following features.

[0015] An embodiment may include sending information about one or more object strikes to a mobile computing device for presentation on a display of the mobile computing device when one or more identified locations of the one or more object strikes correspond to physical locations in a strike area.

[0016] Initiating an audio recording via a microphone of a mobile computing device in response to a request may include causing the computing device to display a prompt for recording the audio recording, and the audio recording may be recorded during a time interval.

[0017] The object may be a first object, the physical location may be a first physical location, the mobile computing device may be a first mobile computing device, and an embodiment may include: observing a second object and the first object in flight; identifying a second physical location of the second object in a strike area; and associating the first physical location may include determining that the second physical location is associated with a second mobile computing device.

[0018] Identifying a second strike time determination in an audio recording may include filtering ambient noise from the audio recording.

[0019] The audio recording may be a first audio recording, the physical location may be a first physical location, the object may be a first object, and an embodiment may include: identifying a second physical location of a second object using a strike time determination that matches a second strike time determination; in response to identifying the second physical location, initiating one or more second audio recordings via a microphone of the mobile computing device until a single strike time determination of an object that matches the strike time determination identified in a second audio recording of the one or more second audio recordings is identified; identifying a third physical location and a third strike time determination in a strike area of a single object struck from a strike area based on sensor observations of a single object flying between the strike area and a target area; and associating an average physical location calculated based on the first physical location and the third physical location with the mobile computing device when the second strike time determination matches the first strike time determination and the third strike time determination matches the strike time determination identified from the second audio recording.

[0020] The strike area may be a tee box of a golf course.

[0021] The object may be a golf ball, and sending information about one or more object strikes to a mobile computing device may include sending golf shot statistics, a golf shot animation in a virtual golf game, or a combination thereof.

[0022] Determining the physical location in the striking area and the first striking time of an object may include: using the observed motion characteristics of the object to calculate the extrapolated trajectory of the object.

[0023] In general, one or more aspects of the subject matter described in this specification may be embodied in a method including the following actions: using a microphone of a mobile computing device including a microphone and a display to generate an audio recording, where the mobile computing device is operated by a striker located in the striking area, the striking area having a space for two or more strikers to strike an object into a target area observed by one or more sensors of a tracking system; identifying the physical location in the striking area and the determination of the first striking time of the object struck from the striking area based on sensor observations of the object flying between the striking area and the target area, where the sensor observations are obtained by one or more computers; identifying a second striking time determination in the audio recording; when the second striking time determination matches the first striking time determination, associating the physical location that has been identified based on the sensor observations with the mobile computing device; and receiving information about one or more object strikes from one or more computers for presentation to the display of the mobile computing device, where the one or more object strikes originate from the physical location associated with the mobile computing device in the striking area.

[0024] Other embodiments of this aspect include corresponding systems, devices, and computer program products. These and other embodiments may optionally include one or more of the following features.

[0025] An embodiment may include sending a request to one or more computers of the tracking system; and in response to the request, obtaining sensor observations from one or more computers of the tracking system.

[0026] An embodiment may include displaying a prompt to record the audio recording; and generating the audio recording during a time interval.

[0027] In general, one or more aspects of the subject matter described in this specification may be embodied in a method including the following actions: sending a request to one or more computers of the tracking system, where the mobile computing device is operated by a striker located in the striking area, the striking area having a space for two or more strikers to strike an object into a target area observed by one or more sensors of a tracking system; in response to the request, receiving one or more instructions for initiating an audio recording by the microphone; using the microphone to generate the audio recording; sending data of the audio recording to one or more computers; and receiving information about one or more object strikes from one or more computers for presentation to the display of the mobile computing device, where the one or more object strikes originate from the physical location of the mobile computing device in the striking area.

[0028] Other embodiments of this aspect include corresponding systems, apparatuses, and computer program products. These and other embodiments may optionally include one or more of the following features.

[0029] An embodiment may include displaying a prompt for recording an audio recording, and generating the audio recording may include recording audio during a time interval.

[0030] The data of the audio recording may be the complete audio recording.

[0031] An embodiment may include identifying a first strike time determination in the audio recording; and transmitting the audio recording data may include transmitting the first strike time determination to one or more computers.

[0032] Receiving information about one or more additional object strikes of a mobile computing device may include receiving golf stroke statistics, a golf stroke animation in a virtual golf game, or a combination thereof.

[0033] Other embodiments of this aspect include corresponding systems, apparatuses, and computer program products. These and other embodiments may optionally include one or more of the following features.

[0034] An embodiment may include transmitting a request to one or more computers of a tracking system; and in response to the request, obtaining sensor observations from the one or more computers.

[0035] An embodiment may include: identifying a first strike time determination in the audio recording; and wherein transmitting the audio recording data includes transmitting the first strike time determination to one or more computers.

[0036] The audio recording may be a first audio recording, the physical location may be a first physical location, the object may be a first object, and an embodiment may include: identifying a second physical location of a second object using a strike time determination that matches a second strike time determination; in response to identifying the second physical location, initiating one or more second audio recordings through a microphone of the mobile computing device until a single strike time determination of an object that matches the strike time determination identified in the second audio recording among the one or more second audio recordings is identified; identifying a third physical location and a third strike time determination in a strike area of a single object struck from the strike area based on sensor observations of a single object flying between the strike area and a target area; and associating an average physical location calculated based on the first physical location and the third physical location with the mobile computing device when the second strike time determination matches the first strike time determination and the third strike time determination matches the strike time determination identified from the second audio recording.

[0037] The strike area may be a tee box of a golf course.

[0038] The object can be a golf ball, and sending information about the striking of one or more additional objects to a mobile computing device can include sending golf shot statistics, golf shot animations in a virtual golf game, or a combination thereof.

[0039] Receiving information about the striking of one or more additional objects by a mobile computing device can include sending golf shot statistics, golf shot animations in a virtual golf game, or a combination thereof.

[0040] Various embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. The position of a striker can be accurately identified by a tracking system that tracks an object struck from a striking area, e.g., a player on a grass tee box. The tracking system can provide information about the striker's performance in striking an object from the striking area by correlating an object observed in the striking area that has been struck by the striker and providing that information to the striker via a computing device owned by the striker. As a result, the striking area tracked by the tracking system need not be divided into designated locations associated with different strikers, but can be an undivided open space with minimal sensor devices.

[0041] The tracking system can be configured to separate ambient noise from an audio recording generated by a computing device operated by the striker and interact with the computing device to ensure that the tracking system accurately identifies the striker's position within the striking area. Since the tracking system uses recordings from a computing device (e.g., a smartphone, tablet, or laptop computer) operated by the striker, no additional devices need to be deployed in the striking area.

[0042] Compared to conventional methods (such as using Global Positioning System (GPS) location, which is typically not precise enough to distinguish strikers from one another when they are in close proximity within a striking area), the tracking system can more accurately identify the position of a striker within the striking area by the techniques described in this specification. Additionally, GPS location is not always reliable because a striker may be located in a position within the striking area that is blocked by a solid object (e.g., a building or a tree). If high-precision GPS technology is used, strikers within the striking area may not have computing devices with the necessary technology. In contrast, the systems and techniques described in this application have low hardware requirements for the computing devices (i.e., the display and microphone) operated by the striker. Additionally, the tracking system can more accurately determine the position of a striker than other conventional methods (such as by prompting strikers to send their positions to the tracking system, e.g., by estimating their position on a map of the striking area).

[0043] The tracking system can also be more reliable than conventional methods that require a user to make decisions for associating the location of a strike event observed in a strike zone with the corresponding striker. For example, instead of prompting a striker to strike two or more objects and then identifying on a map of the strike zone the locations of the indicated objects as being struck, the tracking system allows the physical location to be automatically associated with the striker by simply prompting a single test strike and matching the timing of the sound of the test strike with the observation of the test strike.

[0044] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 An example of a tracking system that identifies the positioning of a striker who strikes an object from a strike zone to a target zone is shown.

[0046] Figure 2 An example of a computing device that displays an animation of a simulated object strike and statistical information is shown.

[0047] Figure 3 is a schematic diagram of a data processing system that includes a data processing device that identifies the location of a computing device.

[0048] Figure 4 is a flowchart that illustrates an example of a process for identifying the location of a computing device that strikes an object in a target zone tracked by a tracking system.

[0049] Figure 5 is a flowchart that illustrates an example of a process for matching the strike time of an object in flight with the strike time in an audio recording.

[0050] Figure 6 An example of a strike zone with a single computing device and one observed object is shown.

[0051] Figure 7 An example of a strike zone with a single computing device and two observed objects is shown.

[0052] Like reference numerals and designations in the various drawings indicate like elements. DETAILED DESCRIPTION

[0053] As Figure 1 shown, the tracking system 100 identifies the positioning of a striker who strikes an object from a strike zone 110 to a target zone 120. The strike zone 110 is a specified physical space in which a striker having a computing device (e.g., computing devices 125A to C) can strike an object into the target zone 120.

[0054] A striker is a person who strikes an object from a striking area 110 into a target area 120. The striker can be a striker who strikes an object from the striking area 110 using a tool (such as a golf club or a baseball bat). Alternatively, the striker can be a striker who strikes an object from the striking area 110 using a part of his own body (such as his foot).

[0055] As an example, the tracking system 100, the striking area 110, and the target area 120 can be part of a golf facility. The striker can be a golfer who hits a golf ball from the striking area 110 (such as a tee box) into the target area 120 (such as a driving range).

[0056] The target area 120 can have various shapes and sizes, such as 300 to 500 feet wide and 600 to 900 feet long. The target area 120 can include a target 130 and a net 135 for enclosing the target area 120. However, these components are not required. In some embodiments, the target area 120 is any physical space designated for the object struck by the striker, such as an open field.

[0057] The striking area 110 is an open space for the striker to strike an object into the target area 120. The striking area 110 can be part of a golf facility, and / or the striking area 110 can be an open tee box, such as a grass tee box. Generally, the striking area 110 does not have segmented markings or obstacles indicating discrete positions within the striking area 110, such as a "golf bay". The striker can strike an object from any position within the striking area 110, and that position itself can be a free part of the striking area 110 not occupied by other strikers, for example, between 1 meter and 5 meters away from other strikers. The position of the striker in the striking area 110 is measured by the space physically occupied by the striker and a certain amount of additional space (such as 2 square meters) so that the striker can manipulate and strike the object without being hindered by obstacles or other strikers.

[0058] The striking area 110 is monitored by a sensor 140. Generally, the sensor 140 is configured to receive sensing data about the object struck by the striker in the striking area 110. In some embodiments, one or more additional sensors are also implemented and configured to receive sensing data about the struck object from the striking area 110.

[0059] One or more additional sensors can be of different types, such as optical or radar, but generally receive sensed data for determining the strike location and strike time of an object struck from the strike area 110 (collectively referred to as "strike events"). The sensor 140 can be a stereo camera unit, for example, a single stereo camera or two or more cameras operating together to provide stereo vision of an object in flight.

[0060] When each sensor is a single camera, the additional sensors can be used to create a stereo vision system. Alternatively or additionally, the additional sensors can be used to cover a larger strike area.

[0061] In some embodiments, two or more stereo camera sensors 140 are used to track an object flying in three-dimensional space. In some embodiments, at least one additional sensor is a sensor unit that integrates a radar device and a camera to track an object in three dimensions, where the camera is used to provide angular information of the object in a two-dimensional plane, and the radar device is used (in combination with the camera) to provide depth information of the object in a dimension perpendicular to the plane. For example, for each in-flight camera observation of an object, the radial distance to the object is used to calculate the depth distance to the ball based on the camera angle of the in-flight camera observation (using the pinhole camera model, triangulation, and the known separation distance between the camera and the radar device, which can be zero). Other sensor types and sensor data combinations are also possible.

[0062] The sensor 140 can be communicatively coupled to one or more computers, for example, via a wired connection to a computer physically located at or near the strike area 110. Alternatively or additionally, the sensor 140 (and optionally, one or more additional sensors) is communicatively coupled to a computer wirelessly via a local area network or a wide area network. The connection can be a simplex, duplex, or half-duplex connection.

[0063] Note that the sensor 140 can be, for example, part of a computer system for a golf facility that manages a golf game and sends information about a golf stroke (such as a simulated golf stroke animation in a virtual golf game and / or a ball tracking overlay in an augmented reality golf stroke viewer) to the computing devices 125A to C in the tee area / strike area.

[0064] As described below with reference to Figure 2 the tracking system 100 uses data processing means implemented using the sensor 140 and optionally one or more additional sensors to determine the strike location and strike time of an object struck from the strike area 110.

[0065] In some embodiments, the tracking system 100 does not directly observe the object before it is struck from the strike zone 110, but instead identifies the strike location and strike time of the object based on observations of the moving object. After striking the object, the tracking system 100 is configured to extrapolate the trajectory of the object backward (and potentially forward) in time.

[0066] When an object strike is detected, the tracking system 100 can determine the three-dimensional trajectory of the object in the three-dimensional physical space of the target area 120 based on the initial observations of the object observed in motion. Determining the trajectory can involve using a physical model of the object's flight applied to three-dimensional coordinates in three-dimensional space, as determined from the initial observations of the object. Thus, the effects of gravity, as well as other physical parameters (such as wind speed and direction), and / or estimated ball rotation can be taken into account. An object struck from the strike zone 110 can be assumed to have uniform physical properties, such as the same shape, size, and weight.

[0067] In some embodiments, the tracking system 100 directly observes the object in the strike zone 110 at the moment the object is struck. When the object is struck and begins to move through the air, the tracking system 100 records the strike location and strike time of the object.

[0068] The tracking system 100 maintains a continuous clock such that when the tracking system 100 identifies that the object has been struck, the tracking system 100 uses the clock and, in some embodiments, the extrapolated trajectory of the object backward in time, to record the strike time of the object with a timestamp. Additionally, the tracking system 100 can assign an identifier to the strike event of the observed object.

[0069] Each striker in the strike zone 110 has a corresponding computing device, e.g., one of the computing devices 125A - C. The computing device can be any suitable mobile device communicatively coupled to the tracking system 100 via client software installed on the computing device, such as a smart phone, tablet computer, or laptop computer. A striker can bring in and take out one of the computing devices when entering and leaving the strike zone 110. At any given time, the strike zone 110 can have zero, one, or more than one computing device in the strike zone 110.

[0070] The client software for each of the computing devices 125A - C can generally initiate requests to the tracking system 100. The request can be a request to initiate a strike session. A strike session is the period of time during which a striker strikes an object from the strike zone 110. The client software can receive input from the striker indicating the start and end of the strike session.

[0071] As part of initiating a hitting session, the tracking system 100 can determine whether a computing device used to request the client software has previously communicated with the tracking system 100. If not, the tracking system 100 can generate a new striker profile for the striker and associate the profile with the computing device. If the computing device has previously communicated with the tracking system, such as by previously sending a request to initiate a hitting session, the tracking system can transmit information maintained as part of the striker profile associated with the computing device, including information recorded during a previous hitting session for the striker.

[0072] The tracking system 100 tracks information corresponding to a striker having a computing device during a hitting session and provides the information to the computing device via the client software. The client software can receive input from the striker indicating the start and end of the hitting session.

[0073] The client software can receive statistical information corresponding to a hitting session of a corresponding striker for the corresponding computing device for the client software, and can receive information for presenting a simulated golf stroke animation and / or a ball tracking overlay in a virtual golf game and / or an augmented reality golf stroke viewer on a display of the corresponding computing device.

[0074] The statistical information can be related to each object when hitting an object from the hitting area 110, e.g., the trajectory and speed of the object as it moves. The information tracked can include performance information of the striker during the current hitting period, a previous hitting period, or both. For example, the tracking system 100 can provide information about the rate and speed of the striker from hitting an object (such as hitting a golf ball) from the hitting area 110 to the target area 120.

[0075] Figure 2 An example of a computing device 125A showing a simulated object hitting animation 210 and statistical information 220 is shown. In this example, the computing device 125A sends a request to initiate a hitting session, and the tracking system 100 responds to the request by associating a physical location in the hitting area 110 with the computing device 125A. The simulated object hitting animation 210 shows an extrapolated trajectory of the object as observed by the tracking system 100 hitting from the associated physical location. The tracking system 100 sends information defining the extrapolated trajectory to the computing device 125A and can also send the statistical information 220. The simulated object hitting animation 210 shows the extrapolated trajectory of the object backward and forward in time. The tracking system 100 can send the extrapolated trajectory and the statistical information 220 to the computing device 125A while the object is still in motion. The statistical information 220 can include the speed of the object being hit, the maximum height of the object being hit, the maximum distance traveled by the object being hit, and the angle of the arc of the trajectory of the object being hit.

[0076] As Figure 3 shown, the data processing system 300 includes a data processing device 350 that identifies the location of a computing device of a striker for striking an object from a strike area 110 tracked by the tracking system 100. The data processing device 350 may be connected via a network 380 to one or more computing devices including computing devices 385, 125A - C, which are operated by respective strikers in the strike area 110 tracked by the tracking system 100. The tracking system 100 implements the data processing system 300 on computers 350, 385, and 125A - C.

[0077] The data processing device 350 may include various software modules that may be distributed between the application layer and the operating system. These may include executable and / or interpretable software programs or libraries, which may include a program 370 that operates an object strike event tracker and an audio recording processing system. The number of software modules used may vary depending on the embodiment, and the software modules may be distributed across one or more data processing devices connected via one or more computer networks or other suitable communication networks.

[0078] In addition, in some cases, the described functionality (part or all) is implemented in the firmware and / or hardware of the data processing device 350 to increase the operating speed. Thus, the program and / or circuitry 370 may be used to implement the object strike event tracker and the audio recording processing system as detailed in this disclosure.

[0079] The functionality that may be implemented by the computing devices 385, 125A - C may be implemented using various elements of the data processing device 350, as described in further detail below. For functions related to observing and tracking strike events in the strike area 110, the computing devices 385, 125A - C may receive sensed data and object tracking data generated by the data processing device 350 via the network 380. Using the received data, the computing devices 385, 125A - C may establish corresponding physical locations in the strike area 110, as described in more detail below.

[0080] The data processing device 350 may include a hardware or firmware device, including one or more hardware processors 352, one or more additional devices 354, a computer-readable medium 356, a communication interface 358, and one or more user interface devices 360. Each processor 352 is capable of processing instructions for execution within the data processing device 350. In some embodiments, the processor 352 is a single-threaded or multi-threaded processor. Each processor 352 is capable of processing instructions stored on the computer-readable medium 356 or stored on a storage device (such as one of the additional devices 354). Thus, in various embodiments, the described processes may run in parallel or serially, on a single-core or multi-core computing machine and / or on a computer cluster / cloud, etc.

[0081] The additional device 354 may include a repository for storing information tracked by a tracking system implementing the data processing device 350. The repository may be one or more memory devices, which may itself be local to the data processing device 350, e.g., connected by a wire or as part of a composite circuit including the processor 352; or remote from the data processing device 350 and accessible via a network 380. The data processing device 350 may store data of a strike event recorded by the tracking system. Additionally, the data processing device 350 may store additional information, e.g., the statistical information and extrapolated trajectory information described above with reference to Figure 1 and Figure 2 the description.

[0082] The data processing device 350 uses its communication interface 358 to communicate with the computing devices 385, 125A to C. Specifically, the communication interface 358 facilitates receiving requests and communicating with the computing devices 385, 125A to C to initiate an audio recording. The tracking system implemented using the data processing device 350 receives requests from the computing devices including the computing devices 385, 125A to C. In response, and as described in detail below, the tracking system may determine whether the strike time in the audio recording matches the strike time of a strike event for an observed object.

[0083] In some embodiments, the computing device 385 generates an audio recording without sending an initial request and without communicating with the data processing device 350. Instead, the computing devices 385, 125A to C start recording audio and then, upon receiving an indication such as a user input to initiate a strike session, automatically analyze the recorded audio for object strikes.

[0084] Based on the analyzed audio, computing devices 385, 125A - C can provide timestamps of the heard strikes to data processing device 350 to match the heard strikes with the strikes observed in strike zone 110. In some embodiments, computing devices 385, 125A - C request sensing data including object strike observations and extrapolated trajectories from data processing device 350 instead of sending timestamps to data processing device 350. Using the requested data and the timestamps obtained from analyzing the audio recording, computing devices 385, 125A - C can match the observed object strikes with the heard strikes that occur nearly instantaneously, as described in more detail below.

[0085] Examples of user interface device 360 include a display device, a touch - screen display device, a camera, a speaker, a microphone, a haptic feedback device, a keyboard, and a mouse. Data processing device 350 can store instructions for implementing the operations detailed in this disclosure in, for example, computer - readable medium 356 or on one or more additional devices 354, such as one or more of a floppy disk device, a hard disk device, an optical disk device, a tape device, and a solid - state storage device. Generally, computer - readable medium 356 storing the instructions and one or more additional devices 354 are examples of at least one memory device encoding the instructions that are configured to cause at least one hardware processor to perform the operations detailed in this disclosure.

[0086] Additional device 354 includes sensor 140, such as when the sensor and the computer are integrated together into a stand - alone tracking system (e.g., tracking system 100). Sensor 140 can also be located at a position remote from data processing device 350, and data from sensor 140 can be obtained using one or more communication interfaces 358, such as interfaces for wired or wireless technologies. In some embodiments, additional device 354 includes one or more additional sensors implemented to collect sensing data from strike zone 110.

[0087] Computing device 385 has installed client software 390, which can send a request to initiate a strike session to the tracking system implementing data processing device 350. Client software 390 can receive a prompt to record an audio recording of the striker of the object being struck on computing device 385 in response to the request. Client software 390 can prompt the striker to use microphone 395 on computing device 385 to record the audio recording and submit the audio recording for processing by data processing device 350. Additionally, in some embodiments, client software 390 performs one or more of the functions ascribed to data processing device 350, such as processing the audio recording to identify strike events.

[0088] Figure 4FIG. 400 is an example flow chart showing a process for identifying the location of a computing device of a striker that strikes an object in a target area tracked by a tracking system. For convenience, process 400 will be described as being performed by a system of one or more computers located at one or more locations and appropriately programmed in accordance with this specification. For example, a suitably programmed tracking system, such as Figure 1 tracking system 100, can perform process 400.

[0089] The tracking system receives 410 a request from a computing device that implements client software that is suitably configured to communicate with the tracking system. The request can be a request to start a strike session, as described above with reference to Figure 1 and Figure 2 In some embodiments, the computing device receives a request to start a strike session from a user of the computing device and initially continues to perform operations intended to automatically establish the strike session without sending a request to the tracking system.

[0090] In response to the request, the tracking system initiates 420 an audio recording via a microphone of the computing device. As part of initiating the audio recording, the client software of the computing device prompts the striker to position the computing device and strike an object from a location within the strike area, for example, by displaying a prompt on a display of the computing device. In some embodiments, instead of the tracking system initiating the audio recording, the client software prompts the striker to position the computing device and automatically strike an object after receiving a request to establish a strike session.

[0091] The prompt can include a set of instructions to the striker on where to position the computing device to increase the likelihood of correctly recording audio when the object is struck by the striker. For example, the prompt can be a verbal or text instruction to the striker to place the computing device on the ground near the location where the object will be struck (e.g., within a meter). The prompt distance can be predetermined based on how close the computing device needs to be, on average, to accurately record the audio of the struck object. The prompt distance can also be predetermined considering how far the computing device needs to be to prevent accidental collision of the striker or the striker's tool with the computing device when striking the object.

[0092] The prompt also includes user interface elements for interacting with the client software, such as buttons displayed on a display of the computing device. The client software can receive input from the striker via the user interface elements, such as via gestures, voice, mouse clicks, or touches. In response to receiving input from the user interface elements, the client software counts down from a predetermined countdown time (e.g., 10 seconds). In some embodiments, the computing device automatically starts recording and continues recording until a strike event is identified in the recording, rather than setting a countdown.

[0093] After a predetermined countdown time has elapsed (in embodiments where a countdown is set), the computing device begins recording audio. The predetermined countdown time allows the striker to locate the computing device and prepare to strike an object. In some embodiments, the client software may receive input from the user to adjust the countdown time. The computing device may indicate when the countdown begins and ends, for example, using an audio tone, graphics, or color on the display of the computing device or by speaking to the striker. After the countdown, the client software begins recording audio. The client software may stop recording after a predetermined time interval (e.g., 4 seconds).

[0094] The computing device may record the audio recording in any conventional format for storing audio (e.g., as an MP3, WAV, or FLAC audio file). Regardless of the file format, the client software includes additional metadata representing timestamps of the recording time points. These points may be uniform and predetermined, for example, each point being a millisecond.

[0095] The client software may obtain accurate time from a source shared by the tracking system, for example, by using an API to access accurate time maintained by a trusted source. In some embodiments, the client software obtains the current time from the tracking system. In some embodiments, the client software periodically obtains time from the tracking system to ensure that the clocks separately maintained by the tracking system and the client software are accurate within a predetermined error tolerance (e.g., 5 milliseconds).

[0096] In some embodiments, as part of the request, the computing device also sends a request for the current time maintained by the tracking system. In response, the tracking system initiates the audio recording and also transmits the current time tracked by the tracking system.

[0097] In some examples of initiating the audio recording, the tracking system sends an indication that the request has been received to the requesting computing device. In response to the indication, the computing device may begin the audio recording. In some embodiments, the computing device sends the request and automatically begins the audio recording, for example, without receiving an indication from the tracking system.

[0098] The tracking system may receive the 430 audio recording from the computing device. The tracking system may identify the strike time of an object strike in the 440 audio recording. In some embodiments, instead of the tracking system analyzing the audio recording to identify the strike time of the 440 object strike, the computing device performs the analysis without sending the audio recording to the tracking system. The computing device may employ the techniques described below regarding identifying the strike time of an object strike in the 440 audio recording.

[0099] Typically, a tracking system or computing device identifies the strike time by matching the audio in an audio recording with the audio signature of the object being struck. For example, the audio signature can be the waveform of the sound of the object being struck (e.g., a golf ball struck by a club). The tracking system or computing device can generate the waveform of the audio recording and analyze the waveform to obtain the portion that matches the audio signature waveform within a predetermined threshold difference. The predetermined threshold difference can be adjusted manually to reduce false positives and / or false negatives in identifying the audio of the struck object in the audio recording.

[0100] In some embodiments, the tracking system or computing device implements a machine learning model (e.g., a neural network) that is trained to receive an audio recording as input and generate one or more timestamps during the audio recording of the identified strike event as output. The tracking system can train the machine learning model from training data using, for example, supervised learning techniques, where the training data includes audio recordings and ground truth timestamps indicating when a strike event occurred during the audio recordings in the training data.

[0101] One or more computers implementing the tracking system can be used to train the model. In some embodiments, the model is trained on one or more computers different from the computer implementing the tracking system. In these embodiments, the tracking system implements the trained model before receiving a request to establish a strike session. At inference time, i.e., after the audio is recorded and received from the computing device, the tracking system receives the audio recording and processes the audio recording through the model to obtain the timestamps of the strike events heard in the recording. In some embodiments, the computing device implements the machine learning model and processes the audio recording to obtain one or more timestamps of the strike events.

[0102] In some embodiments, the tracking system or computing device identifies the audio of the struck object in the audio recording without using an audio signature. Instead, the tracking system or computing device analyzes the audio recording for excerpts having audio attributes consistent with the predetermined audio attributes of the sound of an object strike. For example, the tracking system analyzes the audio recording for sounds of a particular pitch, volume, frequency, and / or duration of audio portions in the audio recording having some or all of these audio attributes.

[0103] If a tracking system or a computing device identifies audio in an audio recording corresponding to a striking event by matching an audio signature or audio attributes or by using a machine learning model, the tracking system or the computing device then identifies the striking time of the matched audio. The striking time is typically a timestamp corresponding to the time at which the match is identified in the audio recording. For example, the striking time of the matched audio can be the timestamp at which the matched audio begins in the audio recording. As another example, the striking time can be the time at which the matched audio ends, or a point between the start and end of the matched audio. In some embodiments, the striking time is a time range during which the strike occurs.

[0104] The matched audio can include more than just the sound of the object being struck. For example, the matched audio can include sounds that occur after the object is struck, such as the reverberation of a golf club heard after hitting a golf ball. The tracking system will use the striking time to determine whether the tracking system observed a matched striking event during the time interval in which the audio was recorded.

[0105] In some embodiments, the tracking system or the computing device can filter out ambient noise in the audio recording before identifying the striking time. Ambient noise is any noise heard in or near the striking area when the striker is absent, such as the sound of running water, nearby traffic, or bird calls. The tracking system or the computing device filters out the ambient noise, for example, by applying an audio mask to the audio recording or by processing the audio recording via an audio processing program for reducing or eliminating ambient noise.

[0106] In some embodiments, the tracking system filters out ambient noise by processing a number of audio recordings obtained at the striking area. The tracking system determines common sounds in the number of recordings that are not identified as sounds of an object being struck. The tracking system can then automatically filter out these common sounds, which can be part of the ambient noise of the striking area or can be sounds found to cause false positive identifications by the tracking system.

[0107] In some embodiments, instead of receiving an audio recording, the tracking system receives from the computing device the timestamps of the striking events identified by the computing device in the audio recording. In this way, the amount of data sent from the computing device to the tracking system over the network can be reduced by avoiding having to send the entire recording when only the timestamps of the identified strikes are relevant for determining a match event.

[0108] In some embodiments, the computing device receives an audio mask generated by the tracking system from a number of recordings previously received by the tracking system. The computing device uses the audio mask to automatically filter out common sounds in the audio recording according to the mask.

[0109] The tracking system or computing device determines 450 matching strike events. An observed strike event is said to "match" a strike identified in an audio recording when the strike time of the observed strike event occurs within a time threshold (e.g., 1.5 seconds) of the strike time of the strike identified in the audio recording. The tracking system may match strikes heard in an audio recording having one or more strike events observed in a strike area that occur within the time threshold to strikes in the audio recording. For each matching strike event, the tracking system may assign a unique identifier to the strike event. The identifier for each strike event may be unique for the strike location of that event.

[0110] In some embodiments, the computing device determines 450 matching strike events. As part of determining the match, the computing device requests from the tracking system data identifying strike events observed in the strike area while the computing device was recording audio. The computing device may send the time range during which it recorded audio, and the tracking system may send strike events identified as having occurred during that time range.

[0111] As described below, the tracking system or computing device may maintain each assigned identifier and may use these identifiers in establishing the physical location of the requesting computing device. Below, Figure 5 describes how in some embodiments the tracking system matches the strike time of an object in flight to the strike time of the audio identified in a received audio recording. Generally, after receiving an audio recording, an object in flight is a candidate for the object recorded in the audio recording, i.e., the object in flight may have been struck during a predetermined time interval.

[0112] The tracking system or computing device determines 460 whether the physical location of the requesting computing device can be established from the matching strike events. The tracking system or computing device establishes the physical location from the matching strike events based on whether the tracking system or computing device deems the location to be credible.

[0113] For example, if exactly one match is determined 450 because only one object was struck while the strike was identified in the audio recording, that single match after only a single recording may be considered acceptable enough to associate the computing device that made the recording with the origin location of the struck object observed by the tracking system. But in other cases, more than one audio recording will be needed before the location of the striker can be accurately identified.

[0114] In some embodiments, the computing device may start an additional audio recording after an initial audio recording. The computing device may prompt the user and / or indicate when the audio recording will start, as described above, for example. In some embodiments, before each additional audio recording, the additional audio recording starts without user input and starts recording automatically.

[0115] The tracking system or computing device considers the physical location associated with the computing device to be credible based on matching strikes from the currently analyzed audio recording and one or more audio recordings that may have been previously recorded and analyzed. Generally, a credible location is the location where a matching strike event is consistently identified as occurring. If the tracking system or computing device identifies matching strike events occurring within the same physical location (e.g., within 1.5 meters of each other), then those matches correspond to a physical location that is more likely to be the location associated with the computing device and is thus more "credible".

[0116] The criteria for considering a location to be credible involve several factors, such as the number of strikes heard in the audio recording, the number of strike events observed from the strike area, and matching strike events from previous audio recordings. The criteria for the credibility of a location may vary with the embodiment, where more strict or more lenient criteria are used to consider a physical location to be credible.

[0117] There is a balance in setting the criteria for credibility higher or lower. A higher criteria for credibility (e.g., a higher minimum number of recordings with matching strikes within a threshold distance of the location) can help ensure that the physical location associated with the computing device is accurate. A lower criteria for credibility (e.g., only one audio recording or a lower minimum number of recordings before considering a location to be credible) can improve the user experience by making the overall process of establishing a session faster at the cost of potential inaccuracies in establishing the physical location of the computing device.

[0118] Consider an example where the tracking system or computing device matches a strike event at location P. As part of determining whether to identify location P as the physical location associated with the computing device, the tracking system or computing device determines whether the strike events in the previous audio recordings match a location at or near location P (e.g., within 1.5 meters). In some embodiments, if the tracking system or computing device does not have a previous audio recording from which to compare previous matching strike events (e.g., because the tracking system or computing device is currently analyzing the first audio recording to establish a strike session), then the tracking system or computing device does not consider location P to be credible. Instead, the tracking system or computing device initiates a new audio recording 420.

[0119] Continuing with the above example, the tracking system or computing device initiates 420 a new record, the tracking system receives 430 the record (in the implementation where the tracking system analyzes the audio record), identifies 440 the strike time of an object strike heard in the audio record, and determines 450 a matching strike event in the new audio record.

[0120] In the new record, the tracking system or computing device determines 460 a matching strike event within a threshold distance of location P. When determining 460 whether location P is credible, the tracking system or computing device analyzes the matches of previously recorded events and determines that a previous strike event matches within the threshold distance of location P. The confidence that the tracking system or computing device has in location P being credible increases because now the tracking system or computing device has matched a second strike event within the threshold distance of location P of the first strike event.

[0121] At this point in the described example, the tracking system or computing device considers location P to be credible for association with the computing device. In some embodiments, the tracking system or computing device does not consider location P to be credible, for example because the criteria for credibility are set to require a minimum number of matches between records, e.g., three matches across three records. The number of matches between records for considering a location to be credible can vary with the embodiment.

[0122] In some embodiments, the credibility of location P is established not only by the number of strike events that match at or near location P, but also by whether the strike events occur in consecutively recorded audio records. For example, the tracking system or computing device may consider location P to be credible only if three consecutively recorded audio records result in three strike events that all occur at or near location P.

[0123] In some embodiments, the tracking system or computing device can consider the physical location P to be credible by analyzing only one audio record. In some embodiments, the tracking system or computing device uses additional information obtained about the tracking area, e.g., the number of other strikers currently in a strike session in the strike area, or the "traffic" of objects being struck in the strike area. Specifically, the additional information collected about the strike area can affect the criteria for credibility, e.g., lowering or raising the criteria.

[0124] For example, if the tracking system has not established any current strike session with any other striker in the strike area, the tracking system can consider the physical location to be credible after only one audio recording, reflecting the case where the striker with the computing device is alone and thus the only source of the object is striking in the strike area. In another example, only one object strike is observed at the strike area during the time when the tracking system or the computing device analyzes the sensed data and the audio recording for a matching event. The tracking system or the computing device can consider the physical location identified from the matching strike event to be credible, reflecting the case where even if the striker is not alone in the strike area, it is likely to be the only one striking the object when the audio is recorded.

[0125] As another example, the criteria for credibility can scale depending on the amount of traffic of object strikes and / or the number of strikers in the strike area. As the amount of traffic of object strikes (i.e., the number of object strikes observed in the air at any given time) increases, the tracking system or the computing device can impose a higher standard of credibility, reflecting the prudence of ensuring that no errors are made when establishing the physical location for the requesting computing device. Similarly, the number of other strikers in the strike area can also cause the tracking system or the computing device to impose a higher standard of credibility to reduce the chance of errors.

[0126] If the tracking system establishes a physical location based on a matching strike event, the tracking system associates the physical location with the computing device for the striker 470. The tracking system also associates the client software (e.g., the user profile of the user logged into the computing device in the client software) with the physical location. Thereafter, the tracking system can transmit to the computing device information about the observed strike event having the same strike location as the physical location. In an implementation where the computing device establishes the physical location, the computing device sends data specifying the physical location to the tracking system, and the tracking system associates the physical location with the computing device.

[0127] In some implementations, if the tracking system or the computing device determines a match within a threshold distance of location P as part of establishing location P, instead of considering location P to be credible and establishing 460 location P, the tracking system or the computing device instead calculates the average location of the strike locations of each matching strike event located within the threshold distance of location P. Then, the tracking system or the computing device establishes the average location of the strike locations as the location associated 470 with the computing device. The tracking system or the computing device can calculate the average location in any suitable manner, e.g., by calculating the midpoint between the strike locations of each matching strike event.

[0128] Figure 5is a flowchart showing an example of process 500 that matches the strike time of an object in flight with the strike time in an audio recording. Process 500 is an example of determining 450 a matching strike event, as described above in Figure 4 and its accompanying description. In some cases, a tracking system or computing system must determine a matching strike event between a single heard strike in an audio recording and multiple strike events observed by the tracking system. Process 500 is a process for matching a heard strike with one or more of the multiple strike events observed by the tracking system. Although process 500 is described in the context of a single audio-identified strike event, process 500 can be performed for each of multiple audio-identified strike events in an audio recording.

[0129] For convenience, process 500 will be described as being performed by a system of one or more computers located at one or more locations and appropriately programmed in accordance with this specification. For example, a suitably programmed tracking system or computing device (such as Figure 1 tracking system 100 or computing devices 125A to C) can perform process 500.

[0130] If the tracking system determines MATCH, a strike event with a matching strike time and its corresponding strike location is assigned an identifier. The tracking system uses the identifier assigned to the strike event to narrow down the location of the computing device that sent the audio recording, which is important in cases where the tracking system matches two or more strike events with the strike time identified in the audio recording.

[0131] The tracking system determines 510 whether there is at least one strike time in the audio recording. If not, the tracking system returns NO MATCH. Otherwise, the tracking system or computing device proceeds with process 500.

[0132] Next, the tracking system determines 520 whether the next strike event from the observed data obtained from the tracking system is within a threshold of the strike time identified in the audio recording. An example threshold for the strike time is 5 seconds.

[0133] In some embodiments, the tracking system can dynamically adjust the threshold per request time. For example, the tracking system can increase the time threshold depending on the number of strikers currently identified in the strike area. If there are few or no other strikers besides the striker operating the requesting computing device, the time threshold can be made longer than in the case where the strike area is more dense. Adjusting the time threshold can improve the user experience and mitigate the risk of inaccurately associating strike events with audio in a given recording.

[0134] As another example for dynamically adjusting the threshold, the tracking system can adjust the threshold based on the latency detected in the network connecting the tracking system and the computing device. If the network latency is high, the tracking system sets the threshold high to compensate for any issues the latency causes in synchronizing the strike times of the objects observed from the strike area. Similarly, the tracking system can set the threshold low after determining that the network latency is below a predetermined amount. Synchronizing and compensating for network latency is also important in embodiments where the computing device relies on the tracking system to synchronize time before recording audio.

[0135] The tracking system can also dynamically adjust the threshold based on the audio quality of the recorded audio strike events. The tracking system or the computing device can meter the audio recording based on the signal strength to determine the audio quality. The higher the audio quality, the more informative the tracking system is about false positives of sounds that are not actually object strikes. As a result, the tracking system can increase the threshold. Similarly, if the audio quality is low, e.g., below a predetermined value, the tracking system can lower the threshold to reduce the chance of an object strike matching an incorrect sound heard in the recording rather than an object strike.

[0136] Regardless of how the threshold is set, if no strike event is recorded within the threshold of the strike time, the tracking system returns NO MATCH. Otherwise, the tracking system or the computing device continues with process 500.

[0137] The tracking system or the computing device determines 530 whether the strike events with time matches have been associated with another computing device. For example, the tracking system filters out the strike events of objects striking at positions previously associated with the computing devices of other strikers in the strike area.

[0138] If it is found after filtering that the strike events with time matches have been associated with another computing device, the tracking system does not match and proceeds to the next strike event from the observation data. Otherwise, the tracking system or the computing device matches 540 the strike events from the observation data with the audio-identified strikes. Process 500 can be repeated for each strike event identified from the observation data obtained by the tracking system until all strike events have been analyzed.

[0139] In some embodiments, the client software performs one or more of the operations described above with reference to Figure 4 and Figure 5 Specifically, in some embodiments, the computing device can receive a request to start a strike session and initiate an audio recording. The computing device can then identify the strike times in the audio recording, as described above with reference to Figure 4 The computing device can send the identified strike times to the tracking system for determining a match with the strike events observed when the computing device recorded the audio.

[0140] Figure 6 An example of a strike area 600 with a single computing device 610 and an object 630 to be observed is shown. In this example, the tracking system uses a camera 620 to observe the object struck from the strike area 600. Also in this example, the computing device 610 records audio during a predetermined time interval. The tracking system receives the audio recording and identifies the strike time 00:01:36:08. After the tracking system receives the audio recording from the computing device 610, the camera 620 observes the object 630 in motion. The tracking system identifies the strike time 00:01:36:08 of the object 630, for example, by calculating an extrapolated trajectory. The tracking system also identifies the strike position 640 of the object 630 and associates the strike position 640 with the physical location of the computing device 610.

[0141] Figure 7 An example of a strike area 700 with a single computing device 710 and two objects 720, 730 to be observed is shown. In this example, the tracking system uses a camera 740 to observe the object struck from the strike area 700. Also in this example, the computing device 710 records audio during a predetermined time interval. The tracking system receives the audio recording and identifies the strike time 00:01:36:08.

[0142] The tracking system identifies the strike time 00:01:37:04 of the object 720 and also identifies the strike time 00:01:36:08 of the object 730. In this example, the strike times of both the objects 720 and 730 are within the time threshold for matching the strike time in the audio recording. For example, this time threshold can be 0.5 seconds. The tracking system assigns different identifiers to the strike events corresponding to the objects 720 and 730 and initiates a new audio recording, that is, respectively performs the example processes 400 and 500 described above with respect to Figure 4 and Figure 5 as described.

[0143] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented using one or more modules of computer program instructions encoded on a computer-readable medium to be executed or to control the operation of a data processing apparatus. The computer-readable medium can be a manufactured article (such as a hard disk drive in a computer system or a compact disc sold through a retail channel), or it can be an embedded system. The computer-readable medium can be obtained separately and subsequently encoded with one or more modules of computer program instructions, such as by transmitting one or more modules of computer program instructions over a wired or wireless network. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, or a combination of one or more of them.

[0144] The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including, by way of example, programmable processors, computers, or two or more processors or computers. In addition to hardware, the apparatus can also include code that creates an execution environment for the computer programs being discussed, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or a combination of one or more of them. Additionally, the apparatus can adopt various different computing model infrastructures, such as network services, distributed computing, and grid computing infrastructures.

[0145] A computer program (also known as a program, software, software application, script, or code) can be written in any suitable form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. The program can be stored in a part of a file that contains other programs or data (such as one or more scripts in a markup language document), in a single file dedicated to the program being discussed, or in two or more coordinated files (such as files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to execute on one computer, or on two or more computers located at one site or distributed across two or more sites and interconnected by a communication network.

[0146] The processes and logical flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be performed by, and the apparatus can also be implemented as, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0147] As an example, processors suitable for executing computer programs include both general and special purpose microprocessors. In general, a processor will receive instructions and data from a read only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. In general, a computer will also include one or more mass storage devices for storing data (e.g., magnetic, magneto-optical disks, or optical disks), or operatively coupled to receive data from or transfer data to one or more mass storage devices or both. However, a computer need not have such devices. In addition, by way of example only, a computer may be embedded in another device, such as 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). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and storage devices, by way of example, including semiconductor storage devices (e.g., EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory)), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0148] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having: a display device, such as an LCD (Liquid Crystal Display), an OLED (Organic Light Emitting Diode) or other monitor, for displaying information to the user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other types of devices can also be used to provide for interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0149] A computing system may include clients and servers. The clients and servers are generally remote from each other and typically interact via a communication network. The relationship of the clients and servers arises from computer programs that run on respective computers and have a client-server relationship with each other. Embodiments of the subject matter described in this specification may be implemented in a computing system that includes backend components (e.g., as a data server), or includes middleware components (e.g., an application server), or includes frontend components (e.g., a client computer having a graphical user interface or a web browser through which a user may interact with embodiments of the subject matter described in this specification), or any combination of one or more such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0150] Although this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or on what may be claimed, but rather as descriptions of features that are specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in two or more embodiments. Additionally, although the features described above may be described as acting in certain combinations and even initially claimed as such, in some cases, one or more features from the claimed combination may be excluded from the combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination. Thus, unless explicitly stated otherwise, or unless the knowledge of a person of ordinary skill in the art clearly dictates otherwise, any feature of the embodiments described above may be combined with any other feature of the embodiments described above.

[0151] Similarly, although operations are depicted in the drawings in a particular order, this 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 a desired result. In some cases, multitasking and / or parallel processing may be advantageous. Additionally, the separation of the various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into two or more software products.

[0152] Accordingly, specific embodiments of the present invention have been described. Other embodiments are within the scope of the following claims and / or within the scope of the teachings of this application. For example, the above description focuses on tracking a golf ball strike, but the described systems and techniques can also be applied to tracking the flight of other types of objects, such as for baseball, soccer, or skeet shooting, as well as non-sports applications. Additionally, the acts recited in the claims can be performed in a different order and still achieve the desired result.

Claims

1. A method for identifying the position of a striker of an object, comprising: Receiving a request from a mobile computing device operated by the striker, the striker being located in a striking area having space for two or more strikers to strike an object into a target area, wherein the mobile computing device includes a display and a microphone; In response to the request, initiating an audio recording via the microphone of the mobile computing device; For an object struck from the striking area, identifying a physical position in the striking area and a first strike time determination based on sensor observations of the object flying between the striking area and the target area; Identifying a second strike time determination in the audio recording; and When the second strike time determination matches the first strike time determination, associating the physical position identified based on the sensor observations with the mobile computing device.

2. The method according to claim 1, further comprising: When one or more identified positions of one or more object strikes correspond to the physical position in the striking area, sending information about the one or more object strikes to the mobile computing device for presentation on the display of the mobile computing device.

3. The method according to claim 2, wherein The object is a golf ball, and wherein Sending information about one or more object strikes to the mobile computing device includes: sending golf stroke statistics, a golf stroke animation in a virtual golf game, or a combination thereof.

4. The method according to claim 1, Among them, In response to the request, initiating the audio recording via the microphone of the mobile computing device includes: causing the computing device to display a prompt for recording the audio recording, and Wherein the audio recording is made during a time interval.

5. The method according to claim 1, wherein The object is a first object, the physical position is a first physical position, the mobile computing device is a first mobile computing device, and Wherein the method further comprises: Observing a second object and the first object in flight; For the second object, identifying a second physical position in the striking area; and Wherein associating the first physical position includes: determining to associate the second physical position with a second mobile computing device.

6. The method according to claim 1, wherein Identifying the second strike time determination in the audio recording includes: filtering ambient noise from the audio recording.

7. The method according to claim 1, wherein The audio recording is a first audio recording, the physical position is a first physical position, the object is a first object, and Wherein the method further comprises: Identifying a second physical position for a second object based on a strike time determination that matches the second strike time determination. In response to identifying the second physical location, initiate one or more second audio recordings via the microphone of the mobile computing device until a single strike time determination for an object that matches the strike time determination identified in a second audio recording among the one or more second audio recordings is identified; Based on sensor observations of a single object flying between the strike area and the target area, identify a third physical location and a third strike time determination in the strike area for the single object struck from the strike area; and When the second strike time determination matches the first strike time determination and the third strike time determination matches the strike time determination identified from the second audio recording, associate the average physical location calculated from the first physical location and the third physical location with the mobile computing device.

8. The method according to claim 1, wherein, The strike area is the tee box of a golf course.

9. The method according to claim 1, wherein, Identifying the physical location and the first strike time determination in the strike area for the object includes: Using the observed motion characteristics of the object to calculate the extrapolated trajectory of the object.

10. One or more non-transitory computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform the method according to any one of claims 1 to 9.

11. A system for identifying the location of a striker of an object, comprising one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, are operable to cause the one or more computers to perform the method according to any one of claims 1 to 9.

12. A method for identifying the location of a striker of an object, comprising: Using a microphone of a mobile computing device to generate an audio recording, the mobile computing device including the microphone and a display, wherein the mobile computing device is operated by the striker located in a strike area having a space for two or more strikers to strike an object into a target area observed by one or more sensors of a tracking system; For an object struck from the strike area, based on sensor observations of the object flying between the strike area and the target area, identify a physical location and a first strike time determination in the strike area, wherein the sensor observations are obtained by one or more computers; Identify a second strike time determination in the audio recording; When the second strike time determination matches the first strike time determination, associate the physical location identified based on the sensor observations with the mobile computing device; and Receive information about one or more object strikes from the one or more computers for presentation to the display of the mobile computing device, wherein the one or more object strikes originate from the physical location associated with the mobile computing device in the strike region.

13. The method according to claim 12, further comprising: Sending a request to one or more computers of a tracking system; And In response to the request, obtaining the sensor observations from the one or more computers of the tracking system.

14. The method according to claim 12, wherein, The method further comprises: Displaying a prompt for recording the audio recording; and Generating the audio recording during a time interval.

15. One or more non-transitory computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform the method according to any one of claims 12 to 14.

16. A system for identifying the location of a striker of an object, comprising one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, are operable to cause the one or more computers to perform the method according to any one of claims 12 to 14.

Citation Information

Patent Citations

  • Golf ball tracking system

    KR1020170118061A

  • Systems and methods to track a golf ball to and on a putting green

    US20160306036A1