Part II, Chapter 7
Normal Estimation and Orientation
You arrive here with coordinates you can defend. The sampling of chapter 5 fixed how many points you hold and where they lie, the filtering of chapter 6 removed the noise and the outliers, and the spatial indexes of chapter 4 find any point's neighbours in logarithmic time. None of that tells you which way a surface faces. A file of coordinates cannot indicate whether two points a centimetre apart lie on one wall or on two walls that meet. It cannot indicate which side of a wall is the room. In this chapter we add the quantity that does, one direction per point. It is the last thing you compute before you start using the pipeline to answer questions about surfaces rather than about points.
You will usually run normal estimation as a single preprocessing call with default settings, and you will not see its errors where they are made. They reach you several steps later, as three symptoms that name no cause. Poisson reconstruction produces bubbles and bridges across the surface. Half the normals point inward, so the shading renders your model inside out. A registration that should have converged drifts, because inaccurate normals make the point-to-plane term constrain the solution along the wrong direction. None of the three symptoms identifies the normals as the source. That is the case for working through a step your toolchain exposes as one call.
How much does the setting behind those symptoms actually matter? Figure 7.6 shows the measured effect on a single roof. On the roof planes of an Amsterdam gable the normal error falls from at a support radius of 0.4 m to at 1.6 m. A wider support averages more of the range noise away. Now look at the ridge where those planes meet, and the ranking reverses. The band over which the error exceeds widens from 0.4 m to 1.5 m across the same change, because a neighbourhood spanning both roof planes fits a plane lying between them. So the radius that suits the planes is wrong for the crease between them, and you will meet that conflict wherever your scene holds surfaces of different curvature.
No estimator resolves it for you. Every estimator in this chapter fits whatever neighbourhood you hand it, and no better fit recovers detail the support has already averaged together. What you can do is place each choice on the trade-off, recognise the symptoms of a wrong one, and vary the support where your geometry demands it.
Two words in that definition carry the work of the chapter, estimated and oriented, and real data shows you what each one means. On the airborne block of figure 7.1 the fitted plane of the street surface lies from horizontal and the returns on the vertical walls reach . Every one of those angles was computed from the positions of twenty neighbouring points rather than measured at the point itself. That is estimation. Now ask which way the wall normal points, into the street or into the building. Nothing in those twenty positions determines the answer for you. Both descriptions fit the same twenty points equally well, and settling between them is orientation.
Continue reading Normal Estimation and Orientation
€39 opens all 20 chapters in this reader and the 840-page PDF.