Since our input models are raw and unstructured 3D point clouds,
the very first step of our pipeline must identify some structured
evidence of the architectural shape of interest. A natural choice for
buildings primarily composed of planar elements is to use planar
patches, as done in many previous approaches [21,16,17]. The use of
3D patches, as opposed to, e.g., 2D line projections [20,18], is wellsuited for our occlusions-based pruning algorithm. We perform patch
growing on a per-scan basis, so that every patch contains points that
belong to a same laser range scan. This way, when looking for
potential occluders of a patch, we can restrict the search to the
patches extracted from that same scan.
We extract patches using a simple region growing process based
on normal deviation and plane offset. Like Chauve et al. [16] we
have found this scheme to work well; more robust and elaborate
methods [25] were not needed in our application. Since a correct
choice of the seed points is very important, we start the growing
from the points that have most planar and low-noise neighborhoods. The quality of a candidate seed is evaluated by fitting a plane
to its k nearest neighbors with the Least-Median-of-Squares (LMS)
algorithm [4] and by then computing the sum of the residuals.
For the next steps we need a simplified patch representation,
and we found that an oriented bounding box (OBB) gives us
reasonable trade-off between simplicity and shape approximation
quality. The OBB is aligned with the two main principal components of the xy-plane projection of the patch and gives a good fit
for structures like long and thin walls that are not aligned with the
main axes (see also Fig. 3).