In-hand Scanning with Online Loop Closure

Thibaut Weise1 Thomas Wismer1 Bastian Leibe2 Luc Van Gool1,3 1Computer Vision Laboratory 2 UMIC Research Centre 3ESAT/PSI-VISICS IBBT ETH Zurich, Switzerland RWTH Aachen, Germany KU Leuven, Belgium {weise,leibe,vangool}@vision.ee.ethz.ch [email protected]

Abstract not satisfied with the result, additional scans might become necessary, making this a rather cumbersome process. We present a complete 3D in-hand scanning system that allows users to scan objects by simply turning them freely With an in-hand scanning setup [23], the user simply in front of a real-time 3D range scanner. The 3D object turns the object in front of a real-time 3D scanner, and the model is reconstructed online as a point cloud by register- 3D model of the object is reconstructed and displayed on- ing and integrating the incoming 3D patches with the online line. The user can thus directly control the coverage and 3D model. The accumulation of registration errors leads to quality of the reconstruction by turning the object appro- the well-known loop closure problem. We address this issue priately until he/she is satisfied with the result, making the already during the scanning session by distorting the object scanning process fast and intuitive. Current in-hand scan- as rigidly as possible. Scanning errors are removed by ex- ning approaches register the incoming 3D patches sequen- plicitly handling outliers. As a result of our proposed online tially [23, 15, 30], which leads to the well-known loop modeling and error handling procedure, the online model is closure problem: when performing a full scan around the of sufficiently high quality to serve as the final model. Thus, object, the accumulation of registration errors leads to an no additional post-processing is required which might lead offset at the scanning borders, resulting in visible artifacts to artifacts in the model reconstruction. We demonstrate (Fig. 1). Current approaches therefore use an additional of- our approach on several difficult real-world objects and fline optimization step to compensate for this problem and quantitatively evaluate the resulting modeling accuracy. remove accumulated artifacts. As a result, however, the on- line model is only a preview model which may well deviate from the final offline reconstructed model. Thus, an impor- 1. Introduction tant advantage of in-hand scanning systems, the direct and and modeling of real-world objects plays an reliable feedback, is lost. important role in many areas such as cultural heritage, ar- In this work we propose an in-hand scanning system that chitecture, and entertainment. However, is of- truly follows the WYSIWYG principle, yielding an online ten a time-consuming and costly process, preventing a more reconstructed model to serve as the final result. Instead of wide-spread use. In archeology, for example, only the most ignoring loop closure cases, our approach explicitly detects precious objects are typically scanned instead of the bulk of and compensates for them on-the-fly by deforming the on- the finds. In-hand scanning may alleviate that problem as it line model appropriately. As our goal is to avoid the need simplifies and speeds up the scanning process, thus reduc- for post-processing altogether, the online model needs to be ing time, cost, and man-power. accurate and robust. Our approach addresses this by han- 3D scanning generally consists of the following steps: 1) dling outliers using visibility constraints. We experimen- recording a set of 3D range scans from an object, 2) align- tally show that our online model building method is similar ing the individual surface patches, and 3) integrating these in performance to offline methods and that reconstruction surfaces into one seamless 3D mesh. In case the user is quality is visibly improved through online loop closing.

1630

2009 IEEE 12th International Conference on Computer Vision Workshops, ICCV Workshops 978-1-4244-4441-0/09/$25.00 ©2009 IEEE Related Work. Due to the vast amount of research in 3D scanning and modeling, we only discuss the work most relevant to our in-hand scanning system. A broader per- spective of the complete 3D modeling pipeline is given in [3]. For interactive applications, real-time, motion- insensitive range scanner are necessary to provide input data. Such systems have been proposed based on laser scan- ners [12, 27], time-of-flight cameras [21], and structured Figure 1. of the loop closure problem: five range light [24, 31, 18, 29, 16]. Structured-light systems have the scans of a rotating gear wheel are registered. A pairwise alignment advantage that they provide a full 2D depth map per frame error of only ±1◦ results in a considerable surface discrepancy at a higher accuracy than current time-of-flight cameras. where the model actually should close (indicated by red circles). In order to build a 3D model from depth scans, the indi- on the underlying representation. As the input data is noisy, vidual 3D surface patches need to be registered. ICP [4, 6] several measurements need to be integrated for each sur- and its variants [24, 9] are the technique of choice for this face part for accurate reconstruction. Since the input may geometric registration when an approximate alignment is also contain outliers, we need to be able to to differentiate available. For in-hand scanning systems, this is typically between true surface points and erroneous parts. Last but the case due to the high temporal resolution of the scanner. not least, the representation needs to be compact and easy The ICP registration can additionally be extended to texture to modify in order to facilitate online loop closure. [3, 30], which is however not yet used in our system. We address those requirements by quantizing the surface Interactive in-hand 3D modeling systems have recently and representing the model as a set of small oriented discs been demonstrated by [23, 15, 30]. In those systems, the or surface elements (surfels) whose size is directly depen- input depth scans are registered sequentially and are inte- dent on the scanning resolution. This quantized represen- grated into a simple preview model. Outliers are handled tation allows us to easily integrate multiple depth measure- by aggressive data pruning, but non-detected outliers will ments and to update the surface estimate when additional remain in the model. In order to remove the resulting accu- measurements become available. In addition, we collect mulation errors and loop-closure artifacts, in-hand scanning visibility statistics for each surfel to determine from which systems typically perform an offline global registration op- orientations it has been observed. This allows us to differ- timization step when all scans have been collected [22, 14, entiate between likely true surface points which have been 19]. After offline registration all input scans are integrated observed from many different directions and possible out- and converted into a seamless mesh [7, 13, 10]. liers for which this is not yet the case. In contrast, we address the loop closure problem using In the following, we describe the input data our approach an idea inspired by online loop closing methods employed is based on (Sec. 2.1) and the basic surfel representation in robotic localization and mapping [2]. As in the standard (Sec. 2.2). In order to bring the online surfel model into cor- in-hand scanning pipeline, we register depth scans sequen- respondence with the current scan, we perform rigid regis- tially to build up an online model. However, we explicitly tration with a fast ICP algorithm (Sec. 2.3). After successful try to detect loop closure cases and, once such a case has registration, the new scan is then integrated with the surfel been found, we deform the online model such that the dis- model, as described in Sec. 2.4. Sec. 3 then presents our continuous surface borders fit together and the accumulated extension to explicitly handle the loop closure problem. error is distributed over the entire online model. Many dif- 2.1. Data Acquisition ferent methods for constraint-based shape deformation have The in-hand scanning system is built on top of our real- been proposed in the past [1, 25, 26, 5]. Here, we use a time structured-light range sensor [29], running at 30 fps. graph-based space deformation method similar to [26] due This setup delivers one depth map Dt (VGA resolution) per to its efficiency and as-rigid-as-possible deformation. t u d∗ frame , containing for each pixel k a depth value k (in [27, 8] also propose a system that returns the online mm) corresponding to a 3D position p∗. model as the final result. Their approach employs implicit k Input Data Processing. Morphological operators are used surfaces for the complete modeling pipeline. In contrast to to remove small isolated geometry patches that are likely our method, however, they do not attempt to solve the loop ∗ outliers. Normals n are calculated using the method de- closure problem and do not explicitly handle outliers. k scribed in [20]. In order to penalize potentially inaccurate vertices, each depth value is assigned an input confidence 2. Online Model Building c∗ ∈ [0, 1] c∗ =0 value k , which is initialized to k at a depth In this paper, we propose an online model building ap- c∗ =1 map discontinuity, otherwise k . The confidence values proach that reconstructs a 3D model of an object from a se- are then spread out by a diffusion process [28]. Fig. 2(a) quence of depth scans. This task poses several requirements depicts an input scan colored according to confidence.

1631 2.3. Registration

We apply fast ICP [24] to align the online model Mt n with the input data of the current depth map Dt. All sur- r fels of Mt are iteratively projected into Dt and the optimal [ , ] p rigid transformation Rt tt is calculated by minimizing the point-surface distance: N E = w ∗ ( + − ∗) 2 (a) (b) p2s i ni Rtpi tt pi 2 (1) Figure 2. a) Input depth map of a shoe. Green represents high data i=1 confidence, red represents low data confidence. b) Model surfel: a ∗ where pi is the corresponding point found by projection; surfel is described by its position p, normal n and radius r. ∗ w ni is the associated normal; and i is a correspondence- n specific weighting term based on normal compatibility and θ dynamic distance threshold [15]. For point and normal look-up in the depth map we use bilinear interpolation. r Registration Failure. In order to check for registration ˆ failure, a virtual depth map Dt is generated of the current 2 · r √ 3 model Mt using the rigid transformation [Rt, tt] and the intrinsics of the range sensor. Each pixel uk is checked

φ whether it is an inlier or outlier based on a maximum dis- (a) (b) tance threshold on the absolute depth difference between Figure 3. a) Surfel visibility confidence: a pair of a polar angle 2mm θ ϕ virtual rendering and input scan ( in our system setup). and an azimuth angle characterizes a view direction for each outliers

Visibility Confidence. In order to estimate its reliability, Surfel Update. For each surfel, pi and ni are transformed each surfel is assigned a visibility confidence vi ∈ [0, 64]. using the current rigid transformation:  = + A surfel is assumed to be correct if its position is confirmed pi Rtpi tt (2) by several observations from different directions. This is  z d =  (z) unlikely to occur for wrong surfels due to outliers. When a and accordingly for ni. The component i pi is d∗ new surfel is created, a spherical coordinate system is gener- the depth of the surfel. It is compared against the depth i , ∗ c∗ D ated with the estimated surfel normal as the first base vector normal ni and confidence i of the input scan t, as well dˆ vˆ Dˆ and an arbitrary vector lying in the surfel plane as second as the depth i and i from the virtual depth map t. There base vector. View directions are then characterized by po- are 4 different update cases:  t =80◦ lar and azimuth angles. The view directions a surfel has (1) If the normal ni deviates by more than away been seen from are recorded in a two-dimensional binary from the principal axis of the range sensor or if the input c∗

1632 threshold dmax =5mm. In this case, the surfel position and normal are updated with the new measurements by comput- ing a running average. d − d∗ < −d (3) i i max: The input scan is behind the model surfel, which results in a visibility conflict. In case the surfel has a low visibility confidence, the surfel is assumed to be an outlier and is replaced by a new surfel at the scanner depth. Otherwise, the scan is considered the outlier. Figure 4. Solution to the loop closure problem: When a loop clo- sure case is detected, our algorithm proceeds by only registering d − d∗ >d (4) i i max: The input scan occludes the model and integrating new input data with one of the ’meeting’ borders. surfel. By itself this is not necessarily a visibility conflict, Once the overlap of the involved surface patches is sufficiently as the scan might observe a different surface. We try to large, the model is closed by an as-rigid-as-possible deformation. detect this by checking for self-occlusions using the model der of a model surfel and if their normals do not deviate by acquired so far. If no self-occlusion is found, this is treated ◦ more than 45 . as visibility conflict and is handled as in case 3. However, d − dˆ >d Radius Estimation. Instead of fixing the radius of each given a self-occlusion of the model, i i max, the model surfel is removed if the surfel has low confidence, is surfel to some constant value, we adapt the surfel radius ac- occluded by high-confidence surfels (vˆi >vmin) that are in cording to the theoretical accuracy limit of the input device, correspondence, and if the surfel should be seen from this as the reconstructed model cannot be more accurate than the viewpoint (based on the visibility confidence histogram). resolution of the scanner. The radius for each surfel is es- This test may be slightly inaccurate, but it is an efficient timated conservatively to cover one pixel of the input data strategy for removing outliers located inside the object. using the following equation: 1 d /f Surfel Addition. After all surfels have been updated, r = √ i i  (z) (3) surfels are added in those parts where the scanner depth 2 ni map is not covered by model surfels. New surfels are where f is the focal length of the range sensor. The sur- only introduced where the input data is valid and confident fel radius is only updated if this result is smaller than the c∗ ≥ c ( k min). After each surfel addition and update, the sur- current estimate. With this update strategy, it is possible fel visibility confidence histogram is updated accordingly. to increase the level of detail in the model by bringing the Surfel Removal. Model surfels that are not confident are object closer to the camera. removed if they are in conflict with the input scan, as ex- 2.5. In-hand Scanning plained above. During scanning, many correct surfels, as The interface of our in-hand scanning system is similar well as some possible outliers, are added. Correct surfels to [23]. The user holds the object in front of the scanner, are re-observed from many view directions and thus reach and the reconstructed online model is displayed in real-time. a high confidence value. In contrast, outliers are unlikely to The scan is overlayed over the model to facilitate reinitial- be seen again and will be deleted if a conflict appears. In ization. The model surfels are colored according to the vis- order to keep the model lightweight, we additionally apply ibility confidence such that the user can see which parts are an erosive strategy: every surfel that has not been updated not yet confident. Depending on the application, the final within the last tstarve =30frames and has not yet reached a v =3 model can be converted to a watertight triangle mesh af- minimum confidence value starve is removed. ter the scanning session using the freely available software Surface Growing. Surfels in cavities will only be visible from [17]. This step also fills the parts that cannot be ac- from few view directions and never attain a high visibility quired due to limitations of the scanner hardware. confidence. Hence, the erosive strategy will always remove these surfels. Thus, a second strategy is employed once the 3. Online Loop Closure coarse object structure has been successfully acquired (de- The online model building method from the previous termined by the user) and no more unsolved loop closure section can be used for in-hand scanning as it stands. How- problems remain (see Sec. 3). The model is cleaned up, i.e. ever, as soon as the scanned object has been turned for al- all surfels having a confidence below vmin are deleted, and most a full rotation, the growing model surface reaches one the lost parts are re-scanned with surfel removal switched of its older borders from the other side. In such a case, the off. In order to avoid outliers, surfels are only added if there accumulated registration error may have grown to a degree are already some model surfels close-by with similar orien- that the growing surface does not coincide with its own bor- tations. This strategy is referred to as surface growing [11]. der anymore and no proper alignment can be found. This is In detail, a potential surfel is only added, if it is at the bor- referred to as the loop closure problem, visualized in Fig. 1.

1633 1. 2. 3 tr

1

2 4. camera view 3.

Figure 5. Topology graph. In this example, three surfels act as scan topology graph nodes, indicated by the yellow bullets. Node 1 and Figure 6. Steps of the loop closure procedure: 1) Determine 2 are connected, since both have been observed in scan 1. The the currently visible nodes. 2) Intersect the visible nodes with same holds for nodes 2 and 3 in scan 2. However, node 1 and 3 the topology graph and decompose into connected components. have never been seen together, so they are not connected. Every 3) Register each component individually to the input scan. 4) De- surfel is properly represented since all surfels are attached to at form the model surface if components have sufficient overlap. least one node (indicated by green dashed arrows). of the nodes to which it is attached. A surfel is properly In the following, we present an algorithmic extension that represented in the topology graph if it has at least one node enables our system to automatically detect and close loops, attached in range. The threshold tr implicitly defines the thus removing discontinuities at the model boundaries. density of the topology graph and is set in our experiments Fig. 4 visualizes the main idea of our approach. We solve to tr =15mm. After every modification of the surfel cloud, the loop closure problem by discriminating between the dif- the topology graph has to be updated as well. The required ferent model surface borders. When a loop closure case tasks for the possible model modifications are: is detected, the input data is only registered and integrated Surfel Addition. The new surfel is attached to all currently with one of the borders. Once the overlap of the two in- visible nodes. Furthermore, it has to be determined which volved surface patches is sufficiently large, the input data is of those nodes are closer than tr to the surfel. In case no registered to all borders individually, and the loop is closed node is closer than tr, the surfel is added as a new node. by an as-rigid-as-possible deformation, bending the over- Node Addition. The new node is added and all visible lapping surface parts onto each other. nodes, as well as all visible surfels, are attached. All sur- At the core of our approach lies a sparse topology graph. fels closer than t are additionally attached in range. Node This graph fulfills two important functions. It helps discrim- r addition is dependent on the surfel processing order. inate between the different borders and it contributes con- nectivity information that is used for the actual deformation. Node Deletion. A node is deleted when the corresponding In the following, we describe the details of this representa- surfel is removed. Prior to surfel deletion, all nodes and tion and how it is used for expressing and updating connec- surfels are disconnected from that node. tivity information (Sec. 3.1). Sec. 3.2 then shows how the Surfel/Node Update. Whenever surfel properties (posi- basic registration and integration methods are adapted to in- tion, normal, or radius) are updated, the surfel is attached clude the topology graph, and Sec. 3.3 finally presents the to all currently visible nodes. Whenever a node needs to as-rigid-as-possible deformation for loop closure. be deleted, it might happen that there are surfels that are attached to that single node only and will not be properly 3.1. Topology Graph represented any more after the node deletion. Such surfels Whenever two surfels have been seen together in a scan, with no attachments are called loose. As soon as a loose sur- the scan data places a constraint on the relative positions fel can be updated (thus it is visible once more), the surfel of these two surfels. The topology graph is used to encode is integrated again into the topology graph. those constraints in a sparse manner. It is laid over the sur- The complexity for the topology graph update is face consisting of thousands of surfels and is represented O(NS), though S<

1634 Online vs Offline Registration (distortion) Online vs Offline Registration (noise) 0.3 0.1 online integration online reg − no loop closure offline integration (APSS) 0.09 online reg − with loop closure all points reference reg 0.25 0.08 offline multiview reg

0.07 0.2 0.06

0.15 0.05

RMS (mm) RMS (mm) 0.04 0.1 0.03

0.02 0.05  0.01

 0 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5  Gaussian Noise (mm) Gaussian Noise (mm) (a) (b) (c) Figure 7. a) Synthetic rendering of boris model. b) Comparison of integration algorithms: online integration performs similarly to offline integration [10]. Both introduce a small error for 0 Gaussian noise compared to the baseline (using all input scan vertices), but are successful in handling the noise of the input scans. c) Comparison of registration algorithms depending on the amount of Gaussian noise on the simulated input scan. All methods perform similarly, though online loop closure is always better than no loop closure. set of L connected components by intersecting the set of sums of its counterparts after application of the deformation visible nodes with the topology graph (see Fig. 6). Only graph transformations: the largest connected component (main component) is used S for registration and integration, i.e. only surfels are taken p˜i = wj (pi)[Rj (pi − gj)+gj + tj] (5) into account that are attached to any of the nodes in this j=1 main component. Thus, when looping around the object, where the weights wj (pi) depend on the distance of the the other surface border will create a second unconnected surfel to the k-nearest nodes. The weights for each surfel component. Surfels belonging to that other component are are precomputed according to ignored. This generalizes to any number of components. 2 w (p )=(1−p − g 2/d ) Thus, on its own, the main component will grow over the j i i j max (6) other border surfaces, creating the necessary overlap for the and then normalized to sum to one. dmax is the distance to model deformation described in the next section. the k +1-nearest node. The experiments in [26] indicate 3.3. As-rigid-as-possible Deformation that setting k =4 is sufficient. The full procedure for loop closure is visualized in Fig. 6. The unknowns of the optimization problem are the ro- Once the overlap between the model components and the tation matrices and translation vectors of each node. Rigid input scan has become large enough (each component ex- registration of each component yields a rotation matrix R plains more than 70% of the depth scan), the overlapping and translation vector t. This rigid transformation gives a borders are combined. This is done by registering each of positional constraint for each visible surfel i of subpart on the L components individually to the current input scan. how it is registered to the input data: The resulting constraints on each surfel are then used to de- = + pi R pi t (7) form the complete model as-rigidly-as-possible in order to connect the separate components. Once the model is de- The deformation is formulated as an optimization problem formed, the components are joined. consisting of a positional energy term Epos and a regular- E Deformation Using the topology graph we employ an ization term reg: as-rigid-as-possible deformation similar to the method de- L  E =  − 2 scribed by [26]. This space deformation method is general pos pi p˜i 2 (8) enough that it can be applied to any object, while providing =1 i∈H() natural feature preservation and efficiency. A space defor- S  E =  ( − )+ + − ( + )2 mation is represented by a collection of rigid transforma- reg Rj gn gj gj tj gn tn 2 =1 tions organized in the topology graph structure. j n∈Ω(j) where L is the number of components, H() is the set of Each graph node gj is assigned a transformation visible surfels in component , and Ω(j) is the set of con- [Rj, tj], inducing a transformation of the nearby space: nected nodes of node j. The regularization term makes the p˜ = R (p − g )+g + t . (4) j j j j deformation smooth and as-rigid-as-possible by penalizing In the space between graph nodes, the influence of individ- the difference between the actual transformation of a node ual graph nodes is smoothly blended, similar to skeleton- and the transformation defined by a connected node. The subspace deformation from character . The de- optimal registration is found by minimizing a weighted sum formed position p˜i of each surfel i is calculated as weighted of the energy terms:

1635 Online vs Offline Registration (distortion) 0.1 -0.3 mm +0.3 mm online reg − no loop closure 0.09 online reg − with loop closure reference reg 0.08 offline multiview reg

0.07

0.06

0.05

RMS (mm) 0.04

0.03 0.02 a) b) c) 0.01

0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 Figure 9. a) Reconstructed banana. b) Registration without loop Gaussian Noise (mm) closure (banana cross-section): the loop closure error (top) is only (a) (b) compensated for locally (bottom) by averaging out the error at the Figure 8. a) Measured depth distortion of our range scanner. border overlap. c) Registration with loop closure: the loop closure b) Comparison of registration algorithms when scanner specific error (top) is compensated for globally, spreading the accumulated depth distortion is applied additionally to the noise. Online loop error over the full model. Note in particular the distortion of the closure significantly improves the results. left and bottom surface parts. min Epos + wregEreg (9) R1,t1...RS ,tS mations given by the synthetic rendering instead. As in- where wreg =0.1 in our system. Eq. 9 is non-linear in tegration methods we compare simply taking all vertices terms of the 7S unknowns that define the rotation matrices from the input scans, the offline method from [10] (which and translation vectors of each node. Note that we represent produced the best results of the offline integration meth- Rj using quaternions. The non-linear optimization is very ods we tested), and our proposed online modeling method. sparse and can be solved using Gauss-Newton iterations in Fig. 7(b) shows the quality of the integration procedures for conjunction with an efficient sparse linear solver.Once the different noise levels of the input data. As expected, when optimal deformation is found, the surfels are deformed and simply using all points the error increases linearly with the both surfels and topology graph are updated. noise level. Both the online and the offline method perform similarly, introducing a slight error (0.035mm), but han- 4. Experimental Results dling noise well. Thus, using the online model does not de- Some objects reconstructed with our in-hand scanning grade the quality of the integration here. Note that the noise system are shown on the front page of this paper (rendered level of our scanner is typically in the range of 0.2−0.4mm. surfel clouds). All parameters have been set experimentally and left unchanged throughout all experiments. The in-hand Registration. The registration quality is evaluated by com- scanning system in action is best seen in the supplementary paring the reconstruction using 1) the reference transforma- video. Most of the presented algorithms have been imple- tions, 2) sequential registration with offline multiview op- mented on the GPU. For a typical hand-sized object con- timization [23], 3) online registration without loop closure sisting of about 100K surfels, the system runs at 20 fps. and 4) online registration with loop closure. All methods are Online loop closure takes 2-3 seconds, but is typically only used in conjunction with our proposed integration method. performed once or twice per scanning session and thus does In a first experiment, we only add Gaussian noise to the not disturb the interaction. input data. Fig. 7(c) shows that all methods perform sim- ilarly and that using online loop closure does not degrade 4.1. Experiments on Synthetic Data the results. Note that white noise on its own seems to only In order to quantitatively evaluate our in-hand scanning introduce a minimal loop closure discontinuity. system, we performed experiments using synthetic data. In a second experiment, we also model the distortion of For this purpose, we created a virtual scanning sequence of our scanning setup in addition to white noise to better reflect the boris object from [30], rotating once around the x-axis real-world conditions. For this, we recorded a planar sur- and once around the y-axis (see Fig. 7(a)). The sequence face with our scanner and fit a plane to the smoothed data. consists of 125 depth scans. For evaluation, we register The deviation of the smoothed data to the planar surface is the reconstructed point clouds with the original model us- used to generate a distortion map (see Fig. 8(a)), model- ing ICP and calculate the RMS error in mm between recon- ing pattern artifacts and calibration errors of our setup (We struction and original. The size of boris is approximately verified that the error does not come from the planar sur- 100mm in all dimensions. The virtual distance from the face itself). Fig. 8(b) shows that using online loop closure 1000mm 1mm range sensor is with approximately lateral significantly improves the reconstruction results compared 8K resolution, resulting in approximately vertices per scan. to ignoring the loop closure problem. Offline optimization Integration. In order to evaluate the quality of the integra- is still better than online optimization, but cannot be seam- tion, we disable registration and use the reference transfor- lessly embedded into the interaction.

1636 a) d) e) References [1] B. Allen, B. Curless, and Z. Popovic.´ The space of human body shapes: reconstruction and parameterization from range scans. ACM b) f) Trans. Graph., 22:587–594, 2003. [2] A. Angeli, S. Doncieux, J.-A. Meyer, and D. Filliat. Real-time visual loop closure loop-closure detection. In ICRA ’08, 2008. [3] F. Bernardini and H. Rushmeier. The 3D model acquisition pipeline. Comp. Graph. Forum, 21:149–172, 2002. c) g) loop [4] P. J. Besl and N. D. McKay. A method for registration of 3-D shapes. closure PAMI, 14:239–258, 1992. [5] M. Botsch and O. Sorkine. On linear variational surface deformation Figure 10. a) Reconstructed shoe. b) Close-up view without loop methods. Trans. Vis. Comp. Graph., 14:213–230, 2008. [6] Y. Chen and G. Medioni. Object modelling by registration of multi- closure. c) Close-up view with loop closure. d) View of the two ple range images. IVC, 10:145–155, 1992. unconnected surface parts leading to the loop closure problem. e) [7] B. Curless and M. Levoy. A volumetric method for building complex The surface discontinuity is prominent in the zoomed view. f) No models from range images. In SIGGRAPH ’96, 1996. loop closure averages out the discontinuity resulting in a noisy and [8] J.-D. Deschenes, P. Lambert, and P. Hebert. Interactive modeling distorted reconstructed geometry. g) Online loop closure correctly with automatic online compression. In 3DPVT ’06, 2006. compensates for the discontinuity. [9] N. Gelfand, S. Rusinkiewicz, L. Ikemoto, and M. Levoy. Geometri- cally stable sampling for the ICP algorithm. In 3DIM, 2003. 4.2. Experiments on Real Data [10] G. Guennebaud and M. Gross. Algebraic point set surfaces. ACM Trans. Graph., 26:23, 2007. Fig 9 and Fig 10 demonstrate the benefit of using on- [11] M. Habbecke and L. Kobbelt. A surface-growing approach to multi- line loop closure on real data. Looking at the cross-section view stereo reconstruction. In CVPR ’07, 2007. of the reconstructed banana in Fig 9, we can observe that [12] A. Hilton and J. Illingworth. Geometric fusion for a hand-held 3d without loop closure, the accumulated registration error is sensor. MVA, 12:44 – 51, 2000. only compensated for locally by the integration procedure, [13] A. Hilton, A. Stoddart, J. Illingworth, and T. Windeatt. Implicit surface-based geometric fusion. CVIU, 69(3):273 – 291, 1998. resulting in an artificially strong bending of the surface. In [14] D. F. Huber and M. Hebert. Fully automatic registration of multiple comparison, using loop closure, the error is spread globally 3D data sets. IVC, 21:637–650, 2003. by distorting the entire model. The effect of locally aver- [15] T. Jaeggli, T. Koninckx, and L. V. Gool. Online 3d acquisition and aging out the error and the resulting artifacts are shown in model integration. In Pro. Cam., 2003. [16] H. Kawasaki, R. Furukawa, R. Sagawa, and Y. Yagi. Dynamic scene the reconstructed shoe in Fig 10. The loop closure problem shape reconstruction using a single structured light pattern. In CVPR appears at the border of the sole, where the meeting surface ’08, 2008. boundaries generate a discontinuity. With loop closure, the [17] M. Kazhdan, M. Bolitho, and H. Hoppe. Poisson surface reconstruc- surface boundaries are correctly stitched, whereas without tion. In SGP ’06, 2006. loop closure the two surfaces average out, resulting in a [18] T. P. Koninckx, T. Jaeggli, and L. V. Gool. Adaptive scanning for online 3d model acquisition. In CVPRW ’04, 2004. noisy and distorted geometry. [19] S. Krishnan, P. Y. Lee, J. B. Moore, and S. Venkatasubramanian. Global registration of multiple 3D point sets via optimization-on-a- 5. Conclusion manifold. In SGP ’05, 2005. [20] N. Max. Weights for computing vertex normals from facet normals. We have presented a complete in-hand scanning system J. Graph. Tools, 4:1–6, 1999. that returns an online reconstructed 3D model of sufficient [21] MESA. http://www.mesa-imaging.ch/. accuracy to serve as the final result. The loop closure prob- [22] K. Pulli. Multiview registration for large data sets. In 3DIM, 1999. lem that arises during scanning is detected and compensated [23] S. Rusinkiewicz, O. A. Hall-Holt, and M. Levoy. Real-time 3D for on-the-fly by deforming the model appropriately. Thus, model acquisition. ACM Trans. Graph., 21:438–446, 2002. [24] S. Rusinkiewicz and M. Levoy. Efficient variants of the ICP algo- no additional post-processing is required. rithm. In 3DIM ’01, 2001. The online loop closure distributes the accumulated reg- [25] O. Sorkine and M. Alexa. As-rigid-as-possible surface modeling. In istration error evenly by distorting the model. It assumes, SGP ’07, 2007. however, that all registration errors are fairly small, and it [26] R. W. Sumner, J. Schmid, and M. Pauly. Embedded deformation for shape manipulation. ACM Trans. Graph., 26:80, 2007. cannot compensate for single completely erroneous regis- [27] D. Tubic, P. Hebert,´ J.-D. Deschenes,ˆ and D. Laurendeau. A unified trations. Similarly, the accumulated error needs to be small, representation for interactive 3D modeling. In 3DPVT ’04, 2004. as the overlap between surface borders is measured directly [28] J. Weickert. Anisotropic Diffusion in Image Processing. Teubner, in the input scans. However, this is no problem in our setup, 1998. [29] T. Weise, B. Leibe, and L. V. Gool. Fast 3d scanning with automatic as our range scanner generally provides sufficient accuracy. motion compensation. In CVPR ’08, 2007. The in-hand scanning system currently only uses geom- [30] T. Weise, B. Leibe, and L. V. Gool. Accurate and robust registration etry. In future work, we plan to also incorporate texture into for in-hand modeling. In CVPR ’08, 2008. the online model and to extend the method to allow for de- [31] S. Zhang and P. Huang. High-resolution, real-time 3d shape acquisi- forming objects, such as for the scanning of a human hand. tion. In CVPRW ’04, 2004.

1637