IP Library Granted Patent US 10,841,496
Granted Patent B2
US 10,841,496 · App. 16/160,926 · Granted Nov 17, 2020

Lidar to camera calibration based on edge detection

Inventors: Mark Damon Wheeler (Saratoga, CA); Lin Yang (San Carlos, CA)
Assignee: DEEPMAP INC.
H04N5/2329G01C21/3602G01S7/4817G01S7/497G01S7/4972G01S17/42G01S17/86G01S17/87G01S17/89G01S17/931G05D1/0088G05D1/0231G05D1/0248G06T7/13G06T7/33G06T7/55G06T7/80H04N5/04H04N5/232H04N13/106B60R1/00G05D1/0287G05D2201/0213G06K9/00791G06K9/6202G06T2207/10028G06T2207/10048G06T2207/20092G06T2207/20221G06T2207/30241G06T2207/30242G06T2207/30252H04N5/2253H04N5/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 10,841,496
App. No.
16/160,926
Filed
Oct 15, 2018
Granted
Nov 17, 2020
Kind
B2
Examiner
LEE, JOHN J
Art Unit
2649
USPC
382/294
Abstract

A system performs calibration of sensors mounted on a vehicle, for example, lidar and camera sensors mounted on a vehicle, for example, an autonomous vehicle. The system receives a lidar scan and camera image of a view and determines a lidar-to-camera transform based on the lidar scan and the camera image. The system may use a pattern, for example, a checkerboard pattern in the view for calibration. The pattern is placed close to the vehicle to determine an approximate lidar-to-camera transform and then placed at a distance from the vehicle to determine an accurate lidar-to-camera transform. Alternatively, the system determines edges in the lidar scan and the camera image and aligns features based on real-world objects in the scene by comparing edges.

Claims (96)

1. A non-transitory computer readable storage medium storing instructions for performing calibration of sensors of a vehicle, wherein the instructions when executed by a processor, cause the processor to perform steps including:

receiving, by a lidar mounted on an autonomous vehicle, a lidar scan;

receiving, by a camera mounted on the autonomous vehicle, a camera image;

determining a first set of edges based on the lidar scan, the determining of the first set of edges comprising:

determining a first set of points based on a difference between intensity of each point and an adjacent point;

determining a second set of points based on a difference between depth of each point and an adjacent point; and

determining the first set of edges based on the first set of points and the second set of points;

determining a second set of edges based on the camera image;

determining a measure of alignment between the first set of edges and the second set of edges based on a first transform;

determining a second transform based on the first transform, wherein the second transform has a better measure of alignment compared to the first transform;

generating a high definition map based on the second transform; and

sending signals to controls of the autonomous vehicle based on the high definition map.

2. The non-transitory computer readable storage medium of claim 1 , wherein instructions for determining the first set of points cause the processors to perform the steps of:

for each of a set of points of the lidar scan, determining an edge score for the point, the edge score value directly related to a difference in intensity of the point and an intensity of an adjacent point; and

selecting a subset of points having an edge score above a threshold.

3. The non-transitory computer readable storage medium of claim 2 , wherein instructions for determining the second set of points cause the processors to perform the steps of:

for each of a set of points of the lidar scan, determining an edge score for the point, the edge score value directly related to a difference in depth of the point and a depth of an adjacent point; and

selecting a subset of points having an edge score value above the threshold.

4. The non-transitory computer readable storage medium of claim 3 , wherein instructions for determining the first set of edges based on the lidar scan cause the processors to perform the steps of:

determining a first aggregate measure of intensity based on the first set of points;

determining a second aggregate measure of depth based on the first set of points; and

scaling edge scores of at least one of the first set of points or the second set of points based on the first aggregate measure and the second aggregate measure.

5. The non-transitory computer readable storage medium of claim 1 , wherein instructions for selecting the first set of points cause the processors to perform the steps of:

identifying a set of points from a region of a point cloud corresponding to lidar scan on the ground; and

selecting the first set of points from the identified set of points.

6. The non-transitory computer readable storage medium of claim 1 , wherein instructions for selecting the second set of points cause the processors to perform the steps of:

identifying a set of points as belonging to a region of a point cloud corresponding to lidar scan above the ground; and

selecting the second set of points from the identified set of points.

7. The non-transitory computer readable storage medium of claim 1 , wherein instructions for selecting the second set of points cause the processors to perform the steps of:

selecting a set of points from the lidar scan as points on ground responsive to the points being close to an edge of the lidar scan, wherein the edge of the lidar scan is determined to be closest to the ground;

determining a ground plane passing through the selected set of points; and

selecting the first set of points and the second set of points based on the ground plane.

8. The non-transitory computer readable storage medium of claim 1 , wherein determining the second transform based on the first transform, is performed repeatedly, wherein the instructions further cause the processor to perform the steps of, for an iteration:

initializing the first transform as the second transform of the previous iteration; and

determining the second transform based on the first transform.

9. The non-transitory computer readable storage medium of claim 1 , wherein each of the first transform and the second transform comprises a plurality of transform parameters, wherein determining the second transform based on the first transform comprises, performing a search for a transform having a lowest alignment score, wherein an alignment score measures a degree of alignment between the first set of edges and the second set of edges, wherein the instructions further cause the processor to perform the steps of:

determining an upper bound and a lower bound for each transform parameter; and

determining an alignment score for each of a plurality of points selected from a region within the upper bound and the lower bound of each transform parameters; and

selecting the second transform based on the alignment score.

10. The non-transitory computer readable storage medium of claim 9 , wherein instructions for determining the upper bound and the lower bound for a particular transform parameter cause the processors to perform the steps of:

determining one or more measures of variation in values of the transform parameter based on past iterations for calibrating the sensors; and

selecting the upper bound and the lower bound based on the one or more measures of variation.

11. A method for performing calibration of sensors of a vehicle, the method comprising:

receiving, by a lidar mounted on an autonomous vehicle, a lidar scan;

receiving, by a camera mounted on the autonomous vehicle, a camera image;

determining a first set of edges based on the lidar scan, the determining of the first set of edges comprising:

determining a first set of points based on a difference between intensity of each point and an adjacent point;

determining a second set of points based on a difference between depth of each point and an adjacent point; and

determining the first set of edges based on the first set of points and the second set of points;

determining a second set of edges based on the camera image;

determining a measure of alignment between the first set of edges and the second set of edges based on a first transform;

determining a second transform based on the first transform, wherein the second transform has a better measure of alignment compared to the first transform;

generating a high definition map based on the second transform; and

sending signals to controls of the autonomous vehicle based on the high definition map.

12. The method of claim 11 , wherein determining the first set of points comprises:

for each of a set of points of the lidar scan, determining an edge score for the point,

the edge score value directly related to a difference in intensity of the point and an intensity of an adjacent point; and

selecting a subset of points having an edge score above a threshold.

13. The method of claim 12 , wherein determining the second set of points comprises:

for each of a set of points of the lidar scan, determining an edge score for the point, the edge score value directly related to a difference in depth of the point and a depth of an adjacent point; and

selecting a subset of points having an edge score value above the threshold.

14. The method of claim 13 , wherein determining the first set of edges based on the lidar scan, further comprises:

determining a first aggregate measure of intensity based on the first set of points;

determining a second aggregate measure of depth based on the first set of points; and

scaling edge scores of at least one of the first set of points or the second set of points based on the first aggregate measure and the second aggregate measure.

15. The method of claim 11 , wherein selecting the first set of points comprises:

identifying a set of points from a region of a point cloud corresponding to lidar scan on the ground; and

selecting the first set of points from the identified set of points.

16. The method of claim 11 , wherein selecting the second set of points comprises:

identifying a set of points as belonging to a region of a point cloud corresponding to lidar scan above the ground; and

selecting the second set of points from the identified set of points.

17. The method of claim 11 , wherein selecting the second set of points comprises:

selecting a set of points from the lidar scan as points on ground responsive to the points being close to an edge of the lidar scan, wherein the edge of the lidar scan is determined to be closest to the ground;

determining a ground plane passing through the selected set of points; and

selecting the first set of points and the second set of points based on the ground plane.

18. The method of claim 11 , wherein determining the second transform based on the first transform, is performed repeatedly, the method comprising, for an iteration:

initializing the first transform as the second transform of the previous iteration; and

determining the second transform based on the first transform.

19. The method of claim 11 , wherein each of the first transform and the second transform comprises a plurality of transform parameters, wherein determining the second transform based on the first transform comprises, performing a search for a transform having a lowest alignment score, wherein an alignment score measures a degree of alignment between the first set of edges and the second set of edges:

determining an upper bound and a lower bound for each transform parameter; and

determining an alignment score for each of a plurality of points selected from a region within the upper bound and the lower bound of each transform parameters; and

selecting the second transform based on the alignment score.

20. A computer system comprising:

one or more processors; and

a non-transitory computer readable storage medium storing instructions for performing calibration of sensors of a vehicle, wherein the instructions when executed by a processor, cause the processor to perform steps including:

receiving, by a lidar mounted on an autonomous vehicle, a lidar scan;

receiving, by a camera mounted on the autonomous vehicle, a camera image;

determining a first set of edges based on the lidar scan, the determining of the first set of edges comprising:

determining a first set of points based on a difference between intensity of each point and an adjacent point;

determining a second set of points based on a difference between depth of each point and an adjacent point; and

determining the first set of edges based on the first set of points and the second set of points;

determining a second set of edges based on the camera image;

determining a measure of alignment between the first set of edges and the second set of edges based on a first transform;

determining a second transform based on the first transform, wherein the second transform has a better measure of alignment compared to the first transform;

generating a high definition map based on the second transform; and

sending signals to controls of the autonomous vehicle based on the high definition map.

Assignments (3)
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 21, 2020
From: WHEELER, MARK DAMON; YANG, LIN
To: DEEPMAP INC.
Reel/Frame 053829/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2018
From: WHEELER, MARK DAMON; YANG, LIN
To: DEEPMAP INC.
Reel/Frame 047415/0603 →
Continuity (2)
Provisional Application 62574744 · Oct 19, 2017
Related Publication 20190120947A1 · Apr 25, 2019
Cited By (5)
US 12,384,410 US 12,399,278 US 12,399,279 US 12,504,522 US 12,541,919