IP Library Granted Patent US 11,182,647
Granted Patent B2
US 11,182,647 · App. 16/654,798 · Granted Nov 23, 2021

Distributed sensor module for tracking

Inventors: Muzaffer Kal (Redmond, WA); Armin Alaghi (Kirkland, WA); Vincent Lee (Seattle, WA); Richard Andrew Newcombe (Seattle, WA); Amr Suleiman (Redmond, WA); Muhammad Huzaifa (Redmond, WA)
Assignee: Facebook Technologies, LLC.
G06K9/6256G06T7/97H04N5/247
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 11,182,647
App. No.
16/654,798
Granted
Nov 23, 2021
Kind
B2
Abstract

In one embodiment, a method for tracking includes capturing a first frame of the environment using a first camera, identifying, in the first frame, a first patch that corresponds to the first feature, accessing a first local memory of the first camera that stores reference patches identified in one or more previous frames captured by the first camera, and determining that none of the reference patches stored in the first local memory corresponds to the first feature. The method further includes receiving, from a second camera through a data link connecting the second camera with the first camera, a reference patch corresponding to the first feature. The reference patch is identified in a previous frame captured by the second camera and of the second camera. The method may then determine correspondence data between the first patch and the reference patch, and tracks the first feature in the environment based on the determined correspondence data.

Claims (72)

1. A method comprising, by a computing system of a first camera:

receiving a request to track a first feature in an environment;

capturing a first frame of the environment using the first camera;

identifying, in the first frame, a first patch that corresponds to the first feature;

accessing a first local memory of the first camera that stores reference patches identified in one or more previous frames captured by the first camera;

determining that none of the reference patches stored in the first local memory corresponds to the first feature;

receiving, from a second camera through a data link connecting the second camera with the first camera, a reference patch corresponding to the first feature, wherein the reference patch is identified in a previous frame captured by the second camera and of the second camera;

determining correspondence data between the first patch and the reference patch; and

tracking the first feature in the environment based on the determined correspondence data.

2. The method of claim 1 , wherein the receiving the reference patch corresponding to the first feature comprises:

sending, to a central module, a message indicating that none of the reference patches stored in the first local memory corresponds to the first feature;

receiving, from the central module, an indication to retrieve the reference patch from the second camera; and

retrieving, from the second camera, the reference patch stored in a second local memory of the second camera.

3. The method of claim 1 , wherein the receiving the reference patch corresponding to the first feature comprises:

determining that the reference patch corresponding to the first feature stores in a second local memory of the second camera; and

retrieving, from the second camera, the reference patch stored in the second local memory of the second camera.

4. The method of claim 2 , wherein the message is sent to the central module via a command link, wherein the command link is separated from the data link.

5. The method of claim 1 , wherein the first camera comprises:

a sensor configured to capture the first frame of the environment;

the first local memory configured to store the reference patches;

an identifying unit configured to identify the first patch in the first frame that corresponds to the first feature and to determine that none of the reference patches stored in the first local memory corresponds to the first feature; and

a tracking unit configured to determine the correspondence data between the first patch and the reference patch and to track the first feature in the environment based on the determined correspondence data.

6. The method of claim 5 , wherein the second camera is in data communication and data stream with the first camera via the data link.

7. The method of claim 5 , wherein the request comprises an identifier and metadata of the first feature and a pose of the first camera which is identified in a previous frame captured by the first camera and is stored in the central module.

8. The method of claim 7 , wherein the determining of the correspondence data comprises:

identifying the first feature in the first patch; and

searching, in the reference patch, for a second feature that corresponds to the first feature in the first patch;

wherein the searching is performed along an epipolar line segment determined using the received pose.

9. The method of claim 5 ,

wherein the first camera is located within a head-mounted device; and

wherein the central module is implemented in a local computing device separated from the head-mounted device.

10. The method of claim 9 , wherein the head-mounted device comprises one or more processors, wherein the one or more processors are configured to implement the sensor, the identifying unit, and the tracking unit.

11. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive a request to track a first feature in an environment;

capture a first frame of the environment using a first camera;

identify, in the first frame, a first patch that corresponds to the first feature;

access a first local memory of the first camera that stores reference patches identified in one or more previous frames captured by the first camera;

determine that none of the reference patches stored in the first local memory corresponds to the first feature;

receive, from a second camera through a data link connecting the second camera with the first camera, a reference patch corresponding to the first feature, wherein the reference patch is identified in a previous frame captured by the second camera and of the second camera;

determine correspondence data between the first patch and the reference patch; and

track the first feature in the environment based on the determined correspondence data.

12. The media of claim 11 , wherein the receiving the reference patch corresponding to the first feature comprises:

sending, to a central module, a message indicating that none of the reference patches stored in the first local memory corresponds to the first feature;

receiving, from the central module, an indication to retrieve the reference patch from the second camera; and

retrieving, from the second camera, the reference patch stored in a second local memory of the second camera.

13. The media of claim 11 , wherein the receiving the reference patch corresponding to the first feature comprises:

determining that the reference patch corresponding to the first feature stores in a second local memory of the second camera; and

retrieving, from the second camera, the reference patch stored in the second local memory of the second camera.

14. The media of claim 12 , wherein the message is sent to the central module via a command link, wherein the command link is separated from the data link.

15. The media of claim 11 , wherein the first camera comprises:

a sensor configured to capture the first frame of the environment;

the first local memory configured to store the reference patches;

an identifying unit configured to identify the first patch in the first frame that corresponds to the first feature and to determine that none of the reference patches stored in the first local memory corresponds to the first feature; and

a tracking unit configured to determine the correspondence data between the first patch and the reference patch and to track the first feature in the environment based on the determined correspondence data.

16. The media of claim 15 , wherein the second camera is in data communication and data stream with the first camera via the data link.

17. The media of claim 15 , wherein the request comprises an identifier and metadata of the first feature and a pose of the first camera which is identified in a previous frame captured by the first camera and is stored in the central module.

18. The media of claim 17 , wherein the determining of the correspondence data comprises:

identifying the first feature in the first patch; and

searching, in the reference patch, for a second feature that corresponds to the first feature in the first patch;

wherein the searching is performed along an epipolar line segment determined using the received pose.

19. The media of claim 15 ,

wherein the first camera is located within a head-mounted device; and

wherein the central module is implemented in a local computing device separated from the head-mounted device.

20. A system comprising: one or more processors; and one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by the one or more of the processors to cause the system to:

receive, from a central module, a request to track a first feature in an environment;

capture, by a sensor of a first camera, a first frame of the environment;

identify, at an identifying unit of the first camera, a first patch that corresponds to the first feature in the first frame;

access, to a first local memory of the first camera, reference patches identified in one or more previous frames captured by the first camera;

determine, at the identifying unit of the first camera, that none of the reference patches stored in the first local memory corresponds to the first feature;

receive, from a second camera through a data link connecting the second camera with the first camera, a reference patch corresponding to the first feature, wherein the reference patch is identified in a previous frame captured by the second camera and of the second camera;

determine, at a tracking unit of the first camera, correspondence data between the first patch and the reference patch; and

track, at the tracking unit of the first camera, the first feature in the environment based on the determined correspondence data.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2021
From: KAL, MUZAFFER; ALAGHI, ARMIN; LEE, VINCENT; NEWCOMBE, RICHARD ANDREW; SULEIMAN, AMR; HUZAIFA, MUHAMMAD
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 055104/0681 →