Measuring from one picture

A leaning post is worth its lean, not its length

A facade's two plumb corners read a misplaced horizon at 4.2 pixels; a street's lamp posts and poles are more numerous and never quite plumb. Each lean is random from post to post, so it averages away with the count and puts no floor under the reading — but it is large beside a long line's reading error, so it sets the price of every post: four steel columns leaning a twentieth of a degree match the two corners, and it takes sixty-four timber poles at a quarter. Counted as the corners' equals, eight such poles make the corners' horizon 2.4 times worse; weighted for their lean, they leave it where it was.

Worth reading first: The one thing a single view cannot give · What one picture of a plane determines.

A facade’s corners see the horizon its widths could not found a better witness for a camera’s orientation than a plumb wall’s widths had been. Every plumb edge in a picture runs towards one vanishing point far below, and for a camera with no roll that point and the horizon stand either side of the principal point at distances whose product is the focal length squared. Read the lines’ convergence and the horizon follows, without looking at the ground. A six-metre facade’s two corners, read to 0.4 pixels, saw a horizon 4.2 pixels out at three times their own scatter, as well as the ground’s depth test did; posts across the frame improved it roughly as the square root of their count.

Every one of those lines was exactly plumb, and the essay ended on the obvious trouble with that. A building’s corners are vertical to a small fraction of a degree, but there are usually only two or three of them in view. The verticals a street has in quantity — lamp posts, sign poles, bollards, tree trunks — lean: a well-set steel column by a twentieth of a degree, a timber pole by a quarter or more. The question was how many leaning posts are worth one plumb corner, and whether leans put a floor under the reading that no number of posts goes below.

They put no floor under it. What they do is change what a post is worth, and change it so much that the obvious way of adding posts to a picture makes it worse.

A lean is scatter that the reader did not mark

The picture is the standing camera of the earlier essays: 1.62 metres up, 700 pixels of focal length, pitched 6.78 degrees down, with the six-metre facade 8.5 metres away and posts 2.5 metres tall across the frame 7.5 metres away. Each line is sampled every eight pixels along its image and read across itself to 0.4 pixels. Each post now stands at a random lean, drawn afresh for every trial, with a stated standard deviation sideways and the same towards or away from the camera, independently. The corners stay plumb.

Eight posts leaning 0.25° beside a facade's plumb corners: read at equal weight they put the horizon 2.09 px out, weighted for their lean 1.28 pxThe standing camera of the earlier essays, 700 px of focal length, pitched 6.78° down, looking at a facade's two corners — plumb — and eight posts 2.5 m tall spread across the frame, each standing at a random lean of 0.25° (one standard deviation) sideways and towards the camera independently. Each line is read every 8 px across itself to 0.4 px. The curve is the lean a plumb line at each column would have; the corners (dark) sit on it, and the posts (light) scatter about it by their own leans: -3.34, -2.07, -1.13, -0.72, 0.47, 1.45, 1.98, 2.82°. Fitted with every line counted equally, the lines imply a horizon 2.09 px from the true one; with each post's line allowed its lean as well as its reading error, -1.28 px. The slider sets the posts' lean.-4-20240200400600the vertical's column in the picture (px)its lean from the picture's upright (degrees)a plumb line's leandark: the cornersposts leaning 0.25°, marks at 0.4 pxequal +2.09 · weighted −1.28 px
Fig. 1 The facade’s corners (dark) and eight posts leaning 0.25° (light): each line’s lean in the picture against its column. The corners sit on the curve a plumb line follows; the posts scatter about it. Counted equally, the lines put the horizon 2.09 px out; weighted for the posts’ lean, 1.28 px. The slider sets the lean from 0 to 0.5°.

The curve is the lean a plumb line at each column of the picture would have: zero at the centre column and growing outward, because every plumb line meets every other at the vertical vanishing point six thousand pixels below. The corners sit on it, and so do the posts when they are plumb. Leaning, they scatter about it by their own leans, and a lean of a quarter of a degree moves a post’s line by about as much as a horizon several pixels out would move all of them.

The slider runs the posts’ lean from nothing to half a degree. With the posts plumb, the ten lines put the horizon about a pixel from the truth, and it makes no difference how they are combined. At half a degree, counted equally, they put it 5.16 pixels out, worse than the two corners would on their own. The weighted reading, which the later sections take apart, puts it 1.63 pixels out at the same lean. A lean is scatter the reader never marked: it is not in the 0.4 pixels the line was read to, and a fit that knows only the reading error treats a leaning post as exactly as reliable as a plumb one of the same length.

Every lean averages down, and each one sets a price

A lean is random from post to post, so it should average down as reading error does. The measurement asks whether it does, and what it costs per post.

Posts leaning a quarter of a degree see a horizon 13.3 px out with eight of them and 4.5 with sixty-four; the facade's two plumb corners see 4.2The horizon error each set of verticals sees at three times its scatter, marks read to 0.4 px, 4, 8, 16, 32, 64 posts 2.5 m tall spread across the frame, each standing at a fresh random lean every trial of 0, 0.05, 0.1, 0.25, 0.5° (one standard deviation, sideways and towards the camera); 200 trials a point. Leaning 0°: 3.2, 2.4, 1.9, 1.4, 1.0 px. Leaning 0.05°: 4.2, 3.7, 2.5, 1.9, 1.4 px. Leaning 0.1°: 6.5, 5.9, 3.8, 2.9, 2.0 px. Leaning 0.25°: 14.9, 13.3, 8.5, 6.2, 4.5 px. Leaning 0.5°: 29.5, 26.0, 16.7, 12.0, 8.8 px. The facade's two plumb corners alone: 4.22 px (dashed). A lean is random from post to post, so it averages down with the count as the reading error does and no number of posts meets a floor; but it is large beside the reading error of a long line, so it sets the price of every post. At a twentieth of a degree four posts match the corners; at a quarter of a degree it takes about sixty-four.481632641251020posts 2.5 m tall spread across the frame (log)horizon error seen at 3× scatter, px (log)the facade's two plumb cornersplumb postsleaning 0.05°leaning 0.1°leaning 0.25°leaning 0.5°marks at 0.4 px, 200 trials a pointevery lean averages down
Fig. 2 The horizon error seen at 3× scatter against the count of posts, for leans of 0 to 0.5°. Plumb: 3.2 with four posts, 1.0 px with sixty-four. Leaning 0.05°: 4.2 and 1.4. Leaning 0.25°: 14.9 and 4.5. Leaning 0.5°: 29.5 and 8.8. The two plumb corners alone, dashed: 4.2.

Every line falls as the count rises, with roughly the square-root slope the earlier essay found for plumb posts. No lean puts a floor under the reading: sixty-four posts leaning half a degree see a horizon 8.8 pixels out, and a hundred and twenty-eight would see better still. That half of the question has a clean answer, and it follows from the one assumption the measurement makes — that the leans are independent from post to post. A street whose posts all lean the same way is a different matter, taken up below; a street that slopes is another, and figures on a street that slopes found that a slope moves the line a reader takes for the horizon, which plumb posts, unlike heads, do not follow.

What the lean does is set a price. Plumb, four posts see 3.2 pixels, better than the corners’ 4.2. Leaning a twentieth of a degree, four posts see 4.2 — exactly the corners — so a careful steel column is worth about half a corner. At a tenth of a degree four posts see 6.5, and it takes between eight and sixteen to match the corners. At a quarter of a degree, the ordinary lean of a timber pole or a sign post knocked by a car, eight posts see 13.3 pixels, three times the corners, and it takes about sixty-four. At half a degree sixty-four see 8.8, and the square-root slope the counts follow puts the match near three hundred.

That converts the earlier essay’s advice into an inventory. A street with a couple of plumb building corners in view needs no posts. A street of steel lamp columns has a witness as good as a facade in any half-dozen of them. A street of timber poles and trees has a witness only if it has a great many of them in view, and is otherwise better read from a single building’s corners.

A lean takes away the advantage of length

The earlier essay found that a vertical’s worth depends on its length and its place: eight posts a metre tall saw a horizon 10.8 pixels out against 2.4 for posts of 2.5 metres, because a line’s direction is known to its reading error over its length, and a short line is both less sampled and a shorter lever. That arithmetic belongs to the reading error. A lean is another kind of error.

Plumb, posts 2.5 m tall see 4.4 times better than posts a metre tall; leaning a quarter of a degree, 1.4 timesEight posts spread across the frame, 1, 1.5, 2, 2.5 m tall, marks read to 0.4 px, each post standing at a random lean of 0, 0.1, 0.25°; 200 trials a point. Horizon error seen at three times its scatter: plumb, 10.8, 5.8, 3.7, 2.4 px; leaning 0.1°, 12.6, 7.9, 6.4, 5.9 px; leaning 0.25°, 18.0, 14.4, 13.4, 13.3 px. A plumb line's direction is known to the reading error over its length, which falls steeply as the line grows — a longer line has more samples and a longer lever. A lean is an angle, the same whatever the post's height, so once posts lean the length that made a tall post the better witness buys little: a tall post that leans is worth not much more than a short one.0510152011.5022.50height of each of eight posts, metreshorizon error seen at 3× scatter (px)plumbleaning 0.1°leaning 0.25°eight posts, marks at 0.4 pxa lean does not shrink with length
Fig. 3 Eight posts 1 to 2.5 m tall. Plumb: 10.8, 5.8, 3.7, 2.4 px — the tall post 4.4 times the better witness. Leaning 0.1°: 12.6 to 5.9. Leaning 0.25°: 18.0, 14.4, 13.4, 13.3 — only 1.4 times. A lean is an angle and does not shrink as a post grows.

The reading error of a line’s direction falls steeply with its length — a line twice as long, sampled at the same spacing, is known nearly three times better in direction — so plumb posts gain hugely from height. A lean is already an angle. It is the same angle whatever the post’s height, and a tall post carries it into the reading as fully as a short one. So at a quarter of a degree of lean, posts 2.5 metres tall are only 1.4 times better witnesses than posts a metre tall: 13.3 pixels against 18.0. A bollard that leans is worth nearly as much as a lamp post that leans by the same amount.

This is the half of the earlier essay’s prediction that the measurement confirms exactly. A long leaning post is not a better witness than a short leaning post by anything like the factor a long plumb line beats a short one. For leans of a tenth of a degree the gain from height is twice; for a quarter of a degree, a third more. The reading error and the lean add in quadrature, and once the lean dominates, the length that controlled the reading error controls almost nothing.

Which way a post leans matters

A post can lean across the picture or along the line of sight, and the two are not equally harmful.

Sixteen posts leaning a quarter of a degree towards the camera see a horizon 3.4 px out; leaning sideways, 8.1Sixteen posts 2.5 m tall spread across the frame, marks read to 0.4 px, each standing at a random lean of 0.25° (one standard deviation) towards or away from the camera only, sideways only, or both; 200 trials a bar. Horizon error seen at three times its scatter: sixteen plumb posts, 1.88 px; leaning 0.25° towards the camera, 3.43 px; leaning 0.25° sideways, 8.09 px; leaning 0.25° both ways, 8.53 px. A sideways lean turns a post's image by the lean itself, wherever it stands. A lean towards the camera moves its top along the line of sight, which turns its image only for a post off the centre column and only in proportion to how far off it is; on the centre column it turns it not at all.sixteen plumb posts1.9 pxleaning 0.25° towards the camera3.4 pxleaning 0.25° sideways8.1 pxleaning 0.25° both ways8.5 pxshorter is better: the horizon error seen at 3× scattersixteen posts, 0.25°
Fig. 4 Sixteen posts, a lean of 0.25° in one direction only. Plumb: 1.9 px. Leaning towards and away from the camera: 3.4. Leaning sideways: 8.1. Leaning both ways: 8.5. A sideways lean turns a post’s image by the lean itself; a lean along the line of sight turns it only for a post off the centre column.

A sideways lean rotates the post within a plane square to the line of sight, and its image rotates by the same angle wherever in the frame it stands. A lean towards the camera moves the post’s top along the line of sight. For a post on the centre column that slides the top straight down the column: the image gets shorter or longer and does not turn at all. For a post off the centre column it turns the image a little, in proportion to how far off the column the post stands, because the line of sight there is no longer square to the picture.

So sixteen posts leaning a quarter of a degree only along the line of sight see a horizon 3.4 pixels out, not much worse than the 1.9 they see plumb, while the same posts leaning only sideways see 8.1. Real posts lean in both directions and the sideways part dominates: 8.5 for both together. A reader choosing which posts to trust can use this. A post near the centre of the frame is read mostly for where it stands rather than for its lean, and a post near the edge, whose lean in depth now turns its image too, is the one to doubt. The posts near the edge are also the ones that the earlier essay found most useful when plumb, because their leans differ most from the centre’s — the spread that gave them their value is the spread that now exposes them.

Counted as equals, leaning posts make the corners worse

The commonest way to use leaning posts is beside a building’s corners: a picture has two plumb corners and some posts, and a reader fits the vanishing point to all of them. The fit the earlier essay used counts every line equally, which is right when every line is plumb.

Eight posts leaning a quarter of a degree added at equal weight to a facade's plumb corners make its horizon 2.4 times worse; weighted for their lean, 4.23 px at worst against the corners' 4.22The facade's two plumb corners and eight posts 2.5 m tall, each post standing at a random lean of 0.05, 0.1, 0.25, 0.5°, marks read to 0.4 px; 200 trials a point. The corners alone see a horizon 4.22 px out at three times their scatter (dashed). With the posts, every line counted equally: 3.05, 4.61, 10.02, 19.39 px. With each post's line allowed its lean as well as its reading error, and the corners only their reading error: 2.85, 3.55, 4.14, 4.23 px. Counted equally, a long leaning post is trusted as much as a corner because its reading error is as small, and its lean is the larger error; weighted, it is trusted as much as it deserves, which for a steel column is a help and for a timber pole is nearly nothing.0.050.10.250.505101520how far each of eight posts leans, degrees (log)horizon error seen at 3× scatter (px)counted equallyweighted for the leanthe corners alonetwo plumb corners and eight postsmarks at 0.4 px
Fig. 5 The facade’s two plumb corners and eight posts leaning 0.05 to 0.5°. Every line counted equally: 3.05, 4.61, 10.02, 19.39 px. Each post weighted for its lean as well as its reading: 2.85, 3.55, 4.14, 4.23. The corners alone, dashed: 4.22.

Counted equally, eight posts leaning a twentieth of a degree help the corners, 3.05 pixels against 4.22. At a tenth of a degree they are already a little worse than nothing, 4.61. At a quarter of a degree they make the corners’ reading 2.4 times worse, 10.02 pixels, and at half a degree 4.6 times. A reader who has two plumb corners and photographs a street with them in it, then adds every pole in view to the fit, reads the horizon far worse than if the poles had been left out.

The reason is in what equal counting means. A post 2.5 metres tall at 7.5 metres is as long in the picture as a corner, so its reading error is as small, and counting it equally says it is as trustworthy as a corner. Its lean is the larger error, and the fit has been told nothing about it.

Weighting each line by the error it actually carries — the reading error for a corner, the reading error and the lean together for a post — repairs it. The weighted reading never does worse than the corners by more than its own sampling: 2.85 pixels with posts leaning a twentieth of a degree, 3.55 at a tenth, and at a quarter or a half of a degree, 4.14 and 4.23 against the corners’ 4.22. A steel column is then a help, and a timber pole is trusted so little that it changes almost nothing. The answer is an ellipse made the general point that a reading’s uncertainty has a shape, set by the geometry that carries each error into it, and not by the marking error alone; a lean allowance is that shape for a leaning post, and a fit that leaves it out has the shape wrong.

Overrating the lean is safe, and underrating it is not

Weighting needs a lean to weight by, and a reader rarely knows a pole’s lean before measuring it. The reader has to allow some lean, and can get it wrong either way.

Posts leaning half a degree, allowed a tenth, put the horizon 9.7 px out; allowed two degrees, 4.2 — a reader who overrates the lean loses nothing the corners hadThe facade's two plumb corners and sixteen posts 2.5 m tall, the posts standing at random leans of 0.1° or 0.5°, and the reading weighting each post's line by its reading error and an allowed lean that is right, too small or too large; marks read to 0.4 px, 200 trials a bar. Horizon error seen at three times its scatter: leaning 0.1°, allowed 0.02° 3.28 px; leaning 0.1°, allowed 0.1° 2.84 px; leaning 0.1°, allowed 0.5° 3.91 px; leaning 0.5°, allowed 0.1° 9.69 px; leaning 0.5°, allowed 0.5° 4.08 px; leaning 0.5°, allowed 2° 4.20 px; the corners alone 4.22 px. Allowing too little lean trusts the posts more than they deserve and lets their leans in; allowing too much trusts them less, and the reading falls back towards what the plumb corners alone would give, never below it.leaning 0.1°, allowed 0.02°3.3 pxleaning 0.1°, allowed 0.1°2.8 pxleaning 0.1°, allowed 0.5°3.9 pxleaning 0.5°, allowed 0.1°9.7 pxleaning 0.5°, allowed 0.5°4.1 pxleaning 0.5°, allowed 2°4.2 pxthe corners alone4.2 pxshorter is better: the horizon error seen at 3× scatterlight: lean allowed too small
Fig. 6 Corners and sixteen posts, the reading allowing a lean that is too small, right or too large. Posts at 0.1°: allowed 0.02°, 3.28 px; 0.1°, 2.84; 0.5°, 3.91. Posts at 0.5°: allowed 0.1°, 9.69; 0.5°, 4.08; 2°, 4.20. The corners alone: 4.22.

The two mistakes are not alike. Allowing too little lean trusts the posts more than they deserve, and their leans come back into the reading: posts truly leaning half a degree, read as if they leaned a tenth, put the horizon 9.69 pixels out, more than twice the corners alone. Allowing too much lean trusts them less than they deserve, and the reading falls back towards the corners’ own: posts leaning half a degree read as if they leaned two degrees give 4.20, the corners’ figure, and posts leaning a tenth read as if they leaned half a degree give 3.91, a little worse than the right allowance’s 2.84 but still better than nothing.

So the rule for a reader who does not know how straight a street’s posts are is to assume they are not very straight. An allowance of half a degree for any post not known to be a steel column costs little when the posts are better than that and protects the reading completely when they are worse. The two plumb corners set the floor, and an over-cautious reading never falls below it.

A shared lean is a different thing

Everything above assumes the leans are independent from post to post. A street can break that. Posts set by one crew in soft ground all settle away from the road; a row of trees leans together towards the light; a hillside makes every post lean downhill.

A lean shared by every post is not scatter but a bias, and no count of posts averages it away. Which way the shared lean points decides what it does. If every post leans sideways by the same angle, the whole set behaves like a camera rolled by that angle, which moves the vertical vanishing point sideways; the horizon read off its row is untouched to first order. If every post leans towards the camera, the set behaves like a camera pitched by that angle: sixteen posts all leaning 0.29 degrees towards the camera move the horizon the verticals imply by 3.55 pixels, the focal length times the lean, exactly as a pitched camera would. A building’s corners would disagree with the posts by that amount, which is how a reader with even one plumb corner in the picture would notice. It is the pattern a wrong model shows at its own level described: a horizon read wrong lands on the level that belongs to the camera’s orientation, and a shared lean is a wrong model of the verticals that lands in the same place.

The floor a better camera cannot reach found the same distinction in another measurement: the marking error, independent from mark to mark, fell thirty-fold as it was made smaller, and the error in an assumed shape, shared by every mark, set a floor at exactly its own size. Leaning posts are both, in proportions only the street can say.

What a street’s posts are worth

Put together, the measurements answer the question the corners essay left. Random leans put no floor under a horizon read from verticals; every lean averages down with the count. But each lean sets a price per post, and the prices are steep. Against two plumb corners at 4.2 pixels, four steel columns leaning a twentieth of a degree are an equal witness and sixty-four timber poles at a quarter are needed for the same. A tall post that leans is barely better than a short one, because length controls only the reading error. Sideways leans matter more than leans along the line of sight. And leaning posts added at equal weight to plumb corners make the reading worse; weighted for a generous allowance of lean, they cannot make it worse than the corners alone and can make it better.

The procedure the earlier essays built gains a rule about what to read. Prefer a building’s corners. Add steel columns freely. Add timber poles and trees only in numbers, and only weighted for a lean of half a degree or so. And check the posts against any plumb corner in view, because a lean shared by every post is the one error that more posts cannot reduce. Which reference to measure from is the lesson again, now with a price on each candidate.

What the reading takes on trust

The leans are independent and centred on plumb. A street whose posts lean together carries a bias the count cannot remove, as above. How common that is in real streets was not measured here, and it is the assumption most worth checking against a plumb corner.

The posts are straight. A tree trunk or an old timber pole is often bowed as well as leaning. A bowed post fitted as a straight line has a lean that depends on how much of it is visible, which adds scatter the lean allowance does not describe. A reader can fit each post’s upper and lower halves separately and drop any post whose halves disagree.

The camera has no roll, and the principal point is the centre. Both are the earlier essay’s assumptions and both still bind. A rolled camera moves the vertical vanishing point off the centre column, and a shared sideways lean in the posts is then confused with the roll. A level picture shows its rise on its horizon found that a camera’s principal point can be read off its horizon when the camera is level — but this camera is pitched, so its principal point is not on its horizon, and a crop or shift moves the implied horizon by the full shift.

The lean allowance is the same for every post. A reader who knows which posts are steel and which timber can give each its own allowance, and should; the measurement used one allowance for all posts to show what a uniform rule does.

Still open: what a street’s posts say about each other

The leans here are nuisance: a reader allows for them and moves on. But the same picture that reads the horizon from a street’s verticals also reads every post’s own lean, once the vanishing point is known — the departure of each post’s line from the plumb line through its foot. For a camera that knows its orientation, the picture is a survey of how straight the street’s posts are.

The measurement that settles what such a survey is worth fits the vanishing point from a building’s corners alone, then reads each post’s lean from its departure, and asks how well the leans come back as a function of the post’s height and distance, and of how many corners fixed the vanishing point. The question with a number in it is whether a single photograph with two plumb corners can grade a row of posts — tell the ones leaning a quarter of a degree from the ones within a twentieth — and whether a lean along the line of sight, which barely turns a post’s image near the centre column, is invisible to such a survey there and readable only at the edges of the frame.

What links here

Computed from the collection, not written here: the essays that point at this one.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

Horizonleast squaresModel errorrobust estimationsingle-view metrologyVanishing lineVanishing point