PROCESSING A COMPLEX ARCHITECTURAL SAMPLING WITH MESHLAB: THE CASE OF PIAZZA DELLA SIGNORIA

: The paper presents a recent 3D scanning project performed with long range scanning technology showing how a complex sampled dataset can be processed with the features available in MeshLab, an open source tool. MeshLab is an open source mesh processing system. It is a portable and extensible system aimed to help the processing of the typical not-so-small unstructured models that arise in 3D scanning, providing a set of tools for editing, cleaning, processing, inspecting, rendering and converting meshes. The MeshLab system started in late 2005 as a part of a university course, and considerably evolved since then thanks to the effort of the Visual Computing Lab and of the support of several funded EC projects. MeshLab gained so far an excellent visibility and distribution, with several thousands downloads every month, and a continuous evolution. The aim of this scanning campaign was to sample the façades of the buildings located in Piazza della Signoria (Florence, Italy). This digital 3D model was required, in the framework of a Regional Project, as a basic background model to present a complex set of images using a virtual navigation metaphor (following the PhotoSynth approach). Processing of complex dataset, such as the ones produced by long range scanners, often requires specialized, difficult to use and costly software packages. We show in the paper how it is possible to process this kind of data inside an open source tool, thanks to the many new features recently introduced in MeshLab for the management of large sets of sampled point.


INTRODUCTION
The very fast technical advance experienced in the last few years in the field of surveying instruments has led to the introduction on the market of many, extremely powerful terrestrial laser scanner.The speed, accuracy and range of acquirable object has steadily increased.However, data acquisition is just the first step: in order to profitably use the 3D data which the scanners can produce, it is necessary to perform a long and time consuming processing phase.
Any terrestrial laser scanner comes with a specific software for data acquisition and processing.The capabilities of these tools vary a lot but, generally, they are able to completely process the acquired data (filtering, cleaning, alignment, conversion, measurement), with most of their functionalities tuned towards the needs of surveying, architectural and engineering experts.Additionally, different tools are available on the market for the management of point clouds, especially for the purpose of the semi-automatic extraction and reconstruction of CAD-like data of geometric (cubes, spheres, cylinders), industrial (mainly pipes or industrial design pieces) or architectural (windows, stairs) entities from unstructured point clouds.On top of this, some also make use of the usual "big names" in the software market for the processing of 3D-scanned data, such as RapidForm and GeoMagic.
It may seem that, in such market, there is little or no space for another processing tool, especially a small, general-purpose, open source tool.We believe this is not the case, for different reasons:

•
In many cases, the people interested in gathering and using the data do not possess a terrestrial laser scanner, but rent a service from specialized companies.This kind of rent may include just the use of the scanner, or also the presence of a technician for the duration of the scan, or some kind of processing of the acquired data.In any case, the bulk of data processing falls on the final users which usually will not have access to such specialized tools.

•
Given the quite narrow field of application for the terrestrial laser scanner technologies, it is not uncommon for the available commercial software not being able to fully cope with the needs of the users, especially if they work outside this narrow field.Tools coming from other fields may contain different features with respect to the very specialized software.

•
The problem of data access and maintenance is getting more and more important.Most of the commercial tools employ closed-source solutions and data protection techniques for the management of point clouds.This limits the data accessibility and interchangeability with other freeware or commercial tools.This is especially true in the case of the scanner control software, where a series of hardware locks, proprietary or encoded file formats and timed licences often undermine the long-term preservation of data.Using Open Source tools may help in maintaining the data alive and usable on the long term.
For the reasons above, the development of MeshLab aims to the availability to the wide public of the acquired data, and to provide a set of features that can be combined to obtain results which can be exported in various data formats.

MeshLab
MeshLab (Cignoni et al, 2008), is a free 3D mesh processing software program.Started in late 2005 as a test project for a university course, it evolved into an open-source generalpurpose system aimed to help the processing of unstructured 3D models.MeshLab is oriented to the management and processing of unstructured large meshes and provides a set of tools for editing, cleaning, processing, inspecting, rendering and converting these kinds of meshes.
MeshLab is implemented with a plugin-based architecture: all the functionalities are provided as atomic operation, each one implemented independently in a single software component.All the components use the core data structures and basic algorithms provided by the VCG Library.VCG Library is a portable C++ templated library for the manipulation, processing of triangle and tetrahedral meshes.The library, released under the GPL license, is the result of the collaborative efforts of the Visual Computing Lab of the ISTI-CNR.This plugin-based structure helps the development and maintenance of the software, and makes the system highly extendible and tweakable.
MeshLab is available on all major platforms: Windows, Linux and MacOS, making it an excellent choice for data accessibility.
The system has overcome any initial prediction in terms of success.MeshLab is usually downloaded more than 6000-8000 times every month; MeshLab's user community is made by thousands of users from all the world.Users come from hundreds of universities and renowned commercial companies have found MeshLab useful in many different contexts, widening the the original CH domain it was focused to.

An Open Source Scanning Pipeline
The aim of this paper is to present MeshLab as a valid alternative to the tools available on the market, for the efficient processing of data coming from terrestrial laser scanners.
MeshLab can offer all the functionalities to cover the basic steps of data processing, for going from a series of scans to triangulated meshes.The plugins included in the current distribution implements lots of different algorithms for mesh and point cloud processing, which represent the state of the art in literature (in many cases, developed by the authors themselves).The strategy of having many different operators, each one specialized toward a single task, gives the user the possibility to customize the processing pipeline, using the most appropriate instrument for any possible case.
Finally, for research groups or companies which can count on the collaboration of programmers, it is easy to extend MeshLab functionalities by adding plugins able to cope with the specific needs of their projects.
MeshLab is a dynamic project, improving and extending its functionalities, following the needs of its user community.The new features are now able to cover all the steps of the pipeline for the processing of terrestrial scanners.Moreover, features which are not present in specific software, like image alignment and color projection, have been introduced in the most recent MeshLab release.

THE SCANNING PROJECT
Piazza della Signoria it is the focal point of the origin and of the history of the Florentine Republic, and it still maintains its reputation as the political hub of the city.It is the meeting place of Florentines as well as the numerous tourists, located near Ponte Vecchio and Piazza del Duomo, and gateway to Uffizi Gallery.
Beside a series of beautiful façades of the historical buildings, the square is full of sightseeing spots visited daily by thousands of tourists: the equestrial statue of Cosimo I, the richly decorated fountain with the Neptune statue, called "Biancone" by the Florentines, the Palazzo Vecchio, still serving as the town hall, the copy of the Michelangelo's David and the world famous collection of statues, framed in the impressing Loggia dei Lanzi.

Project Aim
"VISITO Tuscany" is a regional project, co-financed by Regione Toscana within the Regional Operative Programme -European Regional Development Fund, carried out by a consortium of research and industrial partners.The Purpose of the project VISITO Tuscany is to investigate and create new technologies, able to offer an interactive and customized advanced tour guide service to visit the cities of art in Tuscany.Specifically, the project focuses on offering some services to be used by tourists: • During the city tour, a mobile device can be used by the visitor to get detailed information about what he's watching, or about the context he's placed in.While taking pictures of monuments, places and other closeup objects, the user points out what, according to him, seems to be more interesting.When pictures are taken with geo-localized information, if available, and with information on the profile automatically acquired or proposed by the user, they'll be processed by the system to infer which are the user interests, and to provide him relevant and customized information.

•
Before the tour, both the information sent by other users and their experiences, can be employed by the user to better plan his own visit, together with the information already included in the database system and, more generally, on the web.The interaction will take place through advanced methods based on 3D display.

•
After the tour, the user can access the pictures and the itinerary he followed through advanced mode of interaction based on 3D display.Moreover, he might share his information and experiences with other users using social networks.
The scanning and processing activity described in this paper is related to the latter two points The aim was to build a browsable 3D model for the tourist, to be used before the travel, to explore the three-dimensional environment, enriched by the photos of the VISITO database.Moreover, later on, the user could review the trip and browse his own photos.
For the same task, we have already acquired and processed two similar datasets: the main street plus the two largest squares in San Gimignano and Piazza dei Cavalieri in Pisa.

Data requirements
The use of the dataset is twofold: provide a 3D environment for the immersive rendering and a base onto which align and display the photographic datasets.
For a complete, immersive rendering, the data should cover the entire extent of the square, with particular attention to the various areas of high tourist importance, like the façades of the historical buildings and the various statues scattered around the square.
Beside pure visualization, the dataset should also be used to align the photographic dataset and the user photos Since the system should be able to automatically align user photos to the three-dimensional environment, the dataset should present enough detail to correctly correlate to the detail in the user photos.This would result in a sampling (and reconstruction) density of around 1 cm.This kind of density is somehow unusual in the field of technical and architectural surveying, but quite common in the field of cultural heritage.This is another reason for which to use a software tool that has been designed having in mind this kind of requirements.

Work on the field
In order to avoid the bulk of tourists, people and vehicles crossing the square each day, we opted for a nocturnal scanning (see Figure 1).Nevertheless, people were around the square up to past 1:00 A.M., and some vehicles (mainly police cars) were parked on one side of the square.The scanning of the square took two nights of work, for a total of 12 hour (most of which spent moving from one scan position to another with all the equipment).
The scanning has been carried out using a FARO Photon 120.This device is a terrestrial laser scanner which work on the principle of phase interference (a train of laser pulses are sent towards the object, and the interference pattern of the return signal is used to determine the distance of the sampled point).
The operative range of this family of devices is a bit shorter with respect with pure Time-of-Flight devices but, in this case, given the size of the square (and the fact that the scanning will be done at night-time), this limitation has been be irrelevant.The major area of the square has been acquired with 18 scans done with a 360° coverage.The size and shape of the square made easy to move in a regular way around the square, moving 10 to 15 meters each time, while keeping always more or less at 10 meters from the façades In this way, each building was acquired from various directions; this was especially important in order to accurately cover those façades with more intricate geometric details (like Palazzo Vecchio).
Each scan had a resolution of 2cm at 10m distance (which means that an object at 10 meters will have a sampling resolution of 2 cm), for a size of around 6 million points for each scan.Even if the resolution of each individual scan is a bit lower with respect to the requirements, their combination will result in a much higher sampling rate.Additionally, 8 scans were taken to cover areas difficult to reach: lower part of buildings covered by restaurant dehors, the area beyond the parked cars, the area between Palazzo Vecchio and the Galleria degli Uffizzi.
The "Loggia dei Lanzi", the arched building on the side of Palazzo Vecchio, containing very famous antique and renaissance statues, was covered with a separate series of scan from the inside.In order to cover the various sides of the statues, we took 12 scans at a resolution of 4cm at 10m distance (we used a lower resolution, since we were closer to the surfaces to be acquired), each map with around 4 million points.
It was not possible to acquire the area of the Uffizzi Gallery, due to the extensive conservation works taking place, whose scaffoldings and construction machines blocked most of the way.

DATA PROCESSING
While each different project may require a specific sequence of operation, it is also true that, in the general case, all acquired data will follow a general scheme.The paper describe this scheme, in order to show how MeshLab may be used in each of the steps.

Data Import
The first step for data processing is to bring the range scans from the scanner control software to MeshLab.
Beside a series of standard inter-exchange file formats, like PLY, OBJ, VRML, STL and COLLADA, MeshLab does support file formats generally used by TOF scanners, like PTS, XYZ (also with normals and color) and PTX (also with color and reflectance).
In our experience, the management software of the major scanner brands does support exporting in one or more of those formats.
In the case of Piazza della Signoria, we exported PTX files from the FARO software for each one of the range map taken.PTX format is quite convenient, since it enables the importer to automatically generate a per-point normal and an evaluation of point radius (usable, for example, for point splatting rendering).
The plugin-based architechture of MeshLab could be used to implement the importing of the native format of a scanner with a reasonable effort, provided that its structure is made available.
We have, in the past, implemented importers from specific scanner formats (for example, RIEGL 3dd file format).However, it was not possible to include those importers in the MeshLab distribution because they used proprietary libraries of the scanner manufacturer.

Data Filtering
While each software for scanner control has some mean to filter the input data, in the general case, the exact extent of the needed filtering become apparent only when integrating the various scans.
Figure 2. Two of the usual problems in urban data generated using terrestrial laser scanner: external elements (people) and oversampling near the scanner location One of the typical situations when dealing with terrestrial laser scanners is the high disparity of sampling rate between areas .Sampling rate is normally determined as the angle between probing rays.
Looking at one of the range maps in our dataset (see Figure 2), it is possible to see how the point density in the proximity of the scanner is incredibly high.This density can end up in a difficult manipulation and processing of the range maps.It is not just a problem of sheer size; the difference in data density creates difficulties in finding processing parameters which can work well on the whole dataset.A blind resampling would just reduce the overall complexity of the range map, though eliminating useful data.The Poisson Disk sampler filter is able to generate a random uniform distribution of points, by discarding samples which are too close together, reducing only the oversampled area.
Filtering the main range maps with a 2cm threshold reduced the point number to half the original quantity, only discarding points in the oversampled area near the scanner (which described essentially the pavement around the scanner).
Unfortunately, there is still no automatic way to cull out people standing or moving across the scene, cars and unwanted elements captured at scanning time.The selection and removal of such components is still a manual task.This operation has been done manually for all the range maps, using the selection tools provided by MeshLab Other filters may be used to reduce the noise present in the acquired data (again, in both the point clouds or triangulated range maps) using different, state-of-the-art smoothing algorithms.
In our case, the data produced by the FARO scanner had very little noise, and did not required this kind of filtering.We successfully used this kind of filters in past projects like the scanning of the Neptune statue (Callieri et al, 2009), done two years ago for diagnostic purposes.

Alignment
In the case of terrestrial Laser Scanning, the alignment between scan positions is generally obtained by the use of markers and/or of a total station.This approach, however, may not be possible for many reasons.
In our specific test case, for example, it was impossible to put markers in the highest part of the buildings, making the marker alignment ill-conditioned.
When marker-based alignment is not possible, it is necessary to rely on the geometry of some geometrical elements which appear in more than one scan, using those elements as reference.Most of the existing tool for terrestrial laser scanner management do this on a very small subset of the acquired scene, on specific elements (corners, planes) hand-picked by the user.
Since the MeshLab alignment component derives from tools for the management of 3D scanners for medium and small objects, it follows a different approach, where the entire overlapping area is used to compute the correct alignment.
MeshLab provides an Alignment filter based on the well known ICP algorithm (Rusinkiewicz and Levoy, 2005), enhanced with all the optimization and tricks available in literature.This alignment filter works on triangulated surfaces (like in many analogous tools) but also on raw point clouds.Being able to work directly on the point dataset is a great advantage in terms of time and required memory, since there is no need to generate a triangulation.
The alignment is a two-step process: initially, the user picks corresponding points between scans, placing the scans in a an approximate position; then, the system computes a precise alignment using the whole overlapping area between the scans.
Even if alignment, due to the manual input required, is still the most time-consuming part of processing (along with range map cleaning), after some practice, a user can obtain optimal results with a few hours of manual work.
To give an idea of the time required for the alignment of this specific dataset, the alignment of the 16 scans (12 internal, 4 external) of the Loggia dei Lanzi took 1 hour, the full square dataset (18 scans, plus 6 of the detail shots) 2.5 hours.
Figure 3. Alignment of the main square scans: range scans are color-coded, in the interface it is possible to check the alignment error for each couple of range scans.The red points visible on the surface are a subset of the points used for the ICP algorithm for the selected couple.In this image, 12 of the 24 scans has been placed The 64-bit version of MeshLab has been able to manage a dataset of more than 40 million points on a PC with 8GB of ram.We may safely say that MeshLab can deal with medium size scanning projects without problems.
Figure 3 shows a snapshot of the alignment phase of some of the scan positions.
For much larger projects, it would be needed an Out-of-Core approach able to work in secondary memory; while this option is still not available inside MeshLab, it is in the roadmap of future development.
In order to make this process faster and to help working on large dataset, we also plan to implement a group-based management system.This hierarchical strategy, already available in another alignment tool developed by the Visual Computing Lab (Callieri et al., 2003), helps dealing with large projects, making possible for the user to work independently on subsets of the whole dataset and, later on, put together the subparts, like in a jigsaw puzzle.

Merging
While a point cloud may be fine for many different use, there are as many situations where a triangle mesh is essential.Lots of tools and algorithms for rendering, measurement, data extraction do require a triangulated surface.The same applies in the situation where a physical copy of the dataset is required, through rapid prototyping techniques.
Generating efficiently and precisely a triangulated surface from a series of scans is a problem which has received a lot of attention from the research community.MeshLab offers different reconstruction filters, implementation of state-of-the-art merging algorithms, each one with its own specific strong and weak points.The two most versatile reconstruction filters, which work well on the kind of data provided by terrestrial laser scanners, are the Poisson and VCG merging.
The Poisson merging algorithm (Kazhdan 2006) builds an implicit description of the surface starting from a point dataset with normals; this implicit form is then triangulated using standard volumetric approaches.One of the most important characteristics of this algorithm is that it tries to complete the missing part of the dataset using mathematical continuity of the surface.
Unfortunately, the Poisson merger works in main memory only: this may pose limits to the size of the dataset to process and to the maximum possible resolution used in reconstruction.
An example of the Poisson merging filter is visible in Figure 4, where the Loggia dei Lanzi dataset has been processed using this filter.The reconstruction of this model took 20 minutes, starting from a dataset of 15 Million points While the detail on the building is enough, it is possible to see that the statues are less defined: this is due to the fact that a single reconstruction resolution has been used, which was suitable for the building, but too scarce for the statues.
In this case we used a resolution for the building and we processed the statues independently at a higher resolution.The VCG merging filter, an extended version of (Curless and Levoy, 1996) has been developed by the Visual Computing Lab and it is basically a volumetric merging algorithm based on field expansion.This filter works on triangulated meshes and on point clouds.This merging algorithm produce meshes which are very sharp (sharper with respect to Poisson) and it is able to reconstruct the surface in chunks: in this way it is possible to reconstruct models at very high resolution, overcoming memory limitations.
The various reconstructed chunks are later on joined in a single mesh.
With respect to the Poisson filter, the VCG merger produces meshes which contain more holes, since the level of automatic hole-fillig is lower, and it is a bit less resilient to noise.A result of this merging process on the Palazzo Vecchio façade is shown in Figure 5.
Figure 5. Palazzo vecchio: triangulated mesh reconstructed using the VCG merging filter on the front of the building.

Photographic Alignment and Mapping
A 3D Scanning campaign is usually supported by a photographic campaign, since the quality of the colour acquired by scanner is not always sufficient, or the acquisition is performed during the night, like in the proposed case.
If the photos are not acquired by the scanner, some processing steps are needed to link them to the geometry, both to obtain a set of calibrated images, and to eventually project the colour information on the geometry.The first step is the alignment of the images on the 3D model: this is obtained by estimating the (extrinsic and intrinsic) camera parameters associated to each image.Given the complexity of the dataset, it is preferable to align the images using the point cloud.The most robust approaches to image alignment are based on setting some correspondences between the 3D model and the image (Franken 2005).Yet, the point picking operation on a point cloud can be difficult to handle especially in the case of sparse datasets.Hence, a different approach, based on Mutual Information (Corsini et al, 2009) was applied.This is based on the calculation of a statistical measures of correlation between the image and a rendering of the model.Hence, it can be applied also on point clouds, possibly using the point splatting visualization (see next Section).The Mutual Information approach has been implemented as an additional feature of MeshLab, as shown in Figure 6.Using an easy to use visualization, it possible to have a feedback about the quality of the alignment.The camera parameters associated to each images can be saved using the new "MeshLab project" format.
Figure 6.Alignment of a photo to the 3D dataset inside MeshLab.
Once aligned, the photos may be viewed inside the MeshLab system as floating "cameras" or exported to other tools.
The mapping of the photographic information onto a threedimensional dataset (triangulated mesh or point cloud) is available, at the moment, in an external tool (also developed by the Visual Computing Lab), but the inclusion of this step in MeshLab is currently undergoing.An example of the mapping of some images on the 3D model of the façade of Palazzo Vecchio is shown in Figure 7.In this way, high quality colour information can be directly attached to the accurate geometry provided by the scanner.
The same camera parameters used for colour projection can be used for the navigation of the entire photographic dataset in a "Photosynth" fashion.

DATA VISUALIZATION
Besides the processing capabilities, MeshLab may also be useful just for the visualization of the acquired and processed data.MeshLab started as a visualization tool and still, despite the introduction of many tools for mesh processing, one of its most interesting uses is as a lightweight but powerful viewer.
The availability of layers, the easy-to-use trackball, the predefined canonical views, the fine control over lighting and the various rendering modes let the user explore the dataset in a very complete way.
MeshLab implements many different shaders and rendering modes; even if the majority of them has been designed for the use on triangulated meshes, many does work also on point clouds.For example, the "Radiance Scaling" works very well on point clouds, enhancing the local detail of the acquired surfaces as shown in Figure 8. Ambient Occlusion may be used to enhance the readability of the dataset, by simulating the effect of a diffuse lighting, as visible in Figure 5. Ambient Occlusion term may be calculated once and "baked" in the 3D model, or calculated on the fly during rendering.Shadow Mapping also helps giving three-dimensionality to the rendered image by adding cast shadows, which are especially suited for buildings.Finally, the possibility to obtain high resolution snapshots of large dataset, while using all the visualization options makes MeshLab a very useful tool for documenting a threedimensional dataset.

CONCLUSION AND FUTURE WORK
In this paper, we showed some of the results of an acquisition campaign of a wide and complex site.The aim of the acquisition is to obtain not also an accurate three-dimensional model of the area, but also to link and transfer the colour information provided by a photographic dataset acquired in a different moment respect to the scanning.
The most important contribution is the fact that all the processing steps (format converting, cleaning, alignment, merging, image registration and enhanced visualization) have been performed in the context of an open source software tool, MeshLab, which is now able to handle datasets of medium complexity (20-30 Million points).A complete set of processing and visualization filters are available, so that different strategies can be adopted respect to different types of data in terms of quality, geometric detail, use of the final 3D model.
The evolution of MeshLab is making it one of the preferred tools by several communities of users, including Cultural Heritage, Bio-informatics and Videogame industry.One of the most frequently requested addition to the tool is an improved user documentation, that we plan to release soon, possibly taking advantage of the contribution of the community of users.

Figure 1 .
Figure 1.On-the-field Scanning: on Left, the scanner at work; on Top Right, one 360° map; on Bottom Right, one range map imported inside MeshLab.

Figure 4 .
Figure 4. Loggia dei Lanzi.Triangulated surface reconstructed using the Poisson Merging tool.The mesh is rendered using Ambient Occlusion and Shadow Mapping

Figure 7 .
Figure 7. Color projection on the triangulated surface of the front of Palazzo Vecchio.

Figure 8 .
Figure 8. Details of the Palazzo Vecchio and Loggia dei Lanzi: the point cloud dataset has been rendered using the Radiance Scaling shader, which enhance detail readability.

Figure 9 .
Figure 9. Loggia dei Lanzi: the point cloud dataset has been rendered using Point Splatting.Another useful rendering mode, optimal when dealing with point clouds, is Point Splatting: without having to compute a triangulated surface, it is possible to obtain a very detailed rendering of the dataset.This rendering technique, which has become very popular in graphical research, renders individual points as "splats" with a radius according to the local density of the cloud, blending them together in a coherent surface.As visible in Figure 9, Point Splatting can give the impression of a solid surface, while showing all the minute details contained in the dataset.The point radius needed for this kind of rendering is automatically generated by the PTX importer or calculated by MeshLab on any point cloud.