The present invention relates generally to the field of machine perception and more particularly to calculating probable positions in three dimensions of occluded faces of viewed objects.
Civil and mechanical engineering projects, GIS (Geographical Information Systems) mapping programs, military simulations, and numerous other applications all require accurate three dimensional (3D) computer models of real-world objects.
Most prior art methods for creating 3D models involve extensive manual measurement and modeling. The measuring component may be achieved either through direct measurement (such as surveying) of the objects themselves or through measuring images of the objects using the science of photogrammetry. The modeling component typically involves manually inputting the measurements into computer modeling programs such as computer-aided design (CAD) software, GIS, or other similar solid modeling packages. This process is labor intensive and error prone.
Point cloud capture technology, such as laser scanning or automated photogrammetric stereo matching, is a relatively new technology for improving upon this 3D-modeling process. These systems scan objects or scenes to construct a “point cloud” consisting of 3D point measurements of the scene. These points can then be used to guide the process of feature extraction.
Point clouds are often plagued by the problem of occlusion, though. For example,
For instance, an opaque object located between a scanner and a building facade will block the scanner's view of the facade and create an occluded region in the scan of the building. Objects may even be self-occluding, as in the case of a portico obscuring portions of the facade directly behind the portico. Even a simple six-sided box, unless scanned from multiple perspectives, will have at most three sides visible, with the other three being self-occluded.
One common way to deal with occlusions in scanned data is to scan the scene from multiple viewpoints and combine the data from the individual scans using a process called registration. Though multiple scans may solve some of the occlusion issues, it is usually impractical to obtain sufficient scans to observe all surfaces in a complex scene.
One or more embodiments provide a method of and apparatus for using observed faces to estimate geometry in occluded regions. Various features associated with the operation of embodiments of the present invention will now be set forth. Prior to such description, a glossary of terms applicable for some embodiments is provided.
Scene: According to some embodiments, a scene may include or refer to a set of one or more physical objects.
Boundary representation model: According to some embodiments, a boundary representation model may rely on the mathematical property that a filled-in geometric D-dimensional region is completely specified if one specifies the (D-1)-dimensional boundary of that region and specifies which side of the boundary the filled-in region is. So the shape of a 3D object is specified by specifying the (2D) faces in 3D space that form its boundary. Similarly, the 2D faces can be specified by specifying a 2D surface geometry (such as a plane or a cylinder) and a 1D surface boundary lying upon the surface geometry (such as the four sides of a rectangle). This 1D surface boundary can be described as a collection of 1D edges, which can be specified as a 1D edge geometry lying upon the surface geometry and a pair of end vertices (if the edge is an open set, such as a line segment) or an empty set of vertices (if the edge is a closed set, such as a circle, for which the boundary is by definition empty). According to some embodiments, the concept of edge, surface, and vertex geometries are generalized to include a thickness, so that, e.g., an edge geometry consists of a thin tube of points centered on a central 1D curve. These methods of representing geometry are utilized by solid modeling kernels such as ACIS, and are familiar to a person of ordinary skill in the art.
Extending a surface: According to some embodiments, extending a surface may refer to the act of modifying a surface description by changing the description of the surface boundary to include additional regions of the surface and extending the surface geometry, if necessary.
Face: According to some embodiments, a face may refer to a two-dimensional element of the boundary of a solid model. The geometry of a particular face is typically defined as a connected two-dimensional subset of a particular surface on the boundary of the solid model. Adjacent faces are typically separated by a collection of edges and/or vertices. For example, each face of a cube is a square.
3D Model: According to some embodiments, a 3D Model may describe a set of points in a 3D space. In some embodiments, this can be a collection of one or more faces that describe the boundary or a portion of the boundary of a set of one or more objects. For example, a 3D model that contains the top and bottom faces of a cube would be a 3D model that describes a portion of the boundary of the cube. Similarly, a 3D model that contains all six faces of a cube would be a 3D model that describes the (entire) boundary of the cube. In some embodiments, faces that describe adjacent portions of the boundary of an object are stitched together, meaning that their face boundaries share one or more edges and/or vertices.
Virtual 3D Model: According to some embodiments, a virtual 3D Model may include a set of data, residing in a memory 302 of a computer system 300 as illustrated in FIG. 3, that describes a 3D Model.
Real/unreal edges: According to some embodiments, real edges in an observed model may include physical edges formed by the intersection of two different actual surfaces. Because these are physically a part of the model and not merely an artifact of the act of observation, they are called real edges. According to some embodiments, edges in an observed model may be artificially formed at the limits of the observation by occluding objects. Because these edges are not physically present in the object but are merely artifacts of the act of observation, they are called unreal edges. In this system, each observed edge may be classified as real or unreal.
Extension line: According to some embodiments, an extension line may include an artificial construct of the system to extend model edges through occluded regions. In some embodiments, an extension line starts at a vertex of the model and extends in a given direction until it intersects either another extension line or a face of the model. In some embodiments, an extension line is comprised of a direction of travel as well as two bordering faces.
Unconnected Extension Line: According to some embodiments, an unconnected extension line is a non-terminated line constructed to extend a model edge in a specified direction until it connects with another feature in the model.
Completing the extension line network: According to some embodiments, completing the extension line network may refer to the act of extending all of the constructed extension lines in a scene until they connect with other extension lines or other faces.
Data Interface: According to some embodiments, a data interface may include a portion of a computer system that allows data to be loaded onto the computer system. In some embodiments a Network Interface Card 312 may operate as a data interface, allowing data to be loaded across a network. In some embodiments, an input/output device may operate as a data interface. In some embodiments, a removable memory device or removable memory media may operate as a data interface, allowing data to be loaded by attaching the device or by loading the media. This list of embodiments is not exclusive; other forms of a data interface may appear in other embodiments.
The following paragraphs describe one or more embodiments in terms of extrapolating planar regions within a point cloud consisting of data from collected from one or more viewpoints, but the same process may be used to extrapolate other parametric surfaces such as cylinders, cones, etc. An objective of one or more embodiments is to extrapolate the observed surfaces of a 3D model constructed from a point cloud in order to fill in the occluded regions and estimate the hidden geometry. A method embodiment comprises aligning observed and modeled surfaces and edges so that disjoint parts line up with each other in a coplanar or collinear fashion.
The method further comprises distinguishing real observed edges from unreal, occluded edges in the model. The method further comprises extending real, observed edges through occluded regions until they join or intersect other edges or surfaces. The method further comprises extending any edge along trajectories established by observed surfaces until they join or intersect other edges or surfaces. The method further comprises checking for topological consistency between edges before allowing joins or intersections. The method further comprises the construction of two adjacent surfaces on each side of every observed edge within a scanned dataset, from which additional edges are constructed. The method further comprises a graphical user interface (GUI) to allow users to guide the joining of edges. The method further comprises the use of the last-created intersection node as the starting node for the next intersection for the user-guided joining of edges. The method further comprises the optimization of only allowing coplanar surfaces and edges to join with each other. One or more embodiments of the method may be implemented in software, e.g., a set of instructions stored in a non-transitory medium for execution by a computer system, hardware, firmware, or a combination thereof.
In certain embodiments, a Network Interface Card (NIC) 312 may be included in the computer system 300, and might provide connectivity to a network (not shown), thereby allowing the computer system 300 to operate in a networked environment. In certain embodiments, data such as measurements that describe portions of a scene may be received through the NIC 312 and/or the input/output devices 308.
In certain embodiments, the memory 302 may include one or more executable modules to implement operations described herein. In one embodiment, the memory 302 may include a Point Cloud Analysis module 314. In one embodiment, the Point Cloud Analysis module 314 may include EdgeWise™ which is commercially available from ClearEdge 3D, Manassas, Va. In a particular embodiment, the Point Cloud Analysis module 314 may also include executable instructions to automatically reconstruct one or more surfaces in a 3D model of a scene. The operations performed by the Point Cloud Analysis module 314 are discussed in greater detail in
It should be noted that the Point Cloud Analysis module 314 is provided by way of example. Additional modules, such as an operating system or graphical user interface module may also be included. It should be appreciated that the functions of the modules may be combined. In addition, the functions of the modules need not be performed on a single machine. Instead, the functions may be distributed across a network, if desired. Indeed, certain embodiments of the invention are implemented in a client-server environment with various components being implemented at the client-side and/or server-side.
The CPU 304 may process information and instructions, e.g., stored in memory 302 according to at least some embodiments.
In at least some embodiments, the computer system 300 may further comprise a display 306, such as a liquid crystal display (LCD), cathode ray tube (CRT), or other display technology, for displaying information to a user. In at least some embodiments, a display 306 is not included as a part of computer system 300. In at least some further embodiments, the computer system 300 may be configured to be removably connected with the display 306.
In at least some embodiments, the memory 302 may comprise a static and/or a dynamic memory storage device such as a hard drive, optical and/or magnetic drive, etc. for storing information and/or instructions. In at least some further embodiments, a static and/or dynamic memory storage device and/or media 302 may be configured to be removably connected with the computer system 300. In at least some further embodiments, data such as measurements that describe portions of a scene may be received by loading a removable media onto to appropriate device 302, for example by placing an optical disk into an optical drive, a magnetic tape into a magnetic drive, etc. In at least some other further embodiments, data such as measurements that describe portions of a scene may be received by attaching a removable static and/or dynamic memory storage device 302, such as a hard drive, optical, and/or magnetic drive, etc. to the computer system 300.
Operation of Receiving, Through a Data Interface, Data Describing a Set of Measurements of Observed Portions of the One or More Objects in the Scene
An operation to receive, through a data interface, data describing a set of measurements of observed portions of the one or more objects in the scene is performed (block 402). In one embodiment, a computer system receives, through a data interface, a data set describing a set of measurements of observed portions of one or more objects in a scene. For example, a data file containing a set of one or more laser scans of a group of buildings may be loaded onto a computer system 300 through a network interface card 312 and stored in memory 302 as illustrated in
In at least one embodiment, a point cloud of a scene is loaded into the memory 302 of a computing device 300 for processing as illustrated in
It should be noted that this is not an exclusive list of embodiments of this portion of the invention, other embodiments are possible.
Operation of Constructing a Preliminary 3D Model, Based on Data Received via the Data Interface, Describing Observed Portions of the Scene
An operation to construct a preliminary 3D model, based on data received via the data interface, describing observed portions of the scene is performed (block 404). In at least one embodiment, a point cloud which was received via the data interface is first analyzed to find coplanar regions of points. For each region of points, a planar polygon may be formed to describe its boundary. These polygons may then be generalized to smooth the bounding edges and remove trivial holes using an algorithm as set forth in Douglas, D. H. and Peucker, T. K. “Algorithms for the reduction of the number of points required to represent a digitized line or its caricature”, The Canadian Cartographer 10(2), 112-122 (1973). One or more of the discovered polygons may then be “snapped” to align with each other such that almost-coplanar surfaces become exactly coplanar, almost orthogonal surfaces become exactly orthogonal, almost-collinear edges become exactly collinear with each other, and almost orthogonal edges become exactly orthogonal to each other. “Snapping” refers to the process of aligning surfaces and edges which are determined to be aligned within a tolerance amount. In at least some embodiments, this “snapping” process is performed using a clustering technique such as QT clustering to group similar plane and line parameters. The clustering of parameters as described is familiar to a person of ordinary skill in the art.
In one embodiment of the invention, faces share edges in their boundary definitions. This is illustrated in
In at least one embodiment, these resulting faces and stitched edges are accumulated into one model to form the preliminary 3D model.
In order to extrapolate the observed faces through occluded regions, one must know where the observed faces stop and the occluded regions begin. This information is computed from the geometry between the scanner location and the objects in the scene.
In at least one embodiment, the resulting model may be a polyhedral model. In such an embodiment, each vertex (or corner) in the observed model borders at least 3 intersecting faces (whether those faces are observed or not) and at least 3 intersecting edges (whether those edges are observed or not). Additionally, each edge may border exactly two faces (whether those faces are observed or not).
Entire faces are often missing from scanned data, but the faces (or in some embodiments, the portion of faces) may be inferred using the topological rules laid out above.
Operation of Generating an Extension Line Network, Based on the Preliminary 3D Model, Describing Unobserved Portions of the One or More Objects in the Scene
An operation to generate an extension line network, based on the preliminary 3D model, describing unobserved portions of the one or more objects in the scene is then performed. In one or more embodiments, the initial model of the observed faces is analyzed to obtain a set of extension lines 406 (
In one or more embodiments, each vertex is examined to determine if it is a complete vertex. A complete vertex borders three faces and three real edges or completed extension lines. Incomplete vertices border fewer than three real edges or completed extension lines. Extension lines may be formed at incomplete vertices and used to extend the model through occluded regions.
In one or more embodiments, an extension line is formed at vertices with only one real edge and one or more unreal edges, and this extension line is created such that it continues tangentially from the end of the real edge, effectively extending the two faces that border that real edge. These vertices are unreal vertices formed by the artifact of occlusion rather than actual corners of a physical object, and will be discarded in the final model.
In one or more embodiments, an extension line is also formed at vertices which border only two real edges. By definition, these two real edges that intersect will always share one face that they each border. Each of the two real edges will also border an unshared face. The new extension line is formed such that it starts at the vertex and travels along the intersection of the two unshared faces.
Operation of Constructing Faces Associated With the Unobserved Portions of the One or More Objects in the Scene, Based on the Extension Line Network and the Preliminary 3D Model
An operation to construct faces associated with the unobserved portions of the one or more objects in the scene, based on the extension line network and the preliminary 3D model may then be performed (block 408). In at least one embodiment, this operation is performed to construct at least one face associated with a wholly unobserved portion of the one or more objects in the scene. In at least one other embodiment, this operation is performed to construct at least one face associated with a wholly or partially unobserved portion of the one or more objects in the scene. In at least one embodiment, constructing faces associated with the unobserved portions of the one or more objects in the scene includes completing the extension line network, then combining the extension line network with edges in the preliminary 3D model to form a set of faces associated with the unobserved portions of the one or more objects in the scene. Once appropriate extension lines have been formed at some or all of the initial model vertices, these extension lines are extended to intersect and connect both with each other as well as with model faces. Once an extension line connects to another component, it is considered complete, and it is converted into a real edge of the model. In this fashion, the model is extrapolated through unobserved regions of space to complete each edge and face of the model.
Extension lines may extend and connect with other extension lines or faces in at least one of three different ways: as a parallel join 902 and 904, as an intersecting join 906 and 908, as in
When an extension line connects with a collinear, opposite-facing extension line, no new vertex is created, but both extension lines become complete and extend to each other's point of origin, and can then be replaced with a real edge.
When an extension line connects with a second intersecting extension line, a new vertex is created for the model. In this case, both extension lines become complete, and a new extension line is created at the vertex to extend along the intersection of the two unshared planes from the original extension line.
In one or more embodiments, all thusly formed extension lines are added to the model, and the extension lines are iteratively paired with each other and connected until the entire extension line network has been completed.
In one or more embodiments, the connections between extension lines may be constrained by 3D topological rules to prevent joining two topologically incompatible edges from connecting with each other.
In one or more embodiments, the process of selecting between multiple possible connections between extension lines may be optimized using different scoring metrics. These metrics may include factors such as the resulting length of completed extension lines, complexity of the resulting model, number of completed extension lines, number of faces completely bounded by both real edges and completed extension lines, etc.
In at least one embodiment, the edges may be automatically, semi-automatically (user-assisted), or manually joined to complete the surface models.
In at least one embodiment of the present invention, a Graphical User Interface (GUI) is provided to allow a user to connect the edges. A user may select one edge to extend 1102, and then select either another extendable edge 1104 to join the two edges and create a new vertex 1106 with potentially a new implied edge 1108. Alternatively, a user may select an edge 1202 and then select a planar face 1204 with which to intersect the first edge. In another embodiment, a GUI may allow a user to select the edges by first selecting a vertex that the edge attaches to (for instance, selecting 1114 and joining with vertex 1116).
Additionally, in at least one embodiment of the present invention incorporating a manual GUI interface for joining edges, the intersection point of the last join operation creates a new “Implied edge”, which becomes the selected, starting edge for the next manual joining process. For example, joining 1102 with 1104 creates 1108, which would then be automatically selected for the next join with 1118. In another embodiment, joining vertex 1114 with vertex 1116 would create vertex 1106, which would then be automatically selected for the next join with vertex 1120. In at least some of the embodiments of the present invention, this will cut the number of selections required by a human operator and allow more rapid, intuitive joining of edges.
In at least one embodiment of the present invention incorporating a manual GUI for joining edges, after selecting the first edge, only edges and faces capable of forming valid joins will be selectable as the second joining object. One example of a simple constraint in this process involves requiring joined edges to share at least one face. Enforcing topological consistency in this fashion may guide the user to select and create correct joins more quickly.
In at least one embodiment, after the extension line network has been completed, the extension lines are used to construct new faces. Because extension lines are only constructed in unobserved regions, the two faces associated with an extension line will represent partially or wholly unobserved regions of the objects in the scene.
In at least one embodiment, faces are constructed from extension lines by, for each completed extension line, constructing an edge that spans the extent of the extension line plus any real edges to which it is tangent. For every plane connected to one or more extension lines, one or more faces are created by aggregating connected extension lines and real edges which form distinct boundaries.
Operation of Constructing a Virtual 3D Model Using the Preliminary 3D Model, Which Describes Observed Portions of the One or More Objects in the Scene, and the Constructed Faces Associated with the Unobserved Portions of the One or More Objects in the Scene.
An operation to construct a virtual 3D model using the preliminary 3D model, which describes observed portions of the one or more objects in the scene, and the constructed faces associated with the unobserved portions of the one or more objects in the scene is then performed (block 410). In at least one embodiment, a final virtual 3D model is constructed by merging the constructed wholly unobserved faces, the constructed partially observed faces, and the fully observed initial faces of the model. In some embodiments, this final virtual 3D model is stored in a non-volatile memory component 302 of the computer system 300, resulting in a change to the memory component.
Completing the unscanned portions of a model remains as a hurdle for automated or semi-automated modeling of scanned scenes. A robust method for modeling these unobserved surfaces is believed provided in one or more of the present embodiments in order for automated feature extraction to become an economically attractive alternative for large-scale applications.
The presently disclosed embodiments may include a system for constructing a virtual 3D model of one or more objects within a scene, where the virtual 3D model contains one or more wholly unobserved faces. In some embodiments the system may include at least one processing device configured to: receive, through a data interface, data describing a set of measurements of observed portions of the one or more objects in the scene; construct a preliminary 3D model using data received via the data interface, describing observed portions of the scene; generate an extension line network, based on the preliminary 3D model, describing unobserved portions of the one or more objects in the scene; construct at least one face associated with a wholly unobserved portion of the one or more objects in the scene, based on the extension line network and the preliminary 3D model; and construct the virtual 3D model using the preliminary 3D model, which describes observed portions of the one or more objects in the scene, and the at least one constructed face associated with the wholly unobserved portion of the one or more objects in the scene.
The presently disclosed embodiments may also provide a method for constructing a virtual 3D model of one or more objects within a scene, said virtual 3D model containing one or more wholly unobserved faces. In some embodiments the method may include the steps of receiving, through a data interface, data describing a set of measurements of observed portions of the one or more objects in the scene; constructing a preliminary 3D model, based on data received via the data interface, describing observed portions of the scene; generating an extension line network, based on the preliminary 3D model, describing unobserved portions of the one or more objects in the scene constructing at least one face associated with a wholly unobserved portion of the one or more objects in the scene, based on the extension line network and the preliminary 3D model; and constructing the virtual 3D model based on the preliminary 3D model, describing observed portions of the one or more objects in the scene, and the at least one constructed face associated with the wholly unobserved portion of the one or more objects in the scene. The presently disclosed embodiments may also provide a computer persistent storage medium comprising executable instructions for performing the steps of the method.
The presently disclosed embodiments may also include a system for constructing a virtual 3D model of one or more objects within a scene, where the virtual 3D model contains one or more wholly or partially unobserved faces. In some embodiments the system may include at least one processing device configured to: receive, through a data interface, data describing a set of measurements of observed portions of the one or more objects in the scene; construct a preliminary 3D model, based on data received via the data interface, describing observed portions of the scene; generate an extension line network, based on the preliminary 3D model, describing unobserved portions of the one or more objects in the scene; construct at least one face associated with a wholly or partially unobserved portion of the one or more objects in the scene, based on the extension line network and the preliminary 3D model and the rules of 3D topological consistency; construct the virtual 3D model based on the preliminary 3D model, describing observed portions of the one or more objects in the scene, and the at least one constructed face associated with the wholly or partially unobserved portion of the one or more objects in the scene
The presently disclosed embodiments may also provide a method for constructing a virtual 3D model of one or more objects within a scene, where the virtual 3D model contains one or more wholly or partially unobserved faces. In some embodiments the method may include the steps of receiving, through a data interface, data describing a set of measurements of observed portions of the one or more objects in the scene; constructing a preliminary 3D model, based on data received via the data interface, describing observed portions of the scene; generating an extension line network, based on the preliminary 3D model, describing unobserved portions of the one or more objects in the scene; constructing at least one face associated with a wholly or partially unobserved portion of the one or more objects in the scene, based on the extension line network and the preliminary 3D model and the rules of 3D topological consistency; constructing the virtual 3D model based on the preliminary 3D model, describing observed portions of the one or more objects in the scene, and the at least one constructed face associated with the wholly or partially unobserved portion of the one or more objects in the scene. The presently disclosed embodiments may also provide a computer persistent storage medium comprising executable instructions for performing the steps of the method.
It will be readily seen by one of ordinary skill in the art that the disclosed embodiments fulfill one or more of the advantages set forth above. After reading the foregoing specification, one of ordinary skill will be able to affect various changes, substitutions of equivalents and various other embodiments as broadly disclosed herein. It is therefore intended that the protection granted hereon be limited only by the definition contained in the appended claims and equivalents thereof.
This application claims priority to U.S. Provisional Patent Application Ser. No. 61/770,619, filed Feb. 28, 2013, entitled, “APPARATUS AND METHOD FOR EXTRAPOLATING OBSERVED SURFACES THROUGH OCCLUDED REGIONS”, the contents of which are incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US14/19371 | 2/28/2014 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61770619 | Feb 2013 | US |