Three-dimensional trajectory model and system
By using an image capture device on a battery-powered device to capture video and transmit it to a communication network for data group classification and solution calculation, the problem of insufficient computing power in 3D modeling of projected object trajectories is solved, and efficient 3D trajectory reconstruction is achieved.
Patent Information
- Application Number
- CN202380012268.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-04-19
- Filing Date
- 2023-04-06
- Publication Date
- 2026-03-20
- Estimated Expiration
- 2043-04-06
Smart Images

Figure CN117546203B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] Pursuant to 35U.SC119(e), this application hereby claims the benefit of the earlier filing date of U.S. Patent Application 17 / 724,049, filed April 19, 2022, the contents of which are incorporated herein by reference in their entirety.
[0003] Rights Statement
[0004] The subject matter disclosed in this application was conceived with government support under authorization number PG / 126 / 19 granted by the Government of the Hong Kong Special Administrative Region. Technical Field
[0005] The topics disclosed in this paper generally involve modeling of projected object trajectory reconstruction, as well as related computing platforms, systems and methods. Background Technology
[0006] Accurate 3D modeling of projectile trajectories typically requires multiple synchronized, stationary image capture devices. These devices acquire trajectory information, and the model can be used to calculate the projectile's true path. 3D modeling of such trajectories often demands considerable computing power that is unavailable and unsustainable on battery-powered devices such as mobile phones or other personal handheld devices. Systems and methods are needed to overcome these drawbacks. Summary of the Invention
[0007] For the purpose of summarizing, certain aspects, advantages, and novel features have been described herein. It should be understood that not all such advantages can be realized according to any particular embodiment. Therefore, the disclosed subject matter can be implemented or performed in a manner that achieves or optimizes one advantage or a set of advantages without achieving all the advantages that may be taught or suggested herein.
[0008] According to some implementations of the disclosed subject matter, a computer-implemented method is provided for reconstructing a 3D trajectory of a projected object using one or more image capture devices. The method includes: capturing one or more videos of the projected object trajectory using one or more image capture devices coupled to at least a first computing device, the first computing device being communicatively connected to a second computing device via a communication network; transmitting the one or more videos to the second computing device via the communication network, wherein the one or more videos from the one or more image capture devices are classified into one or more data groups and the second computing device computes at least one solution for the one or more data groups using a projected trajectory model; and receiving the solution computed by the first computing device for the one or more data groups.
[0009] A computing device is provided in accordance with some implementations of the disclosed subject matter. The computing device includes an image capture device communicatively coupled to a programmable processor; a non-transitory machine-readable medium storing instructions that, when executed by the programmable processor, cause the programmable processor to perform operations including capturing, using the image capture device, one or more two-dimensional videos of a three-dimensional projectile object; computing a data set based on the one or more two-dimensional videos; computing, using the programmable processor, a solution based on the data set, the solution corresponding to at least one characteristic of the three-dimensional projectile object; and displaying, based on the solution, a visual representation of the three-dimensional projectile object and at least one trajectory of the projectile object.
[0010] The data set can include raw data (e.g., x-axis position, y-axis position, time) for one captured trajectory. The computing device can capture one or more trajectories and the trajectories are categorized into different data sets such that data from each trajectory is stored in a data set. From different image capture devices, the same path or trajectory can be captured and grouped in the same data set. For example, if a second image capture device is viewing the same single trajectory (from a different perspective than the first image capture device), the path from the second image capture device is added to the same data set as the data from the first image capture device viewing the same trajectory.
[0011] Just prior to sending to the server, the data set will include all raw data points for the path of the same actual trajectory from all image capture devices. The raw data can include x-axis position, y-axis position, and time data for the path captured by the image capture device.
[0012] A computer program product is provided in accordance with some implementations of the disclosed subject matter. The computer program product includes a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations. The operations include capturing, using one or more image capture devices coupled to at least a first computing device, one or more videos of a projectile object trajectory of a projectile object, the first computing device communicatively connected to a second computing device over a communication network; transmitting, over the communication network, the one or more videos to the second computing device, wherein the one or more videos from the one or more image capture devices are categorized into one or more data sets, at least one solution for the one or more data sets is computed using a projectile trajectory model; and receiving the solution computed for the one or more data sets.
[0013] According to some implementations of the disclosed subject matter, a computer-implemented method of reconstructing a three-dimensional projectile object trajectory. The method includes receiving, at a remote computing device, one or more videos of a projectile object trajectory of a projectile object, the one or more videos being captured using one or more image capture devices coupled to a local computing device, the local computing device and the remote computing device being communicatively connected over a communication network; classifying the one or more videos from the one or more image capture devices into one or more data groups; computing at least one solution for the one or more data groups using a projectile trajectory model; and transmitting the computed solution for the one or more data groups to the local computing device over the communication network.
[0014] The one or more image capture devices can include one or more cameras or video recorders that are not synchronized with a common clock. The one or more image capture devices can include one or more cameras or video recorders that are not synchronized with a common clock and the first computing device can comprise a smartphone that includes an image capture device. The computing device can be at least one of a smartphone, a mobile phone, a laptop computer, a personal computer, etc. The three-dimensional projectile object trajectory can include one or more of a path of the projectile object, a derived velocity of the projectile object, a position of the projectile object, a rotation of the projectile object, a location of the projectile object, a size of the projectile object, and all derivatives of the above data. Capturing the one or more videos of the projectile object trajectory can also include isolating a single projectile object of interest from a field of view that includes two or more projectile objects.
[0015] The projectile trajectory model can be implemented according to a function (0, t) that returns three-dimensional coordinates of a projectile object controlled by the projectile trajectory model with an initial state 0 at time t. The initial state 0 can be a tuple (x, y, z, vx, vy, vy, wx, wy, wz) representing coordinates, velocity, and rotation of the projectile object in a three-dimensional environment. A loss function f of the projectile trajectory model can be defined by the function (0, t) as:
[0016]
[0017] wherein represents a sample trajectory object J observed by at least one of the one or more image capture devices i at time t, and Pi is a projection matrix of the capture device i, and τi represents a time lag of the capture device i, and the function d measures a distance between two homogenous points on a frame of the capture device i. The function d can return a Euclidean distance between two homogenous points. The function (0, t) can be used to compute coordinates y(t) of a projectile object with an initial state 0 at time t by solving the following system of differential equations:
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024] where:
[0025] C d = drag coefficient
[0026] L e = lift coefficient
[0027] T e = aerodynamic torque
[0028] p = air density
[0029] A = cross-sectional area of projectile
[0030] r = radius of spherical projectile
[0031] m = mass of spherical projectile
[0032] g = acceleration due to gravity
[0033] Implementations of the current subject matter can include, but are not limited to, systems and methods consistent with the above-described methods and processes, including one or more features and articles of manufacture that include a tangible implementation of a machine or computer-readable medium operable to cause one or more machines (e.g., computers, processors, etc.) to produce a result by, for example, one or more computing programs or logic encoded on the one or more machine-readable media that when executed by one or more machines, cause the one or more machines to perform one or more operations or functions disclosed herein. The machines can exchange data, commands, or other instructions by one or more connections, including by wired or wireless connection.
[0034] The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. However, the disclosed subject matter is not limited to the described or illustrated embodiments. BRIEF DESCRIPTION OF DRAWINGS
[0035] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate aspects of the subject matter disclosed herein and, together with the description, help explain some of the principles associated with the disclosed implementations as provided below.
[0036] Figure 1 is a flow diagram of an example 3D trajectory reconstruction process consistent with implementations of the current subject matter.
[0037] Figure 2 is a flow diagram of an example 3D trajectory reconstruction process consistent with implementations of the current subject matter.
[0038] Figure 3 is Figure 2 is a flow diagram of example steps 1 and 2 of a 3D trajectory reconstruction process of
[0039] Figure 4 shows example data output from a single device using a 3D trajectory reconstruction process, according to one or more embodiments.
[0040] Figure 5 is a flow diagram of example step 3 of a 3D trajectory reconstruction process of Figure 1
[0041] is a flow diagram of example step 4 of a 3D trajectory reconstruction process of Figure 6 Figure 2
[0042] Figure 7 is an example graphical representation of a 3D reconstruction of a projectile trajectory.
[0043] Figure 8 is a block diagram of an example computing system that can be used to perform one or more computing operations or processes consistent with one or more disclosed features.
[0044] The drawings can not be to scale or in proportion in an absolute or comparative sense and are intended to be exemplary. The relative placement of features and elements can have been modified for the purpose of illustration. According to one or more embodiments, like or common, or equivalent, elements shown in multiple figures can be represented by a like or common designation. DETAILED DESCRIPTION
[0045] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of various embodiments. Some embodiments can be practiced without some or all of these specific details. In some instances, some features are described in less detail in order not to obscure other aspects. The level of detail associated with each element or feature can depend on the impact of that element or feature on the overallfunctionality or clarity of the description. The same or similar reference numerals in different drawings can designate the same or similar elements.
[0046] Referring to Figure 1 , an example operating environment 100 is represented in which a computing system 110 can be used by a user to interact with software 112 executing on the computing system 110. The computing system 110 can be a general purpose computer, a handheld mobile device (e.g., a smartphone, a mobile phone, etc.), a tablet computer (e.g., an Apple iPad®, an Apple iPad Pro®, an Apple iPad Air®, an Apple iPad mini®, a Samsung Galaxy Tab, etc.), or other computing device having communication capabilities. The software 112 can be a web browser, a specialized application, or other type of software application running in whole or in part on the computing system 110.
[0047] The computing system 110 can communicate over a network 130 to access data stored on a storage device 140 or to access services provided by a computing system 120. Depending on the implementation, the storage device 140 can be local to one or more of the computing systems 110 or 120, remote from one or more of the computing systems 110 or 120, or embedded in one or more of the computing systems 110 or 120. The server system 122 can be configured on the computing system 120 to service one or more requests submitted by the computing system 110 or the software 112 (e.g., a client system) via the network 130. The network 130 can be implemented through a local area network or a wide area network (e.g., the Internet). In some implementations, the functionality associated with the storage device 140 and the server system 122 can be performed by the computing system 110 such that no communication over the network 130 is required.
[0048] The computing system 120 and the server system 122 can be implemented as dedicated resources through a centralized or distributed (e.g., cloud-based) computing environment, or can be configured as virtual machines defining shared processing or storage resources. The software 124 or related features and components (e.g., software objects) through execution, implementation, or instantiation by the server system 122 can also define a dedicated machine that provides remote client systems (such as the computing system 110 or the software 112) with access to a variety of data and services as described below.
[0049] According to one or more implementations, the services provided by the specialized machine or software 124 can include providing users with the ability to access, invoke, instantiate, or execute a 3D projectile object trajectory reconstruction process or system using the computing system 110 or software 112. The relevant features described herein can be implemented as a mobile application or any distributed computer program (e.g., “app” or “application”). As used herein, the term “mobile device” can include, for example, a mobile phone, a smartphone, a tablet computer, a laptop computer, or a similar device that is coupled with or connected to an image capture device. Further, the image capture device can be integrated into the mobile device, or can be a standalone image capture device located near a physical location (e.g., a playing field or court). As further disclosed herein, any image capture device can be connected to any computing system in a wired or wireless manner.
[0050] As Figure 2 shown in the flowchart in FIG. 2, according to example implementations, a 3D projectile object trajectory reconstruction process can be performed in multiple steps. For example, at least one image capture device (such as a mobile phone) generates a path of a trajectory from a video captured using the at least one image capture device (S210). The mobile phone can capture a video of multiple projectile objects (such as tennis balls) and generate a path for one projectile object of interest. If multiple image capture devices are used, these devices can or can not need to be synchronized depending on the implementation.
[0051] In certain embodiments, the generated trajectory path is sent by the at least one device (e.g., the computing system 110) to a server (S220). The server (e.g., the computing system 120) can be any suitable server, such as a cloud server, a remote server, etc. If more than one device is used, the server groups the generated paths of the trajectories from the one or more devices into different groups by time (S230). The groups can contain trajectory paths from the devices, and one or more groups can contain the actual trajectory of the projectile. The server can compute a solution for the contents of one or more groups to determine the trajectory path (S240). Finally, the server reports the resulting solution or path to a host server or device (S250).
[0052] Figure 3 Further information is given regarding the trajectory detection and transmission process of Figure 1 may be performed with at least one image capture device (e.g., a mobile phone). The trajectory detection and transmission process of Figure 3The device can be calibrated to its field of view that it will use to capture video of the projectile object(s) (S310). The image capture device then continuously examines one or more frames of the captured video to detect the path of the projectile object of interest. The path can be defined by a set of x and y coordinates and by the time of occurrence of the video recorded by the image capture device.
[0053] As used herein, the term "calibration" is used to refer to a process of determining certain parameters including, for example, focal length, optical center, relative position and orientation, etc. These parameters can be used to triangulate and reconstruct a three-dimensional object using two-dimensional coordinates. For example, reconstructing the trajectory of a three-dimensional object can use the trajectory in the set and the calibration parameters of the image capture device associated with that set to perform the reconstruction. In another example, such as used in a tennis setting, calibration can refer to using defined parameters, such as the tennis court lines, as reference parameters to establish the three-dimensional space (e.g., x, y, and z planes) in which the three-dimensional object trajectory is located in space.
[0054] In certain embodiments, at least one frame is extracted from the video stream (S320). The projectile object position is detected from the extracted video frame (S330). The projectile trajectory path is identified (S340). The extraction, detection, and identification processes can be repeated until a complete projectile trajectory path is identified. The computed projectile trajectory can be sent to a host server or device (S350). The output of the trajectory detection is a set of paths. These paths can be sent to a host server or device (e.g., using one or more of a centralized, distributed, or edge computing platform) for further processing to obtain 3D projectile trajectories.
[0055] Reference Figure 4 A and Figure 4 B, example data output from image capture and processing devices is provided. As shown in Figure 4 A, a data table containing x and y coordinates and time stamps can be used to generate trajectory paths as shown in Figure 4 B. Figure 4 The dashed trajectory paths shown in B represent one path of trajectories to be sent to a host server or device.
[0056] Figure 5 Additional information is given regarding trajectory grouping as depicted in Figure 2 A and B. Projectile trajectory paths are obtained from multiple image capture devices and sent to a host server or device for continuous combination processing (S510a-S510c). The paths from multiple devices can be grouped into sets, the sets containing projectile trajectory paths from image capture devices (S520). For the sets, solutions to equations are computed to generate multiple projectile trajectories related to the actual projectile trajectory at the time of image capture (S530).
[0057] Figure 6 Additional information is given regarding the reconstruction process of Figure 2 the trajectory of the projectile. In one embodiment, nine physical parameters are used to estimate the initial conditions: position (x-plane, y-plane, and z-plane), velocity (x-plane, y-plane, and z-plane), and rotation (x-plane, y-plane, and z-plane) (S610). The projectile trajectory model as disclosed herein and in Appendix A can be used to solve the system of differential equations that describe the flight of the projectile (S620). For example, the differential equations can describe the motion of a projectile object, such as a sports ball, such as a tennis ball. A loss function, such as the distance between data points, can also be computed and re-evaluated using the new parameters until a minimum loss function is reached. The smaller the distance, the more likely the generated trajectory is the true trajectory. Thus, a solution to the projectile motion can be achieved (S630). When more image capture devices are used to generate the data, the loss function will decrease since the solution will be closer to the true trajectory. This solution represents the best match to the data points at a certain point in time of the projectile trajectory.
[0058] Figure 7 A graphical representation of an example 3D projectile trajectory generated according to the projectile trajectory modeling process disclosed above is shown. Notably, example embodiments of the disclosed projectile trajectory model and related modeling process can be implemented according to the details provided in Appendix A attached herewith. The contents of Appendix A are part of the present disclosure and are incorporated herein in their entirety and without limitation. As shown in Figure 7 Trace 0 represents the boundary of the area of motion related to the projectile. Trace 1 represents the projectile trajectory. Trace 2 represents the position of the projectile on the z-axis of the projectile trajectory.
[0059] In embodiments, the model and 3D projectile trajectory reconstruction can be used to determine the position of a tennis ball during a match. For example, it can be desirable to determine at a certain point in time whether the ball is in or out of bounds, e.g., still in play. One or more fixed image capture devices, such as mobile phones, can be used to capture video of one or more ongoing tennis matches, where the one or more image capture devices can be unsynchronized with the same universal clock. If a tennis ball is hit out of bounds and is no longer in play, the image capture devices can send the video they captured to a server or host device in order to generate a 3D projectile trajectory for the tennis ball that can be outside the court and no longer in play. This 3D projectile trajectory can be analyzed to determine whether the ball was indeed outside the court at the time in question. For example, Figure 7 An example graphical output is shown, where trace 0 represents the tennis court, trace 1 represents the trajectory of the tennis ball, and trace 2 represents the z-axis position of the tennis ball along its trajectory.
[0060] As used herein, descriptions of many features are made in relation to a game of tennis. Such example implementations are not intended to be limiting. For example, features described herein can be applied to any suitable game or activity, such as football, hockey, baseball, basketball, track and field, soccer, etc. Moreover, while the most common type of object tracked is a ball, this is also not limiting. For example, people, vehicles, or any moving objects or projectiles can be tracked in a similar manner, whether or not in the context of a sporting activity.
[0061] Reference Figure 8 A block diagram illustrating a computing system 1000, in accordance with one or more embodiments, is provided. The computing system 1000 can be used to implement or support one or more platforms, infrastructures, or computing devices or computing components that can be used to instantiate, implement, execute, or perform the methods disclosed herein in a computing environment, using, for example, one or more processors or controllers, as provided below.
[0062] As Figure 8 illustrated in FIG. 1, the computing system 1000 can include the processor 1010, the memory 1020, the storage 1030, and the input / output devices 1040. The processor 1010, the memory 1020, the storage 1030, and the input / output devices 1040 can be interconnected via a system bus 1050. The processor 1010 is capable of processing instructions for execution within the computing system 1000. Such instructions can be processed by the processor 1010 in order to implement one or more components of, for example, a cloud platform. In some implementations of the current subject matter, the processor 1010 can be a single-threaded processor. Alternatively, the processor 1010 can be a multi-threaded processor. The processor 1010 is capable of processing instructions stored in the memory 1020 and / or on the storage 1030 in order to display graphical information for a user interface provided via the input / output devices 1040.
[0063] The memory 1020 is a computer readable medium, such as volatile or non-volatile memory, within the computing system 1000 that stores information. For example, the memory 1020 can store data structures representing configuration objects databases. The storage 1030 is capable of providing mass storage for the computing system 1000. The storage 1030 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device, or other suitable mass storage devices. The input / output devices 1040 provide input / output operations for the computing system 1000. In some implementations of the current subject matter, the input / output devices 1040 include a keyboard and / or pointing devices. In various implementations, the input / output devices 1040 include a display unit for displaying graphical user interfaces.
[0064] According to some implementations of the current subject matter, the input / output device 1040 can provide input / output operations for a network device. For example, the input / output device 1040 can include an Ethernet port or other network port to communicate with one or more wired and / or wireless networks (e.g., local area networks (LANs), wide area networks (WANs), the Internet, mobile data networks, etc.).
[0065] In some implementations of the current subject matter, the computing system 1000 can be used to execute various interactive computer software applications that can be used to organize, analyze, and / or store data in various (e.g., tabular) formats (e.g., spreadsheets, databases, etc.), using any type of software (e.g., Microsoft Excel®, Microsoft Access®, Microsoft Power BI®, Microsoft SQL Server®, Oracle®, IBM DB2®, etc. and / or any other type of software). Alternatively, the computing system 1000 can be used to execute any type of software application. These applications can be used to perform various functions, such as scheduling functions (e.g., generating, managing, editing spreadsheet documents, word processing documents, and / or any other objects, etc.), computing functions, communication functions, etc. The applications can include various plug-in functions or can be standalone computing products and / or functions. When activated within an application, the functions can be used to generate user interfaces that are provided via the input / output device 1040. The user interfaces can be generated by the computing system 1000 and presented to a user (e.g., on a computer screen monitor, etc.).
[0066] One or more aspects or features of the subject matter disclosed or claimed herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and / or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system can include clients and servers. The clients and servers can be remote from each other and can interact through a communication network. The relationship of client and server can arise by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0067] These computer programs (also known as programs, software, software applications, applications, components, or code) can include machine instructions for a programmable processor, and can be implemented in a high-level procedural and / or object-oriented programming language, and / or in assembly / machine language. As used herein, the term "machine-readable medium" refers to any computer program product, apparatus and / or device (such as, for example, magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs)) used to provide machine instructions and / or data to a programmable processor, and
[0068] To provide for interaction with a user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or a liquid crystal display (LCD) or a light emitting diode (LED) 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 kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. Other possible input devices include touch screens or other touch-sensitive devices, such as single or multi-point resistive or capacitive track pads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like.
[0069] TERMS
[0070] When a feature or element is herein referred to as being "on" another feature or element, it can be directly on the other feature or element or intervening features and / or elements can also be present. In contrast, when a feature or element is referred to as being "directly on" another feature or element, there are no intervening features or elements present. It will also be appreciated by those of skill in the art that references to a feature or element can refer to a singular instance of the feature or element or to plural instances of the feature or element. It will also be understood that when a feature or element is referred to as being "connected," "attached" or "coupled" to another feature or element, it can be directly connected, attached or coupled to the other feature or element or intervening features or elements can be present. In contrast, when a feature or element is referred to as being "directly connected," "directly attached" or "directly coupled" to another feature or element, there are no intervening features or elements present.
[0071] Although described or illustrated with respect to one embodiment, features and elements so described or illustrated can be applied to other embodiments. It will also be understood by those skilled in the art that when a structure or feature is referred to as being "adjacent" to another feature, it can have portions that overlap or underlie the adjacent feature.
[0072] The terminology used herein is for the purpose of describing particular embodiments and implementations only and is not intended to be limiting. For example, as used herein, the singular forms "a," "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Further, it will be understood that the terms "comprises" and / or "comprising," when used in this specification, specify the presence of stated features, steps, operations, processes, functions, elements and / or components, but do not preclude the presence or addition of one or more other features, steps, operations, processes, functions, elements, components and / or groups thereof. As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items and can be abbreviated as " / ".
[0073] In the descriptions above and in the claims, phrases such as "at least one of" or "one or more of" can occur followed by a conjunctive list of elements or features. The term "and / or" can also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it used, such a phrase is intended to mean any of the listed elements or features individually or any of the recited elements or features in combination with any of the other recited elements or features. For example, the phrases "at least one of A and B;" "one or more of A and B;" and "A and / or B" are each intended to mean "A alone, B alone, or A and B together." A similar interpretation is also intended for list of three or more items. For example, the phrase "at least one of A, B, and C;" "one or more of A, B, and C;" and "A, B, and / or C" are each intended to mean "A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together." Use of the term "based on," above and in claims is intended to mean "based at least in part on," such that an unrecited feature or element is also permissible.
[0074] To facilitate description, spatially relative terms— such as "forward," "rearward," "below," "beneath," "lower," "above," "upper," and the like— can be used to describe one element's or feature's relationship to another element or feature as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if a device in the figures is inverted, elements described as "below" or "beneath" other elements or features would then be oriented "above" the other elements or features. Thus, the term "below" can encompass both an orientation of above and below. The device can be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. Similarly, the terms "upwardly," "downwardly," "vertical," "horizontal," and the like are used herein for the purpose of explanation only unless specifically indicated otherwise.
[0075] While the terms "first" and "second" can be used herein to describe various features / elements (including steps or processes), these features / elements should not be limited by these terms since such terms are not necessarily intended to convey an ordering among the mentioned features / elements. These terms can be used to distinguish one from another. Accordingly, a first feature / element discussed below could be termed a second feature / element, and similarly, a second feature / element discussed below could be termed a first feature / element without departing from the teachings provided herein.
[0076] As used herein in the specification and claims, including as used in the examples and unless otherwise indicated, all numbers are to be understood as approximations and are subject to variation desired by the art including variations that are deemed negligible by the skilled artisan (e.g., rounding of a measured value to the nearest significant digit). As used herein in the specification and claims, including as used in the examples, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. As used herein in the specification and claims, including as used in the examples, the term "about" or "approximately" means ± 10% of the value being described or claimed.
[0077] For example, if a value "10" is disclosed, then "about 10" is also disclosed. Any numerical range recited herein is intended to include all sub-ranges of the same numerical precision subsumed
[0078] While various illustrative embodiments have been disclosed, any of a variety of changes in the various embodiments can be made without departing from the teachings of this document. For example, the order in which method steps are performed can be changed or re-sequenced in different or alternative embodiments, and one or more method steps can be skipped in other embodiments. Optional or desired features of various device and system embodiments can be included in some embodiments and not in others. Therefore, the foregoing description is provided primarily for exemplary purposes and should not be interpreted to limit the scope or spirit of the claims or the particular embodiments of the disclosure or specific details or features.
[0079] The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor. Machine-readable media (such as, for example, non-transient solid-state memory or magnetic hard disk drive or any equivalent storage medium) are capable of storing such machine instructions non-transiently. Machine-readable media are also capable of storing such machine instructions transiently, either alternatively or additionally, such as, for example, a processor cache or other random access memory associated with one or more physical processor cores.
[0080] The examples and illustrations contained herein are shown by way of illustration and not limitation, of specific embodiments from which the disclosed subject matter may be practiced. As mentioned, other embodiments may be utilized and derived therefrom, allowing for structural and logical substitutions and changes without departing from the scope of this disclosure. Where more than one invention or inventive concept is disclosed, such embodiments of the disclosed subject matter may be referred to herein individually or collectively as the term “invention” for convenience only, and are not intended to limit the scope of this application to any single invention or inventive concept. Therefore, although specific embodiments have been illustrated and described herein, any arrangement intended to achieve a contemplated, practical, or disclosed purpose, whether expressly stated or implied, may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all modifications or variations of the various embodiments. Combinations of the above embodiments and other embodiments not specifically described herein will be apparent to those skilled in the art upon reading the above description.
[0081] The disclosed subject matter has been provided herein with reference to one or more features or embodiments. Those skilled in the art will recognize and understand that, despite the detailed nature of the exemplary embodiments provided herein, changes and modifications can be made to the embodiments without limiting or departing from the general scope of intent. These and various other modifications and combinations of the embodiments provided herein are within the scope of the disclosed subject matter as defined by the disclosed elements and features and their full set of equivalents.
[0082] It should be understood that the examples and embodiments described herein are for illustrative purposes only, and various modifications or variations based on these examples and embodiments will arise for those skilled in the art, and such modifications or variations will be included within the spirit and scope of this application and the appended claims. All publications, patents, and patent applications cited herein are incorporated herein by reference in their entirety for all purposes.
[0083] COPYRIGHT AND TRADEMARK NOTICES
[0084] A portion of the disclosure of this patent document can contain material that is subject to copyright protection. The applicant has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Certain marks mentioned herein can be common law or registered trademarks of the applicant, the assignee, or third parties. The use of such marks is for providing an example of how the disclosed subject matter can be claimed and is not intended to be exclusive of other possible claims that can be made to the disclosed subject matter.
Claims
1. A computer-implemented method for reconstructing a three-dimensional trajectory of a projected object using one or more image capture devices, the method comprising: One or more video images of the trajectory of a projected object are captured using the one or more image capture devices coupled to at least a first computing device, the first computing device being communicatively connected to a second computing device via a communication network; The one or more videos are transmitted to the second computing device via the communication network, wherein the one or more videos from the one or more image capture devices are classified into one or more data groups and the second computing device uses a projectile trajectory model to compute at least one solution for the one or more data groups; and Receive the solution calculated by the first computing device for the one or more data sets. Wherein, the projectile trajectory model is based on the function To achieve this, the function Return to the initial state The three-dimensional coordinates of the projected object at time t, controlled by the projected trajectory model. Wherein, the initial state It is a tuple representing the coordinates, velocity, and rotation of the projected object in the 3D environment. ,as well as Wherein, the loss function of the projectile trajectory model By the function Defined as: in, Indicates the one or more image capture devices i At least one of them in time t The observed sample trajectory object J, and It is the capture device i The projection matrix, and Indicates the capture device i The time delay, and the function d Measuring the capture device i The distance between two points of the same mass on a frame.
2. The method according to claim 1, wherein, Capturing video of a larger number of projected object trajectories leads to a more accurate solution calculation.
3. The method according to claim 1, wherein, The trajectory of the three-dimensional projector object includes one or more of the following: the path of the projector object, the export velocity of the projector object, the position of the projector object, or the rotation of the projector object.
4. The method according to claim 1, wherein, One or more videos capturing the trajectory of the projected object also include isolating a single projected object of interest from a field of view containing two or more projected objects.
5. The method according to claim 4, wherein, The function d Returns the Euclidean distance between two points of the same mass.
6. The method according to claim 5, wherein, The function The initial state at time t is calculated by solving the following system of differential equations: The coordinates of the projected object : in: ω = angular acceleration.
7. A computing device comprising: An image capture device communicatively coupled to a programmable processor; A non-transient machine-readable medium storing instructions that, when executed by the programmable processor, cause the programmable processor to perform operations including: The image capture device is used to capture one or more two-dimensional videos of a three-dimensional projected object; Calculate data based on the one or more two-dimensional video datasets; The programmable processor is used to compute a solution based on the data set, the solution corresponding to at least one feature of the three-dimensional projector object; as well as Based on the solution, a visual representation of the three-dimensional projectile object and at least one trajectory of the projectile object are displayed. Among them, the projectile trajectory model is based on the function To achieve this, the function Return to the initial state The three-dimensional coordinates of the projected object at time t, controlled by the projected trajectory model. Wherein, the initial state It is a tuple representing the coordinates, velocity, and rotation of the projected object in the 3D environment. ,as well as Wherein, the loss function of the projectile trajectory model By the function Defined as: in, Indicates the one or more image capture devices i At least one of them in time t The observed sample trajectory object J, and It is the capture device i The projection matrix, and Indicates the capture device i The time delay, and the function d Measuring the capture device i The distance between two points of the same mass on a frame.
8. The computing device according to claim 7, wherein, Capturing one or more 2D videos of the 3D projector object also includes isolating a single projector object of interest from a field of view containing two or more projector objects.
9. The computing device according to claim 7, wherein, The solution includes one or more of the following: the path of the projector object, the exit velocity of the projector object, the position of the projector object, or the rotation of the projector object.
10. A computer program product comprising a non-transitory machine-readable medium storing instructions, said instructions, when executed by at least one programmable processor, causing the at least one programmable processor to perform operations including: One or more videos of the trajectory of a projector object are captured using one or more image capture devices coupled to at least a first computing device, the first computing device being communicatively connected to a second computing device via a communication network; The one or more videos are transmitted to the second computing device via the communication network, wherein... The one or more videos from the one or more image capture devices are classified into one or more data groups, and at least one solution for the one or more data groups is calculated using a projectile trajectory model; as well as Receive the solution calculated for the one or more data sets. The projectile trajectory model is based on a function. To achieve this, the function Return to the initial state The three-dimensional coordinates of the projected object at time t, controlled by the projected trajectory model. Wherein, the initial state It is a tuple representing the coordinates, velocity, and rotation of the projected object in the 3D environment. ,as well as Wherein, the loss function of the projectile trajectory model By the function Defined as: in, Indicates the one or more image capture devices i At least one of them in time t The observed sample trajectory object J, and It is the capture device i The projection matrix, and Indicates the capture device i The time delay, and the function d Measuring the capture device i The distance between two points of the same mass on a frame.
11. The computer program product according to claim 10, wherein, The one or more image capture devices include one or more cameras or video recorders that are not synchronized with a common clock, and the first computing device includes a smartphone that includes the image capture devices.
12. The computer program product according to claim 10, wherein, The solution includes one or more of the following: the path of the projector object, the exit velocity of the projector object, the position of the projector object, or the rotation of the projector object.
13. A computer-implemented method for reconstructing the trajectory of a three-dimensional projected object, the method comprising: Receive one or more videos of the trajectory of a projected object at a remote computing device, the one or more videos being captured using one or more image capture devices coupled to a local computing device, the local computing device and the remote computing device being communicatively connected via a communication network; Classify one or more videos from the one or more image capture devices into one or more data groups; Calculate at least one solution for the one or more data sets using the projectile trajectory model; as well as The solutions calculated for the one or more data sets are transmitted to the local computing device via the communication network. Wherein, the projectile trajectory model is based on the function To achieve this, the function Return to the initial state The three-dimensional coordinates of the projected object at time t, controlled by the projected trajectory model. Wherein, the initial state It is a tuple representing the coordinates, velocity, and rotation of the projected object in the 3D environment. ,as well as Wherein, the loss function of the projectile trajectory model By the function Defined as: in, Indicates the one or more image capture devices i At least one of them in time t The observed sample trajectory object J, and It is the capture device i The projection matrix, and Indicates the capture device i The time delay, and the function d Measuring the capture device i The distance between two points of the same mass on a frame.
14. The method according to claim 13, wherein, The one or more image capture devices include one or more cameras or video recorders that are not synchronized with a common clock.
15. The method according to claim 13, wherein, The trajectory of the three-dimensional projector object includes one or more of the following: the path of the projector object, the export velocity of the projector object, the position of the projector object, or the rotation of the projector object.
Citation Information
Patent Citations
Device, System, and Method of Computer Vision, Object Tracking, Image Analysis, and Trajectory Estimation
US20210264141A1
Game status detection and trajectory fusion
WO2021016902A1