IP Library Granted Patent US 10,410,367
Granted Patent B2
US 10,410,367 · App. 15/691,439 · Granted Sep 10, 2019

Systems and methods for simulatenous localization and mapping

Inventors: David Ben Ezra (Beit Shearim, IL); Eyal Zak (Megiddo, IL); Ozi Egri (Yassur, IL)
Assignee: C3D Augmented Reality Solutions LTD.
G06T7/579G06T7/20G06T7/246G06T7/70G06T7/73G06T2207/10016G06T2207/30241G06T2207/30244
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,410,367
App. No.
15/691,439
Granted
Sep 10, 2019
Kind
B2
Abstract

Various embodiments provide systems, methods, devices, and instructions for performing simultaneous localization and mapping (SLAM) that involve initializing a SLAM process using images from as few as two different poses of a camera within a physical environment. Some embodiments may achieve this by disregarding errors in matching corresponding features depicted in image frames captured by an image sensor of a mobile computing device, and by updating the SLAM process in a way that causes the minimization process to converge to global minima rather than fall into a local minimum.

Claims (80)

1. A method comprising:

continuously capturing, by an image sensor, new image frames of a physical environment and adding the new image frames to a set of captured image frames;

continuously capturing, from an inertial measurement unit (IMU), IMU data in correspondence with the image frames captured, the captured IMU data comprising degrees of freedom (DOF) parameters of the image sensor;

identifying, by one or more hardware processors, a first key image frame from the set of captured image frames;

identifying, by the one or more hardware processors, first IMU data, from the captured IMU data, associated with the first key image frame;

detecting, by the IMU, a movement of the image sensor from a first pose, in the physical environment, to a second pose in the physical environment;

in response to detecting the movement:

identifying, by the one or more hardware processors, a second key image frame from the set of captured image frames;

identifying, by the one or more hardware processors, second IMU data, from the captured IMU data, associated with the second key image frame;

performing, by one or more hardware processors, feature matching on at least the first and second key image frames to identify a set of matching three-dimensional (3D) features in the physical environment;

generating, by the one or more hardware processors, a filtered set of matching 3D features by filtering out at least one erroneous feature, from the set of matching 3D features, based on a set of error criteria; and

determining, by the one or more hardware processors, a first set of six degrees of freedom (6DOF) parameters of the image sensor for the second key image frame and a set of 3D positions for the set of matching 3D features, the determining comprising performing a simultaneous localization and mapping (SLAM) process based on the identified first IMU data, the identified second IMU data, and the filtered set of matching 3D features.

2. The method of claim 1 , wherein the first IMU data comprises a set of tour degrees of freedom (4DOF) parameters of the image sensor, and the second IMU data comprises a set of 4DOF parameters of the image.

3. The method of claim 1 , wherein the image sensor and the IMU are included in a device.

4. The method of claim 3 , wherein the movement of the image sensor is caused by a human individual that is holding the device performing a sidestep.

5. The method of claim 4 , wherein the identifying the first key image frame comprises detecting a start impulse of the sidestep, and the first key image frame is a particular image frame, in the set of captured image frames, corresponding with the detected start impulse.

6. The method of claim 4 , wherein the identifying the second key image frame comprises detecting a finish impulse of the sidestep, and the second key image frame is a particular image frame, in the set of captured image frames, corresponding with the detected finish impulse.

7. The method of claim 1 , further comprising:

for each particular new image frame added to the set of captured image frames:

determining, by the one or more hardware processors, whether a set of key image frame conditions is satisfied for the particular new image frame;

in response to the set of key image frame conditions being satisfied for the particular new image frame, identifying, by the one or more hardware processors, the particular new image frame as a new key image frame and performing, by the one or more hardware processors, a full SLAM process cycle on the new key image frame; and

in response to the set of key image frame conditions not being satisfied for the particular new image frame, performing, by the one or more hardware processors, a partial SLAM process cycle on the particular new image frame as a non-key image frame, the partial SLAM process cycle comprising only a localization portion of a SLAM process.

8. The method of claim 7 , wherein the set of key image frame conditions comprises at least one of the new image frame meeting or exceeding a certain image quality, a minimum time has elapsed since the full SLAM process cycle was last performed, and a translation between a prior image frame and the new image frame meets or exceeds a minimum translation threshold.

9. The method of claim 7 , wherein performing the full SLAM process cycle on the new key image frame comprises:

identifying, by the one or more hardware processors, third IMU data, from the captured IMU data, associated with the new key image frame;

performing, by the one or more hardware processors, feature matching on the new key image frame and at least one prior image frame to identify a second set of matching 3D features in the physical environment;

determining, by the one or more hardware processors, a second set of 6DOF parameters of the image sensor for the new key image frame by performing the SLAM process on the new key image frame based on the second set of matching 3D features and the third IMU data;

generating, by the one or more hardware processors, a second filtered set of matching 3D features by filtering out at least one erroneous feature, from the second set of matching 3D features, based on a second set of error criteria and the second set of 6DOF parameters; and

determining, by the one or more hardware processors, a third set of 6DOF parameters of the image sensor for the new key image frame and a set of 3D positions of new 3D features in the physical environment by performing the SLAM process on all key image frames based on the second filtered set of matching 3D features and the third IMU data.

10. The method of claim 7 , wherein performing the partial SLAM process cycle on the non-key image frame comprises:

performing, by the one or more hardware processors, two-dimensional (2D) feature tracking on the non-key image frame, based on a set of 3D positions of new 3D features from the performing the full SLAM process cycle and a new key image frame most recently identified, to identify a set of 2D features;

determining, by the one or more hardware processors, a fourth set of 6DOF parameters of the image sensor for the non-key image frame by performing only the localization portion of the SLAM process based on the set of 2D features;

generating, by the one or more hardware processors, a filtered set of 2D features by filtering out at least one erroneous feature, from the set of 2D features, based on a third set of error criteria and the fourth set of 6DOF parameters; and

projecting, by the one or more hardware processors, a set of tracking points on the non-key image frame based on the filtered set of 2D features and the fourth set of 6DOF parameters.

11. A method comprising:

continuously capturing, by an image sensor, new image frames of a physical environment and adding the new image frames to a set of captured image frames;

continuously capturing, from an inertial measurement unit (IMU), IMU data in correspondence with the capturing of the image frames, the captured IMU data comprising degrees of freedom (DOF) parameters of the image sensor;

for each particular new image frame added to the set of captured image frames:

determining, by the one or more hardware processors, whether a set of key image frame conditions is satisfied for the particular new image frame;

in response to the set of key image frame conditions being satisfied for the particular new image frame, identifying, by the one or more hardware processors, the particular new image frame as a new key image frame and performing, by the one or more hardware processors, a full simultaneous localization and mapping (SLAM) process cycle on the new key image frame; and

in response to the set of key image frame conditions not being satisfied for the particular new image frame, performing, by the one or more hardware processors, a partial SLAM process cycle on the particular new image frame as a non-key image frame.

12. The method of claim 11 , further comprising:

detecting, by the one or more hardware processors, a movement of the image sensor from a first pose, in the physical environment, to a second pose, in the physical environment, based on the captured IMU data; and

identifying, by the one or more hardware processors, a first key image frame and a second key image frame based on the movement, the first key image frame corresponding to a start impulse of the movement, and the second key image frame corresponding to a finish impulse of the movement.

13. The method of claim 11 , wherein the set of key image frame conditions comprises at least one of the new image frame meeting or exceeding a certain image quality, a minimum time has elapsed since the full SLAM process cycle was last performed, and a translation between a prior image frame and the new image frame meets or exceeds a minimum translation threshold.

14. The method of claim 11 , wherein performing the full SLAM process cycle on the new key image frame comprises:

identifying, by the one or more hardware processors, third IMU data, from the captured IMU data, associated with the new key image frame;

performing, by the one or more hardware processors, feature matching on the new key image frame and at least one prior image frame to identify a second set of matching 3D features in the physical environment;

determining, by the one or more hardware processors, a second set of 6DOF parameters of the image sensor for the new key image frame by performing a SLAM process on the new key, image frame based on the second set of matching 3D features and the third IMU data;

generating, by the one or more hardware processors, a second filtered set of matching 3D features by filtering out at least one erroneous feature, from the second set of matching 3D features, based on a second set of error criteria and the second set of 6DOF parameters; and

determining, by the one or more hardware processors, a third set of 6DOF parameters of the image sensor for the new key image frame and a set of 3D positions of new 3D features in the physical environment by performing the SLAM process on all key image frames based on the second filtered set of matching 3D features and the third IMU data.

15. The method of claim 11 , wherein performing the partial SLAM process cycle on the non-key image frame comprises:

performing, by the one or more hardware processors, two-dimensional (2D) feature tracking on the non-key image frame, based on a set of 3D positions of new 3D features from the performing a full SLAM process cycle and a new key image frame most recently identified, to identify a set of 2D features;

determining, by the one or more hardware processors, a fourth set of 6DOF parameters of the image sensor for the non-key image frame by performing only a localization portion of a SLAM process based on the set of 2D features;

generating, by the one or more hardware processors, a filtered set of 2D features by filtering out at least one erroneous feature, from the set of 2D features, based on a third set of error criteria and the fourth set of 6DOF parameters; and

projecting, by the one or more hardware processors, a set of tracking points on the non-key image frame based on the filtered set of 2D features and the fourth set of 6DOF parameters.

16. A system comprising:

an image frame capture module to continuously capture, by an image sensor of a device, new image frames of a physical environment and to add the new image frames to a set of captured image frames;

an inertial measurement unit (IMU) data capture module to continuously capture, from an IMU of the device, IMU data in correspondence with the image frames captured by the image frame capture module, the captured IMU data comprising degrees of freedom (DOF) parameters of the image sensor;

a key image frame module to:

determine, for each particular new image frame added to the set of captured image frames, whether a set of key image frame conditions is satisfied for the particular new image frame; and

identify the particular new image frame as a new key image frame in response to the set of key image frame conditions being satisfied for the particular new image frame;

a full simultaneous localization and mapping (SLAM) cycle module to perform a full SLAM process cycle on each particular new key image frame identified by the key image frame module; and

a partial SLAM cycle module to perform a partial SLAM process cycle on each particular new image frame not identified by the key image frame module, the partial SLAM process cycle comprising performing only a localization portion of a SLAM process.

17. The system comprising of claim 16 , further comprising:

a SLAM initialization module to:

detect a movement of the image sensor from a first pose, in the physical environment, to a second pose, in the physical environment, based on the captured IMU data from the IMU capture module; and

identify a first key image frame and a second key image frame based on the movement, the first key image frame corresponding to a start impulse of the movement, and the second key image frame corresponding to a finish impulse of the movement.

18. The system of claim 16 , wherein the set of key image frame conditions comprises at least one of the new image frame meeting or exceeding a certain image quality, a minimum time has elapsed since the full SLAM process cycle was last performed, and a translation between a prior image frame and the new image frame meets or exceeds a minimum translation threshold.

19. The system of claim 16 , wherein to perform the full SLAM process cycle on each particular new key image frame identified by the key image frame module, the full SLAM cycle module is to:

identify second IMU data, from the captured IMU data, associated with the particular new key image frame;

perform feature matching on the new key image frame and at least one prior image frame to identify a second set of matching 3D features in the physical environment;

determine a first set of 6DOF parameters of the image sensor for the new key image frame by performing the SLAM process on the new key image frame based on the second set of matching 3D features and the second IMU data;

generate a filtered set of matching 3D features by filtering out at least one erroneous feature, from the second set of matching 3D features, based on a set of error criteria and the first set of 6DOF parameters; and

determine a second set of 6DOF parameters of the image sensor for the new key image frame and a set of 3D positions of new 3D features in the physical environment by performing the SLAM process on all key image frames based on the filtered set of matching 3D features and the second IMU data.

20. The system of claim 16 , wherein to perform the partial SLAM process cycle on each particular new image frame not identified by the key image frame module, the partial SLAM cycle module is to:

perform two-dimensional (2D) feature tracking on the particular new image frame, based on a set of 3D positions of new 3D features from the full SLAM cycle module and a new key image frame most recently identified by the key image frame module, to identify a set of 2D features;

determine a set of 6DOF parameters of the image sensor for the non-key image frame by performing only the localization portion of the SLAM process based on the set of 2D features;

generate a filtered set of 2D features by filtering out at least one erroneous feature, from the set of 2D features, based on a set of error criteria and the set of 6DOF parameters; and

project a set of tracking points on the non-key image frame based on the filtered set of 2D features and the set of 6DOF parameters.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2025
From: CIMAGINE MEDIA LTD.
To: SNAPCHAT LIMITED
Reel/Frame 073143/0597 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2025
From: SNAP GROUP LIMITED (FORMERLY NAMED SNAPCHAT LIMITED)
To: SNAP INC.
Reel/Frame 073145/0879 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: EZRA, DAVID BEN; EGRI, OZI; ZAK, EYAL
To: CIMAGINE MEDIA LTD.
Reel/Frame 049887/0576 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: CIMAGINE MEDIA LTD.
To: C3D AUGMENTED REALITY SOLUTIONS LTD
Reel/Frame 049887/0759 →
Continuity (2)
Provisional Application 62381036 · Aug 30, 2016
Related Publication 20180061072A1 · Mar 1, 2018
Cited By (1)
US 12,307,771