EFFICIENT AND SCALABLE THREE-DIMENSIONAL POINT CLOUD SEGMENTATION FOR NAVIGATION IN AUTONOMOUS VEHICLES
First Claim
1. A method comprising using at least one hardware processor to:
- receive data from one or more sensors;
generate a three-dimensional point cloud from the data received from the one or more sensors;
segment the three-dimensional point cloud using a clustering algorithm byadding points from the three-dimensional point cloud to a spatial hash,for each unseen point in the three-dimensional point cloud,generating a new cluster,adding the unseen point to the cluster,marking the unseen point as seen, and,for each point that is added to the cluster,setting the point as a reference point,computing a reference threshold metric for the reference point,identifying all unseen neighbor points to the reference point in the spatial hash, based on the reference threshold metric, and,for each identified unseen neighbor point to the reference point,
marking the unseen neighbor point as seen,
computing a neighbor threshold metric for the neighbor point,
determining whether or not the neighbor point should be added to the cluster based on the neighbor threshold metric, and,
when the neighbor point is determined to be added to the cluster, adding the neighbor point to the cluster, and,when a size of the cluster reaches a threshold, adding the cluster to a cluster list,identify one or more objects based on the cluster list; and
control one or more autonomous systems based on the identified one or more objects.
1 Assignment
0 Petitions
Accused Products
Abstract
Efficient and scalable three-dimensional point cloud segmentation. In an embodiment, a three-dimensional point cloud is segmented by adding points to a spatial hash. For each unseen point, a cluster is generated, the unseen point is added to the cluster and marked as seen, and, for each point that is added to the cluster, the point is set as a reference, a reference threshold metric is computed, all unseen neighbors are identified based on the reference threshold metric, and, for each identified unseen neighbor, the unseen neighbor is marked as seen, a neighbor threshold metric is computed, and the neighbor is added or not added to the cluster based on the neighbor threshold metric. When the cluster reaches a threshold size, it may be added to a cluster list. Objects may be identified based on the cluster list and used to control autonomous system(s).
-
Citations
15 Claims
-
1. A method comprising using at least one hardware processor to:
-
receive data from one or more sensors; generate a three-dimensional point cloud from the data received from the one or more sensors; segment the three-dimensional point cloud using a clustering algorithm by adding points from the three-dimensional point cloud to a spatial hash, for each unseen point in the three-dimensional point cloud, generating a new cluster, adding the unseen point to the cluster, marking the unseen point as seen, and, for each point that is added to the cluster, setting the point as a reference point, computing a reference threshold metric for the reference point, identifying all unseen neighbor points to the reference point in the spatial hash, based on the reference threshold metric, and, for each identified unseen neighbor point to the reference point,
marking the unseen neighbor point as seen,
computing a neighbor threshold metric for the neighbor point,
determining whether or not the neighbor point should be added to the cluster based on the neighbor threshold metric, and,
when the neighbor point is determined to be added to the cluster, adding the neighbor point to the cluster, and,when a size of the cluster reaches a threshold, adding the cluster to a cluster list, identify one or more objects based on the cluster list; and control one or more autonomous systems based on the identified one or more objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
at least one hardware processor; and one or more software modules that are configured to, when executed by the at least one hardware processor, receive data from one or more sensors, generate a three-dimensional point cloud from the data received from the one or more sensors, segment the three-dimensional point cloud using a clustering algorithm by adding points from the three-dimensional point cloud to a spatial hash, for each unseen point in the three-dimensional point cloud, generating a new cluster, adding the unseen point to the cluster, marking the unseen point as seen, and, for each point that is added to the cluster,
setting the point as a reference point,
computing a reference threshold metric for the reference point,
identifying all unseen neighbor points to the reference point in the spatial hash, based on the reference threshold metric, and,
for each identified unseen neighbor point to the reference point,
marking the unseen neighbor point as seen,
computing a neighbor threshold metric for the neighbor point,
determining whether or not the neighbor point should be added to the cluster based on the neighbor threshold metric, and,
when the neighbor point is determined to be added to the cluster, adding the neighbor point to the cluster, and,when a size of the cluster reaches a threshold, adding the cluster to a cluster list, identify one or more objects based on the cluster list, and control one or more autonomous systems based on the identified one or more objects.
-
-
15. A non-transitory computer-readable medium having instructions stored therein, wherein the instructions, when executed by a processor, cause the processor to:
-
receive data from one or more sensors; generate a three-dimensional point cloud from the data received from the one or more sensors; segment the three-dimensional point cloud using a clustering algorithm by adding points from the three-dimensional point cloud to a spatial hash, for each unseen point in the three-dimensional point cloud, generating a new cluster, adding the unseen point to the cluster, marking the unseen point as seen, and, for each point that is added to the cluster, setting the point as a reference point, computing a reference threshold metric for the reference point, identifying all unseen neighbor points to the reference point in the spatial hash, based on the reference threshold metric, and, for each identified unseen neighbor point to the reference point,
marking the unseen neighbor point as seen,
computing a neighbor threshold metric for the neighbor point,
determining whether or not the neighbor point should be added to the cluster based on the neighbor threshold metric, and,
when the neighbor point is determined to be added to the cluster, adding the neighbor point to the cluster, and,when a size of the cluster reaches a threshold, adding the cluster to a cluster list, identify one or more objects based on the cluster list; and control one or more autonomous systems based on the identified one or more objects.
-
Specification