Patent Description:
Computers are used to create two-dimensional and three-dimensional renderings of real world objects. For example, computer games have two-dimensional and three-dimensional renderings of athletes and other humans that appear lifelike and move in a lifelike manner.

The way that these objects move is often pre-recorded using a motion tracking system. A motion tracking system may have a staging area where an athlete is located. A plurality of cameras are positioned around the athlete and are used to capture the locations of beacons that are attached to clothing worn by the athlete as the athlete performs a series of moves such as striking a golf ball, catching a football, etc. An example of such a system is given in the document <CIT>.

<CIT> discloses an interferometry system that includes a multiple-pass interferometer having reflectors to reflect at least two beams along multiple passes through the interferometer. A measurement mirror may be tilted to align the measurement beam and the reference beam.

The motion tracking system has a motion tracking system positioning algorithm that receives data from the cameras and determines the locations of the beacons. These locations are then recorded and are used to match a rendering of an athlete in a moving computer model.

It has become increasingly important that the motion tracking system record the locations of these beacons accurately. For purposes of accurately recording the movement of body parts of an athlete, the locations of the beacons relative to one another should be accurate. It is also very important that relative location of beacons does not change as object (such as a human) is moving through space. For example, in the case of an athlete that is being captured, it is important that length and angles of arms or joints do not change as an athlete is moving across large area and such errors tend be more pronounced when a large area is used for motion tracking. Furthermore, the locations of the beacons should be accurately determined relative to other real world objects. It is, for example, important that location of the athlete relative to the ground be accurate so that the athlete moves across the ground as opposed to floating above the ground or below it.

The invention provides a method and a system as presented in the appended claims.

The invention described by way of example with reference to the accompanying drawings, wherein:.

<FIG> of the accompanying drawings illustrates an object detection system <NUM>, according to an embodiment of the invention, including a motion tracking system <NUM> and a staging system <NUM> that is used to verify accuracy of the motion tracking system <NUM>.

The motion tracking system <NUM> includes a plurality of detectors in the form of respective cameras <NUM> and a motion tracking system positioning algorithm <NUM>.

The cameras <NUM> are positioned on front, back, left and right sides of a staging area <NUM>. Each camera <NUM> is positioned to capture an image, or multiple frames of images, of an object located in the staging area <NUM>.

The motion tracking system positioning algorithm <NUM> is located on a storage device of a computing device. The cameras <NUM> are connected to the computing device and provide data of images that are captured by the cameras <NUM> to the motion tracking system positioning algorithm <NUM>. The motion tracking system positioning algorithm <NUM> executes a routine that determines a location of the object in the staging area <NUM> based on the data received from the cameras <NUM>.

<FIG> shows only limited details of the staging system <NUM>, including a mobile platform <NUM>, a wall <NUM> and a stage location algorithm <NUM>. The mobile platform <NUM> is located within the staging area <NUM>. The mobile platform <NUM> is first located at a first position 24A and is later moved to second position 24B. Various light beams are used to locate the mobile platform <NUM> relative to the wall <NUM>. The stage location algorithm <NUM> resides on a computer-readable medium of a computing device. The stage location algorithm <NUM> calculates a location of an object on the mobile platform <NUM> after the mobile platform <NUM> is positioned relative to the wall <NUM>.

<FIG> shows further components of the staging system <NUM> that are not shown in <FIG>, including a target frame <NUM>, a frame adjustment mechanism <NUM>, a plurality of beacons <NUM>, a target frame mirror <NUM> and mirror orientation adjustment mechanism <NUM>.

The frame adjustment mechanism <NUM> mounts the target frame <NUM> to the mobile platform <NUM>. The frame adjustment mechanism <NUM> can swivel about a vertical swivel axis <NUM> relative to the mobile platform <NUM>. When the frame adjustment mechanism <NUM> swivels about the vertical swivel axis <NUM>, the target frame <NUM> swivels in a direction <NUM> about the vertical swivel axis <NUM>.

The frame adjustment mechanism <NUM> includes a plurality of adjustment screws that further allow for adjustment of the target frame <NUM> relative to the mobile platform <NUM>. The target frame <NUM> can be rotated about horizontal axes <NUM> and <NUM> in directions <NUM> and <NUM> respectively.

The target frame <NUM> includes a base portion <NUM> that is mounted to the frame adjustment mechanism <NUM> and an upper portion <NUM>. The upper portion <NUM> is mounted to the base portion <NUM> through a bearing. The bearing allows for the upper portion <NUM> to pivot in a direction <NUM> about a horizontal pivot axis <NUM>. Pivoting of the upper portion <NUM> about the horizontal pivot axis <NUM> also pivots the upper portion <NUM> in the direction <NUM> relative to the mobile platform <NUM>.

The target frame mirror <NUM> is mounted through the mirror orientation adjustment mechanism <NUM> to the upper portion <NUM> of the target frame <NUM>. The mirror orientation adjustment mechanism <NUM> has a plurality of adjustment screws that, when rotated, adjust the target frame mirror <NUM> relative to the upper portion <NUM> of the target frame <NUM>. The mirror orientation adjustment mechanism <NUM> adjusts the target frame mirror <NUM> in directions <NUM> and <NUM> about horizontal and vertical axes <NUM> and <NUM>, respectively.

The beacons <NUM> are mounted to the upper portion <NUM> of the target frame <NUM>. The beacons <NUM> may be "passive beacons" that made of a material that is easily detectable by the cameras <NUM> in <FIG> or may be "active beacon" such as light-emitting diodes (LED's) or other objects that emit visible or invisible light that can be detected by a camera. Any adjustment of the target frame <NUM> about the axes <NUM>, <NUM>, <NUM> or <NUM> causes simultaneous adjustment of the locations of the beacons <NUM> relative to the mobile platform <NUM>. The beacons <NUM>, however, remain stationary when the target frame mirror <NUM> is adjusted about the axes <NUM> and <NUM>.

<FIG> illustrates further components of the staging system <NUM> in <FIG>, including a laser light source <NUM>, a beam splitter <NUM> and a reference mirror <NUM>. The arrangement comprising the laser light source <NUM>, beam splitter <NUM>, reference mirror <NUM> and the wall <NUM> are recognizable in the art as a "Michelson Interferometer". The reference mirror <NUM> may be used for initial rough alignment of the target frame mirror <NUM> relative to the wall <NUM>.

The horizontal pivot axis <NUM> is shown in <FIG>. During initial alignment of the upper portion <NUM> of the target frame <NUM>, it can be assumed that the horizontal pivot axis <NUM> is not normal to the wall <NUM>.

Furthermore, it can be assumed that a line normal to the target frame mirror <NUM> is not aligned with the horizontal pivot axis <NUM>. Calibration of the staging system <NUM> in <FIG> involves adjusting the target frame mirror <NUM> so that a line normal to the target frame mirror <NUM> coincides with the horizontal pivot axis <NUM>. A light beam reflecting normal to the target frame mirror <NUM> will coincide with or be parallel to the horizontal pivot axis <NUM>. It will thus be possible to obtain the direction of the horizontal pivot axis <NUM> by first determining the direction of a light beam that is normal to the target frame mirror <NUM>.

<FIG> illustrates a method of detecting an object using the object detection system <NUM> in <FIG>. At <NUM>, the staging system <NUM> is calibrated. At <NUM>, the staging system <NUM> is used to generate a stage-based location of one or more of the beacons <NUM> in <FIG>. At <NUM>, the motion tracking system <NUM> is used to generate a motion tracking system-based location of the one or more beacons <NUM>. At <NUM>, the motion tracking system <NUM> is verified. Verification of the motion tracking system <NUM> generally includes a comparison of the motion tracking system-based location with the stage-based location to determine accuracy of the motion tracking system-based location. At <NUM>, the components of the staging system <NUM> shown in <FIG> are moved from the first position 24A to the second position 24B in <FIG>. The processes at <NUM>, <NUM> and <NUM> are then repeated.

In use, for calibration purposes, the laser light source <NUM> generates a primary calibration light beam <NUM>. The beam splitter <NUM> splits the primary calibration light beam <NUM> into a reference calibration light beam <NUM> and a stage calibration light beam <NUM>. The stage calibration light beam <NUM> is at right angles to the primary calibration light beam <NUM> and the reference calibration light beam <NUM>.

The reference calibration light beam <NUM> reflects at <NUM> degrees off the reference mirror <NUM> and then reflects at <NUM> degrees from the beam splitter <NUM> towards the wall <NUM>. The location of the reference calibration light beam <NUM> is detected by a reference spot <NUM> that is created by the reference calibration light beam <NUM> on the wall <NUM>. The stage calibration light beam <NUM> is at an angle of less than <NUM> degrees relative to a line normal to the target frame mirror <NUM> and then reflects at an angle that is less than <NUM> degrees from the target frame mirror <NUM>. For example, the stage calibration light beam <NUM> may approach the target frame mirror <NUM> at an angle of <NUM> degrees relative to normal and reflect from the target frame mirror <NUM> at an angle of <NUM> degrees relative to normal, thus resulting in a reflected angle of <NUM> degrees. The stage calibration light beam <NUM> passes through the beam splitter <NUM> and progresses to the wall <NUM>. A location of the stage calibration light beam <NUM> is detected by a first calibration spot <NUM> on the wall <NUM>. The upper portion <NUM> of the target frame <NUM> can be adjusted so that the first calibration spot <NUM> moves closer to the reference spot <NUM>. Such an adjustment results in a plane of the target frame mirror <NUM> being more parallel to the primary calibration light beam <NUM>. The reference spot <NUM> is then not used anymore.

As shown in <FIG> and <FIG>, the upper portion <NUM> of the target frame <NUM> is pivoted left and right about the horizontal pivot axis <NUM>.

As shown in <FIG>, at <NUM>, the first calibration spot <NUM> is first aligned with the reference spot <NUM>. The alignment is accomplished by swivel movement about swivel axis <NUM> and rotation about rotation axis <NUM> as described above. The alignment of first calibration spot <NUM> with the reference spot is shown in <FIG>.

Next, as shown in <FIG>, at <NUM>, pivoting about the pivot axis <NUM> is carried out in a clockwise direction and the direction of vertical and horizontal movement of the first calibration spot <NUM> is noted. Such movement is caused by misalignment of the pivot axis <NUM> and an axis normal of mirror <NUM>. By noting direction at <NUM> in <FIG>, the direction to steer mirror <NUM> with mirror adjustment mechanism <NUM> can be determined as represented at <NUM> in <FIG>. As shown in <FIG>, at <NUM>, a small adjustment with the mirror <NUM> with the mirror adjustment mechanism <NUM>.

Next, as shown in <FIG>, at <NUM>, the first calibration spot <NUM> is again aligned with the reference spot <NUM>. The process shown in <FIG> is this a repeat of <FIG>. Subsequent processes described in <FIG> are repeated until clockwise movement in <FIG> does not produce any vertical or horizontal movement of the first calibration spot <NUM>. It can then be concluded that normal of the mirror <NUM> is sufficiently aligned with or coincides with the axis pivot <NUM>.

As shown in <FIG> and <FIG>, the target frame mirror <NUM> is also adjusted by using the frame adjustment mechanism <NUM> to rotate the target frame <NUM> together with the target frame mirror <NUM> about the horizontal axis <NUM>.

The calibration of the staging system <NUM> at <NUM> in <FIG> is then completed. The staging system <NUM> is now used to generate a stage-based location of the beacon <NUM> at <NUM> in <FIG>.

As shown in <FIG>, the laser light source <NUM> is used to generate a stage calibration light beam <NUM>. The stage calibration light beam <NUM> is split by the beam splitter <NUM>. For purposes of discussion only, one component of the stage calibration light beam <NUM> is used, namely the component <NUM> that is reflected by the beam splitter <NUM> towards the target frame mirror <NUM>. The component <NUM> of the stage calibration light beam <NUM> is reflected by the target frame mirror <NUM> and forms a positioning spot <NUM> on the wall <NUM>. The positioning spot <NUM> is at the same location as the fourth calibration spot <NUM> in <FIG>. The positioning spot <NUM> also indicates the location of the horizontal pivot axis <NUM>.

Referring to <FIG>, the beacons <NUM> are in positions relative to the horizontal pivot axis <NUM> that are known due to the mechanical specifications according to which the staging system <NUM> is manufactured. Furthermore, a scale <NUM> provides a visual readout of the degree to which the upper portion <NUM> of the target frame <NUM> is pivoted relative to the base portion <NUM> of the target frame <NUM>. The locations of the beacons <NUM> can thus be calculated once the location of the horizontal pivot axis <NUM> and the angular readout from the scale <NUM> are known. In practice, an operator enters the angular measurement from the scale <NUM> into the stage location algorithm <NUM> and the stage location algorithm <NUM> calculates the locations of the beacons <NUM> when the mobile platform <NUM> is located in the first position 24A. An output of the stage location algorithm <NUM> provides a stage-based location of each one of the beacons <NUM> in <FIG>.

With the mobile platform <NUM> in a stationary location, various adjustments can be made to the upper portion <NUM> of the target frame <NUM>. For example, the upper portion <NUM> of the target frame <NUM> can be pivoted as shown in <FIG> and the locations of beacons <NUM> can again be calculated. Similarly, the upper portion <NUM> of the target frame <NUM> can be pivoted and be rotated as shown in <FIG>, <FIG>, <FIG> and <FIG> and the locations of the beacons can again be calculated. As shown <FIG>, the target frame <NUM> can also be swiveled about the vertical swivel axis <NUM> and the locations of the beacons <NUM> can again be calculated. A dedicated scale (not shown) is used to provide a readout of the angle to which the target frame <NUM> swivels in <FIG>.

At <NUM> in <FIG>, the motion tracking system <NUM> in <FIG> determines the locations of the beacons <NUM> independently of the staging system <NUM>. The cameras <NUM> capture the locations of the beacons <NUM> each time that the staging system <NUM> is used to calculate the locations of the beacons <NUM> at <NUM> as described above. The motion tracking system positioning algorithm <NUM> in <FIG> calculates the locations of the beacons <NUM> based on data that the motion tracking system positioning algorithm <NUM> receives from the cameras <NUM>. An output of the motion tracking system positioning algorithm <NUM> represents a motion tracking system-based location of each beacon <NUM> relative to the cameras <NUM> of the motion tracking system <NUM>.

At <NUM> in <FIG>, an operator verifies the motion tracking system <NUM>. The operator compares the motion tracking system-based locations with the stage-based locations to determine accuracy of the motion tracking system-based locations. The data is compared when the staging system <NUM> is in a configuration shown in <FIG> and then repeated when the staging system <NUM> is in different configurations, for example in the configurations shown in <FIG>, <FIG>, <FIG>, <FIG> and <FIG>.

At <NUM> in <FIG>, the operator moves the staging system <NUM>. In particular, the operator moves the mobile platform <NUM> from the first position 24A to the second position 24B in <FIG>. After the operator has moved the mobile platform <NUM>, the operator again positions the mobile platform <NUM> so that the positioning spot <NUM> in <FIG> is at the same location that it was before the operator had moved the mobile platform <NUM>. The operator thereby knows that the horizontal pivot axis <NUM> remains in the same position. <FIG> shows the upper portion <NUM> of the target frame <NUM> that has been moved together with the target frame mirror <NUM> to the second position 24B by an operator. The beam splitter <NUM> provides a reference beam <NUM> that reflects from the reference mirror <NUM> and from the beam splitter <NUM> and forms a reference spot <NUM> on the wall <NUM>. The operator aligns the positioning spot <NUM> with the reference spot <NUM>. The horizontal pivot axis <NUM> thus remains in the same position when comparing <FIG> with <FIG>. Further adjustments as illustrated in <FIG> and <FIG> are again made, wherein the frame adjustment mechanism <NUM> is used to align the positioning spot <NUM> with the reference spot <NUM>. However, any adjustments using the mirror orientation adjustment mechanism <NUM> are not made at this stage.

Referring again to <FIG>, the processes at <NUM>, <NUM> and <NUM> are then again repeated to verify the accuracy of the motion tracking system <NUM>.

A Michelson Interferometer is used because of its accuracy and ease of use. It may be possible to calibrate the target frame mirror <NUM> using a different optical system that uses laser light or non-laser light.

The detectors of the motion tracking system <NUM> are represented as cameras <NUM>. It may be possible to use other detectors such as infra-red detectors or radar detectors. Furthermore, the cameras <NUM> are shown in stationary positions around the staging area, although it may be possible to locate one or more cameras or other detectors on the target frame <NUM> instead.

<FIG> shows a diagrammatic representation of a machine in the exemplary form of a computer system <NUM> within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The exemplary computer system <NUM> includes a processor <NUM> (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory <NUM> (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory <NUM> (e.g., flash memory, static random access memory (SRAM), etc.), which communicate with each other via a bus <NUM>.

The computer system <NUM> may further include a video display <NUM> (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system <NUM> also includes an alpha-numeric input device <NUM> (e.g., a keyboard), a cursor control device <NUM> (e.g., a mouse), a disk drive unit <NUM>, a signal generation device <NUM> (e.g., a speaker), and a network interface device <NUM>.

The disk drive unit <NUM> includes a machine-readable medium <NUM> on which is stored one or more sets of instructions <NUM> (e.g., software) embodying any one or more of the methodologies or functions described herein. The software may also reside, completely or at least partially, within the main memory <NUM> and/or within the processor <NUM> during execution thereof by the computer system <NUM>, the main memory <NUM> and the processor <NUM> also constituting machine-readable media.

The software may further be transmitted or received over a network <NUM> via the network interface device <NUM>.

While the machine-readable medium <NUM> is shown in an exemplary embodiment to be a single medium, the term "machine-readable medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term "machine-readable medium" shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term "machine-readable medium" shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.

Claim 1:
A method of detecting an object comprising:
(i) calibrating a staging system (<NUM>), the staging system including a mobile platform (<NUM>), a target frame (<NUM>) mounted to the mobile platform for pivotal movement about a horizontal pivot axis (<NUM>) between a first pivot angle (Fig. <NUM>) and a second pivot angle (Fig. <NUM>), a beacon (<NUM>) on the target frame, and a target frame mirror (<NUM>) attached to the target frame, the method including:
generating a stage calibration light beam (<NUM>);
reflecting the stage calibration light beam from the target frame mirror;
pivoting the target frame about the horizontal pivot axis between the first pivot angle and the second pivot angle relative to the mobile platform;
detecting first and second locations (Fig. 7B; Fig. 7C) of the stage calibration light beam after the stage calibration light beam is reflected from the target frame mirror when the target frame is in the first pivot angle and in the second pivot angle respectively;
determining, based on the first and second locations, a value representing an orientation of the target frame mirror relative to the horizontal pivot axis (<NUM>); and
adjusting, based on the determination of the value representing the orientation of the target frame mirror, the orientation of the target frame mirror relative to the target frame so that the target frame mirror is more normal to the horizontal pivot axis;
characterized in that the method further comprises (<NUM>):
(ii) using the staging system to generate a stage-based location of the beacon (<NUM>), including:
generating a stage positioning light beam (<NUM>);
reflecting the stage positioning light beam from the target frame mirror;
detecting a location of the stage positioning light beam after the stage positioning light beam is reflected from the target frame mirror (<NUM>; <NUM>); and
determining a stage-based location of the beacon on the target frame based on the stage positioning light beam (<NUM>; <NUM>).