US20160063754A1 - System and Method for Detecting a Structural Opening in a Three Dimensional Point Cloud - Google Patents
System and Method for Detecting a Structural Opening in a Three Dimensional Point Cloud Download PDFInfo
- Publication number
- US20160063754A1 US20160063754A1 US14/468,508 US201414468508A US2016063754A1 US 20160063754 A1 US20160063754 A1 US 20160063754A1 US 201414468508 A US201414468508 A US 201414468508A US 2016063754 A1 US2016063754 A1 US 2016063754A1
- Authority
- US
- United States
- Prior art keywords
- voxel
- point cloud
- dimensional point
- points
- ground plane
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/35—Categorising the entire scene, e.g. birthday party or wedding scene
- G06V20/38—Outdoor scenes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Definitions
- the present disclosure is generally related to three-dimensional point cloud imaging and, more particularly, to a system and method for detecting a structural opening in a three-dimensional point cloud image.
- Three-dimensional imaging data for example, in the form of a three-dimensional point cloud acquired from an imaging sensor, is useful for creating three-dimensional models of a scene.
- a three-dimensional point cloud includes point data arranged in three dimensions in which the points are defined at various locations by an X, Y, and Z coordinate axis system.
- three-dimensional point clouds with their sparse and irregular sampling of the scene may look different compared to other types of images. Due to this, images created from three-dimensional point clouds may represent the surface of a structure and determine a shape of the structure but may have limited use, for example, in detecting specific features of the structure.
- the disclosed method for detecting an opening in a structure represented by a three-dimensional point cloud may include the steps of: (1) creating a three-dimensional point cloud map of a scene, the three-dimensional point cloud map including a plurality of points representing a ground plane and the structure upon the ground plane, (2) identifying an absence of points within the plurality of points representing the structure, and (3) determining whether the absence of points represents an opening in the structure.
- the disclosed method for detecting an opening in a structure represented by a three-dimensional point cloud may include the steps of: (1) acquiring a plurality of three-dimensional frames representing at least a portion of a scene, each three-dimensional frame including a plurality of points representing at least a portion of a ground plane and at least a portion of the structure upon the ground plane, (2) preprocessing the plurality of three-dimensional frames, (3) creating a three-dimensional point cloud map representing the scene from the plurality of three-dimensional frames, (4) delimiting the three-dimensional point cloud map within a volume, (5) rotating the three-dimensional point cloud map to align the plurality of points representing the ground plane with a horizontal reference plane of the volume, (6) dividing the volume into a plurality of sub-volumes to define a volumetric grid, (7) converting the three-dimensional point cloud map to a plurality of voxels, (8) creating a plurality of voxel strips, each voxel strip being defined by a grouping of vertically aligned
- the disclosed system for detecting an opening in a structure represented by a three-dimensional point cloud may include an image sensor capable of acquiring a plurality of three-dimensional frames representing at least a portion of a scene, each three-dimensional frame including a plurality of points representing at least a portion of a ground plane and at least a portion of the structure upon the ground plane, and a computer system including a processor programmed with a set of instructions that, when executed by the processor, causes the processor to: (1) preprocess the plurality of three-dimensional frames, (2) create a three-dimensional point cloud map representing the scene from the plurality of three-dimensional frames, (3) delimit the three-dimensional point cloud map within a volume, (4) rotate the three-dimensional point cloud map to align the plurality of points representing the ground plane with a horizontal reference plane of the volume, (5) convert the three-dimensional point cloud map to a plurality of voxels, (6) create a plurality of voxel strips from the plurality of voxels, each voxel strip
- FIG. 1 is a flow diagram of one embodiment of the disclosed method for detecting a structural opening in a three-dimensional point cloud
- FIG. 2 is a schematic illustration of a scene to be represented by a three-dimensional point cloud map
- FIG. 3 is a schematic illustration of one embodiment of the 3D point cloud map of the scene represented in FIG. 2 ;
- FIG. 4 is a flow diagram of one embodiment of the preprocessing operation represented in FIG. 1 ;
- FIG. 5 is a schematic illustration of the rotating operation represented in FIG. 1 ;
- FIG. 6 is a schematic diagram of one embodiment of the delimiting volume for the 3D point cloud map represented in FIG. 3 ;
- FIG. 7 is a schematic illustration of one embodiment of the volumetric grid formed from the volume represented in FIG. 6 ;
- FIG. 8 is a schematic illustration of one embodiment of the voxel grid formed from the 3D point cloud map represented in FIG. 6 ;
- FIG. 9 is a schematic illustration of one embodiment of the voxel strips formed from the voxel grid represented in FIG. 8 ;
- FIG. 10 is a flow diagram of one embodiment of the detecting operation represented in FIG. 1 ;
- FIG. 11 is a schematic block diagram of one embodiment of the disclosed computer system for implementing the method represented in FIG. 1 .
- one embodiment of the disclosed method, generally designated 100 for detecting a structural opening in a three-dimensional (“3D”) point cloud may begin by acquiring at least one 3D frame of a scene 202 , as shown at block 102 .
- 3D three-dimensional
- the scene 202 may include terrain 204 .
- the terrain 204 may include a ground plane 206 and one or more structures 208 .
- the structures 208 may include any terrain feature, naturally occurring or man-made, that extends vertically from the ground plane 206 .
- the structures 208 may include, but are not limited to, mountains, hills, buildings, rock formations, trees, etc.
- Some structures 208 may include one or more openings 224 therein.
- such an opening 224 may be an entrance to a cave or a tunnel, for example, within a side of a mountain.
- At least one 3D image sensor 212 may acquire the 3D point cloud frame 200 ( FIG. 3 ), also referred to herein as a frame 200 , of the scene 202 .
- the frame 200 may be a 3D image (e.g., a virtual snapshot) of the scene 202 .
- the imaging sensor 212 may be stationary or may be in motion. As an example, a stationary imaging sensor 212 may acquire a single frame 200 of the full scene 202 . As another example, a moving image sensor 212 may scan the scene 202 and acquire a plurality (e.g., sequence) of frames 200 of portions of the scene 202 that when combined form the full scene 202 .
- a plurality of imaging sensors 212 are also contemplated.
- a plurality of image sensors 212 e.g., stationary or moving
- the plurality of frames 200 may be combined to form the full scene 202 .
- the plurality of frames 200 may be acquired at the same time or at different times.
- the imaging sensor 212 or the plurality of imaging sensors 212 may have respectively different locations and/or orientations when acquiring the frame 200 .
- the location and/or orientation of the imaging sensor 212 may be referred to as the pose of the imaging sensor 212 .
- the imaging sensor 212 may have a pose defined by pose parameters at the moment that the frame 200 (e.g., the 3D image data) is acquired.
- the frame 200 may include 3D image data of the scene 202 including the terrain 204 ( FIG. 2 ).
- the 3D image data may take the form of a plurality of points 220 in three-dimensional space (e.g., a 3D point cloud) representing at least a portion of the scene 202 .
- the plurality of points 220 may include a plurality of points 216 representing the ground plane 206 and a plurality of points 218 representing one or more structures 208 .
- One or more frames 200 may be processed to reconstruct a 3D image of the scene 202 (e.g., a 3D point cloud map).
- each point 222 in the 3D point cloud may have an individual x, y and z value, representing the actual surface within the scene 202 in 3D. Only a limited number of individual points 222 are illustrated in FIG. 3 for simplicity and clarity, however, those skilled in the art will recognize that the 3D point cloud may include millions of individual points 222 (e.g., forming the plurality of points 216 representing the ground plane 206 and the plurality of points 218 representing one or more structures 208 ).
- a variety of different types of imaging sensors 212 may be used to generate the 3D point cloud (e.g., 3D imaging data) of the frame 200 .
- the disclosed method 100 may be utilized for detection of structural openings in the 3D point cloud obtained from any of these various types of imaging systems.
- An example of a 3D imaging system e.g., 3D imaging sensor 212
- Each image frame of LIDAR data may include a collection of points in three dimensions (e.g., a 3D point cloud) that correspond to multiple range echoes.
- Other examples of 3D imaging systems that generate 3D point cloud data may include 3D from stereo camera systems, structure from motion systems, and the like.
- a 3D point cloud map 214 may be created (e.g., built) from one or more frames 200 ( FIG. 3 ) acquired by the imaging sensor 212 ( FIG. 2 ), as shown at block 104 .
- the 3D point cloud map 214 may be created from a single frame 200 (e.g., a single 3D point cloud) including the plurality of points 220 (e.g., 3D image data) representing the full scene 202 .
- the 3D point cloud map 214 may be created from a combined plurality of frames 200 (e.g., a combined plurality of 3D point clouds), each including the plurality of points 220 representing the full scene 202 (e.g., at the same or different poses of the imaging sensor 212 ) or portions of the scene 202 (e.g., at different poses of the imaging sensor 212 ).
- the 3D point cloud map 214 may be created from a single frame 200 of the scene 202 and iteratively updated with additional frames 200 of the scene (e.g., at the same or different poses of the imaging sensor 212 ) to increase the robustness of the 3D point cloud map 214 and detection accuracy.
- the imaging sensor 212 may be moving (e.g., the imaging system 212 acquires a frame 200 , moves, and then acquires another frame 200 ). Because the imaging sensor 212 lacks a notion of global coordinate positioning, the plurality of frames 200 may not be aligned and/or each frame 200 not include 3D image data of the entire scene 202 ( FIG. 2 ). Thus, the method 100 may include registering the plurality of frames 200 , as shown at block 106 .
- Registering the plurality of frames 200 may include aligning the plurality of points 220 of each frame 200 of the plurality of frames 200 .
- the plurality of points 220 (or a portion of the plurality of points 220 ) of a first frame 200 may be aligned with the associated plurality of points 220 (or a portion of the associated plurality of points 220 ) of a second frame 200 and so on, in an iterative manner.
- Aligning the points 222 of each frame 200 may be performed utilizing an Iterative Closest Point (“ICP”) algorithm to minimize the difference between two frames 200 (e.g., 3D point clouds).
- the ICP algorithm may be used to construct the 3D point cloud map 214 of the scene 202 from different frames 200 .
- a Fast ICP algorithm may be used to optimize implementation of a nearest-neighbor point search.
- the ICP algorithm may include the following steps: (1) associating points 222 of different frames 200 by a nearest-neighbor criteria (e.g., each point 222 in a first 3D point cloud is associated with the closest point 222 in a second 3D point cloud), (2) estimating transformation parameters (e.g., rotation and/or translation) using a mean square cost function (e.g., the transformation may align each point 222 of the first 3D point cloud to the best matching point 222 of the second 3D point cloud), and (3) transforming the points using the estimated parameters.
- the ICP algorithm may be run iteratively to re-associate the aligned points 222 with points 222 of a third 3D point cloud and so on.
- the 3D point cloud data in the plurality of frames 200 may be noisy (e.g., the 3D point cloud may include holes caused by occlusions or point position inaccuracies) and/or a target (e.g., a particularly designated structure 208 of the scene 202 ) may not be represented in each frame 200 .
- detecting e.g., searching for
- certain structural features may be difficult.
- the ICP algorithm may become confused, for example, by the plurality of points 216 ( FIG. 3 ) representing the ground plane 206 ( FIG. 2 ) dominating the 3D point cloud.
- a traditional ICP registration operation may align the points 222 representing the ground plane 206 but may miss points 222 representing other parts in the 3D point clouds (e.g., points 222 representing the structure 208 ).
- the method 100 may include preprocessing the plurality of frames 200 prior to registering the frames 200 (block 106 ) using the ICP algorithm, as shown at block 108 .
- the preprocessing operation may include detecting the plurality of points 216 representing the ground plane 206 of the plurality of points 220 representing the scene 202 in each frame 200 of the plurality of frames 200 , as shown at block 110 .
- detecting the plurality of point 216 representing the ground plane 206 may utilize a Random Sample Consensus (“RANSAC”) method.
- RANSAC Random Sample Consensus
- the plurality of points 216 representing the ground plane 206 may be removed from each frame 200 of the plurality of frames 200 .
- other points 222 e.g., outlying points
- the remaining plurality of points 220 of each frame 200 may only include the plurality of points 218 representing the structure 208 .
- the plurality of frames 200 may be registered. Registering the plurality of frames 200 may include aligning the plurality of points 218 representing the structure 208 of each frame 200 of the plurality of frames 200 . For example, the plurality of points 218 (or a portion of the plurality of points 218 ) representing the structure 208 of a first frame 200 may be aligned with the associated plurality of points 218 (or a portion of the associated plurality of points 218 ) of a second frame 200 and so on, in an iterative manner. Aligning the points 218 representing the structure 208 of each frame 200 may be performed utilizing the Iterative Closest point (“ICP”) algorithm, such as that described above and shown at block 108 .
- ICP Iterative Closest point
- Each additional (e.g., new) frame 200 may be processed by the ICP algorithm, which updates the 3D point cloud map 214 .
- the ICP algorithm iteratively revises the transformation (e.g., translation and/or rotation) needed to minimize the distance between the associated points 222 of two frames 200 (e.g., the two 3D point clouds).
- the frame 200 registration operation shown at block 106 and the frame 200 registration operation shown at block 114 are illustrated as separate operations, they may be separate operations or they may be the same operation.
- registering the frames 200 e.g., having the plurality of points 220 representing the scene 202
- registering the frames 200 may not be required when the frames 200 are preprocessed, as shown at block 108 , because registering the frames 200 (e.g., having the plurality of points 218 representing the structure 208 ), as shown at block 114 , may adequately align the frames 200 .
- the plurality of points 216 representing the ground plane 206 may be added back to each frame 200 of the plurality of frames 200 following registration of the plurality of frames 200 (block 114 ) to create the 3D point cloud map 214 representing the scene 202 .
- the created 3D point cloud map 214 is a robust and complete representation of the scene 202 including the terrain 204 , including any structures 208 extending vertically from the ground plane 206 .
- the 3D point cloud map 214 created in such a manner may represent (e.g., display) the opening 224 in the structure 208 with a much better clarity. Any holes introduced by imaging sensor noise may also be reduced. Therefore, we can proceed with the tunnel/cave detection in this map after updating it with a new frame. In the following sections, we will explain how we achieve cave detection in our system.
- preprocessing operation shown and described at block 108 may be applicable to any ICP based algorithms, not only the implementation described herein for the method 100 for detecting structural openings in 3D point clouds.
- the 3D point cloud map 214 may be rotated to align a reference ground plane 228 ( FIG. 5 ) with a reference plane 226 ( FIG. 5 ), as shown at block 118 .
- the reference ground plane 228 may be defined in the 3D point cloud map 214 ( FIG. 3 ).
- the plurality of points 216 representing the ground plane 206 ( FIG. 3 ) of the 3D point cloud map 214 may define the reference ground plane 228 .
- the plurality of points 216 representing the ground plane 206 detected in the preprocessing operation (block 108 ), as shown at block 110 ( FIG. 4 ) may be used at the reference ground plane 228 .
- the reference plane 226 may be defined by an X-Y plane (e.g., a plane defined by an X-axis and a Y-axis).
- the reference ground plane 228 e.g., the plurality of points 216 representing the ground plane 206 in the 3D point cloud map 214
- direction line 230 may be rotated, in the direction illustrated by direction line 230 , to a horizontal orientation.
- other reference planes are also contemplated.
- the reference ground plane 228 may be rotated to align with a Y-Z plane (e.g., a plane defined by the Y-axis and a Z-axis) such that the reference ground plane 228 may be rotated to a vertical orientation.
- a Y-Z plane e.g., a plane defined by the Y-axis and a Z-axis
- an angle ⁇ 232 between the reference ground plane 228 and the reference plane 226 may be found.
- the reference ground plane 228 e.g., the 3D point cloud map 214
- the reference ground plane 228 may be rotated according to angle ⁇ 232 about an intersection line 234 (e.g., a line defined by the intersection of the reference ground plane 228 and the reference plane 226 ).
- an intersection line 234 e.g., a line defined by the intersection of the reference ground plane 228 and the reference plane 226 .
- a first normal vector n 1 236 e.g., a vector normal to the reference ground plane 228
- a second normal vector n 2 2 238 e.g., a vector normal to the reference plane 226
- An angle ⁇ 240 between the first normal vector n 1 236 and the second normal vector n 2 238 may be found (e.g., calculated).
- the angle ⁇ - ⁇ 242 may represent the angle ⁇ 232 .
- the 3D point cloud map 214 may be rotated about the intersection line 234 by ⁇ - ⁇ degrees (e.g., ⁇ degrees) to align the reference ground plane 228 with the reference plane 226 and position the 3D point cloud map 214 in a horizontal orientation.
- the 3D point cloud map 214 may be delimited within a three-dimensional delimiting volume 242 , as shown at block 120 .
- the volume 242 may define the limits or boundaries of the 3D point cloud map 214 .
- FIG. 6 illustrates a cubic volume (e.g., a cube) 242 defining the three dimensional boundaries of the 3D point cloud map 214 .
- the reference ground plane 228 of the 3D point cloud map 214 is aligned with the X-Y plane (e.g., the reference plane 226 ) of the cubic volume 242 .
- the exemplary 3D point cloud map 214 (e.g., 3D image data) is shown delimited within the cubic volume 242 , the present disclosure is not limited to a cubic geometry. Those skilled in the art will recognize that a cubic geometry may be a convenient shape to use for this purpose. Thus, the 3D point cloud map 214 may be defined within any other suitable geometric volume.
- the volume 242 (e.g., total volume defining the boundaries of the 3D point cloud map 214 ) may be divided into a plurality of sub-volumes 246 defining a volumetric grid 244 , as shown at block 122 .
- each sub-volume 246 may have a cube shape, also referred to herein as a cuboid.
- Other geometric shapes of the plurality of sub-volumes 246 are also contemplated.
- the volume 242 may be divided into 9,000,000 equal sub-volumes 426 (e.g., cuboids) defining the volumetric grid 244 including 300 X-axis cuboids, 300 Y-axis cuboids, and 300 Z-axis cuboids.
- sub-volumes 426 e.g., cuboids
- the 3D point cloud map 214 (e.g., 3D image data) may be converted to a plurality of voxels 248 (also known as volumetric pixels or Volumetric Picture Elements), as shown at block 124 .
- Neighboring points 222 ( FIG. 3 ) of the plurality of points 220 (e.g., representing the ground plane 206 and the structures 208 ) ( FIG. 2 ) of the 3D point cloud map 214 may be clustered into individual voxels 250 .
- Each voxel 250 of the plurality of voxels 248 may represent one sub-volume 246 ( FIG. 7 ) of the regular volumetric grid 244 ( FIG.
- the plurality of voxels 248 may define a voxel grid 252 within the delimiting volume 242 representing a voxelized representation of the 3D point cloud map 214 .
- Creating voxels 250 from neighboring points 222 of the 3D point cloud map 214 may reduce the computational complexity required to process the 3D image data, for example, to detect the opening 210 ( FIG. 2 ) in the structure 208 .
- Only a limited number of individual voxels 250 are illustrated in FIG. 8 for simplicity and clarity, however, those skilled in the art will recognize that the voxel grid 252 may include millions of individual voxels 250 (e.g., forming a plurality of voxels 254 representing the ground plane 206 and a plurality of voxels 256 representing one or more structures 208 ).
- one or more voxel strips 258 may be created (e.g., formed or generated) from linearly aligned voxels 250 , as shown at block 126 .
- each voxel strip 258 may be defined by a grouping of aligned voxels 250 .
- the 3D point cloud map 214 FIG. 9
- the voxel strips 258 may be defined by voxels 250 aligned along (e.g., parallel to) the Z-axis (e.g., vertically aligned).
- the plurality of voxels 254 representing the ground plane 206 may be aligned with the X-Y plane (e.g., horizontally oriented) and the plurality of voxels 258 representing the structures 208 may extend from the plurality of voxels 254 representing the ground plane 206 along the Z-axis (e.g., vertically oriented).
- all of the voxels 250 that project from the same (e.g., square) grid 260 on the X-Y plane (e.g., the reference plane 226 ) belong to the same voxel strip 258 .
- the opening 210 in the structure 208 may be detected from the voxel strips 258 , as shown at block 128 .
- Each voxel strip 258 may be searched for an absence 262 of one or more voxels 250 along or within the voxel strip 258 .
- the absence 262 of a voxel 250 may represent an absence 272 ( FIG. 3 ) of points 222 within the plurality of points 218 representing the structure 208 of the 3D point cloud map 214 of the scene 202 .
- the absence 262 of voxels 250 within the voxel strip 258 may represent the presence of the opening 210 in the structure 208 .
- the voxel strip 258 may include both a ground voxel 264 representing the ground of the opening 210 and a ceiling voxel 266 representing the ceiling of the opening 210 .
- detecting the opening 210 ( FIG. 2 ) in the structure 208 from the voxel strip 258 may include searching each voxel strip 258 and determining whether the voxel strip 258 includes both the ground voxel 264 and the ceiling voxel 266 ( FIG. 9 ), as shown at block 130 .
- the ground voxel 264 may include ground points 268 ( FIG. 3 ) (e.g., a portion of the plurality of points 216 ) representing the ground plane 206 ( FIG. 2 ), for example, directly below the structure 208 .
- the ceiling voxel 266 may include ceiling points 270 ( FIG.
- the absence 262 of voxels 250 may be defined by the empty space defined between the ground voxel 264 and the ceiling voxel 266 (e.g., the absence 272 of points 222 defined between the ground points 268 and the ceiling points 270 ) and may represent the opening 210 .
- the voxel strip 258 does not include both the ground voxel 264 and the ceiling voxel 266 , then the voxel strip 258 either does not include the absence 262 of voxels 250 or the absence 262 of voxels 250 is not the opening 210 of interest and is not identified as a candidate for containing the opening 210 in the structure 208 , as shown at block 132 . If the voxel strip 258 does include both the ground voxel 264 and the ceiling voxel 266 , then the voxel strip 258 includes the absence 262 of voxels 250 and is identified as a candidate for containing the opening 210 in the structure 208 , as shown at block 134 .
- whether the absence 262 of voxels 250 in the voxel strip 258 is the opening 210 of interest may be determined.
- the absence 262 of voxels 250 e.g., the absence 272 of points 222
- the distance (e.g., vertical distance) between the two neighboring voxels 250 (e.g., the ground voxel 264 and the ceiling voxel 266 ) of each voxel strip 258 may be calculated.
- the distance between the two neighboring voxels 250 may be the dimension (e.g., the vertical dimension) of the absence 262 and, thus, the vertical dimension of the opening 210 .
- the calculated distances (e.g., dimensions) may be sorted from largest to smallest.
- each candidate voxel strip 258 may be subjected to a set of parameters in order to determine if the absence 262 of voxels 250 represents the opening 210 of interest (e.g., a cave or tunnel opening).
- a first parameter of the set of parameters may include determining whether the largest distance between the two neighboring voxels 250 (e.g., the dimension of the largest absence 262 ) of one (e.g., a first) voxel strip 258 is greater than (e.g., six times greater than) that of the second largest distance between the two neighboring voxels 250 (e.g., the dimension of the second largest absence 262 ) of another (e.g., a second) voxel strip 258 .
- a second parameter of the set of parameters may include determining whether the largest distance between the two neighboring voxels 250 (e.g., the dimension of the largest absence 262 ) is greater than (e.g., twenty times greater than) that of the dimension (e.g., the vertical dimension along the Z-axis) of the voxel 250 .
- the vertical dimension of the voxel 250 may be the vertical dimension of the volume 242 along the Z-axis divided by the total number of sub-volumes 246 making up the volumetric grid 244 ( FIG. 7 ).
- the vertical dimension of the voxel 250 may be the vertical dimension of the volume 242 along the Z-axis divided by 300.
- a third parameter of the set of parameters may include determining whether one of the two neighboring voxels 250 belongs to the ground plane 206 ( FIG. 2 ). For example, it may be determined whether the ground voxel 264 of the voxel strip 258 belongs to the plurality of voxel 254 representing the ground plane 206 .
- the candidate voxel strip 258 (e.g., the absence 262 ) is identified as the opening 210 of interest, as shown at block 140 . If the set of parameters is not met, then the candidate voxel strip 258 (e.g., the absence 262 ) is not identified as the opening 210 of interest, as shown at block 142 .
- numeric values expressed above are example implementations of the set of parameters and other numeric values are also contemplated. Further, the numeric values may be tuned (e.g., adjusted) as needed to more accurately detect the opening 210 in the structure 208 .
- a false detection of the opening 210 may result, for example, due to sensor noise and/or occlusions.
- a false detection may include both a ground voxel 264 and a ceiling voxel 266 in the voxel strip 258 .
- the voxel strip 258 may be constantly determined to include the opening in each successive frame 200 forming the 3D point cloud map 214 .
- the probability that the voxel strip 258 was detected as part of the opening 210 in all the previous frames 200 may be checked. If the probability is greater than p, the voxel strip 258 may be considered to represent (e.g., contain) the opening 210 .
- a probability map may be maintained. The size of the probability map may be equal to number of grids 260 defining the X-Y plane (e.g., the reference plane 226 ).
- each voxel strip 258 includes a projected position on the X-Y plane corresponding to a grid 260 .
- the X-Y plane may include a 300 by 300 grid.
- the probability map may be updated according to each current detecting result during the disclosed method 100 . If a target voxel strip 258 is detected, the associated X-Y plane projection position (e.g., grid 260 ) may be calculated and an integer value (e.g., a 1 ) may be added to the corresponding element of the probability map. In this way, each value of the probability map may represent how many times the X-Y projection position (e.g., grid 260 ) has been detected as part of the opening 210 up to current frame 200 .
- the probability map works because all the frames 200 forming the 3D point cloud map 214 have already been aligned in the same coordinate system by ICP algorithm. This process may avoid most false detections, since a majority of the false detections are due to random noise and are detected as the target with a very low probability.
- whether the voxel strips 258 identified as representing (e.g., containing) the opening 210 of interest are grouped together in a continuous area may be determined. For example, the X-Y plane projection of all the voxel strips 258 that were detected as containing the opening 210 may be checked to ensure that they are in a continuous neighboring area.
- isolated voxel strips 258 may be removed.
- a morphological (e.g., connected component analysis) process may be used to smooth the neighboring voxel strips 258 and remove the isolated voxel strips 258 .
- all the voxel strips 258 that have been detected as containing at least part of the opening 210 may be projected to X-Y plane.
- a binary map may be created from the voxel strips 258 projected to the X-Y plane. For example, a “1” may indicate that the projection area is from the voxel strip 258 that contains at least a portion of the opening 210 and a “0” may indicate that the projection area is from the voxel strip 258 that does not contain at least a portion of the opening 210 .
- the morphological operations may “dilate” and “erode” to make the detected voxel strips 258 continuous in the neighboring area.
- Connected component analysis may be used to remove small projected blobs and/or blobs whose footprint on the horizontal plane do not meet a size and/or shape corresponding to the opening 210 .
- the corresponding voxel strip 258 may the final detection result containing the opening 210 ; otherwise, it is removed as an isolated voxel strip 258 .
- the disclosed method 100 may be implemented or embodied as a computer (e.g., data processing) system or a computer program product. Accordingly, the disclosed method may take the form as an entirely hardware embodiment, an entirely software embodiment, or a hardware/software embodiment.
- FIG. 11 illustrates one embodiment of the disclosed computer system, generally designated 300 , for providing an operating environment for the disclosed method 100 .
- the method 100 may be implemented in one computer system 300 or in several interconnected computer systems 300 .
- the computer system 300 may include any collection of computing devices that individually or jointly execute a set (or multiple sets) of instructions to implement any one or more of the operations discussed herein. Any type of computer system 300 or other apparatus adapted for carrying out the methods described herein may be utilized.
- a typical combination of hardware and software may be a general-purpose computer system 300 .
- the general-purpose computer system 300 may include a computer program that can control the computer system 300 such that it carries out the methods described herein.
- the computer system 300 may take the form of a computer program product on a computer-usable storage medium (e.g., a hard disk, a CD-ROM, solid state memory, or the like).
- the computer-usable storage medium may include computer-usable program code embodied thereon.
- the term computer program product may refer to a device including features enabling the implementation of the methods described herein.
- computer program, software application, computer software routine, and/or other variants of these terms may mean any expression, in any language, code, or notation, of a set of instructions intended to cause a computing system having information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code, or notation; or b) reproduction in a different material form.
- the computer system 300 may include various types of computing systems and/or devices, including a server computer, a client user computer, a personal computer (“PC”), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any other device capable of executing a set of instructions (sequential or otherwise) that specifies actions to be taken by that device.
- the computer system 300 may also include any electronic device that provides voice, video, and/or data communication.
- the computer system 300 may include a processor 302 (e.g., a central processing unit (“CPU”), a graphics processing unit (“GPU”), or both), a main memory 304 and a static memory 306 , which communicate with each other via a bus 308 .
- the computer system 300 may include a display 310 (e.g., a video display) and an input device 312 (e.g., a keyboard, a mouse, etc.), a disk drive 314 , and/or a network interface 316 (e.g., connected to a network 322 ).
- the disk drive 314 may include a computer-readable storage medium (e.g., a non-transitory computer-readable medium) 318 on which is stored one or more sets of instructions 320 (e.g., software code) configured to implement one or more of the operation, procedures, or functions described herein.
- the instructions 320 may reside, completely or partially, within the main memory 304 , the static memory 306 , and/or the processor 302 during execution thereof by the computer system 300 .
- the main memory 304 and the processor 302 may constitute machine-readable media.
- While the computer-readable storage medium 318 is shown in an exemplary embodiment to be a single storage medium, the computer-readable storage medium may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
- the computer-readable storage medium may also include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to implement any one or more of the methodologies of the present disclosure.
- the computer-readable medium may include, but not be limited to, solid-state memories such as a memory card or other package that houses one or more read-only (e.g., non-volatile) memories, random access memories, or other re-writable (e.g., volatile) memories; magneto-optical or optical medium such as a disk or tape; carrier wave signals such as a signal embodying computer instructions in a transmission medium; and/or a digital file attachment or other self-contained information archive or set of archives considered to be a distribution medium equivalent to a tangible storage medium.
- solid-state memories such as a memory card or other package that houses one or more read-only (e.g., non-volatile) memories, random access memories, or other re-writable (e.g., volatile) memories
- magneto-optical or optical medium such as a disk or tape
- carrier wave signals such as a signal embodying computer instructions in a transmission medium
- dedicated hardware implementations including, but not limited to, application-specific integrated circuits, programmable logic arrays, and other hardware devices may also be constructed to implement the methods described herein.
- FIG. 11 is one example and any other suitable computer systems 300 may be used without limitation.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
Description
- The present disclosure is generally related to three-dimensional point cloud imaging and, more particularly, to a system and method for detecting a structural opening in a three-dimensional point cloud image.
- Three-dimensional imaging data, for example, in the form of a three-dimensional point cloud acquired from an imaging sensor, is useful for creating three-dimensional models of a scene. A three-dimensional point cloud includes point data arranged in three dimensions in which the points are defined at various locations by an X, Y, and Z coordinate axis system.
- However, three-dimensional point clouds with their sparse and irregular sampling of the scene may look different compared to other types of images. Due to this, images created from three-dimensional point clouds may represent the surface of a structure and determine a shape of the structure but may have limited use, for example, in detecting specific features of the structure.
- Accordingly, those skilled in the art continue with research and development efforts in the field of processing three-dimensional point cloud data for detecting structural features, such as structural openings.
- In one embodiment, the disclosed method for detecting an opening in a structure represented by a three-dimensional point cloud may include the steps of: (1) creating a three-dimensional point cloud map of a scene, the three-dimensional point cloud map including a plurality of points representing a ground plane and the structure upon the ground plane, (2) identifying an absence of points within the plurality of points representing the structure, and (3) determining whether the absence of points represents an opening in the structure.
- In another embodiment, the disclosed method for detecting an opening in a structure represented by a three-dimensional point cloud may include the steps of: (1) acquiring a plurality of three-dimensional frames representing at least a portion of a scene, each three-dimensional frame including a plurality of points representing at least a portion of a ground plane and at least a portion of the structure upon the ground plane, (2) preprocessing the plurality of three-dimensional frames, (3) creating a three-dimensional point cloud map representing the scene from the plurality of three-dimensional frames, (4) delimiting the three-dimensional point cloud map within a volume, (5) rotating the three-dimensional point cloud map to align the plurality of points representing the ground plane with a horizontal reference plane of the volume, (6) dividing the volume into a plurality of sub-volumes to define a volumetric grid, (7) converting the three-dimensional point cloud map to a plurality of voxels, (8) creating a plurality of voxel strips, each voxel strip being defined by a grouping of vertically aligned voxels, and (9) detecting the opening in the structure from the plurality of voxel strips.
- In yet another embodiment, the disclosed system for detecting an opening in a structure represented by a three-dimensional point cloud may include an image sensor capable of acquiring a plurality of three-dimensional frames representing at least a portion of a scene, each three-dimensional frame including a plurality of points representing at least a portion of a ground plane and at least a portion of the structure upon the ground plane, and a computer system including a processor programmed with a set of instructions that, when executed by the processor, causes the processor to: (1) preprocess the plurality of three-dimensional frames, (2) create a three-dimensional point cloud map representing the scene from the plurality of three-dimensional frames, (3) delimit the three-dimensional point cloud map within a volume, (4) rotate the three-dimensional point cloud map to align the plurality of points representing the ground plane with a horizontal reference plane of the volume, (5) convert the three-dimensional point cloud map to a plurality of voxels, (6) create a plurality of voxel strips from the plurality of voxels, each voxel strip being defined by a grouping of vertically aligned voxels, and (7) detect the opening in the structure from the plurality of voxel strips.
- Other embodiments of the disclosed system and method will become apparent from the following detailed description, the accompanying drawings and the appended claims.
-
FIG. 1 is a flow diagram of one embodiment of the disclosed method for detecting a structural opening in a three-dimensional point cloud; -
FIG. 2 is a schematic illustration of a scene to be represented by a three-dimensional point cloud map; -
FIG. 3 is a schematic illustration of one embodiment of the 3D point cloud map of the scene represented inFIG. 2 ; -
FIG. 4 is a flow diagram of one embodiment of the preprocessing operation represented inFIG. 1 ; -
FIG. 5 is a schematic illustration of the rotating operation represented inFIG. 1 ; -
FIG. 6 is a schematic diagram of one embodiment of the delimiting volume for the 3D point cloud map represented inFIG. 3 ; -
FIG. 7 is a schematic illustration of one embodiment of the volumetric grid formed from the volume represented inFIG. 6 ; -
FIG. 8 is a schematic illustration of one embodiment of the voxel grid formed from the 3D point cloud map represented inFIG. 6 ; -
FIG. 9 is a schematic illustration of one embodiment of the voxel strips formed from the voxel grid represented inFIG. 8 ; -
FIG. 10 is a flow diagram of one embodiment of the detecting operation represented inFIG. 1 ; and -
FIG. 11 is a schematic block diagram of one embodiment of the disclosed computer system for implementing the method represented inFIG. 1 . - The following detailed description refers to the accompanying drawings, which illustrate specific embodiments of the disclosure. Other embodiments having different structures and operations do not depart from the scope of the present disclosure. Like reference numerals may refer to the same element or component in the different drawings.
- Referring to
FIG. 1 , and with reference toFIGS. 2 and 3 , one embodiment of the disclosed method, generally designated 100, for detecting a structural opening in a three-dimensional (“3D”) point cloud may begin by acquiring at least one 3D frame of ascene 202, as shown at block 102. - Referring to
FIG. 2 , thescene 202 may includeterrain 204. As an example, theterrain 204 may include aground plane 206 and one ormore structures 208. Thestructures 208 may include any terrain feature, naturally occurring or man-made, that extends vertically from theground plane 206. For example, thestructures 208 may include, but are not limited to, mountains, hills, buildings, rock formations, trees, etc. Somestructures 208 may include one ormore openings 224 therein. For example, such anopening 224 may be an entrance to a cave or a tunnel, for example, within a side of a mountain. - At least one
3D image sensor 212, also referred to herein asimaging sensor 212, may acquire the 3D point cloud frame 200 (FIG. 3 ), also referred to herein as aframe 200, of thescene 202. Thus, theframe 200 may be a 3D image (e.g., a virtual snapshot) of thescene 202. - The
imaging sensor 212 may be stationary or may be in motion. As an example, astationary imaging sensor 212 may acquire asingle frame 200 of thefull scene 202. As another example, a movingimage sensor 212 may scan thescene 202 and acquire a plurality (e.g., sequence) offrames 200 of portions of thescene 202 that when combined form thefull scene 202. - Although only one
imaging sensor 212 is shown inFIG. 2 , a plurality ofimaging sensors 212 are also contemplated. For example, a plurality of image sensors 212 (e.g., stationary or moving) may acquire a plurality (e.g., a sequence) offrames 200 of acommon scene 202. The plurality offrames 200 may be combined to form thefull scene 202. The plurality offrames 200 may be acquired at the same time or at different times. - Those skilled in the art will also recognize that the
imaging sensor 212 or the plurality ofimaging sensors 212 may have respectively different locations and/or orientations when acquiring theframe 200. The location and/or orientation of theimaging sensor 212 may be referred to as the pose of theimaging sensor 212. For example, theimaging sensor 212 may have a pose defined by pose parameters at the moment that the frame 200 (e.g., the 3D image data) is acquired. - Referring to
FIG. 3 , theframe 200 may include 3D image data of thescene 202 including the terrain 204 (FIG. 2 ). The 3D image data may take the form of a plurality ofpoints 220 in three-dimensional space (e.g., a 3D point cloud) representing at least a portion of thescene 202. For example, the plurality ofpoints 220 may include a plurality ofpoints 216 representing theground plane 206 and a plurality ofpoints 218 representing one ormore structures 208. One ormore frames 200 may be processed to reconstruct a 3D image of the scene 202 (e.g., a 3D point cloud map). In this regard, eachpoint 222 in the 3D point cloud may have an individual x, y and z value, representing the actual surface within thescene 202 in 3D. Only a limited number ofindividual points 222 are illustrated inFIG. 3 for simplicity and clarity, however, those skilled in the art will recognize that the 3D point cloud may include millions of individual points 222 (e.g., forming the plurality ofpoints 216 representing theground plane 206 and the plurality ofpoints 218 representing one or more structures 208). - A variety of different types of imaging sensors 212 (
FIG. 2 ) may be used to generate the 3D point cloud (e.g., 3D imaging data) of theframe 200. The disclosed method 100 may be utilized for detection of structural openings in the 3D point cloud obtained from any of these various types of imaging systems. An example of a 3D imaging system (e.g., 3D imaging sensor 212) that generates one or more frames of 3D point cloud data may be a LIDAR (e.g., a flash LIDAR) imaging system. Each image frame of LIDAR data may include a collection of points in three dimensions (e.g., a 3D point cloud) that correspond to multiple range echoes. Other examples of 3D imaging systems that generate 3D point cloud data may include 3D from stereo camera systems, structure from motion systems, and the like. - Referring again to
FIG. 1 , and with reference toFIGS. 2 and 3 , a 3Dpoint cloud map 214 may be created (e.g., built) from one or more frames 200 (FIG. 3 ) acquired by the imaging sensor 212 (FIG. 2 ), as shown at block 104. As an example, the 3Dpoint cloud map 214 may be created from a single frame 200 (e.g., a single 3D point cloud) including the plurality of points 220 (e.g., 3D image data) representing thefull scene 202. As another example, the 3Dpoint cloud map 214 may be created from a combined plurality of frames 200 (e.g., a combined plurality of 3D point clouds), each including the plurality ofpoints 220 representing the full scene 202 (e.g., at the same or different poses of the imaging sensor 212) or portions of the scene 202 (e.g., at different poses of the imaging sensor 212). As yet another example, the 3Dpoint cloud map 214 may be created from asingle frame 200 of thescene 202 and iteratively updated withadditional frames 200 of the scene (e.g., at the same or different poses of the imaging sensor 212) to increase the robustness of the 3Dpoint cloud map 214 and detection accuracy. - In an example implementation of the frame acquisition operation (block 102), the imaging sensor 212 (
FIG. 2 ) may be moving (e.g., theimaging system 212 acquires aframe 200, moves, and then acquires another frame 200). Because theimaging sensor 212 lacks a notion of global coordinate positioning, the plurality offrames 200 may not be aligned and/or eachframe 200 not include 3D image data of the entire scene 202 (FIG. 2 ). Thus, the method 100 may include registering the plurality offrames 200, as shown at block 106. - Registering the plurality of frames 200 (block 106) may include aligning the plurality of
points 220 of eachframe 200 of the plurality offrames 200. For example, the plurality of points 220 (or a portion of the plurality of points 220) of afirst frame 200 may be aligned with the associated plurality of points 220 (or a portion of the associated plurality of points 220) of asecond frame 200 and so on, in an iterative manner. Aligning thepoints 222 of eachframe 200 may be performed utilizing an Iterative Closest Point (“ICP”) algorithm to minimize the difference between two frames 200 (e.g., 3D point clouds). The ICP algorithm may be used to construct the 3Dpoint cloud map 214 of thescene 202 fromdifferent frames 200. As an example, a Fast ICP algorithm may be used to optimize implementation of a nearest-neighbor point search. The ICP algorithm may include the following steps: (1) associatingpoints 222 ofdifferent frames 200 by a nearest-neighbor criteria (e.g., eachpoint 222 in a first 3D point cloud is associated with theclosest point 222 in a second 3D point cloud), (2) estimating transformation parameters (e.g., rotation and/or translation) using a mean square cost function (e.g., the transformation may align eachpoint 222 of the first 3D point cloud to thebest matching point 222 of the second 3D point cloud), and (3) transforming the points using the estimated parameters. The ICP algorithm may be run iteratively to re-associate the alignedpoints 222 withpoints 222 of a third 3D point cloud and so on. - Those skilled in the art will recognize that the 3D point cloud data in the plurality of
frames 200 may be noisy (e.g., the 3D point cloud may include holes caused by occlusions or point position inaccuracies) and/or a target (e.g., a particularly designatedstructure 208 of the scene 202) may not be represented in eachframe 200. Thus, detecting (e.g., searching for) certain structural features may be difficult. - Further, the ICP algorithm may become confused, for example, by the plurality of points 216 (
FIG. 3 ) representing the ground plane 206 (FIG. 2 ) dominating the 3D point cloud. For example, a traditional ICP registration operation may align thepoints 222 representing theground plane 206 but may misspoints 222 representing other parts in the 3D point clouds (e.g., points 222 representing the structure 208). - In order to resolve these issues, the method 100 may include preprocessing the plurality of
frames 200 prior to registering the frames 200 (block 106) using the ICP algorithm, as shown atblock 108. - Referring to
FIG. 4 , the preprocessing operation (block 108) may include detecting the plurality ofpoints 216 representing theground plane 206 of the plurality ofpoints 220 representing thescene 202 in eachframe 200 of the plurality offrames 200, as shown atblock 110. For example, detecting the plurality ofpoint 216 representing theground plane 206 may utilize a Random Sample Consensus (“RANSAC”) method. - As shown at
block 112, the plurality ofpoints 216 representing theground plane 206 may be removed from eachframe 200 of the plurality offrames 200. Additionally, other points 222 (e.g., outlying points) may also be removed from eachframe 200 of the plurality offrames 200, for example, points 222 that are located farther away than a predetermined or specified distance from the imaging sensor 212 (FIG. 2 ), points 222 representing background, points 222 corresponding to surface reflections, and the like. Thus, the remaining plurality ofpoints 220 of eachframe 200 may only include the plurality ofpoints 218 representing thestructure 208. - As shown at
block 114, the plurality offrames 200 may be registered. Registering the plurality offrames 200 may include aligning the plurality ofpoints 218 representing thestructure 208 of eachframe 200 of the plurality offrames 200. For example, the plurality of points 218 (or a portion of the plurality of points 218) representing thestructure 208 of afirst frame 200 may be aligned with the associated plurality of points 218 (or a portion of the associated plurality of points 218) of asecond frame 200 and so on, in an iterative manner. Aligning thepoints 218 representing thestructure 208 of eachframe 200 may be performed utilizing the Iterative Closest point (“ICP”) algorithm, such as that described above and shown atblock 108. Each additional (e.g., new)frame 200 may be processed by the ICP algorithm, which updates the 3Dpoint cloud map 214. The ICP algorithm iteratively revises the transformation (e.g., translation and/or rotation) needed to minimize the distance between the associatedpoints 222 of two frames 200 (e.g., the two 3D point clouds). - Those skilled in the art will recognize that while the
frame 200 registration operation shown at block 106 and theframe 200 registration operation shown atblock 114 are illustrated as separate operations, they may be separate operations or they may be the same operation. When separate operations, registering the frames 200 (e.g., having the plurality ofpoints 220 representing the scene 202), as shown at block 106, may not be required when theframes 200 are preprocessed, as shown atblock 108, because registering the frames 200 (e.g., having the plurality ofpoints 218 representing the structure 208), as shown atblock 114, may adequately align theframes 200. - As shown at
block 116, the plurality ofpoints 216 representing theground plane 206 may be added back to eachframe 200 of the plurality offrames 200 following registration of the plurality of frames 200 (block 114) to create the 3Dpoint cloud map 214 representing thescene 202. - Thus, the created 3D
point cloud map 214 is a robust and complete representation of thescene 202 including theterrain 204, including anystructures 208 extending vertically from theground plane 206. The 3Dpoint cloud map 214 created in such a manner may represent (e.g., display) theopening 224 in thestructure 208 with a much better clarity. Any holes introduced by imaging sensor noise may also be reduced. Therefore, we can proceed with the tunnel/cave detection in this map after updating it with a new frame. In the following sections, we will explain how we achieve cave detection in our system. - It should be noted that the preprocessing operation shown and described at block 108 (
FIGS. 1 and 4 ) may be applicable to any ICP based algorithms, not only the implementation described herein for the method 100 for detecting structural openings in 3D point clouds. - Referring to
FIG. 1 , and with reference toFIGS. 3 and 5 , the 3Dpoint cloud map 214 may be rotated to align a reference ground plane 228 (FIG. 5 ) with a reference plane 226 (FIG. 5 ), as shown at block 118. Thereference ground plane 228 may be defined in the 3D point cloud map 214 (FIG. 3 ). The plurality ofpoints 216 representing the ground plane 206 (FIG. 3 ) of the 3Dpoint cloud map 214 may define thereference ground plane 228. For example, the plurality ofpoints 216 representing theground plane 206 detected in the preprocessing operation (block 108), as shown at block 110 (FIG. 4 ), may be used at thereference ground plane 228. - Referring to
FIG. 5 , in the example implementation, thereference plane 226 may be defined by an X-Y plane (e.g., a plane defined by an X-axis and a Y-axis). In such an implementation, the reference ground plane 228 (e.g., the plurality ofpoints 216 representing theground plane 206 in the 3D point cloud map 214) may be rotated, in the direction illustrated bydirection line 230, to a horizontal orientation. However, other reference planes are also contemplated. For example, thereference ground plane 228 may be rotated to align with a Y-Z plane (e.g., a plane defined by the Y-axis and a Z-axis) such that thereference ground plane 228 may be rotated to a vertical orientation. - In an example implementation, an
angle α 232 between thereference ground plane 228 and thereference plane 226 may be found. The reference ground plane 228 (e.g., the 3D point cloud map 214) may be rotated according toangle α 232 about an intersection line 234 (e.g., a line defined by the intersection of thereference ground plane 228 and the reference plane 226). For example, a first normal vector n1 236 (e.g., a vector normal to the reference ground plane 228) and a second normal vector n2 238 (e.g., a vector normal to the reference plane 226) may be found (e.g., defined). Anangle θ 240 between the firstnormal vector n 1 236 and the secondnormal vector n 2 238 may be found (e.g., calculated). The angle π-θ 242 may represent theangle α 232. The 3Dpoint cloud map 214 may be rotated about theintersection line 234 by π-θ degrees (e.g., α degrees) to align thereference ground plane 228 with thereference plane 226 and position the 3Dpoint cloud map 214 in a horizontal orientation. - Unless otherwise indicated, the terms “first,” “second,” “third,” “fourth,” etc. are used herein merely as labels, and are not intended to impose ordinal, positional, or hierarchical requirements on the items to which these terms refer.
- Referring to
FIG. 6 , the 3Dpoint cloud map 214 may be delimited within a three-dimensional delimiting volume 242, as shown at block 120. Thevolume 242 may define the limits or boundaries of the 3Dpoint cloud map 214.FIG. 6 illustrates a cubic volume (e.g., a cube) 242 defining the three dimensional boundaries of the 3Dpoint cloud map 214. Thereference ground plane 228 of the 3Dpoint cloud map 214 is aligned with the X-Y plane (e.g., the reference plane 226) of thecubic volume 242. While the exemplary 3D point cloud map 214 (e.g., 3D image data) is shown delimited within thecubic volume 242, the present disclosure is not limited to a cubic geometry. Those skilled in the art will recognize that a cubic geometry may be a convenient shape to use for this purpose. Thus, the 3Dpoint cloud map 214 may be defined within any other suitable geometric volume. - Referring to
FIG. 1 , and with reference toFIG. 7 , the volume 242 (e.g., total volume defining the boundaries of the 3D point cloud map 214) may be divided into a plurality ofsub-volumes 246 defining avolumetric grid 244, as shown at block 122. For example, each sub-volume 246 may have a cube shape, also referred to herein as a cuboid. Other geometric shapes of the plurality ofsub-volumes 246 are also contemplated. As a specific, non-limiting example, thevolume 242 may be divided into 9,000,000 equal sub-volumes 426 (e.g., cuboids) defining thevolumetric grid 244 including 300 X-axis cuboids, 300 Y-axis cuboids, and 300 Z-axis cuboids. - Referring to
FIG. 1 , and with reference toFIGS. 8 and 9 , the 3D point cloud map 214 (e.g., 3D image data) may be converted to a plurality of voxels 248 (also known as volumetric pixels or Volumetric Picture Elements), as shown at block 124. Neighboring points 222 (FIG. 3 ) of the plurality of points 220 (e.g., representing theground plane 206 and the structures 208) (FIG. 2 ) of the 3Dpoint cloud map 214 may be clustered intoindividual voxels 250. Eachvoxel 250 of the plurality ofvoxels 248 may represent one sub-volume 246 (FIG. 7 ) of the regular volumetric grid 244 (FIG. 7 ) in three-dimensional space and thepoints 222 defining the 3Dpoint cloud map 214 located within thatsub-volume 246. Thus, the plurality ofvoxels 248 may define avoxel grid 252 within the delimitingvolume 242 representing a voxelized representation of the 3Dpoint cloud map 214. - Creating
voxels 250 from neighboringpoints 222 of the 3Dpoint cloud map 214 may reduce the computational complexity required to process the 3D image data, for example, to detect the opening 210 (FIG. 2 ) in thestructure 208. Only a limited number ofindividual voxels 250 are illustrated inFIG. 8 for simplicity and clarity, however, those skilled in the art will recognize that thevoxel grid 252 may include millions of individual voxels 250 (e.g., forming a plurality ofvoxels 254 representing theground plane 206 and a plurality ofvoxels 256 representing one or more structures 208). - Referring to
FIG. 1 , and with reference toFIG. 9 , one or more voxel strips 258 may be created (e.g., formed or generated) from linearly alignedvoxels 250, as shown at block 126. As an example, eachvoxel strip 258 may be defined by a grouping of alignedvoxels 250. In an example implementation, and as shown ifFIG. 9 , since the 3D point cloud map 214 (FIG. 8 ) has been rotated to align thereference ground plane 228 with the X-Y plane (e.g., reference plane 226), as shown at block 118, the voxel strips 258 may be defined byvoxels 250 aligned along (e.g., parallel to) the Z-axis (e.g., vertically aligned). The plurality ofvoxels 254 representing theground plane 206 may be aligned with the X-Y plane (e.g., horizontally oriented) and the plurality ofvoxels 258 representing thestructures 208 may extend from the plurality ofvoxels 254 representing theground plane 206 along the Z-axis (e.g., vertically oriented). Thus, all of thevoxels 250 that project from the same (e.g., square)grid 260 on the X-Y plane (e.g., the reference plane 226) belong to thesame voxel strip 258. - Referring still to
FIG. 1 , and with reference toFIG. 9 , the opening 210 in the structure 208 (FIG. 2 ) may be detected from the voxel strips 258, as shown atblock 128. Eachvoxel strip 258 may be searched for anabsence 262 of one ormore voxels 250 along or within thevoxel strip 258. Theabsence 262 of avoxel 250 may represent an absence 272 (FIG. 3 ) ofpoints 222 within the plurality ofpoints 218 representing thestructure 208 of the 3Dpoint cloud map 214 of thescene 202. Accordingly, theabsence 262 ofvoxels 250 within thevoxel strip 258 may represent the presence of the opening 210 in thestructure 208. - It may be inferred that if the opening 210 (or a part of the opening 210) is contained within the voxel strip 258 (e.g., is represented within the
voxel strip 258 by theabsence 262 of voxels 250), then thevoxel strip 258 may include both aground voxel 264 representing the ground of the opening 210 and aceiling voxel 266 representing the ceiling of the opening 210. - Referring to
FIG. 10 , and with reference toFIG. 9 , detecting the opening 210 (FIG. 2 ) in thestructure 208 from thevoxel strip 258 may include searching eachvoxel strip 258 and determining whether thevoxel strip 258 includes both theground voxel 264 and the ceiling voxel 266 (FIG. 9 ), as shown atblock 130. Theground voxel 264 may include ground points 268 (FIG. 3 ) (e.g., a portion of the plurality of points 216) representing the ground plane 206 (FIG. 2 ), for example, directly below thestructure 208. Theceiling voxel 266 may include ceiling points 270 (FIG. 3 ) (e.g., a portion of the plurality of points 218) representing the structure 208 (FIG. 2 ), and in particular, the ceiling formed by the opening 210 in thestructure 208 over theground plane 206. Thus, theabsence 262 ofvoxels 250 may be defined by the empty space defined between theground voxel 264 and the ceiling voxel 266 (e.g., theabsence 272 ofpoints 222 defined between the ground points 268 and the ceiling points 270) and may represent the opening 210. - If the
voxel strip 258 does not include both theground voxel 264 and theceiling voxel 266, then thevoxel strip 258 either does not include theabsence 262 ofvoxels 250 or theabsence 262 ofvoxels 250 is not the opening 210 of interest and is not identified as a candidate for containing the opening 210 in thestructure 208, as shown atblock 132. If thevoxel strip 258 does include both theground voxel 264 and theceiling voxel 266, then thevoxel strip 258 includes theabsence 262 ofvoxels 250 and is identified as a candidate for containing the opening 210 in thestructure 208, as shown atblock 134. - As shown at
block 136, whether theabsence 262 ofvoxels 250 in thevoxel strip 258 is the opening 210 of interest may be determined. In order for theabsence 262 of voxels 250 (e.g., theabsence 272 of points 222) to be the opening 210 of interest, there may need to be relatively large distance between the two neighboring voxels 250 (e.g., theground voxel 264 and the ceiling voxel 266) within thevoxel strip 258. Additionally, there may be anabsence 262 ofvoxels 250 in more than onevoxel strip 258. - Accordingly, the distance (e.g., vertical distance) between the two neighboring voxels 250 (e.g., the
ground voxel 264 and the ceiling voxel 266) of eachvoxel strip 258 may be calculated. The distance between the two neighboringvoxels 250 may be the dimension (e.g., the vertical dimension) of theabsence 262 and, thus, the vertical dimension of the opening 210. The calculated distances (e.g., dimensions) may be sorted from largest to smallest. - As shown at
block 138, eachcandidate voxel strip 258 may be subjected to a set of parameters in order to determine if theabsence 262 ofvoxels 250 represents the opening 210 of interest (e.g., a cave or tunnel opening). - As a specific, non-limiting example, a first parameter of the set of parameters may include determining whether the largest distance between the two neighboring voxels 250 (e.g., the dimension of the largest absence 262) of one (e.g., a first)
voxel strip 258 is greater than (e.g., six times greater than) that of the second largest distance between the two neighboring voxels 250 (e.g., the dimension of the second largest absence 262) of another (e.g., a second)voxel strip 258. - As a specific, non-limiting example, a second parameter of the set of parameters may include determining whether the largest distance between the two neighboring voxels 250 (e.g., the dimension of the largest absence 262) is greater than (e.g., twenty times greater than) that of the dimension (e.g., the vertical dimension along the Z-axis) of the
voxel 250. The vertical dimension of thevoxel 250 may be the vertical dimension of thevolume 242 along the Z-axis divided by the total number ofsub-volumes 246 making up the volumetric grid 244 (FIG. 7 ). As a specific example, and in accordance with the non-limiting example provided above, the vertical dimension of thevoxel 250 may be the vertical dimension of thevolume 242 along the Z-axis divided by 300. - As a specific, non-limiting example, a third parameter of the set of parameters may include determining whether one of the two neighboring
voxels 250 belongs to the ground plane 206 (FIG. 2 ). For example, it may be determined whether theground voxel 264 of thevoxel strip 258 belongs to the plurality ofvoxel 254 representing theground plane 206. - If the set of parameters is met, then the candidate voxel strip 258 (e.g., the absence 262) is identified as the opening 210 of interest, as shown at block 140. If the set of parameters is not met, then the candidate voxel strip 258 (e.g., the absence 262) is not identified as the opening 210 of interest, as shown at
block 142. - Those skilled in the art will recognize that the numeric values expressed above are example implementations of the set of parameters and other numeric values are also contemplated. Further, the numeric values may be tuned (e.g., adjusted) as needed to more accurately detect the opening 210 in the
structure 208. - In certain situations, a false detection of the opening 210 may result, for example, due to sensor noise and/or occlusions. Such a false detection may include both a
ground voxel 264 and aceiling voxel 266 in thevoxel strip 258. To address potentially false detections, thevoxel strip 258 may be constantly determined to include the opening in eachsuccessive frame 200 forming the 3Dpoint cloud map 214. - As a specific, non-limiting example, for each
frame 200, if thevoxel strip 258 meets all the requirements of the set of parameters (block 138), the probability that thevoxel strip 258 was detected as part of the opening 210 in all theprevious frames 200 may be checked. If the probability is greater than p, thevoxel strip 258 may be considered to represent (e.g., contain) the opening 210. In order to measure the probability of each detectedvoxel strip 258, a probability map may be maintained. The size of the probability map may be equal to number ofgrids 260 defining the X-Y plane (e.g., the reference plane 226). For example, eachvoxel strip 258 includes a projected position on the X-Y plane corresponding to agrid 260. In accordance with the non-limiting example provided above, the X-Y plane may include a 300 by 300 grid. - The probability map may be updated according to each current detecting result during the disclosed method 100. If a
target voxel strip 258 is detected, the associated X-Y plane projection position (e.g., grid 260) may be calculated and an integer value (e.g., a 1) may be added to the corresponding element of the probability map. In this way, each value of the probability map may represent how many times the X-Y projection position (e.g., grid 260) has been detected as part of the opening 210 up tocurrent frame 200. The probability map works because all theframes 200 forming the 3Dpoint cloud map 214 have already been aligned in the same coordinate system by ICP algorithm. This process may avoid most false detections, since a majority of the false detections are due to random noise and are detected as the target with a very low probability. - As shown at
block 144, whether the voxel strips 258 identified as representing (e.g., containing) the opening 210 of interest are grouped together in a continuous area may be determined. For example, the X-Y plane projection of all the voxel strips 258 that were detected as containing the opening 210 may be checked to ensure that they are in a continuous neighboring area. - As shown at
block 146, isolated voxel strips 258 (e.g., voxel strips 258 that are not grouped together in a continuous area and do not contain the opening 210) may be removed. In order to remove the isolated voxel strips 258 and make the detectedvoxel strips 258 continuous in the neighboring area, a morphological (e.g., connected component analysis) process may be used to smooth the neighboring voxel strips 258 and remove the isolated voxel strips 258. - As an example, all the voxel strips 258 that have been detected as containing at least part of the opening 210 (block 140) may be projected to X-Y plane. A binary map may be created from the voxel strips 258 projected to the X-Y plane. For example, a “1” may indicate that the projection area is from the
voxel strip 258 that contains at least a portion of the opening 210 and a “0” may indicate that the projection area is from thevoxel strip 258 that does not contain at least a portion of the opening 210. The morphological operations may “dilate” and “erode” to make the detectedvoxel strips 258 continuous in the neighboring area. Connected component analysis may be used to remove small projected blobs and/or blobs whose footprint on the horizontal plane do not meet a size and/or shape corresponding to the opening 210. For each “1” in the processed projection binary map, thecorresponding voxel strip 258 may the final detection result containing the opening 210; otherwise, it is removed as anisolated voxel strip 258. - The disclosed method 100 may be implemented or embodied as a computer (e.g., data processing) system or a computer program product. Accordingly, the disclosed method may take the form as an entirely hardware embodiment, an entirely software embodiment, or a hardware/software embodiment.
-
FIG. 11 illustrates one embodiment of the disclosed computer system, generally designated 300, for providing an operating environment for the disclosed method 100. For example, the method 100 may be implemented in onecomputer system 300 or in severalinterconnected computer systems 300. Thecomputer system 300 may include any collection of computing devices that individually or jointly execute a set (or multiple sets) of instructions to implement any one or more of the operations discussed herein. Any type ofcomputer system 300 or other apparatus adapted for carrying out the methods described herein may be utilized. A typical combination of hardware and software may be a general-purpose computer system 300. The general-purpose computer system 300 may include a computer program that can control thecomputer system 300 such that it carries out the methods described herein. - As an example, the
computer system 300 may take the form of a computer program product on a computer-usable storage medium (e.g., a hard disk, a CD-ROM, solid state memory, or the like). The computer-usable storage medium may include computer-usable program code embodied thereon. As used herein, the term computer program product may refer to a device including features enabling the implementation of the methods described herein. The terms computer program, software application, computer software routine, and/or other variants of these terms may mean any expression, in any language, code, or notation, of a set of instructions intended to cause a computing system having information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code, or notation; or b) reproduction in a different material form. - The
computer system 300 may include various types of computing systems and/or devices, including a server computer, a client user computer, a personal computer (“PC”), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any other device capable of executing a set of instructions (sequential or otherwise) that specifies actions to be taken by that device. Thecomputer system 300 may also include any electronic device that provides voice, video, and/or data communication. - The
computer system 300 may include a processor 302 (e.g., a central processing unit (“CPU”), a graphics processing unit (“GPU”), or both), amain memory 304 and astatic memory 306, which communicate with each other via abus 308. Thecomputer system 300 may include a display 310 (e.g., a video display) and an input device 312 (e.g., a keyboard, a mouse, etc.), adisk drive 314, and/or a network interface 316 (e.g., connected to a network 322). - The
disk drive 314 may include a computer-readable storage medium (e.g., a non-transitory computer-readable medium) 318 on which is stored one or more sets of instructions 320 (e.g., software code) configured to implement one or more of the operation, procedures, or functions described herein. Theinstructions 320 may reside, completely or partially, within themain memory 304, thestatic memory 306, and/or theprocessor 302 during execution thereof by thecomputer system 300. Themain memory 304 and theprocessor 302 may constitute machine-readable media. - While the computer-
readable storage medium 318 is shown in an exemplary embodiment to be a single storage medium, the computer-readable storage medium may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The computer-readable storage medium may also include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to implement any one or more of the methodologies of the present disclosure. - For example, the computer-readable medium may include, but not be limited to, solid-state memories such as a memory card or other package that houses one or more read-only (e.g., non-volatile) memories, random access memories, or other re-writable (e.g., volatile) memories; magneto-optical or optical medium such as a disk or tape; carrier wave signals such as a signal embodying computer instructions in a transmission medium; and/or a digital file attachment or other self-contained information archive or set of archives considered to be a distribution medium equivalent to a tangible storage medium.
- Further, dedicated hardware implementations including, but not limited to, application-specific integrated circuits, programmable logic arrays, and other hardware devices may also be constructed to implement the methods described herein.
- Those skilled in the art will recognize that the
computer system 300 illustrated inFIG. 11 is one example and any othersuitable computer systems 300 may be used without limitation. - Although various embodiments of the disclosed system and method have been shown and described, modifications may occur to those skilled in the art upon reading the specification. The present application includes such modifications and is limited only by the scope of the claims.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/468,508 US9292961B1 (en) | 2014-08-26 | 2014-08-26 | System and method for detecting a structural opening in a three dimensional point cloud |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/468,508 US9292961B1 (en) | 2014-08-26 | 2014-08-26 | System and method for detecting a structural opening in a three dimensional point cloud |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20160063754A1 true US20160063754A1 (en) | 2016-03-03 |
| US9292961B1 US9292961B1 (en) | 2016-03-22 |
Family
ID=55403097
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/468,508 Active 2034-12-02 US9292961B1 (en) | 2014-08-26 | 2014-08-26 | System and method for detecting a structural opening in a three dimensional point cloud |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9292961B1 (en) |
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106776996A (en) * | 2016-12-02 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | Method and apparatus for testing the accuracy of high accuracy map |
| CN107016705A (en) * | 2016-01-05 | 2017-08-04 | 德州仪器公司 | Ground level estimation in computer vision system |
| CN107705344A (en) * | 2017-09-27 | 2018-02-16 | 中国舰船研究设计中心 | Plant canopy model extracting method in laser scanning environment cloud data |
| CN108732584A (en) * | 2017-04-17 | 2018-11-02 | 百度在线网络技术(北京)有限公司 | Method and apparatus for updating map |
| CN109710724A (en) * | 2019-03-27 | 2019-05-03 | 深兰人工智能芯片研究院(江苏)有限公司 | A kind of method and apparatus of building point cloud map |
| CN110097582A (en) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | A kind of spots cloud optimization registration and real-time display system and working method |
| CN110288644A (en) * | 2018-03-14 | 2019-09-27 | 浙江大学山东工业技术研究院 | Measurement method of refractory brick surface inclination angle based on fitting plane normal vector |
| US20190304174A1 (en) * | 2017-02-28 | 2019-10-03 | Komatsu Ltd. | Geographic information processing device, geographic information processing method, and program |
| US20190392602A1 (en) * | 2018-06-21 | 2019-12-26 | Hand Held Products, Inc. | Methods, systems, and apparatuses for computing dimensions of an object using range images |
| CN110879994A (en) * | 2019-12-02 | 2020-03-13 | 中国科学院自动化研究所 | 3D visual detection method, system and device based on shape attention mechanism |
| US20200264498A1 (en) * | 2017-11-14 | 2020-08-20 | Texas Instruments Incorporated | Camera-assisted arbitrary surface characterization and correction |
| US11004202B2 (en) * | 2017-10-09 | 2021-05-11 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and methods for semantic segmentation of 3D point clouds |
| WO2021223465A1 (en) * | 2020-05-06 | 2021-11-11 | 北京嘀嘀无限科技发展有限公司 | High-precision map building method and system |
| CN113970725A (en) * | 2020-07-24 | 2022-01-25 | 北京万集科技股份有限公司 | Calibration method, device and equipment for radar detection area and storage medium |
| US20230196699A1 (en) * | 2021-12-20 | 2023-06-22 | Electronics And Telecommunications Research Institute | Method and apparatus for registrating point cloud data sets |
| US20230306626A1 (en) * | 2022-03-26 | 2023-09-28 | Analog Devices, Inc. | Methods and systems for performing object dimensioning |
| US11830210B2 (en) * | 2017-10-06 | 2023-11-28 | Interdigital Vc Holdings, Inc. | Method and device for generating points of a 3D scene |
| US20240119686A1 (en) * | 2021-02-15 | 2024-04-11 | Linkwiz Incorporated | Information processing method, information processing system, and program |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019046962A1 (en) * | 2017-09-07 | 2019-03-14 | Appropolis Inc. | Method and system for target positioning and map update |
| US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
| US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
| US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
| US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
| US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
| US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
| US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
| US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
| US10867414B2 (en) | 2018-04-10 | 2020-12-15 | Apple Inc. | Point cloud attribute transfer algorithm |
| US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US10740983B2 (en) | 2018-06-01 | 2020-08-11 | Ebay Korea Co. Ltd. | Colored three-dimensional digital model generation |
| US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
| US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
| US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
| US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
| US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
| US10733511B1 (en) * | 2019-01-30 | 2020-08-04 | StradVision, Inc. | Learning method and learning device for updating HD map by reconstructing 3D space by using depth estimation information and class information on each object, which have been acquired through V2X information integration technique, and testing method and testing device using the same |
| US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
| US11711544B2 (en) | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
| US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
| US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
| US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
| US11409998B2 (en) * | 2019-10-02 | 2022-08-09 | Apple Inc. | Trimming search space for nearest neighbor determinations in point cloud compression |
| US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
| US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
| US11475605B2 (en) | 2020-01-09 | 2022-10-18 | Apple Inc. | Geometry encoding of duplicate points |
| US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
| US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
| US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7272264B2 (en) * | 2003-09-11 | 2007-09-18 | International Business Machines Corporation | System and method for hole filling in 3D models |
| US7995055B1 (en) * | 2007-05-25 | 2011-08-09 | Google Inc. | Classifying objects in a scene |
| WO2010004466A1 (en) * | 2008-07-10 | 2010-01-14 | C-True Ltd. | Three dimensional mesh modeling |
| WO2012034236A1 (en) * | 2010-09-16 | 2012-03-22 | Ambercore Software Inc. | System and method for detailed automated feature extraction from data having spatial coordinates |
| US9047688B2 (en) * | 2011-10-21 | 2015-06-02 | Here Global B.V. | Depth cursor and depth measurement in images |
| US9547901B2 (en) * | 2013-11-05 | 2017-01-17 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting point of interest (POI) in three-dimensional (3D) point clouds |
| US20160012646A1 (en) * | 2014-07-10 | 2016-01-14 | Perfetch, Llc | Systems and methods for constructing a three dimensional (3d) color representation of an object |
-
2014
- 2014-08-26 US US14/468,508 patent/US9292961B1/en active Active
Cited By (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107016705A (en) * | 2016-01-05 | 2017-08-04 | 德州仪器公司 | Ground level estimation in computer vision system |
| US11763568B2 (en) | 2016-01-05 | 2023-09-19 | Texas Instruments Incorporated | Ground plane estimation in a computer vision system |
| CN106776996A (en) * | 2016-12-02 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | Method and apparatus for testing the accuracy of high accuracy map |
| US20190304174A1 (en) * | 2017-02-28 | 2019-10-03 | Komatsu Ltd. | Geographic information processing device, geographic information processing method, and program |
| US11100705B2 (en) * | 2017-02-28 | 2021-08-24 | Komatsu Ltd | Geographic information processing device, geographic information processing method, and program |
| CN108732584A (en) * | 2017-04-17 | 2018-11-02 | 百度在线网络技术(北京)有限公司 | Method and apparatus for updating map |
| CN107705344A (en) * | 2017-09-27 | 2018-02-16 | 中国舰船研究设计中心 | Plant canopy model extracting method in laser scanning environment cloud data |
| US11830210B2 (en) * | 2017-10-06 | 2023-11-28 | Interdigital Vc Holdings, Inc. | Method and device for generating points of a 3D scene |
| US11004202B2 (en) * | 2017-10-09 | 2021-05-11 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and methods for semantic segmentation of 3D point clouds |
| US11592732B2 (en) * | 2017-11-14 | 2023-02-28 | Texas Instruments Incorporated | Camera-assisted arbitrary surface characterization and correction |
| US20200264498A1 (en) * | 2017-11-14 | 2020-08-20 | Texas Instruments Incorporated | Camera-assisted arbitrary surface characterization and correction |
| CN110288644A (en) * | 2018-03-14 | 2019-09-27 | 浙江大学山东工业技术研究院 | Measurement method of refractory brick surface inclination angle based on fitting plane normal vector |
| US20190392602A1 (en) * | 2018-06-21 | 2019-12-26 | Hand Held Products, Inc. | Methods, systems, and apparatuses for computing dimensions of an object using range images |
| US11017548B2 (en) * | 2018-06-21 | 2021-05-25 | Hand Held Products, Inc. | Methods, systems, and apparatuses for computing dimensions of an object using range images |
| CN109710724A (en) * | 2019-03-27 | 2019-05-03 | 深兰人工智能芯片研究院(江苏)有限公司 | A kind of method and apparatus of building point cloud map |
| CN110097582A (en) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | A kind of spots cloud optimization registration and real-time display system and working method |
| CN110879994A (en) * | 2019-12-02 | 2020-03-13 | 中国科学院自动化研究所 | 3D visual detection method, system and device based on shape attention mechanism |
| WO2021223465A1 (en) * | 2020-05-06 | 2021-11-11 | 北京嘀嘀无限科技发展有限公司 | High-precision map building method and system |
| CN113970725A (en) * | 2020-07-24 | 2022-01-25 | 北京万集科技股份有限公司 | Calibration method, device and equipment for radar detection area and storage medium |
| US20240119686A1 (en) * | 2021-02-15 | 2024-04-11 | Linkwiz Incorporated | Information processing method, information processing system, and program |
| US20230196699A1 (en) * | 2021-12-20 | 2023-06-22 | Electronics And Telecommunications Research Institute | Method and apparatus for registrating point cloud data sets |
| US20230306626A1 (en) * | 2022-03-26 | 2023-09-28 | Analog Devices, Inc. | Methods and systems for performing object dimensioning |
| US12470810B2 (en) | 2022-03-26 | 2025-11-11 | Analog Devices, Inc. | Methods and systems for performing object dimensioning |
Also Published As
| Publication number | Publication date |
|---|---|
| US9292961B1 (en) | 2016-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9292961B1 (en) | System and method for detecting a structural opening in a three dimensional point cloud | |
| Guo et al. | Deep learning for 3d point clouds: A survey | |
| CN108604301B (en) | Keypoint-based point pair features for scalable automatic global registration for large RGB-D scans | |
| CN107810522B (en) | Real-time, model-based object detection and pose estimation | |
| US10268917B2 (en) | Pre-segment point cloud data to run real-time shape extraction faster | |
| US9754165B2 (en) | Automated graph local constellation (GLC) method of correspondence search for registration of 2-D and 3-D data | |
| US9378431B2 (en) | Method of matching image features with reference features and integrated circuit therefor | |
| CN113168717A (en) | A point cloud matching method and device, navigation method and device, positioning method, and lidar | |
| US20140119598A1 (en) | Systems and Methods of Merging Multiple Maps for Computer Vision Based Tracking | |
| Li et al. | Fitting boxes to Manhattan scenes using linear integer programming | |
| Fei et al. | Visual-inertial object detection and mapping | |
| Yi et al. | Survey of structure from motion | |
| Zhang et al. | OCM: an intelligent recognition method of rock discontinuity based on optimal color mapping of 3D Point cloud via deep learning | |
| CN113465617B (en) | A map construction method, device and electronic equipment | |
| Zhang et al. | Efficient large-scale oblique image matching based on cascade hashing and match data scheduling | |
| CN117576653A (en) | Target tracking methods, devices, computer equipment and storage media | |
| CN113096104A (en) | Training method and device of target segmentation model and target segmentation method and device | |
| Dos Santos et al. | Building detection from lidar data using entropy and the k-means concept | |
| Miao et al. | Aircraft detection based on multiple scale faster-RCNN | |
| Pellis et al. | A Deep Learning Multiview Approach for the Semantic Segmentation of Heritage Building Point Clouds | |
| Aguilar-González et al. | Robust feature extraction algorithm suitable for real-time embedded applications | |
| Sayar et al. | Registering landsat-8 mosaic images: A case study on the Marmara Sea | |
| Wan et al. | Sorting unorganized photo sets for urban reconstruction | |
| CN115240077A (en) | Anchor frame independent angular point regression method and device for detecting object in any direction in remote sensing image | |
| Daghigh | Efficient automatic extraction of discontinuities from rock mass 3D point cloud data using unsupervised machine learning and RANSAC |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: THE BOEING COMPANY, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KORCHEV, DMITRIY V.;ZHANG, ZHIQI;OWECHKO, YURI;REEL/FRAME:033608/0598 Effective date: 20140825 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |