Systems and methods for spatial processing of lidar data
Disclosed herein are systems, methods, and computer program products for operating a lidar system. The methods comprise: arranging, by the processor, a plurality of pixels in a grid (the pixels comprising result values generated from processing waveforms produced by photodetectors of the lidar system); identifying, by the processor, a first region of interest in the grid based on correlations between range values associated with the plurality of pixels and/or correlations between intensity values associated with the plurality of pixels; combining, by the processor, result values associated with pixels located within the first region of interest to produce first feature value(s); and generating, by the processor, a first superpixel having value(s) set to the first feature value(s).
1 . A method for operating a lidar system, comprising:
arranging, by a processor, a plurality of pixels in a grid, the plurality of pixels comprising result values generated from processing waveforms produced by photodetectors of the lidar system;
identifying, by the processor, a first region of interest in the grid based on at least one of correlations between range values associated with the plurality of pixels and correlations between intensity values associated with the plurality of pixels;
combining, by the processor, result values associated with pixels located within the first region of interest to produce at least one first feature value;
generating, by the processor, a first superpixel having a value set to the at least one first feature value;
identifying a pixel of interest in the region of interest using a kernel; and
adjusting a size or a position of the region of interest in the grid to maximize a likelihood that the region of interest contains a greater number of pixels associated with an object,
wherein the size or position of the region of interest is adjusted based on the likelihood that the pixel of interest is associated with an edge point or a corner point on a surface of the object.
2 . The method according to claim 1 , wherein the first region of interest has at least one of a size or a shape that is different than a size or a shape of a second region of interest in the grid that is used to produce at least one second feature value.
3 . The method according to claim 1 , further comprising obtaining a kernel size and using the kernel size to identify the region of interest in the grid.
4 . The method according to claim 3 , wherein the kernel size is variable.
5 . The method according to claim 4 , wherein the obtaining the kernel size comprises:
locating ones of the plurality of pixels that are nearest neighbors to a pixel of interest in the grid in terms of at least range; and
defining the kernel size based on locations of the nearest neighbors in the grid.
6 . The method according to claim 4 , wherein the obtaining the kernel size comprises:
obtaining a reference kernel size;
identifying an area in the grid using the reference kernel size;
identifying a center pixel of the area;
computing a score for each said pixel in the area using the result values associated therewith, the score indicating a degree of correlation between result values associated with said pixel and said center pixel;
selecting pixels from the plurality of pixels based on the scores; and
defining the kernel size based on locations of the selected pixels in the grid.
7 . The method according to claim 6 , wherein the score is a function of at least one of range, intensity and noise.
8 . The method according to claim 1 , wherein the pixel of interest is a center pixel of the region of interest.
9 . The method according to claim 1 , wherein the adjusting the size or position of the region of interest comprises:
identifying ones of the plurality of pixels that are nearest neighbor pixels to the pixel of interest in terms of at least range; and
using a centroid of at least one of the nearest neighbor pixels to obtain a likelihood that the pixel of interest is associated with an edge point or a corner point on a surface of the object.
10 . The method according to claim 1 , further comprising disqualifying at least one pixel in the region of interest from aggregation with other pixels in the region of interest based on how far the at least one pixel is to the pixel of interest or a road surface in one or more dimensions, wherein the one or more dimensions comprises at least one of a range, an intensity, a noise and a confidence.
11 . The method according to claim 1 , further comprising using the first superpixel to control operations of an autonomous vehicle.
12 . A system, comprising:
a processor;
a non-transitory computer-readable storage medium comprising programming instructions that are configured to cause the processor to implement a method for operating a lidar system, wherein the programming instructions comprise instructions to:
arrange a plurality of pixels in a grid, the plurality of pixels comprising result values generated from processing waveforms produced by photodetectors of the lidar system;
identify a first region of interest in the grid based on at least one of correlations between range values associated with the plurality of pixels and correlations between intensity values associated with the plurality of pixels;
combine result values associated with pixels located within the first region of interest to produce at least one first feature value;
generate a first superpixel having a value set to the at least one first feature value;
identify a pixel of interest in the region of interest using a kernel; and
adjust a size or a position of the region of interest in the grid to maximize a likelihood that the region of interest contains a greater number of pixels associated with an object,
wherein the size or position of the region of interest is adjusted based on the likelihood that the pixel of interest is associated with an edge point or a corner point on a surface of the object.
13 . The system according to claim 12 , wherein the programming instructions further comprise instructions to obtain a kernel size and use the kernel size to identify the region of interest in the grid.
14 . The system according to claim 13 , wherein the kernel size is obtained by:
locating ones of the plurality of pixels that are nearest neighbors to a pixel of interest in the grid in terms of at least range; and
defining the kernel size based on locations of the nearest neighbors in the grid.
15 . The system according to claim 13 , wherein the kernel size is obtained by:
obtaining a reference kernel size;
identifying an area in the grid using the reference kernel size;
identifying a center pixel of the area;
computing a score for each said pixel in the area using the result values associated therewith, the score indicating a degree of correlation between result values associated with said pixel and said center pixel;
selecting pixels from the plurality of pixels based on the scores; and
defining the kernel size based on locations of the selected pixels in the grid.
16 . The system according to claim 12 , wherein the size or position of the region of interest is adjusted by:
identifying ones of the plurality of pixels that are nearest neighbor pixels to a pixel of interest in terms of at least range; and
using a centroid of at least one of the nearest neighbor pixels to obtain a likelihood that the pixel of interest is associated with an edge point or a corner point on a surface of the object.
17 . A non-transitory computer-readable medium that stores instructions that are configured to, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
arranging a plurality of pixels in a grid, the plurality of pixels comprising result values generated from processing waveforms produced by photodetectors of a lidar system;
identifying a first region of interest in the grid based on at least one of correlations between range values associated with the plurality of pixels and correlations between intensity values associated with the plurality of pixels;
combining result values associated with pixels located within the first region of interest to produce at least one first feature value;
generating a first superpixel having a value set to the at least one first feature value;
identifying a pixel of interest in the region of interest using a kernel; and
adjusting a size or a position of the region of interest in the grid to maximize a likelihood that the region of interest contains a greater number of pixels associated with an object,
wherein the size or position of the region of interest is adjusted based on the likelihood that the pixel of interest is associated with an edge point or a corner point on a surface of the object.