Predictive camera control for tracking moving objects
Through sensors and data processing equipment, the trajectory of moving objects is predicted and the camera parameters are automatically adjusted, which solves the problem of camera manual control in live sports events, and achieves accurate tracking of fast moving objects and high-quality video effects.
Patent Information
- Application Number
- JP2024534595
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-21
- Filing Date
- 2022-12-20
- Publication Date
- 2025-02-04
AI Technical Summary
In the live broadcast of sports events, camera control mainly relies on manual operations, low degree of automation, and it is difficult to effectively track moving objects in fast-moving three-dimensional space.
A system is adopted to obtain data through one or more sensor units, combine data processing equipment to predict the trajectory of moving objects, and automatically adjust parameters such as gimbal, tilt and zoom of the camera through control signals to achieve real-time tracking of moving objects.
Accurate tracking of fast moving objects is achieved, reducing manual intervention, reducing live broadcast costs, and providing high-quality video effects in live broadcasts.
Smart Images

Figure 2025503410000001_ABST
Abstract
Description
[Technical field]
[0001] This specification relates to camera control, such as controlling a camera capturing a golf ball tracked in flight through three-dimensional space. [Background technology]
[0002] Sporting events are often filmed for broadcast by cameras, usually controlled by humans. Pan-tilt-zoom (PTZ) cameras have also been used for live streaming of events, and it has been proposed to automate the control of such cameras. For example, U.S. Patent No. 9,498,678 describes a ball tracking system in which a radio signal received from the ball is used to triangulate the position of the ball (in play on the field) to determine the "real-time position" of the ball, and this information is provided to the camera by an "automated gimbal" so that the camera "can automatically follow the ball" in real time. Summary of the Invention
[0003] This specification describes techniques relating to tracking a moving object, such as a golf ball in flight, using data obtained from one or more sensor units.
[0004] In general, one or more aspects of the subject matter described herein can be implemented in one or more systems including a first subsystem including a camera and motors configured and arranged to adjust the pan, tilt, and zoom of the camera; and a second subsystem including one or more sensors and one or more data processing devices, the one or more data processing devices configured to detect the launch of the ball based on initial data acquired by the one or more sensors and send initial control signals to at least one of the motors of the first subsystem to initiate a change in at least one of the pan, tilt, or zoom of the camera based on a predicted expected position of the ball, and determine a trajectory of the ball in three-dimensional space based on additional data acquired by the one or more sensors after launch and send additional control signals to the motors of the first subsystem to control each of the pan, tilt, and zoom of the camera based on the predicted expected position of the ball along the trajectory.
[0005] The camera of the first subsystem may be a broadcast camera, and the motor of the first subsystem may include an actuator constructed and arranged to adjust the focus of the camera, and the one or more data processing devices of the second subsystem may be configured to send further control signals to the actuator of the first subsystem to control the focus of the camera based on the current position of the ball along the trajectory.
[0006] The one or more data processing devices of the second subsystem may be configured to process image data from the broadcast camera to identify the ball in the image data and to send further control signals to motors of the first subsystem to control each of the pan, tilt and zoom of the camera in real time to keep away from the ball based on the ball being identified in the processed image data from the broadcast camera. The one or more sensors of the second subsystem may include a radar device. The one or more sensors of the second subsystem may include a stereo camera. The one or more sensors of the second subsystem may include a radar device and a camera.
[0007] The second subsystem may include a launch monitor to provide initial data and a ball tracker to provide additional data. The first subsystem may be separate and independent from the second subsystem. The one or more sensors of the second subsystem may include two sensors including a camera of the first subsystem. The first and second subsystems may be integrated with each other, for example, into a single unit, and the same camera may be used for tracking the ball and for showing the ball in flight, for example by broadcasting the same camera image used for ball tracking. The ball may be a golf ball. The ball may be a baseball. The ball may be a cricket ball. The ball may be an American football. The ball may be a soccer ball. Other embodiments include corresponding apparatus, methods, and computer program products recorded on one or more computer storage devices for performing the operations defined for the system.
[0008] Additionally, one or more aspects of the subject matter described herein can be implemented in one or more methods including detecting the launch of the ball based on initial data acquired by one or more sensors; sending initial control signals to modify at least one of the pan, tilt or zoom of the camera based on a predicted likely position of the ball; determining the trajectory of the ball in three-dimensional space based on additional data acquired by the one or more sensors after launch; and sending additional control signals to control each of the pan, tilt and zoom of the camera based on a predicted likely position of the ball along the trajectory.
[0009] The method operations may include extrapolating the path of the ball based on the initial data to predict a likely location of the ball after launch. The camera may be a broadcast camera and the method operations may include processing image data from the broadcast camera to identify the ball in the image data, and sending further control signals based on the ball being identified in the processed image data from the broadcast camera to control each of the pan, tilt and zoom of the camera to stay on the ball in real time. Additionally, the camera may be a high definition broadcast camera and the pan, tilt and zoom of the camera may be virtual pan, tilt and zoom.
[0010] Various embodiments of the subject matter described herein can be implemented to achieve one or more of the following advantageous effects: Latency between an object tracking system and an imaging system for an object being tracked can be effectively reduced or eliminated by predicting where the object will be directed in three-dimensional space. Sensor data from the ball tracking system can indicate the trajectory of the ball in three-dimensional space, and this indicated trajectory may be used to control additional control parameters / settings of the camera, such as camera pan, tilt and zoom and optionally camera focal length and iris control, which may be independent of the ball tracking system. Camera control can initially start with ball launch data, and then control can switch to using an extrapolated trajectory, which can become more accurate as more data is received by the ball tracking system.
[0011] Broadcast cameras can be controlled to stay ahead of flying objects even when the flying objects are moving very fast (e.g., 170-200 miles per hour after launch). Thus, high quality video of flying objects with smooth camera movements and object closeups can be achieved even when the flying objects are small, fast, and moving long distances. This improvement in broadcast camera operation can be achieved while simultaneously reducing production costs associated with broadcasting live sporting events, for example, because broadcast cameras are controlled automatically without a cameraman.
[0012] A broadcast camera system and an object tracking system (e.g., for golf) may be integrated in a manner that allows for automatic control of the broadcast camera from launch (at which point the broadcast camera may not provide useful data for locating the object) until the object comes to rest on the ground (at which point the object tracking sensor system may not provide useful data for locating the object). Additionally, the data used to automatically control the broadcast camera may be used for other purposes. For example, the predicted trajectory may be used to overlay various graphics on the images from the broadcast camera, such as graphics showing shot statistics located in front of the ball and at specific points along the predicted trajectory.
[0013] The details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, drawings, and claims. [Brief description of the drawings]
[0014] [Figure 1A] FIG. 1A illustrates an example of a system that performs three-dimensional (3D) object tracking of a moving object through three-dimensional space. [Figure 1B] FIG. 1B illustrates an example process for controlling a camera based on launch detection and trajectory determination. [Diagram 2] FIG. 2 is a schematic diagram of a data processing system including a data processing device. [Diagram 3] 3 illustrates another example of a process for controlling a camera based on launch detection and trajectory determination.Like numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] FIG. 1A illustrates an example of a system 100 that performs three-dimensional (3D) object tracking of a moving object through a three-dimensional (3D) space. The tracked object may be a golf ball or other type of object (e.g., a baseball, soccer ball, or football / rugby ball) that is launched in some manner, such as by being hit, kicked, or pitched. In one embodiment, the 3D space is a golf driving range, a grass field, or other open area where an object may be launched. For example, the 3D space may be part of a golf entertainment facility that includes one or more targets, a structure that includes golf bays, each including at least one teeing area, and possibly other entertainment and other dining options. In one embodiment, the 3D space is a playing area for a sport, such as a golf course where the launch area may be a golf tee for a particular hole on the golf course, or an intermediate landing point for a golf ball during play on the course, and the target may be a cup at the end of a particular hole on the golf course or an intermediate landing point for a golf ball during play on the course. Other embodiments are possible, in which the launch area is one of a number of designated teeing areas along a tee line where a golfer may hit a golf ball into an open field, or the launch area is one of a number of designated teeing areas in the stands at a sports stadium where a golfer may hit a golf ball over or onto the playing field of the sports stadium.
[0016] The system 100 includes one or more sensor units 110 communicatively coupled to one or more server computers 120, one or more personal computers 122, or a combination thereof. The sensor units 110 may include one or more cameras (e.g., stereo cameras), one or more radar devices, or a combination thereof. The sensor units 110 may be located near the launch area of the tracked object, although this need not be the case. In some embodiments, one or more of the sensor units 110 are located along the fairway and / or on the green where the target object is located. Additionally, although depicted in FIG. 1 using physical wires / cables, the communicative coupling between the sensor units 110 and the associated computers 120, 122 may be implemented using wireless technologies such as Near Field Communication (NFC), Bluetooth, WiFi, and / or one or more mobile phone technologies.
[0017] In some embodiments, one or more hybrid camera-radar sensor units, such as those described in U.S. Patent No. 10,596,416, issued March 24, 2020, may be employed in system 100. In some embodiments, one or more of the systems and techniques described in International Application No. PCT / EP2021 / 079919, filed October 12, 2021, and International Publication No. WO2022 / 096353, entitled "THREE-DIMENSIONAL OBJECT TRACKING USING UNVERIFIED DETECTIONS REGISTERED BY ONE OR MORE SENSORS," published May 12, 2022, may be employed in system 100. Other sensor and computer configurations are possible, such as a radar device used in combination with one or more cameras (e.g., a 2D tracking camera or a 3D tracking stereo camera). For example, the sensor unit 110 may include a launch monitor 110 (e.g., a radar device with a local processor configured to detect ball launch) located next to the golfer 140 (e.g., within 1 meter of the golfer 140) and a ball tracker 110 (e.g., a stereo camera with a narrow baseline of less than 1 meter or a wide baseline of more than 1 meter and an associated processor configured to identify ball trajectory in 3D space) located a significant distance (e.g., more than 2 meters) away from the golfer 140 and possibly a significant distance (e.g., more than 2 meters) away from the camera 130. It should be noted that linking the output of two cameras 110 (independent of the broadcast camera 130) to form a stereo camera pair in close proximity to a start location 150 (e.g., a golf tee) can provide complete 3D information about the surroundings of the start location 150 including, for example, where the player, caddy, golf bag, etc. are located with respect to the ball path and the ball trajectory superimposed on the image data, and can also provide a high degree of accuracy for the start of the ball path to provide an initial ball path estimate that is very close to the actual ball trajectory.Nonetheless, in some embodiments, camera 130 (e.g., broadcast camera 130) can be used in conjunction with one or more sensors of sensor unit 110 to form a sensor “unit,” such as with a camera in a ball tracker to form a stereo camera sensor, or with a radar device in a launch monitor to form a hybrid camera-radar sensor.
[0018] However, regardless of the configuration of sensors and computers used in the first subsystem of the system 100, the second subsystem of the system 100 includes a camera 130 and a motor 135 configured and arranged to adjust at least the pan, tilt, and zoom of the camera 130. The camera 130 may be oriented toward a golfer 140 who is about to strike a golf ball 155 from a starting position 150 in a flight path toward a target (e.g., a hole on a golf course). In some embodiments, the motor 135 is also configured and arranged to adjust the focal length and iris of one or more lenses of the camera 130. It should be noted that although the motor 135 is shown in the drawings as being below the camera 130 for ease of illustration, the motor 135 may be located in various locations within the camera 130 in various embodiments. For example, the motors controlling the focal length, focus, and iris of the camera may be located within the lens of the camera, whether the lens is an external lens or an integrated lens.
[0019] Additionally, various communication systems and techniques can be used to control the motor 135. For example, in the case of an external lens, control signals for focal length, focus, and iris may be sent to the motor via a serial port on the lens itself and communicated via RS232 or RS422 protocols for those camera parameters, while control signals for pan and tilt may be sent to the motor via a network or near field communication (NFC) channel and communicated using various protocols (e.g., Ethernet, WiFi, or cellular communication protocols). In the case of an integrated lens, control signals for pan, tilt, focal length, focus, and iris may be sent to the motor via an application programming interface (API) provided by the camera manufacturer or customized software designed to communicate with the camera's motor via the camera manufacturer's communication protocol.
[0020] The camera 130 may be a television (TV) camera adapted to generate a signal for live transmission and / or recording. The system 100 may be designed to convert the ball position registered by the sensor unit 110 to a corresponding position in video data acquired by the additional camera 130. Using this conversion, a graphical representation of the ball flight path may be superimposed on the video data for transmission and / or recording. For example, in the case of a TV broadcast of a golf competition, the system 100 may be used to track the golf ball through the 3D space of the golf course and superimpose the golf ball's trajectory onto the TV signal generated for live transmission, or for recording, the sensor 110 and camera 130 may be located a mile or more away from the TV production facility (where the 3D tracking computer may be located).
[0021] It should be noted that the transformation of the ball position (identified during 3D tracking) to the corresponding position in the video data acquired by the TV camera (enabling a trajectory overlay of a graphical representation of the ball's flight path onto the video data) can be performed using well-known homography techniques. In some embodiments, to align the second subsystem (including the camera 130) to the first subsystem (including the sensor unit 110), the systems and techniques described in U.S. Patent No. 6,774,932, issued on August 10, 2004, can be used to achieve registration of the data from the first subsystem with the video from the second subsystem. Other approaches for data registration between the two subsystems are also possible.
[0022] A trajectory overlay may highlight the ball itself and / or the trajectory of the ball in flight. For example, the trajectory of the ball may be highlighted with ribbons of color superimposed over the video data as it travels through the air so that the viewer can easily see the entire arc of the ball's flight as it travels to its destination. The ball itself may also be highlighted at its current location with various overlaid graphics by making the ball glow, coloring the ball to make it appear larger or more three-dimensional, drawing an outline around the ball, giving the ball a comet tail, using a camera shutter effect (making the ball appear as multiple balls in the video), etc.
[0023] Also, trajectory overlays of graphical representations of the ball's flight path onto the video data need not be limited to showing where the ball is currently and where it has been, but may also include overlaying various graphics onto images from cameras at locations forward of the current ball position. For example, a graphical representation of a predicted ball trajectory may be overlaid onto video data from a broadcast camera. Additionally or alternatively, graphics indicative of shot statistics may be placed at particular points in the camera images, e.g., along the actual and / or predicted ball trajectory, which correspond to locations in 3D space to which the shot statistics pertain.
[0024] For example, graphics showing the ball speed in the launch information may be placed in the video at a point (in the 2D camera image frame) adjacent the launch location (in 3D space), graphics showing the ball's highest point information may be placed at the apex of the ball's trajectory, graphics showing carry distance information may be placed at the ball's initial landing location, and graphics showing roll-out distance may be placed at the ball's final rest location. Note that these graphics may be updated (both in terms of location and the information shown) as the ball is in flight. For example, immediately after launch, the predicted trajectory may be superimposed on the camera's broadcast image data, along with a predicted maximum ball height (e.g., 21 meters) adjacent the predicted apex, a predicted carry distance (e.g., 201 meters) adjacent the predicted initial landing location, and a predicted roll-out distance (e.g., 14 meters) adjacent the predicted final rest location.
[0025] Thereafter, as the sensor 110 receives more data and the prediction is updated (i.e., as the ball reaches its apex, then hits the ground, then comes to rest), the graphics may likewise be updated to show the new predicted location and value, and once the predicted location and value become the actual location and value, the graphics may be changed (e.g., in color or framing) to indicate that the predicted location and value are now established as the actual location and value. Also, in some implementations, prediction zones and / or ranges may be used in place of specific locations and / or values in the overlaid graphics. For example, a graphic of a circle in 3D space (usually seen as an ellipse in a 2D camera frame) may graphically show a range of 3D locations of the predicted apex of the ball's flight (the circle in 3D space is centered on and perpendicular to the predicted trajectory) and / or may graphically show a range of 3D locations where the ball is predicted to land in the broadcast camera image frame (the circle in 3D space is centered on the predicted landing location and lies on the ground plane), which may then be reduced in the broadcast video data as the predictions become more accurate until a final value is known and can be displayed in the broadcast video.
[0026] Additionally, the 3D ball position determined using the sensor unit 110 may be used to augment other data or media. For example, the determined 3D ball position may be used to generate a 3D representation of the ball's flight path within a 3D computer model 124 of the golf ball's 155 environment. This environment may be a representation of the actual physical environment in which the golfer 140 stands (e.g., a particular hole on a particular golf course), or the environment may be a virtual environment that exists only in the computer model 124. In either case, one or more sensor units 110 may provide data that is processed for use in controlling the motors 135 of the camera 130 as described herein.
[0027] 1B illustrates an example of a process for controlling a camera based on launch detection and trajectory determination. A ball launch is detected (170) (e.g., by computer 120, computer 122, or both). The detection of a ball launch can occur very quickly (e.g., within milliseconds) after the actual event. In some embodiments, as soon as the ball launch is detected (170), camera operation is initiated to account for the ball launch.
[0028] Control of the camera is initiated (180) (e.g., by computer 120, computer 122, or both) to adjust one or more of the camera settings based on the predicted likely position of the launched ball. This may involve sending signals to one or more motors 135 of the camera 130 to change one or more of the pan, tilt, zoom, focus, and iris of the camera 130, i.e., physical camera control, and / or it may involve performing digital processing of image data from the high resolution camera, i.e., virtual camera control. Note that object tracking is delayed by some amount so that once a position in three-dimensional space is determined, the object is no longer in that 3D position. For a fast moving object, such as a golf ball just launched, the difference between the currently determined position and the actual position at that same point in time may be substantial. Therefore, to avoid having the camera 130 simply follow the track path of the object in flight, a prediction is made of where the object will go (e.g., an extrapolation of the identified trajectory), and the camera 130 is controlled based on this prediction to either stay ahead of the object or stay ahead of the object. For example, in the case of a golf ball launch, which may have an initial velocity of 170 miles per hour or more, an initial prediction of where the ball will go is required to have the camera 130 move fast enough to stay ahead of (or stay ahead of) the ball in flight.
[0029] In some embodiments, camera movement may be initiated 180 even before a ball trajectory is detected. For example, initiation of camera movement may be performed in response to a ball launch occurring and a limited number of options for where the ball may go given the position and initial orientation of camera 130 relative to starting position 150. As such, camera 130 movement may begin as soon as a ball launch is detected based on predefined parameters regarding the most likely path the ball will take, e.g., based on a set of possible trajectories for the launched ball.
[0030] In such an embodiment, once the ball trajectory has been identified and the ball path can be extrapolated, the camera control can take the extrapolated path into account, as described in further detail below in connection with FIGURE 3. For example, the extrapolated path can be based on at least one of the following parameters: horizontal launch angle of the ball, vertical launch angle of the ball, ball speed, club head speed, dynamic loft, club face to path angle, and club face angle. This extrapolated path provides the basis for generating instructions to operate the camera to stay on track with the ball (or stay ahead of the ball), such as sending 180 signals to one or more motors 135 of the camera 130 to change one or more of the pan, tilt, zoom, focus, and iris of the camera 130, until further data is provided by the ball tracking algorithm.
[0031] Once the ball's trajectory has been determined by the ball tracking algorithm, the camera controls are modified (190) (e.g., by computer 120, computer 122, or both) to adjust one or more of the camera settings based on the determined trajectory of the ball. The ball's trajectory corresponds to the arc of the ball during free flight in 3D space. As such, the determined trajectory provides more accurate information regarding the likely position of the ball, so that signals may be sent (190) to one or more motors 135 of camera 130 to change one or more of the pan, tilt, zoom, focus, and iris of camera 130, i.e., the physical camera controls, in view of this more accurate knowledge of the likely position of the ball in flight. Alternatively or additionally, digital processing of image data from the high resolution camera may be performed (190) to change one or more of the pan, tilt, zoom, etc., i.e., the virtual camera controls.
[0032] As more data is received, the accuracy of the possible ball trajectories increases, and the camera 130 can be controlled to get closer (in terms of zoom) to the ball as more data is received. This allows the camera 130 to provide a high quality close-up of the ball in flight, given the high zoom capabilities of a typical broadcast camera, without the risk of losing sight of the ball, as may occur with manual operation of a broadcast camera. This control is provided by using data from at least one independent sensor of the sensor unit 110, because objects are usually (at least initially) moving too quickly to track the object using imaging data from the camera 130 while also zooming the camera 130 to provide a close-up of the object for broadcast.
[0033] The use of independent sensor units 110 can provide the technical advantage of providing significant flexibility in terms of the sensor technology used and the location of the sensor units 110, which can be a significant factor for a given area. For example, given a particular layout of holes on a golf course, one or more stereo cameras 110 with a wide field of view can be placed on the tee, a first location along the fairway, and the green, while a broadcast camera 130 can be placed at a second location along the fairway. Additionally, the camera 130 can be controlled to stay on the ball (or stay ahead of the ball) until it lands. The camera 130 can be controlled to provide a smooth slight zoom out as the ball approaches the ground, based on the predicted speed and direction of the ball in combination with the angle between the ball's trajectory and the centerline of the camera 130, so that the ball's bounce is fully visible in the zoomed-in field of view of the camera 130.
[0034] Various types of computers may be used in the system. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. As used herein, a "computer" may include a server computer, a client computer, a personal computer, embedded programmable circuitry, or special purpose logic circuitry. Figure 2 is a schematic diagram of a data processing system including a data processing device 200, which represents an embodiment of the computers 120, 122. The data processing device 200 may be connected to one or more computers 290 through a network 280.
[0035] The data processing device 200 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, including a program 230 that controls the camera 130 as described herein. The number of software modules used may vary from embodiment to embodiment. Also, in some cases, the program 230 may be implemented in embedded firmware and / or as software modules distributed on one or more data processing devices connected by one or more computer networks or other suitable communication networks.
[0036] The data processing apparatus 200 may include hardware or firmware devices including one or more hardware processors 212, one or more additional devices 214, a non-transitory computer readable medium 216, a communication interface 218, and one or more user interface devices 220. The processor 212 may process instructions for execution within the data processing apparatus 200, such as instructions stored on a non-transitory computer readable medium 216, which may include a storage device, such as one of the additional devices 214. In some embodiments, the processor 212 is a single or multiple core processor or two or more central processing units (CPUs). The data processing apparatus 200 communicates with one or more computers 290, for example, via a network 280, using its communication interface 218. Thus, in various embodiments, the processes described may be performed in parallel or serially, such as on a single or multiple core computing device and / or a computer cluster / cloud.
[0037] Examples of user interface devices 220 include a display, a touch panel display, a speaker, a microphone, a haptic feedback device, a keyboard, and a mouse. The data processing apparatus 200 may store instructions for performing operations as described herein in a non-transitory computer readable medium 216, which may include, for example, one or more additional devices 214, 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 memory device (e.g., a RAM device). Furthermore, instructions for performing operations as described herein may be downloaded to the non-transitory computer readable medium 216 from one or more computers 290 (e.g., from the cloud) over a network 280, and in some embodiments, the RAM device is a volatile memory device to which instructions are downloaded each time the computer is turned on.
[0038] 3 illustrates another example of a process for controlling a camera based on launch detection and trajectory determination. Data from one or more sensor units is received (300) (e.g., by the data processing device 120, 122, 200, 290). A check is made (305) (e.g., by the data processing device 120, 122, 200, 290) to determine whether a ball (e.g., a golf ball) has been launched. Once the launch of the ball is detected (305) (e.g., by the data processing device 120, 122, 200, 290), the path of the ball can be extrapolated (310) from the initial data to predict the likely location of the ball (e.g., by the data processing device 120, 122, 200, 290). In other words, a very rough initial prediction of the object's trajectory can be made immediately after launch based on one or more early detected aspects of the object's launch, such as the ball's horizontal launch angle, the ball's vertical launch angle, ball speed, club head speed, dynamic loft, club face-to-face angle, and club face angle.
[0039] Initial control signals are sent (315) to the cameras (e.g., by data processing device 120, 122, 200, 290) taking into account the predicted likely position of the ball. Control signals for pan, tilt, focal length, focus and iris may be sent to the cameras as appropriate to the camera motors, such as via a serial port using RS232 or RS422 protocol, via a network or NFC channel (e.g., using Ethernet, WiFi or cellular communication protocols), via an API provided by the camera manufacturer, and / or via customized software designed to communicate with the various camera motors via the camera manufacturer's communication protocol. Thus, the broadcast camera may be set in the right direction even before the sensor system detects the trajectory of the ball in flight, let alone before it has fully started tracking the ball and building a predicted trajectory.
[0040] The relative positions of the camera 130 and the sensor unit 110 in 3D space should be known for the current system configuration. In some embodiments, the camera 130 is calibrated to be in the same 3D coordinate space as the tracking system's sensor unit 110, such as using laser or Global Positioning System (GPS) based calibration systems and techniques. The control process for the camera 130 may have an initial "origin" that may include a fixed level of orientation (pan and tilt) and zoom and focus. The origin is where the shot begins and may be any convenient point along the tee or fairway. For example, with the 3D coordinates of the golf ball received from a ball location system such as SHOTLINK provided by the PGA TOUR, the tracking system and robotic camera may operate in the same coordinate space to ensure that the broadcast camera 130 has its initial view of the golfer and whether he or she may be on the course or not.
[0041] Additional data is received (320) (e.g., by data processing device 120, 122, 200, 290) from one or more sensor units. A check is made (325) (e.g., by data processing device 120, 122, 200, 290) to identify when the ball trajectory has been determined. While the ball trajectory has not been determined (325), initial control signals will continue to be sent to the camera motor (315) taking into account the predicted path of the ball and the time elapsed since the ball was launched.
[0042] Once a trajectory has been determined (325) for the ball (e.g., by the data processing device 120, 122, 200, 290), additional control signals are sent (330) to the camera (e.g., by the data processing device 120, 122, 200, 290) taking into account the predicted likely position of the ball determined from the ball trajectory. The control signals sent to the camera motors can be tailored to provide smooth movement of the camera while keeping it from straying from the ball (or ahead of the ball), for example, using a camera movement model defined according to the determined (and improved) trajectory. For example, one or more splines may be generated based on likely estimates of where the ball should be, and control signals can be specified according to such splines to keep the camera ahead of the ball and prevent jerky camera movement. Splines can be created for a number of parameters, including pan, tilt, zoom, focus and / or iris. In some embodiments, the iris is automatically controlled by the camera (regardless of the predicted likely position), although this automatic control may be overridden in situations where the predicted trajectory warrants this. Similarly, in some embodiments, the camera's autofocus is used, but this depends on the camera being used and the effectiveness of its autofocus control. In some cases, using the predicted likely position of the ball to control the focus may be preferable as it can give better results, since at live sporting events there is no opportunity to "re-shoot" the scene. However, it should be noted that the "determined" trajectory is unlikely to be 100% accurate, at least initially. Rather, the sensor system can predict the likely trajectory in real time, and this predictive data is used to control the camera before the trajectory is certain.
[0043] Thus, further data is received (335) from one or more sensor units (e.g., by the data processing device 120, 122, 200, 290) and the determined trajectory for the ball can be refined (340) (e.g., by the data processing device 120, 122, 200, 290). While ball tracking continues (345) (e.g., by the data processing device 120, 122, 200, 290), additional control signals are sent (330) to the camera taking into account the predicted likely position of the ball. For example, while control signals continue to be determined based on the spline, the spline can be updated in an ongoing manner with the improved trajectory. Furthermore, as more data is received, the accuracy of the predicted trajectory increases, so the camera can be controlled to zoom in and get closer as time progresses. Thus, the camera automatically stays on top of (or ahead of) the ball throughout its entire trajectory, possibly including one or more bounces, until the ball comes to a stop.
[0044] In some embodiments, image data is also received (335) from the broadcast camera 130 (e.g., by the data processing device 120, 122, 200, 290), and this image data may be processed (340) (e.g., by the data processing device 120, 122, 200, 290) to identify the ball within the image data. Once the ball is identified within the image data, further control signals may be sent (330) to the camera to cause the motors 135 of the camera 130 to adjust each of the pan, tilt and zoom (and optionally other parameters / settings) so that the camera stays on top of (or ahead of) the ball in real time. For example, the initial ball path and tracked ball trajectory may be used iteratively to generate an increasingly accurate model of the ball's path in 3D space that the camera is directed to follow (in front of the ball) and zoom in on until the ball is clearly visible within the camera's field of view. In that regard, image processing on the broadcast camera images themselves can be used to supplement ball flight tracking algorithms with real-time data from the broadcast cameras.
[0045] As mentioned above, the ball moves (at least initially) too quickly to track the object using imaging data from camera 130 while also zooming camera 130 to provide a close-up of the ball for broadcast, for example. However, after a certain time, camera 130 will be moving with the ball such that subject blur is reduced, and imaging data from camera 130 can be used to further refine the camera motion model and keep the ball in the camera frame at all times. For example, each individual frame in the collection of frames can be analyzed to detect the ball using machine learning or computer vision algorithms and to detect movement between successive frames. The collection of frames (e.g., of a fixed size) can be "slid" such that for each new successive frame inserted into the system, the oldest frame is also removed. The algorithm can then be re-run to build a model of how the ball is moving in the broadcast frame. With such additional data input, the camera settings can be adjusted to keep the ball in the center of the camera frame based on how the ball is moving in the image.
[0046] Additionally, if the ball goes out of frame somewhat, the camera 130 may be controlled to zoom out (while continuing to move along the expected trajectory) until the ball is again detected within the frame of the camera 130. Also, even if the sensor unit 110 stops tracking the ball upon impact with the ground, the processed image data from the camera 130 may be used to keep the ball within the camera frame as it bounces and rolls. Once the ball stops or the camera 130 loses sight of it, e.g., after a certain timeout, the camera may be controlled to show a larger view of the ball's resting position, e.g., by zooming out to show a wider view of the golf hole to visualize for the viewer where the ball is located in relation to the pin, hole shape, etc.
[0047] In some embodiments, the amount of zoom may be controlled based on the amount of bounce of the ball, which may be determined as the ball impacts an object and the observation of the ball by the sensor unit 110 indicates the actual amount of bounce of the ball. In some cases, the amount of bounce of the ball may be predicted before the bounce based on the predicted trajectory (by the tracking system using the sensor unit) and a prediction of where the ball will impact some other object. For example, a machine learning based algorithm may be trained to classify trees and bunkers (and optionally other objects, such as other objects typically found on golf courses), and their locations in a 3D coordinate system may be estimated and provided for use in predicting the impact and amount of ball bounce.
[0048] Additionally, while the focus of this disclosure is golf, the described systems and techniques are applicable to other sports such as baseball, cricket, football / soccer, American football, etc. Thus, camera control can be based on predictions of other types of impacts of the ball against various objects in the world. For example, the system can predict the impact of the ball against a base, a player, or an out-of-bounds location (e.g., home run prediction), and the camera can be controlled based on this prediction. In some embodiments, one or more image tracking algorithms may be used to track a player on the field (e.g., a player on a baseball field), and a prediction may be made as to where the player is heading in relation to the predicted trajectory of the ball to predict the impact. Additionally, various radar devices, including Doppler radar, phased array radar, continuous wave (CW) and / or frequency modulated continuous wave (FMCW) radar devices, may be used to determine the radial speed, distance, and direction of a tracked object to create a three-dimensional trajectory that can be used in a robotic camera control model using the systems and techniques described herein.
[0049] The subject matter and functional operations described herein may be implemented in digital electronic circuitry or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. The subject matter described herein may be implemented using one or more modules of computer program instructions encoded on a non-transitory computer-readable medium for execution by or to control the operation of a data processing apparatus. The non-transitory computer-readable medium may be an article of manufacture, such as a hard drive or optical disk in a computer system sold through a retail channel, or an embedded system. The non-transitory computer-readable medium may be independently obtained and subsequently encoded with one or more modules of computer program instructions, such as by delivery of one or more modules of computer program instructions over a wired or wireless network. The non-transitory computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, or one or more combinations thereof.
[0050] The term "data processing apparatus" encompasses all apparatus, devices and machines for processing data, including, by way of example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, an apparatus may include code that creates an execution environment for a subject computer program, such as code constituting a processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or one or more combinations of these. Additionally, an apparatus may employ a wide variety of computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0051] A computer program (also known as a program, software application, script, or code) may be written in any suitable form of programming language, including compiled or interpreted, declarative or procedural languages, and may be deployed in any suitable form, such 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. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file specific to the program in question, or in multiple associated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.
[0052] The processes and logic flows described herein may 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 logic flows may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[0053] Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, as well as one or more processors of any suitable type of digital computer. Typically, a processor will receive instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive and / or transfer data from the mass storage devices. However, a computer need not have such devices. Additionally, a computer may be incorporated in other devices, such as a mobile phone, a personal digital assistant (PDA), a portable audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few. Suitable devices for storing program instructions and data include, by way of example, all forms of non-volatile memory, media and memory devices, including semiconductor memory devices, such as 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, CD-ROM and DVD-ROM disks, network attached storage, and various forms of cloud storage. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0054] To provide for interaction with a user, embodiments of the subject matter described herein can be implemented in a computer having a display device, such as an LCD (liquid crystal display), OLED (organic light emitting diode) or other monitor, for displaying information to a user, and a keyboard and pointing device, such as a mouse or trackball, by which the user can provide input to the computer. Other types of devices can be used to provide for interaction with a user as well, for example, feedback provided to the user can be sensory feedback, such as visual feedback, auditory feedback or tactile feedback, and input from the user can be received in a variety of forms, including acoustic, voice or tactile input.
[0055] Although the present specification contains numerous implementation details, these should not be construed as limitations on the scope of the invention, i.e., what may be claimed, but rather as descriptions of specific features for particular embodiments of the invention. Certain features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either independently or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be deleted from that combination, and the claimed combination may be directed to a subcombination or variation of the subcombination. Thus, unless expressly stated otherwise or unless the knowledge of one of ordinary skill in the art clearly indicates otherwise, any feature of the embodiments described above may be combined with any other feature of the embodiments described above.
[0056] Similarly, although operations are illustrated in a particular order, this should not be understood as requiring that such operations be performed in the particular order or sequence shown, or that all of the described operations be performed, to achieve desired results. In certain situations, multitasking and / or parallel processing may be advantageous. Furthermore, the separation of 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 program components and systems described as a whole may be integrated into a single software product or packaged into multiple software products.
[0057] Thus, certain embodiments of the present invention have been described. Other embodiments are within the scope of the following claims. For example, while the above description focuses on tracking the movement of a golf ball, the described systems and techniques are applicable to other types of object movement tracking, such as for baseball or skeet shooting and non-sports applications. Also, tracking a "moving" object may, in some implementations, include tracking an object as it bounces against and / or rolls along the ground.
[0058] Finally, although the focus of this disclosure is on controlling the movement of a physical camera, the described systems and techniques are also applicable to controlling one or more virtual cameras. For example, a typical high definition (HD) broadcast camera has a resolution of 1080x1920 pixels, but higher resolution cameras are currently available and will become available in the future, such as cameras with resolutions of 4K, 8K, 12K, etc. When such higher resolution cameras are used at an event, virtual pan / tilt / zoom effects can be created within the enlarged frame provided by the higher resolution camera. Thus, the systems and techniques described in this application can also be used to control the camera's "movement" in this virtual space of the higher resolution camera's 2D image frame, including sliding along the horizontal and vertical axes of the camera frame, and zooming and transforming the overview within the image so that the "slide" has a pan-like effect instead. Thus, predictive camera control can involve virtually zooming, panning and tilting the broadcast image to provide a greater view of the landing position (e.g., golf green) and / or final resting position, without the physical camera itself moving. Similarly, image data from such high resolution camera 130 may be used in combination with data from at least one independent sensor of sensor unit 110 to track objects in 3D space, as described above.
Claims
1. a first subsystem including a camera and motors constructed and arranged to adjust the pan, tilt, and zoom of the camera; A second subsystem comprising one or more sensors and one or more data processing devices, the one or more data processing devices comprising: Detecting a ball launch based on initial data acquired by the one or more sensors; sending an initial control signal to at least one of the motors of the first subsystem to initiate a change in at least one of the pan, tilt, or zoom of the camera based on the predicted likely position of the ball; determining a trajectory of the ball in three-dimensional space based on additional data acquired by the one or more sensors after the ball is launched; send additional control signals to the motors of the first subsystem to control each of the pan, tilt and zoom of the camera based on the predicted expected position of the ball along the trajectory. The second subsystem, A system comprising:
2. 2. The system of claim 1, wherein the one or more data processing devices of the second subsystem are configured to extrapolate a path of the ball based on the initial data to predict the likely position of the ball after the launch.
3. the camera of the first subsystem is a broadcast camera, and the motor of the first subsystem comprises an actuator constructed and arranged to adjust a focus of the camera; 3. The system of claim 2, wherein the one or more data processing devices of the second subsystem are configured to send further control signals to the actuator of the first subsystem to control a focus of the camera based on a current position of the ball along the trajectory.
4. The one or more data processing devices of the second subsystem include: processing image data from the broadcast camera to identify the ball within the image data; based on a ball identified in the processed image data from the broadcast camera, sending further control signals to the motors of the first subsystem to control each of the pan, tilt and zoom of the camera in real time to keep it from moving away from the ball. The system of claim 3 , configured as follows:
5. The system of claim 1 , wherein the one or more sensors of the second subsystem comprise a radar device.
6. The system of claim 1 , wherein the one or more sensors of the second subsystem comprise a stereo camera.
7. The system of any one of claims 1 to 4, wherein the one or more sensors of the second subsystem comprise a radar device and a camera.
8. The system of any one of claims 1 to 4, wherein the second subsystem comprises a launch monitor that provides the initial data and a ball tracker that provides the additional data.
9. The system according to any one of claims 1 to 4, wherein the ball is a golf ball.
10. The system of any one of claims 1 to 4, wherein the ball is a baseball.
11. The system of any one of claims 1 to 4, wherein the first subsystem is separate and independent from the second subsystem.
12. The system of claim 1 , wherein the one or more sensors of the second subsystem comprise two sensors including the camera of the first subsystem.
13. detecting a ball launch based on initial data acquired by one or more sensors; sending an initial control signal to modify at least one of the pan, tilt, or zoom of a camera based on the predicted likely position of the ball; determining a trajectory of the ball in three-dimensional space based on additional data acquired by the one or more sensors after the ball is launched; sending additional control signals to control each of the pan, tilt and zoom of the camera based on the predicted expected position of the ball along the trajectory; A method for providing the above.
14. 14. The method of claim 13, further comprising extrapolating a path of the ball based on the initial data to predict the likely location of the ball after launch.
15. the camera is a broadcast camera, the pan, tilt and zoom of the camera being physical pan, tilt and zoom controlled by one or more motors with actuators constructed and arranged to adjust the focus of the camera; 15. A method according to claim 13 or 14, further comprising the step of sending a further control signal to the actuator to control the focus of the camera based on the current position of the ball along the trajectory.
16. the camera is a broadcast camera, processing image data from the broadcast camera to identify the ball within the image data; transmitting further control signals to control each of the pan, tilt and zoom of the camera to stay on the ball in real time based on the ball being identified in the processed image data from the broadcast camera; 15. The method of claim 13 or 14, further comprising:
17. 15. The method of claim 13 or 14, wherein the camera is a high definition broadcast camera and the pan, tilt and zoom of the camera is a virtual pan, tilt and zoom.
18. The method of claim 13 or 14, wherein the ball is a golf ball.
19. detecting a ball launch based on initial data acquired by one or more sensors; sending an initial control signal to modify at least one of the pan, tilt, or zoom of a camera based on the predicted likely position of the ball; determining a trajectory of the ball in three-dimensional space based on additional data acquired by the one or more sensors after the ball is launched; sending additional control signals to control each of the pan, tilt and zoom of the camera based on the predicted expected position of the ball along the trajectory; A non-transitory computer readable medium tangibly encoded with a computer program operable to cause a data processing apparatus to perform operations comprising:
20. 20. The non-transitory computer readable medium of claim 19, wherein the operations comprise extrapolating a path of the ball based on the initial data to predict the likely position of the ball after the launch.
21. the camera is a broadcast camera, the pan, tilt and zoom of the camera being physical pan, tilt and zoom controlled by one or more motors with actuators constructed and arranged to adjust the focus of the camera; 21. The non-transitory computer readable medium of claim 19 or 20, wherein the operations further comprise sending a further control signal that causes the actuator to control a focus of the camera based on a current position of the ball along the trajectory.
22. the camera is a broadcast camera, The operation, processing image data from the broadcast camera to identify the ball within the image data; transmitting further control signals to control each of the pan, tilt and zoom of the camera to stay on the ball in real time based on the ball being identified in the processed image data from the broadcast camera; 21. The non-transitory computer-readable medium of claim 19 or 20, further comprising:
23. 21. The non-transitory computer-readable medium of claim 19 or 20, wherein the camera is a high definition broadcast camera and the pan, tilt and zoom of the camera is virtual pan, tilt and zoom.
24. 21. The non-transitory computer-readable medium of claim 19 or 20, wherein the ball is a golf ball.
Citation Information
Patent Citations
Systems to track a moving sports object
US10338209B2
Computerized method of detecting and depicting a travel path of a golf ball
US20180290041A1
System and method for inter-sensor calibration
US20210033722A1
System and Method for Tracking Sports Balls
US20210220718A1
Apparatus and method for tracking the flight of a golf ball
US5342051A