IP Library Granted Patent US 10,776,933
Granted Patent B2
US 10,776,933 · App. 16/212,575 · Granted Sep 15, 2020

Enhanced techniques for tracking the movement of real-world objects for improved positioning of virtual objects

Inventor: Jason Thomas Faulkner (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06T7/248G06K9/00201G06T7/40G06T7/62G06T7/74G06T7/90G06T19/006G06T2207/10028
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 10,776,933
App. No.
16/212,575
Filed
Dec 6, 2018
Granted
Sep 15, 2020
Kind
B2
Art Unit
2663
USPC
382/103
Abstract

This disclosure provides enhanced techniques for tracking the movement of real-world objects for improved display of virtual objects that are associated with the real-world objects. A first device can track the position of a real-world object. When the real-world object moves out of a viewing area of the first device, a second device can use metadata defining physical characteristics of the real-world object shared by the first device to identify the real-world object as the real-world object comes into a viewing area of the second device. The second device can then maintain an association between the real-world object and the virtual objects as the real-world object moves, and share such information with other computers to enable the other computers to display the virtual objects in association with the real-world object even though they are not in direct view of an associated real-world object.

Claims (65)

1. A system comprising:

one or more data processing units; and

a computer-readable medium having encoded thereon computer-executable instructions to cause the one or more data processing units to

receive sensor data generated by a depth map sensor, the sensor data comprising depth map data defining a three-dimensional model of a real-world object within a viewing area of the system;

receive model data defining a virtual object, the model data causing the system to display a rendering of the virtual object concurrently with a display of the real-world object;

identify at least one characteristic of the real-world object based on an analysis of the sensor data;

communicate metadata defining the at least one characteristic of the real-world object to a remote computing device, the metadata causing the remote computing device to track a movement of the real-world object within a viewing area of the remote computing device using the at least one characteristic to identify the real-world object, wherein the remote computing device generates updated metadata indicating the movement of the real-world object within the viewing area of the remote computing device; and

receiving the updated metadata from the remote computing device, the updated metadata indicating the movement of the real-world object within the viewing area of the remote computing device; and

displaying an updated rendering of the virtual object at a new position based on the metadata indicating the movement of the real-world object.

2. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

determine that the real-world object is outside of the viewing area of the system; and

in response to determining that the real-world object is outside the viewing area of the system, communicating the metadata defining the at least one characteristic of the real-world object to the remote computing device.

3. The system of claim 2 , wherein the real-world object is determined to be outside of the viewing area of the system when image data generated by an imaging camera directed toward the real-world object indicates that an image of the real-world object is distorted or obscured at a threshold level.

4. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

determine a distance between the system and individual computing devices of a plurality of computing devices;

select the remote computing device from a plurality of computing devices when a distance between the system and the remote computing device is within a threshold distance; and

communicate the metadata defining the at least one characteristic of the real-world object to the remote computing device.

5. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

receive location data indicating a location of the remote computing device;

determine that the remote computing device is within a predetermined region; and

in response to determining that the remote computing device is within a predetermined region, communicate the metadata defining the at least one characteristic of the real-world object to the remote computing device.

6. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

analyze one or more streams of a communication session to identify a reference to the real-world object;

select the remote computing device from a plurality of computing devices when the remote computing device transmits one or more streams indicating keywords that reference the real-world object;

communicate the metadata defining the at least one characteristic of the real-world object to the remote computing device in response to determining that the one or more streams from the remote computing device indicate keywords that reference the real-world object.

7. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

receive contextual data indicating specifications of one or more sensors of the remote computing device;

select the remote computing device from a plurality of computing devices when the specifications of the one or more components of the remote computing device meet one or more criteria;

communicate the metadata defining the at least one characteristic of the real-world object to the remote computing device in response to determining that the specifications of the one or more components of the remote computing device meet the one or more criteria.

8. The system of claim 1 , wherein the instructions further cause the one or more data processing units to

receive contextual data indicating performance specifications of one or more sensors of the remote computing device;

select the remote computing device from a plurality of computing devices when the performance specifications of the one or more sensors of the remote computing device meet one or more criteria;

communicate the metadata defining the at least one characteristic of the real-world object to the remote computing device in response to determining that the performance specifications of the one or more sensors of the remote computing device meet the one or more criteria.

9. A method comprising:

receiving, at a computing device, metadata defining at least one characteristic of a real-world object, wherein the at least one characteristic is detected by a sensor of a remote computing device, the metadata further comprising model data defining a virtual object, and association data defining a position of the virtual object relative to the real-world object;

receiving, at the computing device, sensor data generated by a depth map sensor of the computing device, the sensor data comprising depth map data defining a three-dimensional model of the real-world object within a viewing area of the depth map sensor of the computing device;

determining a first value of a physical characteristic of the real-world object within the viewing area of the depth map sensor of the computing device, the first value of the physical characteristic determined by an analysis of the sensor data;

determining that the first value of the physical characteristic of the real-world object within the viewing area is within a threshold difference of a second value of the at least one characteristic of the real-world object detected by the sensor of the remote computing device; and

in response to determining that the first value and the second value are within the threshold difference, track a location of the real-world object using the depth map sensor, and render the virtual object on a display device at a position relative to a display of the real-world object that is based on the location.

10. The method of claim 9 , further comprising:

tracking a movement of the real-world object within the viewing area by the use of the depth map sensor to determine a new location of the real-world object within the viewing area; and

communicating updated metadata to the remote computing device, the updated metadata causing the remote computing device to display a rendering of the real-world object wherein the rendering indicates the new location.

11. The method of claim 9 , further comprising:

tracking the movement of the real-world object within the viewing area by the use of the depth map sensor to determine a new location of the real-world object within the viewing area; and

communicating updated metadata to the remote computing device, the updated metadata causing the remote computing device to display a rendering of the virtual object at a position that is based on the new location of the real-world object.

12. The method of claim 9 , wherein the first value of the physical characteristic indicates a first measurement of at least one dimension of the real-world object that is detected by the depth map sensor of the computing device, and wherein the second value of the at least one characteristic indicates a second measurement of the at least one dimension of the real-world object that is detected by the sensor of the remote computing device.

13. The method of claim 9 , wherein the first value of the physical characteristic indicates a first measurement of at least one color of the real-world object that is detected by a camera of the computing device, and wherein the second value of the at least one characteristic indicates a second measurement of the at least one color of the real-world object that is detected by a camera of the remote computing device.

14. The method of claim 9 , wherein the first value of the physical characteristic indicates a first measurement of a shape of the real-world object that is detected by a camera of the computing device, and wherein the second value of the at least one characteristic indicates a second measurement of the shape of the real-world object that is detected by a camera of the remote computing device.

15. The method of claim 9 , wherein the first value of the physical characteristic indicates a first measurement of a surface texture of the real-world object that is detected by a camera of the computing device, and wherein the second value of the at least one characteristic indicates a second measurement of the surface texture of the real-world object that is detected by a camera of the remote computing device.

16. A system comprising:

means for receiving, at the system, sensor data generated by a depth map sensor, the sensor data comprising depth map data defining a three-dimensional model of a real-world object within a viewing area of the system;

means for receiving model data defining a virtual object for displaying a rendering of the virtual object concurrently with a display of the real-world object;

means for identifying at least one characteristic of the real-world object based on an analysis of the sensor data;

means for communicating metadata defining the at least one characteristic of the real-world object to a remote computing device, the metadata causing the remote computing device to track a movement of the real-world object within the viewing area of the remote computing device using the at least one characteristic to identify the real-world object; and

receiving updated metadata from the remote computing device indicating the movement of the real-world object within the viewing area of the remote computing device, and displaying an updated rendering of the virtual object based on the metadata indicating the movement of the real-world object.

17. The system of claim 16 , wherein the system further comprises:

means for determining that the real-world object is outside of the viewing area of the system; and

in response to determining that the real-world object is outside the viewing area of the system, utilizing a means for communicating the metadata defining the at least one characteristic of the real-world object.

18. The system of claim 17 , wherein the real-world object is determined to be outside of the viewing area of the system when image data generated by an imaging camera directed toward the real-world object indicates that an image of the real-world object is distorted or obscured at a threshold level.

19. The system of claim 16 , wherein the system further comprises:

means for determining a distance between the system and individual computing devices of a plurality of computing devices;

means for selecting the remote computing device from a plurality of computing devices when a distance between the system and the remote computing device is within a threshold distance; and

utilizing a means for communicating the metadata defining the at least one characteristic of the real-world object to the remote computing device.

20. The system of claim 16 , wherein the system further comprises: means for receiving location data indicating a location of the remote computing device; means for determining that the remote computing device is within a predetermined region; and

in response to determining that the remote computing device is within a predetermined region, utilizing a means for communicating the metadata defining the at least one characteristic of the real-world object to the remote computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2018
From: FAULKNER, JASON THOMAS
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 047699/0372 →
Continuity (1)
Related Publication 20200184653A1 · Jun 11, 2020
Cited By (46)
US 12,197,817 US 12,200,297 US 12,211,502 US 12,216,894 US 12,219,314 US 12,236,952 US 12,260,234 US 12,277,954 US 12,288,285 US 12,293,763 US 12,301,635 US 12,307,580 US 12,333,083 US 12,333,404 US 12,361,943 US 12,367,879 US 12,386,434 US 12,386,491 US 12,443,273 US 12,456,271 US 12,461,641 US 12,475,635 US 12,477,470 US 12,511,847 US 12,524,142 US 12,524,956 US 12,524,977 US 12,535,931 US 12,541,280 US 12,566,532 US 12,596,472 US 12,608,115 US 12,608,171 US 12,608,877 US 12,608,890 US 12,619,452 US 12,620,187 US 12,625,608 US 12,632,157 US 12,632,170 US 12,633,044 US 12,663,875 US 12,663,907 US 12,675,958 US 12,687,922 US 12,688,660