IP Library Granted Patent US 12,079,942
Granted Patent B2
US 12,079,942 · App. 18/134,670 · Granted Sep 3, 2024

Augmented and virtual reality

Inventors: Simon Heinen (Aachen, DE); Lars Tholen (Aachen, DE); Mostafa Akbari-Hochberg (San Francisco, CA); Gloria Abidin (Aachen, DE)
Assignee: FARO Technologies, Inc.
G06T19/006G06T15/04G06T17/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,079,942
App. No.
18/134,670
Granted
Sep 3, 2024
Kind
B2
Abstract

A method for creating an augmented reality scene, the method comprising, by a computing device with a processor and a memory, receiving a first video image data and a second video image data; calculating an error value for a current pose between the two images by comparing the pixel colors in the first video image data and the second video image data; warping pixel coordinates into a second video image data through the use of the map of depth hypotheses for each pixel; varying the pose between the first video image data and the second video image data to find a warp that corresponds to a minimum error value; calculating, using the estimated poses, a new depth measurement for each pixel that is visible in both the first video image data and the second video image data.

Claims (82)

1. A method of creating a virtual reality map on a display of a computing device having a processor and a memory, the method comprising:

receiving floorplan data including a map;

receiving image data from an image capturing device, the image data created during a time at a location on the map, the image data including a plurality of frames of images of the location, the image data including a timestamp identifying the time;

stitching the plurality of frames together to form a 360 degree view of the location;

displaying at least a portion of the floorplan data including the map;

receiving a selection corresponding to the location on the map from at least one of a device and a user input;

displaying an icon on the map at the location in response to the selection;

segmenting the 360 view into a plurality of tiles based on a resolution of the image data;

correlating the plurality of tiles to the icon; and

in response to receiving a selection of the icon, displaying the plurality of tiles.

2. The method of claim 1 , further comprising:

separating the plurality of tiles into lower resolution tiles and higher resolution tiles based on a resolution threshold; and

displaying the plurality of tiles further comprises displaying the lower resolution tiles before the higher resolution tiles.

3. The method of claim 1 , wherein displaying the plurality of tiles further comprises displaying the plurality of tiles asynchronously and iteratively.

4. The method of claim 1 further comprising:

receiving second image data created during a second time at a second location on the map by the image capturing device, the second image data having a timestamp identifying the second time;

stitching a second plurality of frames of the second image data together to form a second 360 degree view of the second location;

receiving a second selection corresponding to the second location on the map;

displaying a second icon at the second location on the map in response to the second selection;

correlating the second image data to the second location on the map;

segmenting the second 360 view into a second plurality of tiles based on a resolution of the second image data;

correlating the second plurality of tiles to the second icon; and

in response to receiving a further selection of the second icon, displaying both the first plurality of tiles and the second plurality of tiles on the display.

5. The method of claim 4 , further comprising:

displaying the first timestamp and the second timestamp on the display;

presenting the first plurality of tiles in response to a selection of the first timestamp; and

presenting the second plurality of tiles in response to a selection of the second timestamp.

6. The method of claim 1 further comprising:

receiving a drag and drop instruction to move the icon from the location on the map to a different location on the map;

displaying the icon at the different location on the map;

correlating the image data to the different location on the map.

7. The method of claim 1 further comprising:

receiving an annotation to the map, the annotation including a data file including at least one of: an image, text, a display element, a task assigned to a user, a drawing, and audio;

receiving a selection of the location as an annotated location on the map;

correlating the annotation to the location; and

generating an annotation icon at the location.

8. The method of claim 1 further comprising:

calculating an absolute position of the location in a coordinate space of the map using position sensor data from a sensor component comprising at least one of a global positioning system, a compass, an accelerometer, and a gyroscope;

orienting the map in the coordinate space based on the absolute position; identifying tracking errors of the sensor component based on the orienting and the position sensor data; and

correcting the tracking errors of the sensor component.

9. The method of claim 8 , further comprising:

extracting a plurality of keyframes from the image data collected by the image capturing device at the location that corresponds to the absolute position, each keyframe including a frame of pixels with a depth map and a position; and

providing the keyframes to a visual odometry system to estimate a pose of the image capturing device.

10. The method of claim 9 , further comprising:

creating a new keyframe when a distance of a frame to a current keyframe is above a predetermined threshold.

11. The method of claim 9 , further comprising:

estimating a depth map of each keyframe from the plurality of keyframes using estimated depth values of a plurality pixels in each keyframe;

for a non-keyframe frame in the image data, calculating a relative position to the keyframe using the depth map of the keyframe;

refining the depth map of the keyframe based on the relative position;

generating a point cloud using each keyframe in the image data;

computing a normal vector for each point in the point cloud based on its neighboring points;

orienting the normal vectors of each of the points with the pose of the image capturing device corresponding to the keyframe; and

generating a three-dimensional (3D) mesh by merging a plurality of overlapping keyframes into a single texture.

12. The method of claim 9 , where the merging of the plurality of keyframes into the single texture is performed based on a weighting of a distance and an angle of each keyframe.

13. The method of claim 9 , wherein the depth map is determined based on tracking markers in the image data.

14. The method of claim 1 , wherein the image capturing device is a spherical camera and the image data includes spherical image data created at the time by the image capturing device.

15. The method of claim 1 wherein the image capturing device is a panoramic camera and the image data includes panoramic image data created at the time by the image capturing device.

16. The method of claim 1 , wherein the map is at least one of a technical drawing and a three-dimensional model.

17. The method of claim 1 , wherein a zoom of the display occurs in response to a user input including at least one of a touch gesture and an input device.

18. The method of claim 1 , wherein a pan of the display occurs in response to a user input including at least one of a touch gesture and an input device.

19. A non-transitory computer-readable medium having programming instructions stored thereon for a method of creating an augmented reality scene for execution by a computing device with a processor and memory, the method comprising:

receiving floorplan data including a map;

receiving image data from an image capturing device, the image data created during a time at a location on the map, the image data including a plurality of frames of images of the location, the image data including a timestamp identifying the time;

stitching the plurality of frames together to form a 360 degree view of the location;

displaying at least a portion of the floorplan data including the map;

receiving a selection corresponding to the location on the map from at least one of a device and a user input;

displaying an icon on the map at the location in response to the selection;

segmenting the 360 degree view into a plurality of tiles based on a resolution of the image data;

correlating the plurality of tiles to the icon; and

in response to receiving a selection of the icon, displaying the plurality of tiles.

20. A computing device, comprising:

a display,

a processor; and a memory for storing a plurality of processing instructions for execution by the processor to create a virtual reality map by:

receiving floorplan data including a map;

receiving image data from an image capturing device, the image data created during a time at a location on the map, the image data including a plurality of frames of images of the location, the image data including a timestamp identifying the time;

stitching the plurality of frames together to form a 360 degree view of the location;

displaying at least a portion of the floorplan data including the map;

receiving a selection corresponding to the location on the map from at least one of a device and a user input;

displaying an icon on the map at the location in response to the selection;

segmenting the 360 degree view into a plurality of tiles based on a resolution of the image data;

correlating the plurality of tiles to the icon; and

in response to receiving a selection of the icon, displaying the plurality of tiles.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2023
From: HEINEN, SIMON; THOLEN, LARS; AKBARI-HOCHBERG, MOSTAFA; ABIDIN, GLORIA INDRA DHEWANI
To: HOLOBUILDER, INC.
Reel/Frame 064244/0864 →
MERGER Recorded Jul 13, 2023
From: HOLOBUILDER, INC.
To: FARO TECHNOLOGIES, INC.
Reel/Frame 064244/0873 →
Continuity (4)
Continuation 17239903 · Apr 26, 2021
Continuation 16304672
Provisional Application 62342808 · May 27, 2016
Related Publication 20230298285A1 · Sep 21, 2023