IP Library Granted Patent US 10,304,256
Granted Patent B2
US 10,304,256 · App. 15/376,793 · Granted May 28, 2019

Point cloud cleaning method

Inventor: Damian Mrowca (Stanford, CA)
Assignee: INDOOR REALITY INC.
G06T19/20G06T2219/2021
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,304,256
App. No.
15/376,793
Granted
May 28, 2019
Kind
B2
Abstract

Methods for cleaning a point cloud using an electronic computing device are presented, the method including: causing the electronic computing device to decompose the point cloud into a number of cell voxels; removing a number of outlier cell voxels; subsampling the point cloud; removing a first number of outlier points; removing a number of double surfaces; and removing a second number of outlier points. In some embodiments, method further include outputting a clean point cloud to file. In some embodiments, the causing the electronic computing device to decompose the point cloud further includes: reading into memory a number of points corresponding with the point cloud; specifying a cell voxel size; creating a cell grid to chunk the point cloud into a number of smaller sets; sorting the number of points into the number of cell voxels; and merging all point clouds.

Claims (72)

1. A method for cleaning a point cloud using an electronic computing device, the method comprising:

causing the electronic computing device to decompose the point cloud into a plurality of cell voxels, wherein

the point cloud captured with a 3D mobile scan of an indoor environment, and wherein

the causing the electronic computing device to decompose the point cloud further comprises:

reading into memory a plurality of points corresponding with the point cloud;

specifying a cell voxel size;

creating a cell grid to chunk the point cloud into a plurality of smaller sets;

sorting the plurality of points into the plurality of cell voxels; and

merging all point clouds corresponding with all lasers utilized producing the point cloud into the cell grid; and

caching the point cloud;

removing a plurality of outlier cell voxels;

subsampling the point cloud to accommodate a non-regular scanning speed corresponding with the 3D mobile scan and to regularize a density of the point cloud;

removing a first plurality of outlier points to clean areas along a plurality of walls represented in a floor plan of the indoor environment;

removing a plurality of double surfaces, wherein

the removing a plurality of double surfaces further comprises:

estimating normals for each point of the cell grid;

removing any double surfaces along normals;

comparing normals of detected points with normals of original points;

keeping only detected points whose normals deviate less than a normal angle threshold from the normals of original points;

dividing remaining points into two groups based on group timestamp;

determining density of the two groups; and

removing one of the two groups of lower density; and

removing a second plurality of outlier points.

2. The method of claim 1 , further comprising:

outputting a clean point cloud to file.

3. The method of claim 1 , wherein the removing the plurality of outlier cell voxels further comprises:

initializing a connected components grid;

recursively reading directly neighboring cell voxels; and

deleting all cell voxels not directly connected with the connected components grid.

4. The method of claim 1 , wherein the removing the first plurality of outlier points further comprises:

reading in the floor plan corresponding with the point cloud, wherein the floor plan is defined by a set of triangles;

determining all outer boundaries of the floor plan;

expanding the set of triangles to create a bloated floor plan; and

removing the first plurality of outlier points that lie outside the bloated floor plan.

5. The method of claim 1 , further comprising;

repeating the removing the plurality of double surfaces along all normals of the point cloud.

6. A computing device program product for cleaning a point cloud using an electronic computing device, the computing device program product comprising:

a non-transitory computer readable medium;

first programmatic instructions for causing the electronic computing device to decompose the point cloud into a plurality of cell voxels, wherein

the first programmatic instructions for causing the electronic computing device to decompose the point cloud further comprises:

reading into memory a plurality of points corresponding with the point cloud;

specifying a cell voxel size;

creating a cell grid to chunk the point cloud into a plurality of smaller sets;

sorting the plurality of points into the plurality of cell voxels; and

merging all point clouds corresponding with all lasers utilized producing the point cloud into the cell grid; and

caching the point cloud;

second programmatic instructions for removing a plurality of outlier cell voxels;

third programmatic instructions for subsampling the point cloud;

fourth programmatic instructions for removing a first plurality of outlier points;

fifth programmatic instructions for removing a plurality of double surfaces, wherein

the fifth programmatic instructions for removing a plurality of double surfaces further comprises:

estimating normals for each point of the cell grid;

removing any double surfaces along normals;

comparing normals of detected points with normals of original points;

keeping only detected points whose normals deviate less than a normal angle threshold from the normals of original points;

dividing remaining points into two groups based on group timestamp;

determining density of the two groups; and

removing one of the two groups of lower density; and

sixth programmatic instructions for removing a second plurality of outlier points, wherein the programmatic instructions are stored on the non-transitory computer readable medium.

7. The computing device program product of claim 6 , further comprising:

outputting a clean point cloud to file.

8. The computing device program product of claim 6 , wherein the second programmatic instructions for removing the plurality of outlier cell voxels further comprises:

initializing a connected components grid;

recursively reading directly neighboring cell voxels; and

deleting all cell voxels not directly connected with the connected components grid.

9. The computing device program product of claim 6 , wherein the fourth programmatic instructions for removing the first plurality of outlier points further comprises:

reading in a floor plan corresponding with the point cloud, wherein the floor plan is defined by a set of triangles;

determining all outer boundaries of the floor plan;

expanding the set of triangles to create a bloated floor plan; and

removing the first plurality of outlier points that lie outside the bloated floor plan.

10. The computing device program product of claim 6 , further comprising;

repeating the removing the plurality of double surfaces along all normals of the point cloud.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: INDOOR REALITY, INC.
To: HILTI AG
Reel/Frame 049542/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2017
From: MROWCA, DAMIAN
To: INDOOR REALITY INC.
Reel/Frame 041114/0226 →
Continuity (1)
Related Publication 20180165871A1 · Jun 14, 2018