EP3996051A1 - 3d reconstruction of a structure of a real scene with an open surface - Google Patents
3d reconstruction of a structure of a real scene with an open surface Download PDFInfo
- Publication number
- EP3996051A1 EP3996051A1 EP20306324.3A EP20306324A EP3996051A1 EP 3996051 A1 EP3996051 A1 EP 3996051A1 EP 20306324 A EP20306324 A EP 20306324A EP 3996051 A1 EP3996051 A1 EP 3996051A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- triangle
- open
- triangulated surface
- triangles
- order
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 147
- 238000002372 labelling Methods 0.000 claims abstract description 101
- 230000003247 decreasing effect Effects 0.000 claims abstract description 27
- 238000005259 measurement Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 6
- 238000003325 tomography Methods 0.000 claims description 5
- 230000009977 dual effect Effects 0.000 description 40
- 238000004519 manufacturing process Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 230000003190 augmentative effect Effects 0.000 description 10
- 230000036961 partial effect Effects 0.000 description 8
- 239000000463 material Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000001154 acute effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 206010003830 Automatism Diseases 0.000 description 1
- 241000208125 Nicotiana Species 0.000 description 1
- 235000002637 Nicotiana tabacum Nutrition 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/004—Annotating, labelling
Definitions
- the invention relates to the field of computer programs and systems, and more specifically to a method, system and program for 3D reconstruction of a structure of a real scene.
- CAD Computer-Aided Design
- CAE Computer-Aided Engineering
- CAM Computer-Aided Manufacturing
- the graphical user interface plays an important role as regards the efficiency of the technique.
- PLM refers to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise.
- the PLM solutions provided by Dassault Systèmes (under the trademarks CATIA, ENOVIA and DELMIA) provide an Engineering Hub, which organizes product engineering knowledge, a Manufacturing Hub, which manages manufacturing engineering knowledge, and an Enterprise Hub which enables enterprise integrations and connections into both the Engineering and Manufacturing Hubs. All together the system delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service.
- the method comprises providing a first open triangulated surface.
- the first open triangulated surface is a set of triangles of a tetrahedral meshing of a 3D point cloud.
- the 3D point cloud represents at least a part of a structure.
- the method further comprises determining a second open triangulated surface.
- the second open triangulated surface represents a skin of a portion of the structure.
- the determining explores candidate open triangulated surfaces each being a set of triangles of the tetrahedral meshing.
- the determining penalizes a high rank of the candidate open triangulated surfaces according to a lexicographic order.
- the lexicographic order is based on a triangle order.
- the lexicographic order orders a first candidate open triangulated surface having first triangles which are ordered according to a decreasing rank of the triangle order, relative to a second candidate open triangulated surface having second triangles which are ordered according to a decreasing rank of the triangle order.
- the triangle order penalizes a triangle size.
- the determined second open triangulated surface violates consistency of a labelling of the tetrahedral meshing with two given labels.
- a triangle respects consistency of the labelling if the triangle belongs to the first open triangulated surface and separates two tetrahedrons having different labels, or if the triangle does not belong to the first open triangulated surface and separates two tetrahedrons having a same label.
- the method may comprise one or more of the following:
- a computer comprising a processor coupled to a memory and, the memory having recorded thereon the computer program.
- the method comprises providing S10-S40 a first open triangulated surface.
- the first open triangulated surface is a set of triangles of a tetrahedral meshing of a 3D point cloud.
- the 3D point cloud represents at least a part of a structure.
- the method further comprises determining S50 a second open triangulated surface.
- the second open triangulated surface represents a skin of a portion of the structure.
- the determining S50 explores candidate open triangulated surfaces each being a set of triangles of the tetrahedral meshing.
- the determining S50 penalizes a high rank of the candidate open triangulated surfaces according to a lexicographic order.
- the lexicographic order is based on a triangle order.
- the lexicographic order orders a first candidate open triangulated surface having first triangles which are ordered according to a decreasing rank of the triangle order, relative to a second candidate open triangulated surface having second triangles which are ordered according to a decreasing rank of the triangle order.
- the triangle order penalizes a triangle size.
- the determined second open triangulated surface violates consistency of a labelling of the tetrahedral meshing with two given labels.
- a triangle respects consistency of the labelling if the triangle belongs to the first open triangulated surface and separates two tetrahedrons having different labels, or if the triangle does not belong to the first open triangulated surface and separates two tetrahedrons having a same label.
- the method allows to determine an open triangulated surface (i.e. the second one) representing a skin of a portion of a structure of a real scene.
- the method performs reconstruction of a portion of a 3D structure of a real scene.
- the method does so without requiring smoothness hypothesis on the 3D point cloud and/or on the structure.
- the method is thus robust and can for example handle different real scene structures.
- the method may for example handle non-regular point clouds, representing non-regular structures such as corner structures.
- the method does so with a low amount of ( e.g. without any) manually tuning of parameters, which makes it ergonomic.
- the exploring and the penalizing may be carried out automatically.
- the method determines the second open triangulated surface representing the skin of a portion of the structure by exploring candidate open triangulated surfaces and rewarding (e.g. selecting) a candidate that will be the determined open triangulated surface.
- the method rewards/selects a candidate given two constraints.
- the first constraint is that the candidate should not have a too high rank in the lexicographic order, otherwise it will be penalized ( i.e . discarded) by the determining S50. In other words, the candidate should minimize or tend to minimize the lexicographic order among the candidates.
- the second constraint is that the candidate must violate consistency of the labelling ( i.e. all the triangles of the candidate must violate consistency of the labelling).
- the method finds a candidate open triangulated surface, i.e. a set of triangles of the tetrahedral meshing, which violates consistency of the labelling, but which is the least penalized by its rank in the lexicographic order among the candidates.
- the method determines an open triangulated surface which violates consistency of the labelling, but which is a minimum, or at least tends to be a minimum, for the lexicographic order among open triangulated surfaces violating consistency of the labelling.
- the method tends to minimize the lexicographic order among the set of open triangulated surfaces violating consistency of the labelling.
- the constraint that the determined second open triangulated surface must violate consistency of the labelling captures the constraint that the determined second open triangulated surface must have the same boundary as the first open triangulated surface.
- the method determines an open triangulated surface having the same boundary as the first open triangulated surface.
- the method in fact determines an open triangulated surface having a same boundary as the first open triangulated surface and minimizing, or at least tending to minimize, the lexicographic order among open triangulated surfaces having a same boundary as the first open triangulated surface.
- the constraint that the determined second open triangulated surface must have the same boundary as the first open surface is indeed captured by the constraint that the determined second open triangulated surface must violate consistency of the labelling, i.e. must have all its triangles violating consistency of the labelling, given that labelling consistency is defined by the constraint that a triangle respects consistency of the labelling if the triangle belongs to the first open triangulated surface and separates two tetrahedrons having different labels, or if the triangle does not belong to the first open triangulated surface and separates two tetrahedrons having a same label.
- having a high rank in the lexicographic order, for a triangulated surface captures the fact that the surface includes triangles of large size (e.g. large and/or flat triangles), and/or a too large amount of such triangles. These triangles are representative of regions of the 3D point cloud featuring noise, e.g. comprising outlier points which may stem from measurements errors of sensors that have acquired the point cloud.
- an open triangulated surface with a high rank in the lexicographic order does not represent accurately a skin of a portion of the structure, as the skin should rather mesh a high-density portion of the point cloud, as discussed hereinafter.
- an open triangulated surface having a low rank represents the skin accurately. Therefore, the method, based on the first open triangulated surface, finds a second open triangulated surface which has the same boundary, but which represents better the skin of the portion of the structure than the first open triangulated surface.
- the method may be used to perform 3D reconstruction a real scene partially represented by a 3D point cloud.
- physical constraints of real-scenes e.g. occlusions and/or optical properties
- the 3D point cloud represents only partially a structure of the real scene, i.e. represents at least a part of the structure.
- the physical constraints may indeed lead to partial and incomplete 3D acquisitions, e.g. featuring holes.
- the 3D point clouds may feature holes where it should have comprised points representing a part of the structure.
- the 3D point cloud may represent a portion of a closed shape, i.e. instead of representing the whole closed shape.
- the method may for example provide as the first open triangulated surface an open triangulated surface having as a boundary the boundary of a part of the structure represented by the 3D point cloud. This boundary may not correspond to the real-world outer boundary of the structure due to a partial 3D acquisition. In other words, this boundary may be a delimitation of a part of the structure that is represented by the 3D point cloud.
- the method may provide as the first open triangulated surface any such open triangulated surface.
- a user may for example define/mark the boundary as a one or more loop (e.g. one) in the tetrahedral meshing, a loop being a set of edges and vertices where each vertex belongs to an even number of edges, and the method may infer the first open triangulated surface from the one or more loops.
- the method may do so in any manner, including any manner that results in the first open triangulated surface not representing accurately the skin, i.e. by having a too high rank in the lexicographic order.
- the determining S50 finds another open triangulated surface (i.e.
- the method may determine an open triangulated surface having the defined boundary of the portion as boundary and tending to be minimal for the lexicographic order, thereby forming an accurate skin of the portion of the structure.
- the method may additionally or alternatively be used to determine the skin of large 3D point clouds, i.e. point clouds featuring a large number of points, e.g. for which a ratio between the number of points of the 3D point cloud and the memory size of the computer is larger than a predefined threshold. This may for example be the case when the point cloud represents a large terrain.
- the size of such a point cloud in terms of number of points, may render the computation of a triangulated surface representing the full skin of the point cloud impossible or at least complicated to do in an acceptable time for a standard or cheap computer.
- the method may nevertheless allow to handle these point clouds by considering a division of such a point cloud.
- the method may provide as a first open triangulated surface an open surface representing only a skin of a bounded portion of the structure represented by the 3D point cloud.
- This first open triangulated surface may be inferred from one or more loops provided by a user, e.g. the loops each delimiting such a bounded portion.
- the 3D point cloud represents a terrain
- the first open triangulated surface may represent a skin of a bounded parcel of the terrain.
- the first open triangulated surface may represent the skin inaccurately, i.e. by having a too high rank in the lexicographic order.
- the method determines as the second open triangulated surface an open triangulated surface which has the same boundary as the first open triangulated surface, but which has a lower rank in the lexicographic order, thereby representing accurately the skin of the bounded portion.
- the method may do so for each one of several bounded portions altogether dividing the structure.
- the method allows to consider a large structure that can be divided by bounded portions, such as a terrain divided in parcels, and to determine for each portion a respective skin of the portion. This avoids determining the whole skin of the structure in a single process, which would take too long and/or would be impossible to do for a standard or cheap computer.
- the method may also define the boundaries of the bounded portions ( e.g. when providing the corresponding first open triangulated surfaces or loops) to be watertight. This allows to parallelize the skin of the structure, i.e. to treat each determined skin of each portion independently from the other.
- the method may re-compute one of the skins upon a modification of corresponding the portion of the structure, without recomputing the others.
- the method may compute and process accurate skins of portions dividing a large structure, such as parcels of a terrain, independently form each other, which allows not only to obtain an accurate skin of the structure, or a least of one or more portions thereof, but also to do so with the resources of standard or cheap computers and in an acceptable time.
- the division of the structure in portions e.g. of a terrain in parcels, may be determined by a user, or, alternatively, may be determined automatically, e.g. based on the consideration that for each portion, the points of the 3D point cloud that represent the portion must fit into the computer memory.
- a real scene designates a part of the real world, which may be or may comprise an object or an arrangement of objects.
- a structure of a real scene is a tangible (e.g. concrete) physical closed shape in the real scene, such as a closed layout of material in the real scene. A portion of the structure is thus a portion of this closed shape.
- the real scene may be a building e.g. a cathedral. The portion may then be a part of the building, e.g. the cathedral without its roof.
- Yet another example is a real scene that is a terrain. A portion thereof may be a part of the terrain, e.g. a parcel/plot.
- a skin of the portion is a hull or envelop of the portion, that is material of the structure forming a contact between opaque matter inside the structure and air and/or matter outside.
- the portion may have a boundary, such that the skin does not necessarily form a complete delimitation between the outside of the structure and the inside of the structure, but only a portion of such a delimitation.
- the skin of a portion of a terrain may represent the delimitation between the earth and the air formed by the terrain, but only for a bounded parcel/plot thereof.
- the skin of a portion of a building such as a cathedral, which may forms a partial delimitation between the walls of the building and the air (which may be outside air and/or air inside the building).
- the method contemplates a tetrahedral meshing of a 3D point cloud representing at least a part of a structure of a real scene, e.g. representing only a portion of the structure.
- the method may comprise providing S10 the 3D point cloud, e.g. before the providing of the first open triangulated surface.
- the method may directly provide the first open triangulated surface and/or the tetrahedral meshing, e.g. by retrieving the first open triangulated surface and/or the tetrahedral meshing from a memory on which it/they have been stored further to its/their computation.
- a 3D point cloud representing at least a part of a structure of a real scene is herein a data structure in which each point represents a respective geometrical entity positioned in at least a part of the structure of the real scene.
- Each geometrical entity represents a respective location of the structure in the scene (in other words, a respective portion and/or layout of material constitutive of the structure).
- the aggregation ( i.e. union or juxtaposition) of the geometrical entities represents altogether at least a part of the structure.
- Any 3D point cloud herein may comprise a number of points higher than 100000, 1000000 or 10000000.
- the method may handle a number of points higher than 10000000 on a standard or cheap computer (e.g. 16 Gigabytes of memory).
- the 3D point cloud may comprise points which do not represent a respective geometrical entity positioned in the structure. Those points may form or may be part of regions with lower densities of points, as discussed hereinafter. Such a region may for example represent a part of the scene which does not belong to the structure. Some points of the point cloud may also be outliers, that is points stemming from measurement errors and thus not representing geometrical entities of the structure.
- the real scene may be an architectural scene such as a building seen from the outside.
- the structure may here be the closed tangible shape formed by the structure of the building ( e.g. the walls and the roof).
- the skin of a portion of a structure may in this case be made of the surfaces of the structure of the building, e.g. surfaces of the walls and/or the roof, e.g. facing the outside and/or the inside of the building.
- the real scene may also be any other civil engineering scene, comprising any civil engineering structure (e.g. a tunnel, for example a mining tunnel).
- the scene may for example be a factory scan, i.e. a scan of the inside of a factory.
- the real scene may be a terrain scene.
- the structure may be the terrain itself, and a skin of a portion of the terrain may be the ground of a parcel of the terrain, having as boundaries the parcel's boundaries.
- the real scene may be a mechanical part or an organic tissue, the skin of a portion being for example a part of an outer hull of the mechanical part or of the organic tissue.
- a mechanical part may be any one of: a part of a terrestrial vehicle (including e.g. car and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), a part of an aerial vehicle (including e.g. airframe equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), a part of a naval vehicle (including e.g. navy equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment), a general mechanical part (including e.g.
- a mechanical part may be any one of a molded part (i.e. a part manufactured by a molding manufacturing process), a machined part (i.e.
- a part manufactured by a machining manufacturing process a part manufactured by a drilling manufacturing process
- a drilled part i.e. a part manufactured by a drilling manufacturing process
- a turned part i.e. a part manufactured by a turning manufacturing process
- a forged part i.e. a part manufactured by a forging manufacturing process
- a stamped part i.e. a part manufactured by a stamping manufacturing process
- a folded part i.e. a part manufactured by a folding manufacturing process
- the structure comprises at least one corner structure.
- a corner structure designates a part of the structure which has or substantially has the shape of a corner.
- a corner of structure may be a part of the structure which corresponds to a layout of material forming a shape edge or a sharp angle.
- a corner structure may be a corner of a building, a corner of a terrain parcel, a corner of a tunnel, a corner formed by walls of a room, a corner of a mining tunnel, a corner or a sharp angle in a layout of material constitutive of a mechanical part, or a corner or a sharp angle in a layout of tissue constitutive of an organic tissue. The method is thus robust, as it handles corner structures.
- the 3D point cloud stems from photogrammetry, laser-scan, RGBD measurements and/or medical or industrial tomography.
- a point cloud representing a structure of an architectural/building scene may stem from RGB-D measurements or photogrammetry, and optionally also from a structure-from-motion analysis.
- a point cloud representing a structure of a mechanical part may stem from industrial tomography or from laser scan.
- a point cloud representing a structure of a mining scene (or any other similar civil engineering scene) may stem from a laser scan, e.g. of the inside of a mine.
- a point cloud representing a structure of an organic tissue may stem from medical tomography.
- a point cloud representing a terrain may stem from lidar measurements.
- Any 3D point cloud herein may be determined from physical measurements on the real scene.
- the providing S10 of the 3D point cloud may notably comprise providing one or more physical sensors each configured for acquiring a respective physical signal and acquiring one or more respective physical signals by operating the one or more physical sensors on the real scene ( i.e. scanning the real scene with each sensor).
- the providing S10 of the 3D point cloud may comprise the automatic determination of the 3D point cloud based on the measurements, according to any known technique.
- the one or more sensors may comprise a plurality of (e.g. RGB, and/or image or video) cameras and the determination may comprise a structure-from-motion analysis.
- the one or more sensors may alternatively or additionally comprise one or more depth sensors ( e.g. on an RGB-D camera).
- the one or more sensors may alternatively or additionally comprise a laser (e.g. a lidar) or an ultrasound emitter-receiver.
- the one or more sensors may alternatively or additionally comprise one or more tomographic sensors.
- a tomographic sensor may be a medical or an industrial tomographic sensor.
- the providing S10 of the 3D point cloud may comprise accessing a database where the 3D point cloud is stored and retrieving the 3D point cloud from the database.
- the 3D point cloud may have been acquired by operating one or more physical sensors and determining the 3D point cloud based on measurements acquired by the one or more sensors, as previously described, and then stored in the database, even though the providing S10 may not actually comprise the acquisition of the measurements and the determining of the 3D point cloud.
- the providing S10 of the 3D point cloud may be carried out by user action.
- Providing S10 the 3D point cloud may further comprise displaying the 3D point cloud on a display (e.g. a GUI) of a computer carrying out the method.
- the provided 3D point cloud may comprise one or more regions with different densities of points. This means that the density of points within the point cloud may differ from one region of the point cloud to another.
- the 3D point cloud may for example comprise holes/openings, which stem from physical constraints when the 3D acquisition of the 3D point cloud has been performed, such as occlusions or optical properties.
- the holes may represent regions which should have comprise a substantial density of points, but which do not due to the physical constraints.
- the 3D point cloud may thus represent only a portion of a closed shape ( i.e. the structure) where it should have represented the full closed shape if it was not for the physical constraints.
- a skin of the structure or of a portion thereof may correspond to a region of the point cloud which has the highest density of points, the region for example separating at least a part of the outside form at least a part of the inside.
- This region may be open, i.e. the region of the point cloud which has the highest density of points may form an open shape having boundaries.
- the inside and/or the outside may then be regions featuring a lower density of points.
- "having the highest density” means that the density of points in the open shape is higher than an ambient noise stemming from measurements.
- the 3D point cloud may further feature outliers, which are points of the 3D point cloud located in regions with low densities of points and which stem from measurements errors. In other words, outliers are not representative of geometric entities of the real scene but correspond to numerical and/or measurement artefacts. The method nevertheless handles these outliers, which makes the method robust to outliers and/or density variations.
- the 3D point cloud may have a large number of points.
- a ratio between the number of points of the 3D point cloud and the memory size of the computer may be larger than a predefined threshold.
- the predefined threshold may be larger than 10 million points for 16 Gigabytes of memory size ( i.e. substantially the size of a standard or cheap computer memory), e.g. substantially equal or larger than 10 million points for 16 Gigabytes of memory size.
- 3D reconstruction of the structure generally designates the action of computing/determining a surface connecting points of the 3D point cloud.
- the surface may be referred to as "representing a skin of a portion of the structure” as it connects points of the 3D point cloud into an open surface representing a delimitation (e.g. a boundary) between at least a part of the outside of the structure and at least a part of the inside of the structure.
- the surface thus represents a portion of a hull of the structure, in other words a skin of a portion of the structure.
- the skin may correspond to an open shape of high density of points within the 3D point cloud.
- the 3D reconstruction of the structure may in this case designate the determining/computing of a surface connecting points of the open shape so as to form an open surface hull of the structure.
- the method manipulates a tetrahedral meshing of the 3D point cloud that represents at least a part of the structure.
- the method may comprise computing S20 the tetrahedral meshing.
- the method may directly provide the first open triangulated surface and/or the tetrahedral meshing, e.g. by retrieving it/them from a memory where it/they have been stored further to its/their computation.
- the computing S20 of the tetrahedral meshing may be carried out by any known method.
- the tetrahedral meshing presents the following properties: the union of the tetrahedrons of the tetrahedral meshing forms the convex envelop of the points of the 3D point cloud, and the intersection between any first tetrahedron of the tetrahedral meshing and any second tetrahedron of the tetrahedral meshing intersecting the first tetrahedron is a vertex of the first tetrahedron, an edge of the first tetrahedron, or a face of the first tetrahedron. This improves the quality of the meshing, and consequently the quality of the determined open triangulated surface.
- the tetrahedral meshing is a regular triangulation. This further improves the quality of the meshing, and consequently the quality of the determined open triangulated surface.
- a regular triangulation of the 3D point cloud is a triangulation induced by shadows of the faces of a polyhedron in one higher dimension ( i.e. in dimension 4).
- Regular triangulation are merely duals of Power Diagrams, see for example: Algorithmic geometry, Jean-Danel Boissonnat and Mariette Yvinec, Cambridge University Press New York, NY, USA , which is incorporated herein by reference.
- the computing S20 of the tetrahedral meshing may comprise computing as the tetrahedral meshing a regular triangulation of the 3D point cloud, by any know method, which may comprise:
- the regular triangulation is a Delaunay triangulation.
- the points are lifted to a paraboloid and the lifting is parametrized by the vertical gap between the lifted point and the paraboloid. This further improves the quality of the meshing, and consequently the quality of the determined open triangulated surface.
- the method performs the 3D reconstruction by going further than just computing a Delaunay triangulation. The method benefits indeed from the quality of the Delaunay tetrahedral meshing but goes beyond by determining S50 among all candidate open triangulated surfaces being made of triangle faces of the Delaunay triangulation, the one that truly represents the skin.
- the method may select the best representation of the skin among open triangulated surfaces made of triangle faces of a Delaunay tetrahedral meshing.
- the method may thus make use of the Delaunay tetrahedral convex hull meshing of a 3D point cloud, a concept known and for example detailed in reference F. Cazals, J. Giesen, Delaunay triangulation based surface reconstruction, Effective computational geometry for curves and surfaces, pages 231-276, 2006 , which is incorporated by reference.
- the Delaunay tetrahedral mesh object is a set of tetrahedrons featuring the following properties.
- the topology is a set of adjacent tetrahedrons such that any triangle is shared by exactly two regions.
- the first sharing situation is a triangle shared by two adjacent tetrahedrons.
- the second sharing situation is a triangle shared by a tetrahedron and by the unbounded outside region.
- Triangles shared by a tetrahedron and the outside region are called boundary triangles.
- the geometrical property of the Delaunay meshing is that for any tetrahedron, the sphere defined by its four points (named the circumscribed sphere) does not include any other point of the cloud.
- the first open triangulated surface is a set of triangles of the tetrahedral meshing forming an open triangulated surface, having boundaries. More generally, in the present disclosure, any open triangulated surface is a triangulated surface of tetrahedral meshing, the triangulated surface having a boundary.
- the first open triangulated surface may be any open triangulated surface representing the skin of the portion of the structure, and thus may be one of the candidates in the determining.
- the first open triangulated surface may however have a high rank in the lexicographic order, or at least may have a too high rank to be minimal or to tend to be minimal in the lexicographic order.
- the determining S50 finds then a second open triangulated surface which has the same boundaries than those of the first open triangulated surface, but which minimizes or at least tends to minimize the lexicographic order.
- the quality of the determined open triangulated surface is better than that of the first open triangulated surface, i.e. the determined surface represents the skin better, e.g. comprises no or at least less large and/or flat triangles, representative of low-densities regions of the point cloud and/or of outliers.
- the first open triangulated surface may be directly provided, e.g. the method does not compute/determine it, as previously discussed.
- the providing of the first open triangulated surface may comprise computing/determining the first open triangulated surface.
- the computing/determining of the first open triangulated surface may consist in applying any method to find an open triangulated surface, in the tetrahedral meshing, which represents, even, roughly the skin of the portion of the structure.
- the providing of the first open triangulated surface may consist in finding in the tetrahedral meshing any open triangulated surface representing, even roughly, the skin, i.e. even if this first open triangulated surface has a high rank in the lexicographic order.
- the determining S50 will then find such an open triangulated surface but that minimizes or tends to minimize the lexicographic order.
- the providing of the first open triangulated surface may be implemented by any method that finds an open triangulated surface representing even roughly/inaccurately the skin.
- the providing of the first open triangulated surface comprises providing S30 one or more loops in the tetrahedral meshing and determining S40 an open triangulated surface in the tetrahedral meshing having the one or more loops as boundary.
- a loop herein is a set of edges and vertices in the tetrahedral meshing such that each vertices in the loop belongs to an even number of edges of the loop.
- the one or more loops form a boundary of the portion of the structure.
- the portion of the structure may be the part of the structure that is represented by the 3D point cloud, or a part of this part, and the one or more loops form in this case the boundary of this part.
- the boundary may coincide partially, due to partial acquisition of the 3D point cloud, with that of the real shape of the structure.
- the boundary may coincide with the boundary of one or more holes in the 3D point cloud, which stem from partial acquisition of the 3D point cloud.
- one loop may correspond, e.g. partially, the real shape of the boundary of the structure in the real world. Additionally or alternatively, one loop may correspond to the boundary of a hole in the 3D point cloud.
- the portion of the structure may for example correspond to a portion of the 3D point cloud resulting from a division thereof, as previously discussed, the boundary of this portion being then provided as a loop at S30.
- the providing S30 of the one or more loops may be carried out by a user, e.g. by graphical user interaction.
- a user may click on or touch points and edges of the tetrahedral meshing so that they form the loop.
- the user may, for providing a given loop, perform a sequence of clicks or touches on the tetrahedral meshing or on the point cloud, each click of touch defining a point.
- the method may automatically infer a loop of edges and vertices from the sequence of user-picked points, which may include over-sampling the user-picked points and/or finding a loop of edges and vertices fitting the user-picked points.
- the user may, for providing a given loop, draw a closed line on the tetrahedral meshing or on the point cloud, the line ( e.g. roughly) defining the shape of the boundary.
- the method may automatically infer a loop of edges and vertices from the user-defined line, which may include sampling the user-defined line and/or finding a loop of edges and vertices fitting the user-defined line.
- the providing S30 of the one or more loops may be carried out automatically.
- the providing of the one or more loops may be based on considerations about the computer memory.
- the providing S30 of the one or more loops may comprise dividing the 3D point clouds or the tetrahedral meshing into bounded regions/portions so that each region/portion has a number of points of the 3D point cloud that fit into a given computer memory (e.g. 16 Gigabytes for a standard or cheap computer).
- the one or more loops may each correspond to the boundary of a respective one of the portions.
- the resulting division of the tetrahedral meshing may be watertight, i.e. the separated portions/regions coincide along their common boundary.
- This implementation notably applies to the case where the 3D point cloud has a large number of points, e.g. larger than 10M points for a standard or cheap computer with a 16 Gigabytes memory.
- This implementation subdivides the point cloud/tetrahedral meshing into regions where the number of points fits in the computer memory and ensures that the resulting division/resulting meshing is watertight, by ensuring that the separated meshed regions coincide along their common boundary. This implementation proceeds as follows:
- the determining S40 of an open triangulated surface in the tetrahedral meshing having the one or more loops as boundary may be carried out by any suitable method or any suitable technique.
- the determined S40 open triangulated surface is the first open triangulated surface.
- the determining S40 may carry out algorithm 2 which will be discussed hereinafter. Any other suitable combinatorial geometric algorithms could be carried out instead of algorithm 2.
- the determining S50 of the second open triangulated surface representing a skin of a portion of the structure is now further discussed.
- the determining S50 explores candidate open triangulated surfaces.
- Each candidate is a set of triangles of the tetrahedral meshing forming an open triangulated surface in the tetrahedral meshing.
- the determining penalizes a high rank of candidates in the lexicographic order and searches candidates violating consistency of the labelling. In other words, the determining operates a selection among candidate open triangulated surfaces and selects among them one candidate being minimal, or at least tending to be minimal, in the lexicographic order as well as violating consistency of the labelling.
- the lexicographic order orders a first candidate open triangulated surface relative to a second candidate open triangulated surface, i.e. provides an ordering between the first candidate open triangulated surface and the second candidate open triangulated surface.
- the concept of lexicographic order is known per se.
- the first candidate open triangulated surface has ( e.g. is made of) first triangles, i.e. of the tetrahedral meshing
- the second candidate open triangulated surface has ( e.g. is made of) second triangles, i.e. of the tetrahedral meshing. Both first triangles and second triangles are ordered according to a decreasing rank of the triangle order.
- Ordering the first candidate open triangulated surface relative to the second candidate open triangulated surface according to the lexicographic order may notably comprise, as the lexicographic order is based on the triangle order, assessing the ordering of the first triangles and the ordering of the second triangles according to the decreasing rank of the triangle order.
- the ordering may further comprise establishing a rank in the lexicographic order of the first candidate open triangulated surface relative to the second candidate open triangulated surface based on the assessed ordering of both the first triangles and second triangles.
- the ordering may comprise establishing a relative ranking, in the lexicographic order, between the first candidate open triangulated surface and the second candidate open triangulated surface, by comparing the ordered first and second triangles.
- A be the set made of the first triangles and let B be the set made of the second triangles.
- T is the first triangle of C if the triangles of C are ordered according to the decreasing rank of the triangle order. Put it another way, T is a triangle of C which is the most penalized by the triangle order, e.g. which is the largest triangle among the triangles of C, as discussed hereinbelow. If T belongs to A, then A is larger than B. In this case the first candidate open triangulated surface has a higher rank than the second candidate open triangulated surface in the lexicographic order. Conversely, if T belongs to B, then B is larger than A. In this case the second candidate open triangulated surface has a higher rank than the first candidate open triangulated surface in the lexicographic order. It is to be noted that, if B ⁇ A (strictly), then A is larger than B.
- the ordering may result in that the set of all candidate open triangulated surfaces is ordered according to the lexicographic order, i.e. each candidate open triangulated surface has a respective rank in the lexicographic order.
- the determining S50 penalizes a high rank of a candidate open triangulated surface. For example, the determining S50 may be such that candidate open triangulated surfaces are discarded because of their high rank and a candidate open triangulated surface are not discarded because of its low rank.
- Penalizing a triangle size may comprise assessing, for each triangle T and T', a respective measure of the size of the triangle and attributing a higher rank in the triangle order to the triangle having the larger measure.
- the measure of a triangle size may also be referred to as the triangle weight or as the weight of the triangle.
- the measure of the size may for example comprise a first real-valued function contributing towards measuring the triangle size, a second real-valued function contributing differently towards measuring the triangle size, and/or a couple made of the first function and of the second function.
- Penalizing triangle size may comprise ordering the two assessed measures of the size relative to one another, e.g.
- T is larger ( i.e. has a larger size) than T'
- the measure of the size of T is larger ( e.g . according to the ordering of the measures) than the measure of the size of T'.
- the couple ( T, T' ) is to be ordered according to the decreasing rank of the triangle order, just as the previously discussed first triangles and second triangles, then, in this ordering, T comes before T'.
- T 1 , T 2 , ..., T n is a list of triangles which is ordered ( i.e.
- T 1 is the first, T 2 is the second, and so on), and if the ordering is according to the decreasing rank of the triangle order, it means that the measure of the size of T 1 is larger than the measure of the size of T 2 , which is larger than the measure of the size of T 3 , and so on.
- the measure of the size of a triangle T is a couple of real-valued functions made of the radius of the smallest enclosing circle of T and of the inverse of the radius of the circumscribed circle of T. Such examples constitute a robust and efficient manner of measuring and penalizing triangle size.
- a higher rank in the lexicographic order is attributed to the one of the two which has the triangle that is the most penalized by the triangle order, e.g. that is the largest.
- such triangles may be representative of ( e.g. may be part of a meshing of) regions of the 3D point cloud having a low density of points, e.g. comprising outliers. Discarding candidate open triangulated surfaces having such triangles, by penalizing their high rank in the lexicographic order, allows to search for an open triangulated surface representing accurately the skin of the portion of the structure, and reduces the sensibility to density variations and/or to outliers. This makes the method robust and accurate.
- the method may result in that the triangles ( e.g. all of them or a substantial part of them) of the determined open triangulated surface are, as far as possible, small triangles ( i.e. with a small size), including triangles of which shape is notably not too stretched, e.g. triangles having a relatively small area and for which the ratio between the triangle height and the triangle bottom is close to 1.
- small triangles i.e. with a small size
- the triangle order when comparing two triangles, does not necessarily penalize the flattest of the two, basing the lexicographic order on the triangle order may however result in that flat triangles are, as far as possible, avoided.
- the lexicographic order compares chains of triangles (each forming an open triangulated surface), and not triangles of a single pair of triangles, and attempts to reward ( i.e. to give a low rank to) the chain made of the smallest possible triangles. Comparing chains of triangles, and not triangles of a single pair of triangles, and penalizing chains having ( e.g. a too large amount of) large triangles may in fact result in that the determined open triangulated surface is made of triangles which are (e.g. generally) small and not too flat. Such triangles are representative of a skin. This makes the method robust and accurate.
- the triangle order penalizes, for a respective triangle, a high value of the radius of the smallest enclosing circle, i.e. the smallest enclosing circle of the triangle.
- the smallest enclosing circle of the triangle is the circle having the smallest radius among all circles enclosing the points of the triangle.
- the radius of the smallest enclosing circle of a triangle contributes towards measuring the size of the triangle and penalizing a high value of the radius of the smallest enclosing circle contributes towards penalize the triangle size.
- the radius of the smallest enclosing circle is a real-valued function contributing towards measuring triangle size, and which may be part of the measure of the size of the triangle as previously discussed.
- penalizing a high value of the radius of the smallest enclosing circle is a particularly efficient and robust manner of penalizing triangle size.
- T and T' be two triangles, and let R B ( T ) and R B ( T' ) be the radiuses of their respective smallest enclosing circle. Then, in these examples, the inequality R B ( T ) ⁇ R B ( T' ) captures the fact that T' has a size larger than the one of T. Penalizing size may in this case consist in attributing a higher rank in the triangle order to T' than to T. Also, ordering T and T' relative to one another according to the decreasing rank of the triangle order means in this case that T' comes before T in this ordering.
- the triangle order further penalizes, for a first triangle and a second triangle having a same smallest enclosing circle, a small value of the radius of the circumscribed circle, i.e. the circumscribed circle of the (first or second) triangle.
- the circumscribed circle of a triangle is the circle through the points of the triangle.
- the radius of the circumscribed circle of a triangle contributes towards measuring the size of the triangle and penalizing a small value of the radius of the circumscribed circle contributes towards penalizing the triangle size, especially in the case of smallest enclosing circle equality as discussed below.
- the radius of the circumscribed circle is a real-valued function contributing towards measuring the triangle size, and which may be part of the measure of the size of the triangle as previously discussed.
- Penalizing a small value of the radius of the circumscribed circle in such a smallest enclosing circle equality case improves robustness of the method.
- T and T' be two triangles
- R B ( T ) and R B ( T' ) be the radiuses of their respective smallest enclosing circles.
- R B ( T ) R B ( T' )
- assessing the radius of the respective smallest enclosing circle for both T and T' and penalizing high value of the assessed radiuses may not be sufficient to establish a relative triangle order between T and T' so as to penalize triangle size.
- each triangle T size is measured by a measure of the triangle size which is a couple of real-valued functions made of the radius of the smallest enclosing circle of T and of the inverse of the radius of the circumscribed circle of T.
- the measure may be given by the formula R B T , 1 R C T .
- the triangle order may in this case be an order on the measures of the triangle sizes, for example an order in which a comparison between the radiuses of smallest enclosing circles predominates, and in which a comparison between the inverses of the radiuses of circumscribed circles only comes into play in case of smallest enclosing circle equality. For example, let T and T' be two triangles.
- the triangles ordering illustrated in these figures is noted ⁇ ⁇ and is based on two concepts: the smallest enclosing circle and the circumscribed circle.
- the smallest enclosing circle is the circle featuring the smallest radius and enclosing the points of the triangle.
- the circumscribed circle is the circle through the three points of the triangle. Given a triangle T, the radius of its smallest enclosing circle is noted R B ( T ) and the radius of its circumscribed circle is noted R C ( T ) .
- FIG. 2 illustrates a triangle T together with its enclosing circle and circumscribed circle. They are such that R B ( T ) ⁇ R C ( T ) because the triangle features an obtuse angle.
- FIG. 4 illustrates two acute triangles ordered through their respective R B radius.
- FIG. 5 illustrates two obtuse triangles. They feature the same smallest enclosing circle radius R B (dotted lines) so they are ordered through R C radius.
- This ordering is very subtle since it combines, into a simple formula, the shapes of triangles (acute vs. obtuse) as well as the dimensions. It is designed to set a lower rank to "small and flat" triangles, which are more likely to occur on the unknown separating surface to be recognized.
- the determined open triangulated surface violating consistency of a labelling of the tetrahedral meshing with two given labels thus selects, among the candidates, an open surface violating consistency of the labelling.
- the determining S50 also penalizes a high rank in the lexicographic order, the determining S50 thereby operates a selection among the candidates and selects, among those violating consistency of the labelling, an open surface minimal, or at least tending to be minimal, for the lexicographic order.
- the labelling is a labelling of the tetrahedral meshing with two given labels.
- a label is assigned to each tetrahedron of the tetrahedral meshing.
- the outside region that is the region not meshed by the tetrahedral meshing may also be assigned a label.
- the labels may for example be colors, such that each tetrahedron has a given color. Other types of labels may be used.
- the determining S50 may comprise assigning the labels.
- the determining S50 may comprise, before exploring the candidates, assigning the same label to all the tetrahedrons.
- the exploring and the penalizing may then use the labelling as a variable. That is, when determining S50 a second open triangulated surface being minimal in the lexicographic order among the open triangulated surfaces violating the labelling, the determining S50 may comprise iteratively modifying the labels of the tetrahedrons.
- the determining S50 may for example iteratively attempt to ensure consistency of the labelling by visiting triangles of the tetrahedral meshing and iteratively changing labels of tetrahedrons for adapting the labelling to ensure consistency. When doing so, the determining S50 may iteratively detect each triangle for which this adaptation cannot be performed and may identify/reward such a triangle as being part of the second open triangulated surface to determine.
- Each triangle of the tetrahedron may be associated with a specification specifying whether the triangle belongs to the first open triangulated surface or not.
- the specification may specify how the triangle respects or violates the labelling.
- a triangle specified as belonging to the first open triangulated surface is known to respect consistency of the labelling only if it separates two tetrahedrons having different labels.
- a triangle specified as not belonging to the first open triangulated surface is known to respect consistency of the labelling only if it separates two tetrahedrons having the same label.
- the determining S50 may comprise assigning to each triangle such a specification. Contrary to the labelling, the specifications of the triangles do not form a variable of the determining S50, i.e. the specifications are not modified by the determining. In other words, they form a constraint thereof.
- the specification may be a permutation.
- the permutation is either the identity, or a switch (also referred to as "swap").
- Each triangle of the first open triangulated surface is assigned with the switch/swap, which indicates that the triangle respects the consistency of the labeling only when it separates two tetrahedrons having different labels ( i.e. the triangle switches the labelling).
- Each triangle of the first open triangulated surface is assigned with the identity, which indicates that the triangle respects the consistency of the labeling only when it separates two tetrahedrons having the same label ( i.e. the triangle preserves the labelling).
- the determined second open triangulated surface violates consistency of the labelling, which means that each triangle of the open triangulated surface does not respect consistency of the labelling. Requiring that the second open triangulated surface to determine violates consistency of the labelling ensures that the second open triangulated surface has the same boundary as the first open triangulated surface, as further explained hereinbelow.
- the determining S50 explores candidate open triangulated surfaces with this requirement, so that the determining S50 selects a candidate open triangulated surface satisfying this requirement. There exists such a candidate since the first open triangulated surface already satisfies the requirement as its triangle all switch the labelling. The determining S50 then finds another candidate that satisfies the requirement with the additional requirement that the candidate must minimize the lexicographic order.
- the determining S50 may comprise assigning a label to each tetrahedron of the tetrahedral meshing, e.g. by assigning the same label to each tetrahedron. Still before the exploring and the penalizing, the determining S50 may also comprise assigning a permutation to each triangle of the tetrahedral meshing, e.g. by assigning the switch permutation to each triangle of the first open surface and the identity permutation to the remaining triangles.
- the exploring and the penalizing may comprise visiting triangles of the tetrahedral meshing according to a decreasing rank of the triangle order.
- the exploring and the penalizing may then comprise discarding visited triangles having a high rank of the triangle order as long as consistency of the labelling can be preserved.
- the visiting of the triangles implements the exploring of the candidate triangulated surfaces. Each time a triangle is visited, the triangle is either discarded or kept. This amounts to say that exploring a given candidate triangulated surface corresponds to a particular manner of visiting and keeping or discarding triangles of the tetrahedral meshing.
- the visiting visits the triangle according to a decreasing rank of the triangle order. In other words, the triangle of the tetrahedral meshing having the highest rank in the triangle order, that is the triangle having the largest size among the triangles of the meshing, is visited first. Then the triangle having the second highest rank is visited, and so on, the triangle having the lowest rank being the latest visited. Each time a triangle is visited, the triangle is either kept, i.e. it is selected as belonging to the determined second open triangulated surface, or discarded, i.e. it will not be part of the determined second open triangulated surface.
- the penalizing discards the visited triangles having a high rank of the triangle order. This allows to avoid the determined second open triangulated surface to feature large and/or flat triangles, or at least, this allows to avoid the determined second open triangulated surface to feature too many large and/or flat triangles. That being said, the penalizes discards these high-ranked triangles as long as consistency of the labelling can be preserved while discarding the triangles. This allows to discard the high-ranked triangles when it is certain that it is still possible to determine a second open triangulated surface violating consistency of the labelling without using these high-ranked triangles, by using triangles with lower ranks. Thereby, an explored triangle is rewarded, i.e.
- the discarding may comprise, for each visited triangle, assessing whether the triangle violates or respects consistency of the labelling. Then, the discarding may comprise, for each visited triangle, if the triangle violates consistency of the labelling, either rewarding the triangle, either adapting the labelling to respect consistency. Rewarding the triangle means adding the triangle to the determined second open triangulated surface, i.e. the triangle will ultimately, at the end of the exploring and penalizing, belong to the determined second open triangulated surface. This manner of performing the discarding allows to avoid systematically rewarding triangles violating consistency of the labelling: sometimes, if an explored triangle violates consistency of the labelling, the labelling can be adapted to respect consistency, so that the triangle need not be rewarded.
- the discarding may comprise, for each visited triangle, for example after the assessing of whether the triangle violates or respects consistency of the labelling:
- a connected component is a set of tetrahedrons such that, for each couple of tetrahedrons in the set, there exists a path of adjacent tetrahedrons in the set, i.e. tetrahedrons two-by-two sharing a triangle, and of the triangles shared by them, such that the path connects the tetrahedrons of the couple, and each triangle in the path respects consistency of the labelling.
- the method only rewards triangles violating the labelling consistency when these triangles separate tetrahedrons of a same connected component. This allows to reward triangles violating the labelling consistency only when labelling consistency cannot be reestablished by switching the labelling of the connected components separated by the triangle. This further permits to reward low-ranked triangles, since they are explored in last/late, such that when they are explored and violate the labelling consistency, there is no possibility of reestablishing consistency by performing a switch.
- the dual graph of the tetrahedral meshing can be used.
- the concept of dual graph of a tetrahedral meshing is known per se.
- the dual graph is a graph having nodes and arcs connecting nodes, where each node represents a tetrahedron in the tetrahedral meshing, and where each arc connects two nodes if the tetrahedrons represented by the two nodes share a triangle, the share triangle being then represented by the arc.
- An additional node is added for representing the outside region, each triangle facing the outside region thereby being representing by an edge in the dual graph.
- the triangles may notably be visited by associating to each arc of the dual graph the weight of its corresponding triangle in the triangle order and by visiting the arcs of the dual graph in the decreasing order of their weights, starting with the arcs connecting triangles to the outside region.
- This implementation allows to determine an open triangulated surface forming a skin of a portion of a structure of a real scene represented, at least partially, by a 3D point cloud, given one or more loops given as boundary of the portion.
- the 3D point cloud may include a very large number of points, may be incomplete (e.g. with one or more holes), and/or may be error prone. Yet this implementation still succeeds.
- the 3D point cloud may feature density variations, e.g. that can be very important. Yet this implementation still succeeds. It may also feature outliers, which are low density sets of wrong points randomly spread in space. Yet this implementation still succeeds.
- the smoothness of the structure's real shape and/or of the real scene may be unknown. Yet this implementation still succeeds.
- this implementation computes the second open triangulated surface from such a point cloud regardless of the density variations, in a reasonable computing time.
- This implementation is thus robust and does not involve tuning parameters.
- FIG. 6 shows a flowchart of this implementation of the method.
- this implementation comprises the providing S10 of a 3D point cloud.
- the 3D point cloud is provided by a user.
- This implementation further comprises computing S20 a 3D Delaunay tetrahedral meshing of the 3D point cloud. Since the point cloud includes three-dimensional points, the resulting Delaunay meshing is made of adjacent tetrahedrons, each tetrahedron being bounded by four triangles.
- This implementation further comprise defining the lexicographic order, including providing, e.g.
- this implementation further comprises providing the first open triangulated surface with a given boundary.
- the first open surface may be directly provided by a user.
- the providing of the first open surface may comprise providing S30 one or more loops which define the given boundary.
- the providing S30 of the one or more loops may be carried out by a user or automatically, as previously discussed.
- the implementation may then comprise determining S40, given the one or more loops, a first open surface made of a set of triangles in the Delaunay tetrahedral mesh and whose boundary matches the given boundary.
- the implementation comprises identifying the dual arcs of the first open triangulated surface, representing triangles of the first open triangulated surface. This implementation comprises then, based on the dual graph and its ordered arcs and based on the identified first open triangulated surface dual arcs, a reduction algorithm which implements the determining S50 of a second open triangulated surface representing a skin of a portion of the structure, thereby yielding a reconstructed open surface representing the skin.
- the first open triangulated surface is only constrained by its boundary and, in general, fails to go through the densest point area.
- the algorithm determines S50 an optimal surface (i.e. with respect to minimizing the lexicographic order, thereby going through the densest point area) with the same boundary/boundaries.
- the reduction algorithm discards arcs of the dual graph in such a way that the remaining dual arcs define a triangulated open surface that is the reconstructed second open triangulated surface representing the skin.
- This implementation notably applies to 3D reconstruction applications where there is a need to produce open surfaces, that is surfaces with boundaries.
- this implementation provides, upon user action or automatically, a boundary, made of one or several polygonal loops (i.e. closed polylines) with vertices in the point cloud.
- This implementation allows to produce then an open mesh whose vertices belong to the point cloud and whose boundary coincides with the given loops.
- This implementation notably allows to mesh open surfaces representing terrains from LIDAR data and, since this implementation is capable of control the boundaries, it allows to enforce common boundaries among adjacent terrain area. Applications of this implementation will be discussed in further details hereinafter.
- a 1-cycle in a 3-dimensional Delaunay complex is a union of loops, or in other words a set of edges such that each vertex belongs to an even number of edges.
- a 0-cycle in a 2-dimensional Delaunay complex is just an even number of vertices.
- FIG.s 7 to 9 illustrate with one dimension less, that is in a dimension 2 Delaunay complex, the implementation of the method, that finds a lexicographic minimal chain for a given boundary. In this 2D illustration, the total order on edges consists in comparing their length.
- FIG. 7 shows a loop A provided at S30, the loop A consisting in four vertices, illustrated by large bullet points on FIG. 7.
- FIG. 7 shows a loop A provided at S30, the loop A consisting in four vertices, illustrated by large bullet points on FIG. 7.
- the chain ⁇ 0 is illustrated by the dotted lines on FIG. 8 .
- An algorithm for implementing this determining step S40 will be further discussed hereinafter, although alternative suitable algorithm, for example alternative suitable combinatorial geometric algorithms, can also be used, as previously explained.
- the chain ⁇ is illustrated by the dotted polylines lines on FIG. 9 .
- An algorithm implementing this determining step S50 will be further discussed hereinafter.
- Any simplex spanned by a subset of A is called a face of ⁇ .
- a simplicial complex K is a collection of simplices such that every face of a simplex of K is in K and the intersection of two simplices of K is either empty either a common face.
- the dimension of a simplicial complex is the maximal dimension of its simplices. Simplicial complexes generalize graphs since graphs could be defined as 1-dimensional simplicial complexes. A d-dimensional simplicial complex is said pure if it is of dimension d and any simplex has at least one coface of dimension d.
- K be a simplicial complex of dimension at least d.
- C d ( K ) be the vector space over the field of d -chains in the complex K.
- the d -chain A can be viewed as a set of simplices: for a d -simplex ⁇ and a d -chain A, one can write that ⁇ ⁇ A if the coefficient for ⁇ in A is 1. With this convention, the sum of two chains corresponds to the symmetric difference on their sets.
- a d -simplex ⁇ can also be interpreted as the d -chain containing only the d -simplex ⁇ .
- â i means the vertex a i is deleted from the array.
- a chain with zero boundary is called a cycle.
- a lexicographic total order on d -chains can be defined as follows.
- This total order naturally extends to a strict total order ⁇ lex on C d ( K ).
- the lexicographic order on the triangulated surfaces of the tetrahedral meshing is induced by the triangle order on the triangles of the tetrahedral meshing, which is a total order on the triangles of the tetrahedral meshing.
- This implementation contemplates the following problems.
- a d-pseudomanifold is a pure d-dimensional simplicial complex for which each (d - 1)-face has exactly two d-dimensional cofaces.
- the dual graph of a d-pseudomanifold M is the graph whose vertices are in one-to-one correspondence with the d-simplices of M and whose edges are in one-to-one correspondence with (d-1)-simplices of M: an edge e connects two vertices v 1 and v 2 of the graph if and only if e corresponds to the (d-1)-face with cofaces corresponding to v 1 and v 2 .
- a strongly connected d-pseudomanifold is a d-pseudomanifold whose dual graph is connected.
- the labelling is in the present implementation a coloring, although other similar labelling could be used instead.
- An augmented graph being a triple ( V , ⁇ , ⁇ ) where ( V , ⁇ ) is a (possibly disconnected) graph, and ⁇ : ⁇ ⁇ ⁇ ⁇ b, r ⁇ associates to each edge of the graph a permutation in ⁇ ⁇ b, r ⁇ .
- the augmented graph obtained by keeping only edges in ⁇ ' is denoted ( V , ⁇ ', ⁇ ) in which the permutation assignment is the restriction of ⁇ to ⁇ '.
- a label assignment is a map L : V ⁇ b r that associates a label ( i.e. a color) to each node of the graph.
- the graph may then be also said to respect consistency of the labelling.
- a set of edges ⁇ ⁇ ⁇ is called a valid cut of ( V, ⁇ , ⁇ ) if ( V, ⁇ ⁇ , ⁇ ) admits a satisfying assignment. Since ⁇ is a trivial valid cut, the set of valid cuts is not empty.
- Another problem can be formulated to solve problem 1.2.
- ⁇ + ⁇ 0 is the set of edges that connect vertices in a possibly empty set B ⁇ V with vertices in its complement V ⁇ B.
- ⁇ min is the lexicographic minimal valid cut of ( V , ⁇ ' ⁇ ⁇ e* ⁇ , ⁇ ) if and only if one of the two following case occurs:
- L is again a satisfying assignment ( V, ( ⁇ ' ⁇ ⁇ e* ⁇ ) ⁇ min' ⁇ ) .
- ⁇ min be the lexicographic minimum valid cut of ( V, ⁇ ', ⁇ ) and ⁇ min * the lexicographic minimum valid cut of ( V, ⁇ ' ⁇ ⁇ e *), ⁇ ) Since ( V, ( ⁇ ' ⁇ ⁇ e* ⁇ ) ⁇ min , ⁇ ) admits a satisfying assignment and ⁇ ' ⁇ ( ⁇ ' ⁇ ⁇ min ) ⁇ E ⁇ ⁇ e * ⁇ ⁇ min * the same assignment satisfies ( V, ⁇ ' ⁇ ( ⁇ ⁇ ⁇ min ) , ⁇ ) . ⁇ ' ⁇ ⁇ min is then a valid cut for ( V, ⁇ ', ⁇ ) , so that
- the reduction algorithm implementing the determining S50 is now discussed.
- the algorithm is presented in the general context of problems 1, 2 and 1.1 to 1.3 discussed above. Its application to the dual graph G of the Delaunay tetrahedral meshing computed at S20, with the application ⁇ that associates to each edge belonging to the first open triangulated surface dual graph the swap permutation and to each other edge the identity permutation.
- the algorithm takes as input a set of edges sorted in decreasing order according to the lexicographic order.
- the operation SwapCC on the representative r of a connected component consists in swapping the label of all its elements, as in Remark 2 or in Lemma 2.
- Proposition 1 Algorithm 1 computes the solution of Problem 1.3 for a given augmented graph ( V , ⁇ , ⁇ ). Assuming the input set of edges ⁇ are sorted, the algorithm has 0 ( n ⁇ ( n )) time complexity, where n is the cardinal of ⁇ and ⁇ the inverse Ackermann function.
- One possibility for that is to implement the connected components by pairs of elementary connected components, with a map from elementary connected components, one "blue” and one "red” towards the pair containing it.
- the modified MakeSet operation creates then a such pair with one vertex in the blue component and one empty red component.
- the modified FindSet operation apply the standard FindSet operation and then return the pair containing it using the map.
- the modified UnionSet operation between two paired connected components applies the standard UnionSet operation on the respective "blue” and “red” elementary connected components and pairs the results in the new paired connected component.
- SwapCC consists then merely in swapping the "blue” and the "red” elementary connected components inside the paired connected component.
- This manner of implementing the operations is convenient in practice as it uses the standard disjoint set data structure as a black box.
- the map from elementary connected components toward the pair containing it may add a log ( n ) factor to the complexity.
- the n ⁇ ( n ) complexity of the disjoint set data structure can be preserved if one is willing to adapt its implementation.
- MakeSet creates a connected component with one element which is its own parent with the ident attribute associated to this relation.
- This attribute means that the color of the vertex, which is its own representative, is "blue”.
- the FindSet operation need then to compose the permutation along the path, including the last relation from the representative to itself, that defines the color of the representative with respect to "blue”: this determines the actual color of the node by applying this composition to the color "blue”.
- UnionSet associates one representative to its parent with the attribute, ident or swap, required by their respective colors. SwapCC only swap the color of the representative, i.e. apply a swap to the attribute associated to the relation to itself as its own parent.
- Algorithm 1 is now further discussed with reference to FIG.s 10 to 32 , which show an example algorithm 1 running on the dual graph of a Delaunay triangulation. Each figures shows the algorithm together with an illustration of the current step of the algorithm on the dual graph, the current step being circled where appropriate in the figures..
- FIG. 10 shows a graphical representation of the Delaunay triangulation.
- the edges represent the triangles, and the bullet points connected by the edges represent the tetrahedrons.
- Edges ⁇ represent the triangles each separating one tetrahedron from the outside of the triangulation.
- the remaining edges are numbered from 7 to 1, which corresponds to a decreasing rank of the triangle order: edge 7 represents the triangle with the higher rank in the triangle order, edge 6 represent the triangle with the second higher rank in the triangle order, and so on.
- Edges shown as large lines, that is edges 7, 5 and 2 represent the triangles of the first open triangulated surface.
- Algorithm 1 will find the lexicographic minimal path of triangles which as the same endpoints as the path formed by the triangles represented by edges 7, 5 and 2.
- FIG.s 11 and 12 illustrate the dual graph of the triangulation illustrated on FIG. 10 .
- the dual graph is superimposed with the triangulation, and on FIG. 12 , the dual graph is shown alone. Edges of the dual graph are labelled with the same number than their corresponding triangles illustrated on FIG. 10 .
- Edges 7, 5 and 2 representing the triangles of the first open triangulated surface, are emphasized in FIG. 13 , where they are shown as thick lines. This representation will be omitted in the next figures. Edges 7, 5 and 2 have been assigned the switch/swap permutation. The other edges have been assigned the identity permutation.
- FIG. 14 illustrates the first step of the algorithm, where all the vertices of the dual graph are assigned with the same label "b". The other label is "r" and is assigned to no vertex yet. These vertices are represented by the large bullet points in FIG. 14 .
- the solution ⁇ min which ultimately will contain all the dual edges of the triangles of the determined second open triangulated surface, is initialized as empty.
- FIG. 15 illustrates the next step of the algorithm.
- the edges ⁇ are first visited. They all respect the labelling consistency, as they all have been assigned the identity permutation while the vertices are at this step all assigned with label "b".
- the connected components of the dual graph separated by these edges are therefore merged, and these edges are not added to ⁇ min .
- FIG.s 16 and 17 illustrate the next step of the algorithm.
- Edge 7 is now visited.
- Edge 7 is identified as violating consistency of the labelling, as Edge 7 is assigned with the swap permutation while it separates two tetrahedrons having the same label.
- Edge 7 separates two tetrahedrons belonging to two different connected components.
- the label of one of the two connected components is thus swapped, and then the two connected components are merged.
- the swapping result in the labelling of vertices with the label "r", these vertices being illustrated by small grey bullet points in FIG. 17 , and in the next figures.
- Edge 7 is not added to ⁇ min . In other words, Edge 7 is discarded.
- FIG.s 18 and 19 illustrate the next step of the algorithm.
- Edge 6 is now visited.
- Edge 6 is identified as violating consistency of the labelling, as Edge 6 is assigned with the identity permutation while it separates two tetrahedrons having different labels. Furthermore, Edge 6 separates two tetrahedrons belonging to two different connected components. As shown on FIG. 19 , the label of one of the two connected components is thus swapped, and then the two connected components are merged. Edge 6 is not added to ⁇ min . In other words, Edge 6 is discarded.
- FIG.s 20 and 21 illustrate the next step of the algorithm.
- Edge 5 is now visited.
- Edge 5 is identified as violating consistency of the labelling, as Edge 5 is assigned with the swap permutation while it separates two tetrahedrons having the same label. Furthermore, Edge 5 separates two tetrahedrons belonging to two different connected components. As shown on FIG. 21 , the label of one of the two connected components is thus swapped, and then the two connected components are merged. Edge 5 is not added to ⁇ min . In other words, Edge 5 is discarded.
- FIG.s 22 and 23 illustrate the next step of the algorithm.
- Edge 4 is now visited.
- Edge 4 is identified as violating consistency of the labelling, as Edge 4 is assigned with the identity permutation while it separates two tetrahedrons having different labels. Furthermore, Edge 4 separates two tetrahedrons belonging to a same connected component. As shown on FIG. 23 , Edge 4 is thus added to the solution ⁇ min (represented by a cut of Edge 4 in FIG. 23 ). In other words, Edge 4 is rewarded.
- FIG. 24 illustrates the next step of the algorithm.
- Edge 3 is now visited.
- Edge 3 is identified as not violating consistency of the labelling, as Edge 3 is assigned with the identity permutation while it separates two tetrahedrons having the same label.
- Edge 3 is thus not added to the solution ⁇ min . In other words, Edge 3 is discarded.
- the two tetrahedrons separates by Edge 3 are already in a same connected component.
- FIG.s 25 and 26 illustrate the next step of the algorithm.
- Edge 2 is now visited.
- Edge 2 is identified as violating consistency of the labelling, as Edge 2 is assigned with the swap permutation while it separates two tetrahedrons having the same label. Furthermore, Edge 2 separates two tetrahedrons belonging to a same connected component.
- Edge 2 is thus added to the solution ⁇ min (represented by a cut of Edge 2 in FIG. 26 ). In other words, Edge 2 is rewarded.
- FIG.s 27 and 28 illustrate the next step of the algorithm.
- Edge 1 is now visited.
- Edge 1 is identified as violating consistency of the labelling, as Edge 1 is assigned with the identity permutation while it separates two tetrahedrons having different labels. Furthermore, Edge 1 separates two tetrahedrons belonging to a same connected component. As shown on FIG. 28 , Edge 1 is thus added to the solution ⁇ min (represented by a cut of Edge 1 in FIG. 28 ). In other words, Edge 1 is rewarded.
- FIG. 29 illustrates the end of the Algorithm: all the edges have been visited.
- FIG. 30 shows the output, which consists in the rewarded edges 4, 2 and 1.
- FIG.s 31 and 32 show the corresponding output triangles 4, 2 and 1. The output triangles are shown as thick black lines on FIG.s 31 and 32 , and form the determined second open triangulated surface.
- the Delaunay complex Del(V) of a (finite) set of points V ⁇ R 3 is the simplicial complex made of tetrahedra, triangles, edges and vertices of the Delaunay triangulation of the convex hull of the point set, dual of the Voronoi diagram of V in Euclidean space . It is known (because of the nerve Theorem applied to the collection of full dimensional Voronoi cells for example) that the Delaunay complex Del(V) is contractible. It has trivial 1-homology, which means that any 1-cycle in Del(V) is the boundary of some 2-chain in Del ( V ).
- a set of edges A of the Delaunay complex such that each vertex of the complex is shared by an even number of edges in A, for example 0 or 2, this example occurring in many practical applications.
- the algorithm looks for a set of triangles ⁇ 0 such that any edge in A is shared by an odd number of triangles in ⁇ 0 (for example 1) and any edges not in A is shared by an even number of triangles in ⁇ 0 (for example 0 or 2).
- the fact that the Delaunay complex has trivial 1-homology means precisely that whatever A is chosen, a such ⁇ 0 exists.
- Figure 8 illustrates a solution ⁇ 0 given a loop A in dimension 2.
- Del(V) be the Delaunay complex of a set V of vertices in such that no pair of vertices in V have same z coordinate.
- the lower link llk Del ( v ) ( a ) of a vertex a ⁇ V is the simplicial complex made of all simplices in the link lk Dei (v) ( a ) whose vertices have all their z coordinates smaller than the z coordinate of a .
- FIG. 33 shows the link 332 of a vertex 330, and the lower link 334 of vertex 330, with an axis indicating the z-coordinate.
- each tetrahedron of Del(V) containing a gives rise to a triangle in lk Dei (v) ( a )
- each triangle of Del(V) containing a gives rise to an edge in lk Dei (v) ( a )
- each edge of Del(V) containing a gives rise to a vertex in lk Dei (v) ( a ).
- These triangles or edges belong to llk Del ( v ) ( a ) if and only if all their vertices have z coordinates smaller than the z coordinate z a of a .
- FIG. 34 illustrates the lower link LL of a vertex a .
- a topological space and in particular a simplicial complex is said contractible if it has the homotopy type of a point.
- a contractible simplicial complex K is connected, which means that any pair of vertices in K can be connected by a path of edges in K .
- the algorithm implementing S40 integrates the fact that, in a Delaunay complex, the lower link of a vertex is either empty, either contractible.
- Lemma 3 Let Del(V) be the Delaunay complex of a set of vertices V in .
- z be the d th coordinate of a point in . Assume that no pair of vertices in V have same z.
- a vertex ⁇ with z coordinate ⁇ z is in the lower link of a if and only if its Voronoi cell has a common boundary with the Voronoi cell of a and ⁇ z ⁇ z a . It follows that the Voronoi cell of a is contained in the half space containing a and bounded by the plane bisector of a and ⁇ . It follows that a such vertex exists if and only if the vertical half-line starting at a and pointing toward negative z is not contained in the Voronoi cell of a . One sees that the vertical half-line starting at a and pointing toward negative z is contained in the Voronoi cell of a if and only if a has minimal z in V and the first statement is proven.
- the lower envelope of the Voronoi cell of a is the union of the facets dual to a vertex in the lower link of a .
- this lower envelope is not empty, its projection on the horizontal plane is a homeomorphism with a convex two dimensional polytope.
- This lower envelope is therefore contractible. Since the lower link of ⁇ is the nerve of the set of facets in the lower envelope of the Voronoi cell the second statement in the lemma follows then from the nerve theorem.
- Zero chains or cycles are denoted by the set theoretic expression " ⁇ " instead of the algebraic "0" because the practical implementation manipulates sets rather than vectors.
- the addition modulo 2 is denoted by "+” to avoid the somewhat heavy disjoint union notation.
- a ⁇ A + e stands for the set theoretic expression: A ⁇ ( A ⁇ ⁇ e ⁇ ) ⁇ ( A ⁇ ⁇ e ⁇ ) .
- ⁇ 0 is initialized as the empty set and A is initialized as A 0 . If A is empty, the algorithm returns. If not, the procedure GetHighestVertex( A ) returns a, the highest vertex in A, which is the one with the maximal z coordinate.
- A Since A is a cycle, its boundary is zero by definition. As illustrated on FIG. 35 , It follows that an even number of edges of A connects a with a set V a of vertices in the lower link llk Del ( v ) ( a ) of a in Del ( V ) returned by the procedure GetAdjacentVertices( a , A ).
- V a is a subset of vertex of the lower link llk Del ( V ) ( a ). This set is not empty and, since A is a cycle, it has even cardinality.
- GetLowerLink( a , Del ( V )) returns the 1-skeleton LL of the lower link of a in Del(V), in other words the graph whose vertex and edges are vertex and edges of the lower link, as illustrated on FIG. 35 .
- Procedure GetLowerLink( a , Del ( V )) returns the 1-skeleton LL of the lower link of a in Del(V), in other words the graph whose vertex and edges are vertex and edges of the lower link, as illustrated on FIG. 35 . Since no two vertex of Del(V) have same z coordinates, one can define the following total order on edges in Del(V). Each edge in Del(V) can be represented by the ordered pair of vertex ( v 1 , v 2 ) such that z ( v 1 ) > z ( v 2 ).
- Sorting all edges along this order costs O ( n log n ) where n is the size of Del(V). Observe that the set of vertices of the lower link llk Del ( V ) ( a ) of a vertex a is in one-to-one correspondence with the set of ordered pairs whose first vertex is a. Theses pairs in the form ( a ,.) are contiguous in the ordered set.
- sorting all triangles along this order costs O ( n log n ) where n is the size of Del(V).
- n is the size of Del(V).
- the set of edges of the lower link llk Del ( V ) ( a ) of a vertex a is in one-to-one correspondance with the set of ordered triples whose first vertex is a .
- These triples in the form ( a ,.,.) are contiguous in the ordered set of triples.
- each call to the procedure GetLowerLink costs log ( n ) to find the entries in the ordered sets of edges and triangles, and the vertices and edges of llk Del ( V ) ( a ) follow then contiguously in the respective ordered sets whose sizes are upper bounded by n .
- the total cost of GetLowerLink is then O ( n log n ).
- A is given as a set of edges, i.e. a set of vertex pairs, then it is possible to associate to each vertex the set of its neighbors in time linear with respect to the size of A. since, along the updates of A in the algorithm, each edge may only be inserted once, maintaining theses neighbors relation costs at most O ( n log n ). Since GetAdjacentVertices( a , A ) is called at most once for each vertex a ⁇ V , and the sum of all numbers of neighbors of all vertices is twice the number of edges (each edge connect two vertices), the total cost of GetAdjacentVertices is bounded by O ( n log n ) .
- This procedure requires as a precondition that the number of vertices in V a is even and that the graph LL is connected.
- m the size of the lower link LL.
- a possibility would be to compute a path for each pair of vertices, for example by Dijkstra Algorithm in O ( m log m ) or by a recursive exploration in O ( m ) (the paths do not need to be minimal) and then add (modulo 2) all these paths.
- this solution is likely to be efficient in practice, it would not give an optimal worst case complexity.
- ⁇ E V a
- Algorithm 3 is described by the following pseudo-code
- Algorithm 3 is similar to Algorithm 2, but with one dimension less.
- the procedure GetHighestVertex( V ) is not necessary here.
- the for loop iterating from the vertex of highest rank, m' - 1, to the vertex with rank 1 gives the required highest vertex that belongs to V, where the highness z is replaced by the rank of the vertex.
- the for loop ends at rank 1, because, since at each step V contains an even number of vertices and Vertex( rank ) is the highest vertex in V, this highest vertex cannot be Vertex(0).
- each call to the procedure Vertex( rank ) costs O (1).
- the evolving set of vertex V is represented by an array of booleans of size m, where entry k indicates the membership to V of the vertex with rank k, the membership predicate a ⁇ V costs O (1).
- algorithms 1 and 2 may implement steps S40 and S50 of the method.
- the lexicographic order is based on a total order on the triangles, i.e. the triangle order, which is now further discussed.
- R B ( ⁇ ) the radius of the smallest enclosing ball and R C ( ⁇ ) the radius of the circumcircle of a 2-simplex ⁇ .
- This first application allows to mesh a partial acquisition, i.e. to determine an open triangulated surface representing a skin of a portion of a structure of a real scene where the real-scene is partially represented by a point cloud resulting from a partial acquisition, e.g. featuring holes.
- the first application lies in contexts where physical constraints in real-world scenes (e.g. occlusions and/or optical properties of surfaces) can lead to partial and incomplete 3D acquisitions. In these contexts, it can be challenging to offer an accurate and hole-free mesh reconstruction.
- the method invention guarantees hole-free meshes and offers high quality reconstructions, even for noisy acquisitions.
- the one or more loops are defined by a user as previously discussed.
- FIG.s 38 to 40 illustrate an example of the first application.
- the real scene is a building scene, comprising a cathedral structure.
- the 3D point cloud represents partially the structure of the cathedral. It is to be understood that the cathedral is an example, and that the first application also applies to any other building scene.
- the 3D point cloud shown in FIG. 38 comprises 943K points.
- the user interactively picks an ordered list of points that roughly defines the boundary of the desired surface.
- the list user-picked points are represented by large bullet points on FIG. 38 .
- the boundary might then be oversampled, such that all edges on the boundary are present in the 3D triangulation of points.
- FIG. 39 shows the oversampled boundary from the user-picked list of points.
- the method then efficiently meshes the point cloud under the imposed boundary, i.e. determines an open triangulated surface forming the skin of a portion of the cathedral ( i.e. a delimitation between the walls of the cathedral and the air outside and inside the walls.
- FIG. 40 shows the determined skin, obtained in 18 seconds.
- FIG. 41 shows two other examples of open triangulated surfaces determined at step S50 by the method under imposed boundaries.
- FIG. 42 A second application of the method where the previously-discussed implementation has been used is now discussed, with reference to FIG. 42 .
- This second application lies in the context of large scene meshing, as well as parallelizing and updating large scene meshes.
- Modern acquisition techniques can generate precise and copious amount of measurements.
- the storage capacity - RAM or disk - required to hold all measurements at the same time can become a limiting factor to meshing these large scenes.
- a standard or cheap computer is limited by a 16 Gigabytes memory, which is may be too small for point clouds having more than 10M point.
- the method circumvents these difficulties by using spatial tiling to divide acquisitions into smaller chunks. Furthermore, the method guarantees that the junction between two meshes on neighboring tiles is common. Indeed, the method allows specify the cycle bounding the resulting open triangulated surface. In other words, the one or more loops provided at step S30 ( e.g. by a user or automatically, as previously discussed) allow to divide the scene in smaller chunks having watertight common junctions.
- local mesh edits can be performed efficiently, by defining the boundary of the region affected by changes and recomputing the open triangulated surface inside the affected region.
- the rest of the open triangulated surface does not require to be recomputed and the junction with the affected region will correspond exactly with the rest of the open triangulated surface.
- FIG. 42 illustrate the second application.
- FIG. 42 shows a large point cloud representing a terrain, meshed into two parts thanks to the definition of boundaries (i.e. loops).
- the loops are represented by bullet points in FIG. 42 .
- an open triangulated surface is determined at step S50 for each region/parcel of the terrain defined as having a given loop as boundary. Imposing the boundary by defining the loops creates a common junction between the two meshes shown on FIG. 42 .
- the method is computer-implemented. This means that steps (or substantially all the steps) of the method are executed by at least one computer, or any system alike. Thus, steps of the method are performed by the computer, possibly fully automatically, or, semi-automatically. In examples, the triggering of at least some of the steps of the method may be performed through user-computer interaction.
- the level of user-computer interaction required may depend on the level of automatism foreseen and put in balance with the need to implement user's wishes. In examples, this level may be user-defined and/or pre-defined.
- a typical example of computer-implementation of a method is to perform the method with a system adapted for this purpose.
- the system may comprise a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program comprising instructions for performing the method.
- GUI graphical user interface
- the memory may also store a database.
- the memory is any hardware adapted for such storage, possibly comprising several physical distinct parts (e.g. one for the program, and possibly one for the database).
- FIG. 43 shows an example of the system, wherein the system is a client computer system, e.g. a workstation of a user.
- the system is a client computer system, e.g. a workstation of a user.
- the client computer of the example comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, a random access memory (RAM) 1070 also connected to the BUS.
- the client computer is further provided with a graphical processing unit (GPU) 1110 which is associated with a video random access memory 1100 connected to the BUS.
- Video RAM 1100 is also known in the art as frame buffer.
- a mass storage device controller 1020 manages accesses to a mass memory device, such as hard drive 1030.
- Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing may be supplemented by, or incorporated in, specially designed ASICs (application-specific integrated circuits).
- a network adapter 1050 manages accesses to a network 1060.
- the client computer may also include a haptic device 1090 such as cursor control device, a keyboard or the like.
- a cursor control device is used in the client computer to permit the user to selectively position a cursor at any desired location on display 1080.
- the cursor control device allows the user to select various commands, and input control signals.
- the cursor control device includes a number of signal generation devices for input control signals to system.
- a cursor control device may be a mouse, the button of the mouse being used to generate the signals.
- the client computer system may comprise a sensitive pad, and/or a sensitive screen.
- the computer program may comprise instructions executable by a computer, the instructions comprising means for causing the above system to perform the method.
- the program may be recordable on any data storage medium, including the memory of the system.
- the program may for example be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- the program may be implemented as an apparatus, for example a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. Method steps may be performed by a programmable processor executing a program of instructions to perform functions of the method by operating on input data and generating output.
- the processor may thus be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
- the application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired. In any case, the language may be a compiled or interpreted language.
- the program may be a full installation program or an update program. Application of the program on the system results in any case in instructions for performing the method.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306324.3A EP3996051A1 (en) | 2020-11-04 | 2020-11-04 | 3d reconstruction of a structure of a real scene with an open surface |
JP2021175501A JP2022075560A (ja) | 2020-11-04 | 2021-10-27 | 開表面を用いた現実のシーンの構造の3d再構成 |
US17/519,373 US11776214B2 (en) | 2020-11-04 | 2021-11-04 | 3D reconstruction of a structure of a real scene with an open surface |
CN202111310725.7A CN114445588A (zh) | 2020-11-04 | 2021-11-04 | 具有开放表面的真实场景的结构的3d重建 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306324.3A EP3996051A1 (en) | 2020-11-04 | 2020-11-04 | 3d reconstruction of a structure of a real scene with an open surface |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3996051A1 true EP3996051A1 (en) | 2022-05-11 |
Family
ID=74180916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP20306324.3A Pending EP3996051A1 (en) | 2020-11-04 | 2020-11-04 | 3d reconstruction of a structure of a real scene with an open surface |
Country Status (4)
Country | Link |
---|---|
US (1) | US11776214B2 (zh) |
EP (1) | EP3996051A1 (zh) |
JP (1) | JP2022075560A (zh) |
CN (1) | CN114445588A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114882189B (zh) * | 2022-05-26 | 2023-03-24 | 广州市城市规划勘测设计研究院 | 一种三维场景灾变可视化展示方法 |
CN115578538B (zh) * | 2022-10-17 | 2023-06-23 | 北京世冠金洋科技发展有限公司 | 三维场景生成方法、装置及电子设备和存储介质 |
CN117537826B (zh) * | 2024-01-09 | 2024-03-22 | 中国民航大学 | 一种可感知雷暴态势的航迹规划方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3723052A1 (en) * | 2019-04-10 | 2020-10-14 | Dassault Systèmes | 3d reconstruction of a structure of a real scene |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6184897B1 (en) * | 1997-01-15 | 2001-02-06 | International Business Machines Corporation | Compressed representation of changing meshes and method to decompress |
US6307551B1 (en) * | 1997-01-15 | 2001-10-23 | International Business Machines Corporation | Method for generating and applying changes in the level of detail of a polygonal surface |
US6377865B1 (en) | 1998-02-11 | 2002-04-23 | Raindrop Geomagic, Inc. | Methods of generating three-dimensional digital models of objects by wrapping point cloud data points |
FR3039685A1 (fr) * | 2015-08-01 | 2017-02-03 | Inst Nat Rech Inf Automat | Traitement de donnees geometriques avec approximation isotopique dans un volume de tolerance |
EP3502929A1 (en) * | 2017-12-22 | 2019-06-26 | Dassault Systèmes | Determining a set of facets that represents a skin of a real object |
-
2020
- 2020-11-04 EP EP20306324.3A patent/EP3996051A1/en active Pending
-
2021
- 2021-10-27 JP JP2021175501A patent/JP2022075560A/ja active Pending
- 2021-11-04 CN CN202111310725.7A patent/CN114445588A/zh active Pending
- 2021-11-04 US US17/519,373 patent/US11776214B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3723052A1 (en) * | 2019-04-10 | 2020-10-14 | Dassault Systèmes | 3d reconstruction of a structure of a real scene |
Non-Patent Citations (5)
Title |
---|
COHEN-STEINER DAVID ET AL: "Lexicographic optimal chains and manifold triangulations", 3 December 2019 (2019-12-03), pages 1 - 102, XP055798946, Retrieved from the Internet <URL:https://hal.archives-ouvertes.fr/hal-02391190/document> [retrieved on 20210426] * |
F. CAZALSJ. GIESEN: "Delaunay triangulation based surface reconstruction", EFFECTIVE COMPUTATIONAL GEOMETRY FOR CURVES AND SURFACES, 2006, pages 231 - 276 |
JIACHANG XU ET AL: "Attitude Optimization Control of Unmanned Helicopter in Coal Mine Using Membrane Computing", MATHEMATICAL PROBLEMS IN ENGINEERING, vol. 2020, 11 May 2020 (2020-05-11), CH, pages 1 - 11, XP055758699, ISSN: 1024-123X, DOI: 10.1155/2020/3820896 * |
LO, S. H: "Parallel Delaunay triangulation in three dimensions", COMPUTER METHODS IN APPLIED MECHANICS AND ENGINEERING, vol. 237, 2012, pages 88 - 106, XP028505080, DOI: 10.1016/j.cma.2012.05.009 |
SONG DAHU ET AL: "A fast surface reconstruction algorithm based on Delaunay", COMPUTER SCIENCE AND INFORMATION PROCESSING (CSIP), 2012 INTERNATIONAL CONFERENCE ON, IEEE, 24 August 2012 (2012-08-24), pages 981 - 984, XP032241185, ISBN: 978-1-4673-1410-7, DOI: 10.1109/CSIP.2012.6309020 * |
Also Published As
Publication number | Publication date |
---|---|
JP2022075560A (ja) | 2022-05-18 |
US20220139038A1 (en) | 2022-05-05 |
CN114445588A (zh) | 2022-05-06 |
US11776214B2 (en) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11776214B2 (en) | 3D reconstruction of a structure of a real scene with an open surface | |
Hilton et al. | Reliable surface reconstruction from multiple range images | |
US11151784B2 (en) | 3D reconstruction of a structure of a real scene | |
US7023432B2 (en) | Methods, apparatus and computer program products that reconstruct surfaces from data point sets | |
Khatamian et al. | Survey on 3D surface reconstruction | |
Lafarge et al. | A hybrid multiview stereo algorithm for modeling urban scenes | |
US20140125663A1 (en) | 3d model shape analysis method based on perception information | |
Sheen et al. | Transformation of a thin-walled solid model into a surface model via solid deflation | |
CN105701857A (zh) | 3d建模的对象的纹理化 | |
CN113593037A (zh) | 一种德劳内三角化表面重建模型的建立方法及其应用 | |
Sreevalsan-Nair et al. | Contour extraction in buildings in airborne lidar point clouds using multiscale local geometric descriptors and visual analytics | |
EP3825956A1 (en) | Processing a 3d signal of a shape attribute over a real object | |
US10783707B2 (en) | Determining a set of facets that represents a skin of a real object | |
Yu et al. | Computing 3d shape guarding and star decomposition | |
Ryde et al. | Voxel planes: Rapid visualization and meshification of point cloud ensembles | |
US20200273241A1 (en) | Method and device for hole filling of a point cloud | |
Forbes et al. | Deep autoencoders with aggregated residual transformations for urban reconstruction from remote sensing data | |
Hong et al. | Surface reconstruction of 3D objects using local moving least squares and KD trees | |
Weiss et al. | Bisection-based triangulations of nested hypercubic meshes | |
Ranjan et al. | Union of spheres (UoS) model for volumetric data | |
Sassais et al. | Methods to generate numerical models of terrain for spatial ENC presentation | |
Beksi | Topological Methods for 3D Point Cloud Processing | |
Van-Sinh | 3D Modeling of elevation surfaces from voxel structured point clouds extracted from seismic cubes | |
Talotta et al. | Floorplan generation from noisy point cloud | |
Song et al. | Level Line Trees on 2D Voronoi Diagrams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN PUBLISHED |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20221111 |
|
RBV | Designated contracting states (corrected) |
Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |