Aerial Photography and Visualisation for Built Heritage - PhD Portfolio by Kieran Baxter
Home Portfolio Showreel Publications Map Blog Contact

Wednesday, 16 May 2012

Photogrammetry Test on a Known Surface

This test was designed to evaluate the procedure which I am using for meshing photogrammetry using Microsoft Photosynth and Meshlab, in a way which will be useful for to me when considering software solutions and recording images for photogrammetry. In particular I was interested to see the relationship between the spacing of pixels (Ground Sampling Distance) and the distribution of point cloud data generated in Photosynth.

I chose the stone slab below as a subject and photographed it using an adjustable pole in order to control the distance between the camera and the surface.

Known Constants-
The slab top measured 1.2m x 0.6m (with a negligible error of ±1mm) giving it a surface area of 0.72m² and a total distance around it's edges of 3.6m. These values were used to calculate pixel sampling distance and point density per area.

The camera used was a Panasonic DMC-LX3 and for the duration of the shoot images were captured at 1/2000 of a second at f/5, 80 ISO and 5.1mm focal length. 15 frames were taken for each sample with a horizontal movement while the camera was positioned perpendicular to the ground.

Know Variables-
Three sample sequences were taken from three different heights, named Low, Mid and High. As the pole was handheld, values for these heights were derived afterwards using Autodesk 123D Catch, although until tested further these values may also include an unknown factor of error.

Unknown Constants-
The accuracy of the mesh was later measured assuming a perfect surface plane as flaws in the geometry of the slab were taken to be irrelevantly small compared to the error being measured. The suitability of colour features on the surface, in this case the grain of the stone, are likely to effect the effectiveness of the photogrammetry considerably.

Unknown Variables-
Motion blur and focus blur within the camera were reduced by careful handling and also by shooting with a fast shutter speed and small aperture. Differences in the distribution of the camera positions for each sample may also effect the results.

The Procedure-
To calculate the ground sampling distance one sample image was selected from each set where the test surface was centred within the frame. The total pixel distance around the edges of the surface was then measured and compared to the known real world distance of 3.6m.

Each of the three sequences of 15 photographs were uploaded to Photosynth and the resulting point clouds were processed in Meshlab. The points associated with the test surface were separated by eye based on their position and colour values. This distinction was quite clear as the test surface was raised for the ground and very little data was captured relating to the sides of the slab.

These original points were then reduced and meshed using the following procedure-

- Compute normals for point sets [Number of neigbors: 10]
- Surface Reconstrution: Poisson [Octree Depth: 14]
- Subdivision Surfaces: LS3 Loop [Iterations: 3]
- Subdivision Surfaces: Catmull-Clark
- Vertex Attribute Transfer: [From point set: Color, Normal, Geometry]
- Remove Duplicate Vertex

The resulting meshed vertices retain the position of original points although some points which fall outside the average surface are ignored, hence the reduced figure of Selected Points shown below. In order to form a useful comparison with the ground sampling distance an average point distribution distance was derived form the point density (assuming for this purpose that the points formed a matrix). In each sample this figure was found to be roughly 30 times the ground sampling distance, suggesting that for every 30 pixels distance you would expect to find, on average, one point sampled from Photosynth.

To assess the accuracy of the meshed surfaces the three samples were aligned by eye to each other and to an estimated true surface (shown below in red) in order to establish a rough vertical scale. A ramp shader was then applied to the surfaces and a histogram derived from each sample showing the vertical distribution of points. We can see that the Low sample has a fairly defined spike as would be expected with a factor of error in the range of around ±10mm. This error broadens as the camera gets further away with the High sample including a factor of error up to ±25mm and an indistinct spike associated with the true surface.


In Conclusion-
The results suggest a linear relationship between ground sampling distance and the distance between points derived from photogrammetry. A factor of error apears to be similarly associated with ground sampling distance. Further testing is required to establish how varying other factors such as the surface and the software used would effect the density and accuracy of points. These values may be improved in other photogrammetry solutions which, unlike Photosynth, are specifically designed for surface meshing. One source of error which stood out during this test occurred around the edge of the surface where the overlapping planes appeared to create "sliding" rouge points.

While photographing using a pole served to simulate the constraints of kite or pole aerial photography for photogrammetry, future tests may be controlled better using a vertical subject photographed from the ground.