Defining and Orienting Surfaces in Complex Point Cloud Datasets
Transcription
Defining and Orienting Surfaces in Complex Point Cloud Datasets
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING, TEXAS A&M UNIVERSITY, TECHNICAL REPORT TAMU-CS-TR-2009-4-1 Breaking the Fog: Defining and Orienting Surfaces in Complex Point Cloud Datasets Keith E. Biggers, Caleb G. Wells, and Glen N. Williams Abstract— We present a vertex clustering algorithm for the purposes of surface determination and normal estimation that can help provide detailed visualizations of complex point cloud datasets. The proposed method combines a novel bucket and layer spatial partitioning scheme, along with an iterative process for surface subdivision based on the optimization of quality-of-fit statistics. Our approach can efficiently decompose and approximate a dataset through the local classification and fitting of surface regions. The algorithm uses a standard least squares approach combined with Delaunay-based triangulation for developing these approximated surfaces. To demonstrate the effectiveness of our approach, we execute the algorithm on several real-world datasets scanned from complex environments. We perform an analysis of the various techniques presented and provide a comparison of our approach with the standard k-nearest neighbors method commonly used for solving this problem. Through this performance analysis we show that as the complexity of the datasets increase, the performance and accuracy of our proposed approach continues to function at an effective level. Index Terms—Vertex clustering, surface determination, normal estimation, layered surfaces, uncertain environments. 1 INTRODUCTION With the portability and increasing use of imaging sensors, efficient and accurate reconstruction from detailed scans of complex environments has introduced a new set of challenges for developing both visualizations and virtual environments. As the size and underlying surface complexity contained in these datasets increases, correctly clustering point samples into distinct surfaces becomes an increasingly more difficult and expensive task. Figure 1 shows two example environments containing such complexity. Note the number of distinct surfaces and the proximity in which they exist in this environment. Many different challenges can arise and interfere with accurately distinguishing between different surface elements. However, performing an analysis of the data in an organized fashion to produce accurate approximations is a vital component of the overall surface reconstruction process. Correctly defining and distinguishing between different surface components is important, because without this identification, algorithms cannot construct a correct surface representation. Decomposing a dataset into a set of surfaces, provided only the spatial information a set of discrete point samples offers, requires a methodology that can numerically distinguish between different surface components. In addition, the algorithm must also be able to develop an accurate continuous approximation of these identified surface samples. One commonly used approach relies on a k-nearest neighbors search combined with a least squares fitting [19]. While this approach works very well in practice, it is time consuming and can encounter difficulty under certain conditions. In this paper we provide an alternative solution that attempts to address these concerns. The primary contributions of this paper are: • A systematic methodology for incrementally decomposing complex point cloud datasets consisting of many surfaces • An alternative approach for efficiently defining and orienting these disparate surfaces • A technique for dealing with uncertainty in areas of high surface complexity In the following sections we begin by describing the complexity of the problem in detail along with the related work. We present our solution and implementation details, example results, and a comparative analysis showing the effectiveness of our proposed K. Biggers and G. Williams are with the Department of Computer Science and Engineering, Texas A&M University, College Station, TX, 77843-3112. E-mail: [email protected]; [email protected]. approach. Finally, we conclude with the current research state and intended future direction for this work. 2 BACKGROUND Surface reconstruction is the classical problem where, given a set P of unstructured three-dimensional points (i.e., a point cloud assumed to sample an unknown surface or set of surfaces), generate an approximated surface representation S that characterizes these point samples. This representation may involve a single continuous surface or many disparate surface patches depending on the underlying dataset and reconstruction algorithms chosen. Researchers have performed extensive work in this area resulting in many different approaches. Some of the popular methods include Delaunay triangulation [3, 4, 6, 12, 15] and implicit surfaces [1, 9, 11, 19, 20, 23]. In addition, there are many algorithms that support the surface reconstruction process such as surface segmentation [5, 17] and feature recognition [18, 21]. Aside from surface reconstruction, there are also other alternatives for visualizing surfaces in a continuous manner [25, 30]. Whether it is for surface generation or simply rendering, one element that many of these approaches require is an accurate normal estimation describing the general orientation of the point samples. While some speciality scanners are capable of automatically generating these normal approximations, this is an exception and not the rule. Thus, these algorithms must either implement their own approaches or depend on commonly used methods performed as part of a pre-processing step for generating this necessary information. There are several approaches researchers typically rely on for defining and orienting surfaces. The most widely used process establishes the k-nearest neighbors for a point of interest p, and then performs a least squares fitting of this neighborhood (i.e., typically through the use of principal component analysis) [19]. The resulting values characterize a least squares plane approximating the representative points. These approximations are collected across the entire dataset and then used to form a neighbor graph. A general assumption about the model (i.e., that all points belong to a continuous surface and a normal directed upwards from the highest point will always orient outwards from the surface), followed by a graph traversal can correctly orient the normal approximations (i.e., determine inside or outside directionality). This approach uses the normal of the least squares plane to approximate the orientation of each data point. DEPARTM MENT OF COMPUT TER SCIENCE AND D ENGINEERING, TEXAS A&M UNIV VERSITY, TECHNIICAL REPORT TAMU-CS-TR-2009-4 4-1 As thee underlying suurfaces the poinnt clouds represent become more invoolved (e.g., due to multiple objeects, partially vissible/hidden objects, etc.) e and the unnderlying surfacces become moore complex (e.g., due to high variatiion in curvaturee, fine grained detail, d etc.), these apprroaches begin too break down duee to the sheer coomplexity of the enviroonment and unnderlying assum mptions that the algorithms must makke to accuratelyy capture the detail. d Figure 1 shows two example environments e coontaining these various complexxities. They can resultt in voids and varying point resolutions, r and ambiguous regions within the dataset where an algoriithm cannot easily segregate surfaces. Many M of the preeviously discusssed approaches can c run into difficulty under these uncertain conditionss. 3 Fig. 1. Examples of complex environ nments. Pauly et al. proovide an extensio on to this approaach that weighs all of the t points in the neighborhood based b on their diistance to the point of interest i p to alloow closer neighb bors to provide more influence to the approximation [24]. Mitra et all. also provide ann extension to thhis appproach that takes into account the effects of neighborhood n sizze, curvvature, samplinng density and noise, and atteempts to find an optimal neighborhoood size [22]. Amenta et al. present a Voro onoi-based methhod that finds the t furtthest Voronoi vertex (called the pole and approximates the t norrmal) and this appproach works for “noise-free”” datasets [2]. Dey D andd Goswami provvide an extension n to this Voronooi approach, callled the Big Delaunay Ball B algorithm, which w works for noisy samples and a c sphere s of the Dellaunay tetrahedrron uses the bounding circumscribing whiich must meet a criterion regard ding the overall size s of the radii (so ( it caan adequately haandle noise) [13]]. Alexa et al. prresent a Moving g Least Squares approach whiich locaally approximates the surface with w polynomials and a projectiion procedure [1]. Theeir approach adeequately handles noisy input, but b has been extended by Fleishman ett al. to incorporaate robust statistiics [16]. Fleishman’s extension iterratively identiffies and discarrds outliers (which cann alter the overall fit of the surfacce), and then reffits the surface for a better overall apprroximation. Boubekeur et al. a present Volum me-Surface Treees [8] which usee a com mbination of octtrees and quadtrrees for hierarchhically clusteringg a poinnt cloud, and appproximates a surface s using a Partition of Unnity schheme combined with w a Bloomen nthal polygonizattion [7]. While the t oveerall theme of Booubekeur’s papeer is similar to ouurs, the underlyiing techhniques we pressent function qu uite differently. Finally, F Dey et al. provide a good coomparison study y using several of the previoussly disccussed approacches executed on various daatasets and undder diffferent noise condditions [14]. These approachhes all work veery well in pracctice, but typicaally makke the assumpttion that the su urface is both closed c and clearrly deffined (i.e., easilyy distinguishablee by simply traciing the surface). In adddition, general k-nearest k neighb bor approaches can be very tim me connsuming on largeer datasets. Whille these approachhes can be sped up usinng a spatial daata structure [26 6] or technique such as the one o described by Sankkaranarayanan et al. [27], as the dataset siize incrreases, this cann become a tim me consuming process since the t algoorithm must exaamine each pointt and its neighboors found. Regioons of varying v point deensities or areas where multiplee surfaces lie cloose together can fail to develop an accu urate approximattion as well. Theese appproaches rely heavily on acccurate underlyying point clooud reprresentations, annd noise or otheer complexities can greatly affe fect resuults. Finally, ann accurate valuee for k must bee defined and thhis valuue relies heavilyy on the underly ying details of thhe dataset itself (as ( disccussed in [22]). RFACE DEFINITIO ON AND ORIENTA ATION SUR Our approoach removes the t single closeed surface assuumption and attempts to t address the ovverall problem inn a very differennt manner. It assumes great surface complexity andd attempts to provide an organizedd and iterative process p for idenntifying and ressolving this complexitty. In the follow wing sections, we w explain our approach, a its underlyingg data structuress, and the overaall iterative proceess used for defining the t surfaces. Wee developed thiss process in succh a fashion that it cann perform as a pre-processing p s step and supportt any of the reconstrucction and renderiing algorithms presented p in Secttion 2. 3.1 Approach Overrview Our approoach begins wiith a fixed view wpoint and view direction (either useer-defined or it defaults to paraallel to the prim mary vertical axis) whicch defines a plaane that can be fit with a two-ddimensional grid. This bucket grid alloows for organizeed and efficient data access, and through an adapttive refinementt process, ourr algorithm decomposses these bucketts around the complexity c of thhe data. By breaking down d buckets innto smaller sub--buckets, the alggorithm can perform a more precise annalysis on smalller regions contaaining fewer data poinnts. In addition, each grid squaare gets subdivvided in the vertical direction d throughh the clustering of points into layers (i.e., slices of an a object’s surfaace) and each laayer gets fit withh a series of planes (i.e., the surface approximationss). The collectioon of these locally classified and fit elements charaacterizes an oveerall surface approximaation. Similar to t buckets, the algorithm alsoo iteratively refines theese layers to achhieve a more exaact approximation over time. As the alggorithm developss and refines theese layers, certainn layers will represent “hidden surfacess” from the initiaally defined view wpoint. The algorithm a perforrms this refinem ment process in a stepwise fashion annd continues unntil certain connditions are met. We have experimennted with seeveral methodds for perforrming the decompossition and we will w present each shortly. The ouutput of this algorithm is a set of orieented point sampples for use as input i to any approach that requires suuch data. In the early stages thee output is a coarse appproximation, butt after several reefinement steps, the result is a more fine-grained appproximation that t better fitss the data. Ultimatelyy the user decidees the resulting resolution r since they control how long the refinement executes and whhen the process has reached an acceptaable level througgh the definition of a fitting thresshold. 3.2 Data Structures s Our approoach uses a fouur level hierarchhy for organizinng data (see Figure 2 for a simple example). The most primitivee geometric elements are the points thhemselves whichh get passed as input to the algorithm (as shown in thhe top left of Figgure 2). Each diiscrete point contains standard spatial informattion with no defined interconneectivity. In orderr to allow for orgganized and effiicient access across all of the dataset we w use the aforeementioned buckketized grid. mn that extends inn an infinite Each buckket can be visuallized as a colum direction above a and below w the defined grid square and alll points that reside insside a column are stored in that particular bucket. By breaking the t dataset down into a hierarchhy of buckets (aas shown in the top rigght of Figure 2), it allows quick access a to the sett of points in any given region of the dataset. d The oveerall size and reesolution of DEPARTMENT OF COMP PUTER SCIENCE AND A ENGINEERIN NG, TEXAS A&M UNIVERSITY, U TECH HNICAL REPORT TAMU-CS-TR-2009-4-1 2 F 2. Data hiera Fig. archy (points, buc ckets, layers, pla anes and triangle es). Fig. 4. Iterative fitting process (tolerance e colors based on n R =0.75). thhis bucket gridd is adaptive and a adjusts durring the refineement p procedure. Within eachh bucket, the algorithm ordeers the points and e establishes various logical group pings (i.e., vertex clusters). We refer too these groupinngs as layers. Eaach layer attemppts to characterrize a s slice of the real-w world surface fro om which the pooints sample. Finnally, thhe algorithm brreaks layers do own into a seriees of fitting plaanes. T These fitting plannes attempt to accurately a approoximate the geom metry thhe point sampless represent (as sh hown in the botttom left of Figurre 2). D Decomposing a layer into a serries of fitting planes allows a more m a accurate approxiimation of areass of high curvatture and along sharp s e edges. These plaanes are easily triangulated to provide an acccurate representation off the actual apprroximated surfacces (as shown inn the b bottom right of Figure F 2). Thee decompositionn centers on thee notion of a defined d delta-z value. For F each buckett, the algorithm performs a lineear search and breaks the t points into layers l by findingg vertical gaps (i.e., ( through a simple distance calculation) between diifferent groupinggs greater than the valuue of delta-z (seee Figure 3 for a two-dimensioonal example). This process assumes that t the user also provides a value for delta-z m, but similar too the grid size, we w will present as inputt to the algorithm an exam mple automated method m for apprroximating a ‘good’ value later in Sectiion 5. The algoorithm begins byy performing this initial layer decompposition for eachh bucket and all points p are groupped into layers. Each laayer is then fit with w a single leaast squares plane to provide a startingg approximationn of the surfacce. Our method uses linear regressiion, but an apprroach based on principal compoonent analysis would work w equally weell. Various statiistics are determ mined to gauge the oveerall fitting quaality of each pllane to the datta points (i.e., standardd error, correlatiion coefficient, and a R2). This iniitial step in the algorithhm results in a coarse c approximation of the dataaset (as shown in the top of Figure 4).. Note that at thhis stage only a single s plane is a buckets are fit to eaach layer (repressented with a uniique color) and all of equaal size. Thus, thee resulting approximation is veryy coarse and in most caases does not acccurately fit the detail of the datasset. Givven this coarse approximation a annd the various fitting fi statistics determiined, the algorithhm can then inccrementally refinne the surfaces to betteer meet user speccifications. Withh each step, it suubdivides areas of poorr fitting qualityy into smaller regions r and theen refits those regions to improve the overall approxim mation. We havee chosen to use the R2 value v of the fittiing planes as thee determining faactor for when to split planes because it provides a goood approximatioon of how well the model fits its dataa values. The algorithm a could rely on other fitting statistics equally as well. Thhe user can deefine a fitting tolerancce; otherwise, the t algorithm uses u a standard default value represenntative of a ‘goood’ fit. The refinnement of both a bucket and a layer coontinues until thhe algorithm hass met this toleraance condition, and at that point the bucket b and layeer refinement sttops. Figure 4 shows the t difference beetween the initiaal coarse approxximation using the fittiing planes and thhe approximatioon after a series of refinement steps. Inn the left side of o the figure, eaach layer is assiggned a unique color annd a layer may consist of multiiple fitting planees all rendered with thee same color. Noote that in the boottom diagrams,, the algorithm has subbdivided both thee buckets and layyers around the complexity of the dataa resulting in muuch smaller and more precise fitttings. We will present the refinement approaches a the algorithm a uses next. We have investiigated several different approaches for subdividing a layer annd we illustratee each in Figuree 5. The first approacch breaks each laayer down into a set of fitting pllanes based on a defineed number of pllanes and by deccomposing the layer into a set of equaally sized spatiall intervals. A plaane is then fit too each of these 3.3 3 Determination Proces ss T process beggins by organizin The ng the data baseed on the previoously d defined grid. Thhis process assum mes that the useer provides an innitial resolution of thiss grid as an inpu ut parameter, buut we will presennt an e example automatted method for approximating a ‘ggood’ starting values laater in Section 5. The algorithm m then places each e point inside the b bucket in which its projected po osition lies (i.e., the point lies innside thhe column). It then sorts the points p within eaach bucket baseed on thheir vertical position to provid de an efficient top to bottom seearch s strategy. At thiss point the iniitial organizatioon of the datasset is c complete and thee decomposition process can beggin. F 3. Two-dimen Fig. nsional example of delta-z and fittting elements. DEPARTM MENT OF COMPUT TER SCIENCE AND D ENGINEERING, TEXAS A&M UNIV VERSITY, TECHNIICAL REPORT TAMU-CS-TR-2009-4 4-1 inteervals. We will refer to this ap pproach as the ‘distance’ ‘ methood. Thee second apprroach works in n a similar fashion f except it deccomposes the layyer into equal in ntervals based onn the total numbber of point p samples. We will refer to t this approachh as the ‘densitty’ metthod. The final approach functtions in a very different mannner. Thiis approach breaaks the planes down d based on maximizing m the R2 valuue. For each layyer, the algorithm m uses the pointt furthest from the t fittiing plane as a diividing line betw ween two new fiitting planes in the t atteempt to optimizee the average R2 value across the t layer. We will w refeer to this apprroach as the ‘R ‘ 2’ method. In I each of theese appproaches, the alggorithm adds on ne additional plaane per refinemeent stepp and completelly refits the layeer with each steep taken. While in manny cases these thhree approachess will function very similarly theere are instances wheere, depending on data poinnt distribution or undderlying surface detail, one approach has advanttages over anothher. Thuus, we perform a comparative an nalysis of the different methods in Secction 4. Fig. 5. Layer refinem ment approaches s. At each step inn the process a layer’s overalll fitting quality is w averagee of the R2 valuues deteermined throughh the use of a weighted for a layer’s planes (referred as WR RS). We use the following f equatiion for finding this valuue: W WRS = ∑ n ∑ i ⋅ R n i i ( (1) In this t equation Ri is the R2 value for a particular plane and ni is the t num mber of points thhe plane fits. Ussing this weighteed average ensurres thatt the algorithm takes into accou unt both the quaality of fit and the t undderlying numberr of points bein ng fit before deeciding whether to deccompose a layerr further. This layer refinementt continues untill a layeer’s WRS value is i above the defiined tolerance. To subdivide a bucket, the algorithm usess a similar WRS WR calcculation over alll planes containeed within a buckket. If the averaage is greater g than the tolerance, all refinement r stopss on layers withhin thatt bucket and onn the bucket itsself. If the valuue is less than the t toleerance, then the algorithm breaaks the bucket down d into a set of subb-buckets, reorgaanizes point disttributions, deterrmines new layeers, andd then refits all elements. The user can definne the subdivisiion dim mension (i.e., thhe decompositiion size of thee bucket) or the t algoorithm uses a quadtree q approacch by default. Thus T as the buckket getss subdivided, layers and fittin ng planes are regenerated r to fit smaaller regions, ressulting in more precise p fittings. The greatest complexity of th his overall proccess is in how to deteermine the orderr of refining bucckets and layers after a the algorithhm devvelops this initiaal approximation n. Our current appproach allows for f refiinement in one of o two fashions.. First, it allowss for an interactiive refinemennt where a user can control thee refinement inn a stepwise fashion. At A each step the user can decide whether to subddivide all of the buckeets or refine all of the layers below the deffined fitting tolerance. The other alternnative is a semi--automated apprroach where the algoriithm refines thee layers in seveeral stages, folllowed by a bucket reffinement for anyy region where the t collective fittting quality is below the t tolerance. Thhis approach alllows the algorithhm to make several atttempts at subdivviding and fittinng layers, and if an accurate solution is not found durring these steps, the algorithm decomposes d maller spatial regions and re-evaaluates. The the bucket into a set of sm user also has h the ability too control the fittting value at anyy given time in the proocess and adjust it up or down depending d on thhe quality of the resultts they desire. It is importantt to note that the defined tolerance value is an impportant element to t the overall prrocess. This value deppends greatly onn the details of the t underlying dataset d (i.e., point denssity, noise, and surface complexxity). Setting thhis value too high or loow could greatlly affect both thhe results obtainned and the number of refinement steeps required to find f an acceptabble solution. Based on our experience we make the geeneral assumptioon that a R2 value of 0.70 0 characterizzes a ‘good’ fit, but this value will depend heavily onn the dataset dettail and the user’’s desired level of o accuracy. The algoriithm uses this vaalue as the standdard default, but the user can alter the value v the algorithhm uses. The leeast squares fittiing algorithm geenerates a best fit plane by minimizinng the sum of the squared error e for the daata samples provided. It disregards surface orientaation, and thuss once the refinemennt step is compleete, the algorithhm needs to corrrectly orient the develooped approximattions. All of the datasets we usee contain the original sccan information which helps wiith this orientatioon problem. The algorrithm can easilyy determine a close c approximaation of the original sccanner location from f this inform mation, and can use u a simple dot produuct between the normal approxim mation and the vector from the scanneer to the data point to determinee if the general orientation o is correct orr not. If this vaalue is greater than zero then the normal orientationn is correct, othherwise the algoorithm needs to reverse the vector. Iff the original sccan information is not availablle, then this mes much moree complex. We will w discuss orientationn process becom this issue in more detail in Section 5. At the completion of this step, all normals should be corrrectly oriented outwards from the surfaces they repreesent. At thee end of a refineement step, the algorithm trianggulates each fitting plaane to provide an a approximate surface visualizzation to the user. A usser can use this triangulation t as a means of validdation and it can help drive the user interaction i proceess. To triangulate a fitting plane, thee algorithm rotaates it (along with w its accompaanying data points) suuch that its norm mal is parallel to the vertical axiss and it then projects thhe points onto the t plane passinng through the origin. This reduces thhe complexity of the problem byy allowing the algorithm a to perform a simple two-dim mensional Delauunay triangulatiion of those points. Byy reducing the triangulation to t only two-dim mensions, it allows foor very efficiennt construction. However, if the points representeed by the planne do not consstitute a heightt map, this approach will generate an a invalid trianggulation. Once triangulated, t the algorithm lifts and rootates the trianguulation back to the original orientationn resulting in a three-dimennsional triangullation. This triangulatiion represents thhe defined surfacce and the algoriithm can use it to help adjust a the normaal values for bettter visual qualityy. Similar to a standardd Gouraud shadding, the algorithhm can adjust each e point’s normal baased on the averrage of the norm mal values contaained by the surroundinng triangles. The overall o refinemennt process contiinues until it meets m one of two condiitions: first, all layers l are abovee the user defineed tolerance value, or second, if the usser is satisfied with w the results and a chooses to stop thhe process. Thee right hand side of Figure 4 shows the progress of o the refinement process afterr both a single and several steps (green implies the planes p are above the tolerance vaalue and red 1 and 11 show some examples of the final implies beelow). Figures 10 output of this t process run on two real-worrld datasets. DEPARTMENT OF COMP PUTER SCIENCE AND A ENGINEERIN NG, TEXAS A&M UNIVERSITY, U TECH HNICAL REPORT TAMU-CS-TR-2009-4-1 3.4 3 Implementation W implementedd the previously described approoach entirely in C++ We a and used the CGAL library [10] for connstructing the twod dimensional Delaaunay triangulattions. All effortss were made to make m thhis code as opttimal as possiblle. As discussedd, the process iss not e entirely automateed and can invo olve some user innteraction. How wever, w have structurred this interacttion such that thhe user is helpinng to we g guide the processs and is not requ uired to control all execution deetails. T interaction allows for a mo This ore correct solutiion upon terminnation o the process. We of W assume the user is generallly familiar withh the u underlying surfaaces the point cloud represennts and capablle of d determining wheen a close approx ximation exists. 4 RESULTS Inn this section we w present som me sample resuults of our apprroach e executed on a vaariety of datasetts (in both size and complexity)) and u using a variety of parameters. Th he datasets choseen provide a range of s simple to compllex, as well as both closed annd open surfacees. In g general, we willl evaluate two primary factorrs across all off the d datasets. These factors f include efficiency e and accuracy with respect too the underlyingg dataset compllexity. The overrall goal is to obtain o thhe most accuratee approximation n in as few steps and fitting plannes as p possible. We executedd the proposed method on an Intel I Pentium D 3.2 G GHz CPU withh 2GB of mem mory. The algoorithm performs all c computations on the CPU and usses the GPU soleely for the purpoose of rendering. 4.1 4 Example Runs W chose four datasets We d to run through t the algoorithm. We obtaained thhe first two daatasets (the Bun nny and Buddhha models) from m the S Stanford 3D Scanning Reposito ory [28] and both b represent single s c closed surfaces. These providee easier test caases and providde an a adequate baselinne for the algorithm. The thirdd and fourth dattasets represent real-w world complex environments consisting c of many m d different objectss with no guaraantees that surfaaces will be cloosed. T These datasets are a LIDAR scan ns of real-world simulated dissaster a areas (shown in Figure 1) capturred at Texas A& &M’s Disaster City® C [29]. The latter two t datasets pro ovide a much more m challengingg test f for the algorithhm consisting of many diffeerent surface tyypes, o occluded surfacees, and varying point densities. Thus, the colleection o these various datasets provid of des a full spectrrum of potentiaal use c cases for this alggorithm, and wee feel representss an accurate tesst for e evaluation purpooses. Table 1 sho ows the general statistics for eacch of thhe datasets usedd. Table 1. Example Datase ets Dataset Bunnny Budddha Wood Pile Rubblee Pile Scan ns 10 0 53 3 3 3 Total Points P 362,2272 2,944,,912 314,8863 2,307,,174 Each dataset connsists of a series of scans and ourr algorithm inferrs the E o original scanner locations (for orientation purpposes) based onn the inncluded registration information n. For testing each e of the daatasets we chose a standard seet of p parameters to usse across all three methods. Thhe parameters chhosen a as follows: are Table 2. 2 Initial Parametters Parameterr Start Grid Size Delta-z Algorithm Iteraations Layer Stepps Subdivision Size S Tolerancee Grid Rotation (X X,Y,Z) Bunny 10 0.1 6 6 2 0.7 (0,0,0) Buddha 35 0.1 6 8 2 0.7 (π/4, π/4, 0) Wood 10 0.05 6 12 2 0.7 (0,0,0) Rubble 50 0.05 6 6 2 0.7 (0,0,0) In order to evaluaate the effectivveness of each approach we determiined the total WR RS (as defined inn Section 3.3) accross the entire dataset. This value takees into account both the qualityy of the fit, as well as the number of points includedd in the fit. Havving a high R2 value when w fitting a plane p to four pooints is a triviaal process, but obtaininng a high value when fitting a plane p to 50 poinnts implies the algorithhm found a muuch more suitabble fit. This weighted w value allows us u to better gaugge the overall fitt quality while also a taking into accountt the amount off data being fit.. In addition, we w provide the numberr of data pointss that get discarrded at each step due to the inabilityy to fit a planne. The rationalle behind this issue will be discusseed in more detaiil in Section 5. 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 1 Bunny 2 3 Buddha 4 5 Wood 6 Rubble W at each ste ep using the dista ance method. Fig. 6. WRS Table 3. Discarded Pointss Using Distance e Method Iteration 1 2 3 4 5 6 Bunny B 5 53 129 385 3 3,686 1 12,060 Budddha 222 2622 7066 3,4999 42,005 423,6669 Wood 63 287 945 4,007 17,322 43,975 Rubble 546 2,390 7,481 21,736 52,940 92,513 g of the WRSS values over eaach step in the Figuure 6 shows a graph refinem ment procedure using the distaance method. Note N that the overall fitting quality generally increaases with each step. Table 3 t number of points discarded at the completioon of each step shows the and thiss quantity also inncreases with eacch step. This is a side effect of the subddivision process and varies betw ween datasets. Noote in the sixth iterationn of the rubble pile examplee, the total poiints discarded represennts only 4% of the entire dataseet. However, in the wood pile this perrcentage is moree substantial. Thhis could be atttributed to the overall complexity off this particularr dataset combiined with the fashion in which the disstance method divides d points witthin a layer. 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 1 Bunny 2 3 Buddha 4 5 Wood W at each ste ep using the denssity method. Fig. 7. WRS 6 Rubble DEPARTM MENT OF COMPUT TER SCIENCE AND D ENGINEERING, TEXAS A&M UNIV VERSITY, TECHNIICAL REPORT TAMU-CS-TR-2009-4 4-1 Table 4. Discarded Points P Using Den nsity Method Iteration 1 2 3 4 5 6 Bunny 5 11 25 76 1,101 3,328 Buddha B 22 96 385 2,770 19,141 66,250 Woood 63 2733 8677 3,2883 6,2772 7,3999 Rubble 546 1,586 4,393 10,993 20,381 32,090 Figure 7 showss a graph of the WRS values oveer each step in the t refiinement proceduure using the density d method. These results are a veryy similar to thoose obtained wiith the distance method. Tablee 4 shoows the number of o points discard ded at the complletion of each steep. Notte that the densiity approach disccards significanttly fewer points as com mpared to the distance d approacch and their fittiing accuracies are a veryy similar. This can be attribu uted to the factt that the density metthod divides poiints into equal sized s groupings based on the tootal num mber of points inn a layer. This en nsures a balanceed split resultingg in few wer discarded poiints. 1.0 0 0.9 9 0.8 8 0.7 7 0.6 6 0.5 5 0.4 4 0.3 3 0.2 2 0.1 1 0.0 0 4.2 M Method Compa arison In order to t gauge the efffectiveness of our o proposed appproach, we now provvide a comparattive analysis wiith the k-nearesst neighbors (referred as KNN) technnique. As previiously discussedd, k-nearest neighbors represents one of the most coommonly used methods m for solving thhis problem. Thuus, we feel this iss an adequate evvaluation for judging ouur approach. We im mplemented our k-nearest neighbbors approach based b on the efficient octree o implemenntation describedd by Samet et al. [26]. After some expperimentation we w chose a value v of 10 for f k. Our implemenntation iterates thhrough each point in the dataseet, finds the closest neeighbors, and thhen performs a least l square fittiing of those points. We W did not im mplement cachinng or any othher speedup mechanism ms. Table 7 shows a coomparison betw ween the runtim mes of our proposed approaches witth the k-nearestt neighbors appproach. The runtimes on our three approaches a include the time required r for triangulatiing the fitting pllanes, whereas the t k-nearest neighbor times simply reeflect the time to query withh no triangulattion of the elements. These results clearly demonstrate the increased efficiency our approoach provides. Note N that for the rubble pile exxample, our approach is on average foour times faster than the k-neareest neighbor approach. Tablle 7. Total Runtim me Comparison Dataset Bunny Buddha W Wood Pile R Rubble Pile 1 Bunny 2 3 Buddha 4 5 Wood 6 Rubble 2 Fig. 8. WRS at each h step using the R method. 2 T Table 5. Discarde ed Points Using R Method Iteration 1 2 3 4 5 6 Bunny 5 35 116 444 3,783 12,545 Buddha B 22 194 728 3,872 48,345 353,760 3 Woood 63 2800 9411 4,1111 18,3666 41,5000 Table 6. Total Runtimess Dataset Bunny Buddha Wood Pilee Rubble Pile Distance 85s 705s 57s 426s Density 76s 710s 58s 429s R2 78s 723s 52s 406s Finally, Table 6 shows the total runtimes for eaach method. Theese runntimes are baseed on performin ng six iterationns and using the t parameters as definned in Table 2. Each E iteration inncludes a series of a bucket subd divisions, and thhe triangulation of layeer refinements and all new/altered n elem ments. We feel th hese runtimes arre very respectabble in regards r to the ovverall fitting vallues obtained. Overall, O the density appproach seems too function bestt due to its higgh quality resuults com mbined with the fact that it discaards the fewest nuumber of points. Density 76s 710s 58s 429s R2 78s 723s 52s 406s KNN K 8 87s 1,4459s 159s 1,7719s Next we will w evaluate the quality of fit. Fiigure 9 shows a graph comparingg the final accurracies of our approach with thoose from the k-nearest neighbors n approoach. This graph also uses the WRS W value. A plane wass fit to each k-nearest neighborhhood and WRS values v were measured across the dataset similar to thhe approach usedd in Section 4.1. 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 Rubble 546 2,317 7,206 21,474 52,316 93,250 Figure 8 showss a graph of the WRS values oveer each step in the t a refiinement proceduure using the R2 method. Thesee results again are veryy similar to thhose obtained using the distaance and density metthods. Table 5 shhows the numbeer of points discaarded at each steep. Sim milar to the disttance method, this t approach also discards moore poinnts due to the fashion f in whicch layers are divvided into unevven poinnt groupings, and a the inability y to fit a planee to these isolatted poinnts. Distance 8 85s 7005s 5 57s 4226s Distance Density R2 KNN Bunny Budd dha Wood Rubble Fig. 9. Finnal WRS comparrison for each daataset. It is im mportant to poinnt out that for thhe test cases the accuracy of our approoach is at least on o par with that of the k-nearest neighbors. The overaall runtimes of ouur approach are significantly bettter. Figures 10 and 11 show some of the t results of ouur approach and it should be q approxim mations and clear that it does indeed generate good quality does so inn a timely manneer. 5 DISC CUSSION As we have h shown thrrough the previious results, ouur proposed approach works well on both b simple and complex c environnments. The approach has several advvantages over exxisting techniquees. First and foremost is the efficiencyy of the algorithhm. As shown, it i can break down andd reconstruct a laarge and compleex dataset in veryy little time. The seconnd advantage is the manner in which w the algorrithm adapts and decom mposes around the t complexity of o the dataset. This T helps to DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING, TEXAS A&M UNIVERSITY, TECHNICAL REPORT TAMU-CS-TR-2009-4-1 improve efficiency as well as reduce the memory footprint by allowing areas capable of being fit with a single larger fitting plane to avoid being fit with a number of smaller patches. Finally, the coarse to fine refinement fashion in which this method functions allows an initial approximation, and then increased fidelity is incorporated with each step in the refinement process. The proposed approach could provide a ‘preview’ capability for larger datasets. Our approach also has several disadvantages worth noting. The first disadvantage is the process of discarding point samples due to the inability to fit a plane. As the algorithm subdivides both buckets and layers, cases can occur where there are not enough points to fit a plane (i.e., at least three points). This typically occurs as a result of dividing the space such that there are isolated point samples. This includes both the layer methods as well as bucket subdivision. There are two alternatives for handling these points, discard them or merge them with the closest layer. We chose to discard the points because at the end of each iteration step an orientation is assigned to each data point, so if a point gets discarded it will simply persist its orientation value from the previous step. The second disadvantage is that areas near a bucket’s border may result in lesser quality approximations due to the full detail not getting incorporated into the model. This is one area where the k-nearest neighbors method functions much better because it can incorporate data in a full sphere around the data point. One possible solution to address this problem is to perform multiple cycles of our algorithm, where buckets overlap, and then merge the results together. This would be a more time consuming process, but would result in better quality approximations. A third disadvantage involves cases where the deltaz value cannot distinguish between different surfaces due to noise or just general complexity in the dataset. A possible solution for this issue is to perform our surface fitting approach from each of the three orthogonal axis directions centered at the defined viewpoint. The results could then be merged into a single approximation. This would ensure that the detail of the surface would be captured from multiple different directions, one of which should be able to distinguish between the surfaces. As previously discussed, the user must provide the grid size and delta-z values as input since these values heavily relate to the underlying dataset details. We propose the following methods for automatically determining initial values for these parameters. Since the grid size is adaptive this value is less critical as the algorithm will subdivide around the data. However, a possible method could perform a statistical analysis of a dataset taking into account the density of point samples and could estimate a ‘good’ starting value based on these characteristics. The delta-z value is the more critical value where a close approximation is needed. One potential method could break the dataset into buckets based on the previous approach, sort the points and then find the n largest gaps in each bucket. The algorithm could execute this across all buckets and average these values to find a ‘good’ starting delta-z value for the specific dataset. We discussed three methods for layer refinement (i.e., distance, density and R2), but there are other alternatives that the algorithm could use as well. One example could take into account both the fitting statistic and the number of points being fit to ensure that the focus remains on fitting larger areas consisting of a greater number of points (i.e., an extension of the WRS value). This approach would try to limit the refinement of areas containing a small number of points (e.g., 4-10 points). It would also prevent unneeded refinements that simply result in the discarding of points. Finally, it could perform these splits such that it maximizes the number of points in each new element. Each of these would help to better the overall approximation generated. Earlier, we mentioned the problem of orienting the approximations without use of the original scan information. This is a very difficult problem because there is little information that the algorithm can use for making assumptions regarding a surface’s orientation. Thus, the algorithm must use a simple heuristic, and unless the surface is closed, there is no guarantee that the normals will be correct. For example, one such heuristic is the approach proposed by Hoppe et al. [19] which we presented in Section 2. This approach uses an assumption about the highest data point along with surface tracing for determining correct orientation. This heuristic works if the surface is both continuous and closed, but in the rubble pile and wood pile datasets we cannot make these assumptions due to various complexities in the environment (e.g., hidden surfaces, shadowed areas void of data, etc.). Thus, orientation would at best be a guessing process based on the surrounding elements. User interaction could possibly play a role in helping to solve this problem, but would most likely involve a very manual process. 6 CONCLUSION AND FUTURE WORK In this paper we presented an alternative solution for defining and properly orienting surfaces in point cloud datasets. We demonstrated that our approach is both efficient and generates accurate results. We presented several alternatives for refinement and each has various pros and cons. Finally, we demonstrated the effectiveness of our approach on both simple and complex datasets and showed that it is effective on environments containing great uncertainty and surface complexity. Overall this approach provides both a good methodology for visualizing point cloud data and supports the overall surface reconstruction process. In the future, we will continue to investigate different refinement techniques and hybrid methods to allow the algorithm to better fit the dataset over time while minimizing the discarding of point samples. We intend to explore methods that can minimize any user interaction required through the process. We will also investigate the extension of these techniques to the overall reconstruction process. For example, it would be beneficial if the algorithm could easily stitch together the triangulated surface patches to form continuous surfaces. Finally, this process lends itself well to parallelization and we intend to investigate the distribution of computation further. It is our hope that once we incorporate these various elements, the results of the algorithm will further improve and will provide for an overall solution for constructing and visualizing complex virtual environments from point cloud data. ACKNOWLEDGEMENTS We would like to thank the National Institute of Standards and Technology for providing the two Disaster City® datasets that propelled this research. We would also like to thank the Stanford 3D Scanning Repository for providing the Bunny and Buddha datasets that were used for testing and evaluation purposes. REFERENCES [1] M. Alexa, J. Behr, D. Cohen-Or, S. Fleishman, D. Levin, and C. T. Silva, Computing and rendering point set surfaces. IEEE Transactions on Visualization and Computer Graphics, 9(1), pp. 3-15, 2003. [2] N. Amenta and M. Bern, Surface reconstruction by Voronoi filtering. Discrete and Computational Geometry, vol. 22, pp. 481-504, 1999. [3] N. Amenta, M. Bern, and M. Kamvysselis, A new Voronoibased surface reconstruction algorithm. In Proc. of the 25th Annual Conference on Computer Graphics and Interactive Techniques, pp. 415-421, 1998. [4] N. Amenta, S. Choi, T. K. Dey, and N. Leekha, A simple algorithm for homeomorphic surface reconstruction. In Proc. of the 16th Annual Symposium on Computational Geometry, pp. 213-222, 2000. [5] M. Attene, B. Falcidieno, and M. Spagnuolo, Hierarchical mesh segmentation based on fitting primitives. The Visual Computer: International Journal of Computer Graphics, 22(3), pp. 181193, 2006. [6] C. L. Bajaj, F. Bernardini, and G. Xu, Automatic reconstruction of surfaces and scalar fields from 3D scans. In Proc. of the 22nd DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING, TEXAS A&M UNIVERSITY, TECHNICAL REPORT TAMU-CS-TR-2009-4-1 [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] Annual Conference on Computer Graphics and Interactive Techniques, pp. 109-118, 1995. J. Bloomenthal, An implicit surface polygonizer. In Graphics Gems IV, Academic Press Professional, Inc., pp. 324-349, 1994. T. Boubekeur, W. Heidrich, X. Granier, and C. Schlick, Volume-surface trees. In Computer Graphics Forum (Proc. of Eurographics 2006), 25(3), pp. 399-406, 2006. J. C. Carr, R. K. Beatson, J. B. Cherrie, T. J. Mitchell, W. R. Fright, B. C. McCallum, and T. R. Evans, Reconstruction and representation of 3D objects with radial basis functions. In Proc. of the 28th Annual Conference on Computer Graphics and Interactive Techniques, pp. 67-76, 2001. CGAL - Computational Geometry Algorithms Library. http://www.cgal.org, 2008. B. Curless and M. Levoy, A volumetric method for building complex models from range images. In Proc. of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, pp. 303-312, 1996. T. K. Dey, J. Giesen, and J. Hudson, Delaunay based shape reconstruction from large data. In Proc. of the IEEE 2001 Symposium on Parallel and Large-data Visualization and Graphics, pp. 19-27, 2001. T. K. Dey and S. Goswami, Provable surface reconstruction from noisy samples. Computational Geometry: Theory and Applications, 35(1), pp. 124-141, 2006. T. K. Dey, G., Li, and J. Sun, Normal estimation for point clouds: A comparison study for a Voronoi based method. In Proc. of Eurographics Symposium on Point-Based Graphics, pp. 39-46, 2005. H. Edelsbrunner and E. P. Mücke, Three-dimensional alpha shapes. ACM Transactions on Graphics, 13(1), pp. 43-72, 1994. S. Fleishman, D. Cohen-Or, and C. T. Silva, Robust moving least-squares fitting with sharp features. ACM Transactions on Graphics, 24(3), pp. 544-552, 2005. M. Garland, A. Willmott, and P. S. Heckbert, Hierarchical face clustering on polygonal surfaces. In Proc. of the 2001 Symposium on Interactive 3D Graphics, pp. 49-58, 2001. S. Gumhold, X. Wang, and R. Macleod, Feature extraction from point clouds. In Proc. of the 10th International Meshing Roundtable, pp. 293-305, 2001. H. Hoppe, T. DeRose, T. Duchamp, J. McDonald, and W. Stuetzle, Surface reconstruction from unorganized points. In Proc. of the 19th Annual Conference on Computer Graphics and Interactive Techniques, pp. 71-78, 1992. M. Kazhdan, M. Bolitho, and H. Hoppe, Poisson surface reconstruction. In Proc. of the 4th Eurographics Symposium on Geometry Processing, pp. 61-70, 2006. Y. Lee, S. Park, Y. Jun, and W. C. Choi, A robust approach to edge detection of scanned point data. The International Journal of Advanced Manufacturing Technology, 23(3-4), pp. 263-271, 2004. N. J. Mitra, A. Nguyen, and L. Guibas, Estimating surface normals in noisy point cloud data. International Journal of Computational Geometry and Applications, 14(4-5), pp. 261276, 2004. Y. Ohtake, A. Belyaev, M. Alexa, G. Turk, and H.-P. Seidel, Multi-level partition of unity implicits. ACM Transactions on Graphics, 22(3), pp. 463-470, 2003. M. Pauly, R. Keiser, L. P. Kobbelt, and M. Gross, Shape modeling with point-sampled geometry. ACM Transactions on Graphics, 22(3), pp. 641-650, 2003. S. Rusinkiewicz and M. Levoy, QSplat: a multiresolution point rendering system for large meshes. In Proc. of the 27th Annual Conference on Computer Graphics and Interactive Techniques, pp. 343-352, 2000. H. Samet, Neighbor finding in images represented by octrees. Computer Vision, Graphics, and Image Processing, 46(3), pp. 367-386, 1989. [27] J. Sankaranarayanan, H. Samet, and A. Varshney, A fast all nearest neighbor algorithm for applications involving large point-clouds. Computers and Graphics, 31(2), pp. 157-174, 2007. [28] Stanford Computer Graphics Lab., The Stanford 3D Scanning Repository. http://graphics.stanford.edu/data/3Dscanrep/, 2008. [29] Texas Engineering Extension Service, Disaster City®. http://teex.com/teex.cfm?pageid=USARprog&area=usar&templ ateid=1117, 2008. [30] M. Zwicker, H. Pfister, J. van Baar, and M. Gross, Surface splatting. In Proc. of the 28th Annual Conference on Computer Graphics and Interactive Techniques, pp. 371-378, 2001. Fig. 10. Final approximation of the rubble pile dataset. Fig. 11. Final approximation of the wood pile dataset.