IP Library Granted Patent US 10,309,778
Granted Patent B2
US 10,309,778 · App. 15/855,144 · Granted Jun 4, 2019

Visual odometry and pairwise alignment for determining a position of an autonomous vehicle

Inventors: Ronghua Zhang (Campbell, CA); Mark Damon Wheeler (Saratoga, CA)
Assignee: DEEPMAP INC.
G01C11/12B60W40/06G01C11/30G01C21/005G01C21/32G01C21/3635G01C21/3694G01S19/42G05D1/0088G05D1/0246G06K9/00791G06K9/00798G06K9/00805G06K9/4671G06K9/6212G06T7/11G06T7/246G06T7/248G06T7/55G06T7/593G06T7/68G06T7/70G06T7/73G06T7/74G06T17/05G06T17/20G08G1/20B60W2550/14G01S17/89G05D2201/0213G06T2200/04G06T2207/10021G06T2207/10028G06T2207/20048G06T2207/30252G06T2207/30256G06T2210/56G06T2215/12
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,309,778
App. No.
15/855,144
Granted
Jun 4, 2019
Kind
B2
Abstract

As an autonomous vehicle moves through a local area, pairwise alignment may be performed to calculate changes in the pose of the vehicle between different points in time. The vehicle comprises an imaging system configured to capture image frames depicting a portion of the surrounding area. Features are identified from the captured image frames, and a 3-D location is determined for each identified feature. The features of different image frames corresponding to different points in time are analyzed to determine a transformation in the pose of the vehicle during the time period between the image frames. The determined poses of the vehicle are used to generate an HD map of the local area.

Claims (89)

1. A method, comprising:

receiving, from an imaging system comprising one or more cameras mounted on a vehicle, a plurality of image frames, each image frame associated with a local area surrounding the vehicle at a particular point in time, and comprising at least a first image captured using a first camera of the one or more cameras of the imaging system;

for each image frame of the plurality of image frames:

extracting from the first image of the image frame, a first region, the first region corresponding to a region of the first image depicting a section of ground in front of the vehicle;

determining locations of a set of features corresponding to features on the section of ground within the first region, comprising:

identifying a first set of feature points with the first region on the first image of the image frame;

identifying a second set of feature points within the first region on a second image of the image frame captured using a second camera of the one or more cameras, the first and second images forming a stereo pair;

determining the set of features for the image frame, each corresponding to a feature point of the first set of feature points matched with a feature point of the second set of feature points, based upon one or more epipolar constraints; and

determining a location of each feature of the set of features based upon the corresponding feature points of the first and second set of feature points;

identifying, from the plurality of image frames, a first image frame corresponding to a first point in time, and a second image frame corresponding to a second point in time;

identifying one or more correspondences between one or more features of the set of features of the first image frame, and one or more features of the set of features of the second image frame;

determining a transformation between a first position of the vehicle at the first point in time and a second position of the vehicle at the second point in time, based upon a transformation between the positions of the first and second subsets of features;

determining a position and orientation of the vehicle based upon the determined transformation; and

controlling a movement of the vehicle using a control signal generated based upon the determined position and orientation of the vehicle.

2. The method of claim 1 , further comprising orthorectifying the first region extracted from each image frame.

3. The method of claim 1 , wherein the location of each feature of the set of features is determined based upon a location of the first camera relative to the vehicle, a location of a predetermined ground plane, and a location of the feature within the first image.

4. The method of claim 1 , further comprising, for each of the plurality of image frames:

extracting, from each of the first image and a second image of the image frame, a second region corresponding to a region of the first or second image depicting a portion of the local area at least a threshold distance away from the vehicle; and

determining locations of a second set of features corresponding to features within the second region.

5. The method of claim 1 , wherein matching feature points of the first and second sets of features points comprises:

assigning a descriptor for each identified feature point of the first and second sets of feature points of the image frame;

for a first feature point of the first set of feature points:

identifying one or more feature points of the second set of feature points, based upon a distance between a location of the first feature point and each of the one or more feature points of the second set of feature points;

comparing the assigned descriptors of the first feature point and each of the one or more features points to determine a similarity between the first feature point and each of the one or more feature points; and

in response to a determination that a similarity between the first feature point and a second feature point of the one or more feature points satisfies a threshold value, matching the first and second feature points to correspond to a feature of the set of stereo features.

6. The method of claim 1 , wherein identifying one or more correspondences between one or more features of the first and second image frames is based at least in part upon the corresponding feature points of each of the one or more features of the first and second image frames.

7. The method of claim 1 , wherein determining the transformation between the first and second positions comprises determining a transformation that maximizes a correlation between the sets of features of the first image frame and the second image frame.

8. The method of claim 1 , wherein determining the transformation between the first and second positions further comprises:

for each of a plurality of iterations:

selecting a different first subset of features from the set of features associated with the first image frame;

identifying a second subset of features from the second image frame corresponding to the selected first subset of features;

determining the transformation between the determined positions of features of the first and second subsets of features; and

for each feature of first image frame, applying the determined transformation to the feature and determining a nearest feature of the second image frame.

9. The method of claim 8 , further comprising:

for each of the plurality of iterations, determining a count for the transformation based upon a number of transformed features of the first image frame having a nearest feature of the second image frame within a threshold distance; and

identifying the transformation associated with a highest count of the plurality of iterations.

10. The method of claim 9 , wherein determining the transformation between the first position of the vehicle at the first point in time and the second position of the vehicle at the second point in time further comprises:

applying the transformation to the first and second sets of features of the first image frame;

for each transformed feature, determining a projected location of the transformed feature on a first image of the second image frame;

determining a re-projection error based upon an aggregation of the distances between the projected locations of each transformed feature and locations of corresponding features of the first and second sets of features of the second image frame; and

optimizing the transformation to reduce the determined re-projection error.

11. The method of claim 1 , wherein each feature of the first subset of features is selected to be at least a threshold distance from the remaining features of the first subset of features.

12. A computer program product for generating a high definition map of a local area based upon sensor readings of a vehicle traveling through the local area, the computer program product comprising a tangible computer-readable storage medium containing computer program code that when executed causes one or more processors to:

receiving, from an imaging system comprising one or more cameras mounted on a vehicle, a plurality of image frames, each image frame associated with a local area surrounding the vehicle at a particular point in time, and comprising at least a first image captured using a first camera of the one or more cameras of the imaging system;

for each image frame of the plurality of image frames:

extracting from the first image of the image frame, a first region, the first region corresponding to a region of the first image depicting a section of ground in front of the vehicle;

determining locations of a set of features corresponding to features on the section of ground within the first region, comprising:

identifying a first set of feature points with the first region on the first image of the image frame;

identifying a second set of feature points within the first region on a second image of the image frame captured using a second camera of the one or more cameras, the first and second images forming a stereo pair;

determining the set of features for the image frame, each corresponding to a feature point of the first set of feature points matched with a feature point of the second set of feature points, based upon one or more epipolar constraints; and

determining a location of each feature of the set of features based upon the corresponding feature points of the first and second set of feature points;

identifying, from the plurality of image frames, a first image frame corresponding to a first point in time, and a second image frame corresponding to a second point in time;

identifying one or more correspondences between one or more features of the set of features of the first image frame, and one or more features of the set of features of the second image frame;

determining a transformation between a first position of the vehicle at the first point in time and a second position of the vehicle at the second point in time, based upon a transformation between the positions of the first and second subsets of features; and

determining a position and orientation of the vehicle based upon the determined transformation; and

controlling a movement of the vehicle using a control signal generated based upon the determined position and orientation of the vehicle.

13. The computer program product of claim 12 , wherein each feature of the first subset of features is selected to be at least a threshold distance from the remaining features of the first subset of features.

14. The computer program product of claim 12 , wherein the tangible computer-readable storage medium further contains computer program code that when executed causes one or more processors to orthorectify the first region extracted from each image frame.

15. The computer program product of claim 12 , wherein the location of each feature of the set of features is determined based upon a location of the first camera relative to the vehicle, a location of a predetermined ground plane, and a location of the feature within the first image.

16. The computer program product of claim 12 , wherein determining the transformation between the first and second positions comprises determining a transformation that maximizes a correlation between the sets of features of the first image frame and the second image frame.

17. The computer program product of claim 12 , wherein the tangible computer-readable storage medium further contains computer program code that when executed causes one or more processors to, match feature points of the first and second sets of features points by:

assigning a descriptor for each identified feature point of the first and second sets of feature points of the image frame;

for a first feature point of the first set of feature points:

identifying one or more feature points of the second set of feature points, based upon a distance between a location of the first feature point and each of the one or more feature points of the second set of feature points;

comparing the assigned descriptors of the first feature point and each of the one or more features points to determine a similarity between the first feature point and each of the one or more feature points; and

in response to a determination that a similarity between the first feature point and a second feature point of the one or more feature points satisfies a threshold value, matching the first and second feature points to correspond to a feature of the set of stereo features.

18. The computer program product of claim 12 , wherein identifying one or more correspondences between one or more features of the first and second image frames is based at least in part upon the corresponding feature points of each of the one or more features of the first and second image frames.

19. A computer system for generating a high definition map of a local area based upon sensor readings of a vehicle traveling through the local area, the computer system comprising:

one or more computer processors; and

a tangible computer-readable storage medium containing computer program code that when executed causes one or more processors to performs the steps of:

receiving, from an imaging system comprising one or more cameras mounted on a vehicle, a plurality of image frames, each image frame associated with a local area surrounding the vehicle at a particular point in time, and comprising at least a first image captured using a first camera of the one or more cameras of the imaging system;

for each image frame of the plurality of image frames:

extracting from the first image of the image frame, a first region, the first region corresponding to a region of the first image depicting a section of ground in front of the vehicle;

determining locations of a set of features corresponding to features on the section of ground within the first region, comprising:

identifying a first set of feature points with the first region on the first image of the image frame;

identifying a second set of feature points within the first region on a second image of the image frame captured using a second camera of the one or more cameras, the first and second images forming a stereo pair;

determining the set of features for the image frame, each corresponding to a feature point of the first set of feature points matched with a feature point of the second set of feature points, based upon one or more epipolar constraints; and

determining a location of each feature of the set of features based upon the corresponding feature points of the first and second set of feature points;

identifying, from the plurality of image frames, a first image frame corresponding to a first point in time, and a second image frame corresponding to a second point in time;

identifying one or more correspondences between one or more features of the set of features of the first image frame, and one or more features of the set of features of the second image frame;

determining a transformation between a first position of the vehicle at the first point in time and a second position of the vehicle at the second point in time, based upon a transformation between the positions of the first and second subsets of features; and

determining a position and orientation of the vehicle based upon the determined transformation; and

controlling a movement of the vehicle using a control signal generated based upon the determined position and orientation of the vehicle.

20. The computer system of claim 19 , wherein the computer program code that when executed causes one or more processors to, match feature points of the first and second sets of features points by:

assigning a descriptor for each identified feature point of the first and second sets of feature points of the image frame;

for a first feature point of the first set of feature points:

identifying one or more feature points of the second set of feature points, based upon a distance between a location of the first feature point and each of the one or more feature points of the second set of feature points;

comparing the assigned descriptors of the first feature point and each of the one or more features points to determine a similarity between the first feature point and each of the one or more feature points; and

in response to a determination that a similarity between the first feature point and a second feature point of the one or more feature points satisfies a threshold value, matching the first and second feature points to correspond to a feature of the set of stereo features.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2022
From: DEEPMAP INC.
To: NVIDIA CORPORATION
Reel/Frame 061038/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: DEEPMAP CAYMAN LIMITED
To: DEEPMAP INC.
Reel/Frame 050281/0787 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2018
From: DEEPMAP INC.
To: DEEPMAP CAYMAN LIMITED
Reel/Frame 046208/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2018
From: ZHANG, RONGHUA; WHEELER, MARK DAMON
To: DEEPMAP INC.
Reel/Frame 045259/0405 →
Continuity (2)
Provisional Application 62441080 · Dec 30, 2016
Related Publication 20180188027A1 · Jul 5, 2018
Cited By (2)
US 12,384,410 US 12,709,314