# US 10,504,293 B2 · Augmenting multi-view image data with synthetic objects using IMU and image data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,504,293 B2
- Document ID: US10504293B2
- Status: Granted
- Kind: B2
- Application number: 16/181,227
- Filed: 2018-11-05
- Published: 2019-03-07
- Granted: 2019-12-10
- Earliest claimed: 2015-10-16
- Assignees: Fyusion, Inc.
- Applicants: Fyusion, Inc.
- Inventors: Stefan Johannes Josef Holzer; Stephen David Miller; Alexander Jay Bruen Trevor; Martin Saelzle; Radu Bogdan Rusu
- Web page: https://patentgrep.com/patent/US10504293B2

## CPC

- G06T 19/006: {Mixed reality (object pose determination, tracking or camera calibration for mixed reality G06T7/00)}
- G06T 13/20: Three-dimensional [3D] animation
- G06T 2219/028: Multiple view windows (top-side-front-sagittal-orthogonal)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Provided are mechanisms and processes for augmenting multi-view image data with synthetic objects using inertial measurement unit (IMU) and image data. In one example, a process includes receiving a selection of an anchor location in a reference image for a synthetic object to be placed within a multi-view image. Movements between the reference image and a target image are computed using visual tracking information associated with the multi-view image, device orientation corresponding to the multi-view image, and an estimate of the camera's intrinsic parameters. A first synthetic image is then generated by placing the synthetic object at the anchor location using visual tracking information in the multi-view image, orienting the synthetic object using the inverse of the movements computed between the reference image and the target image, and projecting the synthetic object along a ray into a target view associated with the target image. The first synthetic image is overlaid on the target image to generate an augmented image from the target view.

## Claims

### Claim 1

A method comprising:
receiving a selection of an anchor location for a synthetic object to be placed within a multi-view image;
computing movements between a reference image and a target image using visual tracking information associated with the multi-view image;
generating a first synthetic image corresponding to a target view associated with the target image, wherein the first synthetic image is generated by placing the synthetic object at the anchor location using visual tracking information associated with the anchor location in the multi-view image and orienting the synthetic object using the inverse of the movements computed between the reference image and the target image, wherein the anchor location includes three-dimensional coordinates corresponding to 2D coordinates specified in the reference image along with a depth perpendicular to the plane of the reference image, the depth being triangulated, wherein generating the first synthetic image includes scaling the triangulated depth based on scale changes in the multi-view image; and
overlaying the first synthetic image on the target image to generate an augmented image from target view of the target image.

### Claim 2 (depends on 1)

The method of claim 1, wherein the synthetic object is located at a fixed position relative to the anchor location.

### Claim 3 (depends on 1)

The method of claim 1, wherein the synthetic object moves relative to the anchor location.

### Claim 4 (depends on 1)

The method of claim 1, wherein the synthetic object is animated.

### Claim 5 (depends on 4)

The method of claim 4, wherein animation of the synthetic object is based on an amount of time that passes during viewing of the multi-view image, and wherein the animation is independent of navigation through the multi-view image.

### Claim 6 (depends on 4)

The method of claim 4, wherein animation of the synthetic object is dependent on navigation of the multi-view image, wherein the animation is dependent on spatial movement of the camera.

### Claim 7 (depends on 4)

The method of claim 4, wherein the synthetic object is represented by a video.

### Claim 8 (depends on 1)

The method of claim 1, wherein the synthetic object is transparent or semi-transparent in at least one view associated with the multi-view image.

### Claim 9 (depends on 1)

The method of claim 1, wherein the multi-view image includes dynamic content.

### Claim 10 (depends on 1)

The method of claim 1, wherein the multi-view image includes dynamic context.

### Claim 11

A non-transitory computer readable medium comprising:
receiving a selection of an anchor location for a synthetic object to be placed within a multi-view image;
computing movements between a reference image and a target image using visual tracking information associated with the multi-view image;
generating a first synthetic image corresponding to a target view associated with the target image, wherein the first synthetic image is generated by placing the synthetic object at the anchor location using visual tracking information associated with the anchor location in the multi-view image and orienting the synthetic object using the inverse of the movements computed between the reference image and the target image, wherein the anchor location includes three-dimensional coordinates corresponding to 2D coordinates specified in the reference image along with a depth perpendicular to the plane of the reference image, the depth being triangulated, wherein generating the first synthetic image includes scaling the triangulated depth based on scale changes in the multi-view image; and
overlaying the first synthetic image on the target image to generate an augmented image from target view of the target image.

### Claim 12 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the synthetic object is located at a fixed position relative to the anchor location.

### Claim 13 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the synthetic object moves relative to the anchor location.

### Claim 14 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the synthetic object is animated.

### Claim 15 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein animation of the synthetic object is based on an amount of time that passes during viewing of the multi-view image, and wherein the animation is independent of navigation through the multi-view image.

### Claim 16 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein animation of the synthetic object is dependent on navigation of the multi-view image, wherein the animation is dependent on spatial movement of the camera.

### Claim 17 (depends on 14)

The non-transitory computer readable medium of claim 14, wherein the synthetic object is represented by a video.

### Claim 18 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the synthetic object is transparent or semi-transparent in at least one view associated with the multi-view image.

### Claim 19 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the multi-view image includes dynamic content.

### Claim 20

A system comprising:
a processor; and
memory, wherein the memory stores instructions for:
receiving a selection of an anchor location for a synthetic object to be placed within a multi-view image;
computing movements between a reference image and a target image using visual tracking information associated with the multi-view image;
generating a first synthetic image corresponding to a target view associated with the target image, wherein the first synthetic image is generated by placing the synthetic object at the anchor location using visual tracking information associated with the anchor location in the multi-view image and orienting the synthetic object using the inverse of the movements computed between the reference image and the target image, wherein the anchor location includes three-dimensional coordinates corresponding to 2D coordinates specified in the reference image along with a depth perpendicular to the plane of the reference image, the depth being triangulated, wherein generating the first synthetic image includes scaling the triangulated depth based on scale changes in the multi-view image; and
overlaying the first synthetic image on the target image to generate an augmented image from target view of the target image.
