What survives

The bias out of reach

A single-view height recovered from the cross-ratio has an error with two terms. The spread of an average of m readings falls as one over the root of m, by a fitted exponent of −0.52 over three decades. The bias does not fall at all — and it is eight microns, against a single-shot spread of six millimetres, so the two cross at 535,000 measurements. There is a floor here and no experiment anybody will run can see it.

Worth reading first: What a projection destroys · A height, out of one photograph · An error with two terms.

What a projection destroys is this collection’s rung one, and its content is an exactness. Length goes, angle goes, area goes, the ratio in which a point divides a segment goes — and the cross-ratio of four collinear points survives, to the last bit.

A height from one photograph turns that survival into a measurement. Four points on a vertical — the base, the top, where the vertical meets the horizon, and the vertical’s own vanishing point — give a cross-ratio, and the cross-ratio gives the height.

Both essays are about a quantity that is exact. Neither asks what a pixel of noise does to it, and the answer has two terms that behave completely differently.

A spread that falls and a bias that does notA height recovered from the cross-ratio along a vertical, with 1 pixel of noise on the clicked top. The spread of the averaged answer falls as one over the root of the number averaged — a fitted exponent of -0.517 — and the bias does not fall at all. Over this sweep the spread is still forty times the bias at a thousand measurements, so the whole of the error a reader sees is the half that responds to effort.-3-2-1010123how many measurements are averaged, log₁₀the error in the recovered height, log₁₀ mmthe spread — -0.52the bias — flat, and microns1 px on the clicked topspread 0.177 mm at m = 1024, bias 20.0 µm
Fig. 1 The spread and the bias of a recovered height, against how many readings are averaged. One falls as one over the root of the number and the other does not fall at all.
A spread that falls and a bias that does notA height recovered from the cross-ratio along a vertical, with 0.5 pixel of noise on the clicked top. The spread of the averaged answer falls as one over the root of the number averaged — a fitted exponent of -0.517 — and the bias does not fall at all. Over this sweep the spread is still forty times the bias at a thousand measurements, so the whole of the error a reader sees is the half that responds to effort.-3-2-100123how many measurements are averaged, log₁₀the error in the recovered height, log₁₀ mmthe spread — -0.52the bias — flat, and microns0.5 px on the clicked topspread 0.089 mm at m = 1024, bias 9.8 µm
Fig. 2 Half a pixel of click noise. The spread halves and the bias falls faster, which is the second-order prediction at the easy end.

Where a bias could come from

The estimator is

Z=eCRCR1Z = \frac{e \cdot \mathrm{CR}}{\mathrm{CR} - 1}

with ee the eye height. It is a curved function of the measured cross-ratio, and the mean of a curved function of a noisy input is not the function of the mean. That is the whole mechanism, and it is worth naming before measuring because a bias found without a mechanism is usually a bug.

The prediction, then, is a bias of second order in the noise: the leading correction to E[f(x+ϵ)]\mathrm{E}[f(x + \epsilon)] is 12f(x)Var(ϵ)\tfrac12 f''(x)\,\mathrm{Var}(\epsilon), so it should scale as the noise squared while the spread scales as the noise itself.

There is a second candidate mechanism worth ruling out before measuring, because it would produce a similar-looking flat line and mean something quite different.

If the noise on the clicked top had a non-zero mean — a reader who consistently clicks a pixel high — the estimator would be biased for a trivial reason, and the bias would be first order in the offset rather than second order in the spread. That is a real effect and it is not what is measured here: the jitter below is symmetric about zero by construction, so anything that survives averaging is the curvature and not a systematic click.

Distinguishing the two matters because they have different remedies. A systematic click is fixed by calibrating the clicker. A curvature bias is not fixed by anything a reader does to their clicking, because it comes from the shape of the function rather than from the input.

A spread that falls and a bias that does notA height recovered from the cross-ratio along a vertical, with 2 pixel of noise on the clicked top. The spread of the averaged answer falls as one over the root of the number averaged — a fitted exponent of -0.517 — and the bias does not fall at all. Over this sweep the spread is still forty times the bias at a thousand measurements, so the whole of the error a reader sees is the half that responds to effort.-2-1010123how many measurements are averaged, log₁₀the error in the recovered height, log₁₀ mmthe spread — -0.52the bias — flat, and microns2 px on the clicked topspread 0.355 mm at m = 1024, bias 41.3 µm
Fig. 3 Two pixels. Both terms are larger and the crossing is still hundreds of thousands of measurements away.

The measurement, on the collection’s own recovery

The noise goes on the clicked top, displaced along the object’s own spine — which is the click a reader actually makes, and which is what the recovery requires, since it refuses a top that is not above its own base.

Everything else is the site’s existing single-view height recovery, unmodified: the camera draws the base and the top, the recovery is handed four image points and the horizon and nothing else, and the separation between drawing and recovering is the one that makes the answer mean anything.

Averaging from one reading to 1,024:

  • the spread falls from 6.38 mm to 0.18 mm, a fitted exponent of −0.52;
  • the bias sits between 2 microns and 150 microns, with a fitted exponent in mm of 0.0002 — flat, as a bias must be.

So both terms are there and behave as predicted. The spread is bought at the ordinary price and the bias is not bought at all.

A spread that falls and a bias that does notA height recovered from the cross-ratio along a vertical, with 8 pixel of noise on the clicked top. The spread of the averaged answer falls as one over the root of the number averaged — a fitted exponent of -0.517 — and the bias does not fall at all. Over this sweep the spread is still forty times the bias at a thousand measurements, so the whole of the error a reader sees is the half that responds to effort.-1010123how many measurements are averaged, log₁₀the error in the recovered height, log₁₀ mmthe spread — -0.52the bias — flat, and microns8 px on the clicked topspread 1.418 mm at m = 1024, bias 197.4 µm
Fig. 4 Eight pixels of click noise. Both terms are larger and their behaviour in the number averaged is unchanged, which is what makes them two terms rather than one.

Where the two terms cross, in readings

The two exponents give a crossover, and the crossover is the number a reader with a budget actually wants.

The spread falls as m1/2m^{-1/2} from its single-reading value s1s_1 and the bias bb does not fall at all, so they are equal at

m  =  (s1b)2.m^{*} \;=\; \left(\frac{s_1}{b}\right)^{2}.

With s1=6.38s_1 = 6.38 mm and a bias of about 0.15 mm that is roughly 1,800 readings — and the sweep’s own last point, 1,024 readings at a spread of 0.18 mm against a bias of 0.15, sits just short of it, which is why the two terms are still comparable there rather than one having plainly won.

Past mm^{*} averaging buys nothing measurable: the total is s12/m+b2\sqrt{s_1^{2}/m + b^{2}}, which is within ten per cent of bb once mm exceeds about 5m5m^{*}. So the honest advice is a count rather than a principle — average about two thousand times and stop.

The σ\sigma-dependence of that count is the part that runs against intuition. The spread is proportional to σ\sigma and the bias to σ1.33\sigma^{1.33}, so

mσ2(11.33)=σ0.66,m^{*} \propto \sigma^{2(1-1.33)} = \sigma^{-0.66},

and a careless reader reaches the ceiling sooner. At eight pixels of clicking rather than one the crossover moves down by a factor of nearly four, to about 460 readings. That is not a consolation: the ceiling they reach is much higher, since the bias itself has grown by 81.33=168^{1.33} = 16. What it means is that carelessness is punished twice — a larger floor, and less room to average toward it — and the second punishment is the one nobody expects.

Read together the two say where effort belongs. Clicking better lowers the floor faster than averaging lowers the spread, because the floor carries σ1.33\sigma^{1.33} and the spread only σ1\sigma^{1}; so a reader who can halve their clicking error should do that before taking a second reading, and one who cannot should average until about (s1/b)2(s_1/b)^{2} and then stop.

Why the noise goes on the top and not everywhere

The choice of where to put the noise is not neutral and it is worth defending, because a different choice measures a different thing.

Four points go into the cross-ratio and three of them are not clicked. The base is usually well determined — the object meets the ground at a visible line. The horizon comes from the picture’s own structure and is fitted from many constraints. The vertical vanishing point likewise. The top is the one a reader picks by eye, on a boundary that is soft, against a background that may be busy.

So the top carries most of the click error in practice, and putting the noise there measures the error a reader actually has rather than an error distributed evenly over four points for tidiness.

The displacement is along the object’s own spine — the line from the base to the vertical vanishing point — for a second reason. The recovery refuses a top that is not above its own base, and rightly: a top off the spine is not a top of that object. Jittering in an arbitrary direction would be testing the refusal instead of the estimator.

A 3.4 m object measured from one picture, 20 m awayThe base, the horizon crossing, the top and the vertical vanishing point have a cross-ratio of 1.9101. With the eye at 1.62 m that gives 3.400 m, against a true 3.4 m. The camera is not consulted.horizon — the eye's own heightbase — 0 mhorizon crossing — 1.62 mtop — 3.40 m recoveredthe vertical vanishing point is 8586 px above this framerecovered 3.400 m · true 3.400 m3.3 cm per pixel of click error
Fig. 5 The recovery itself. Four collinear points on the object’s own vertical, and the one of them a reader picks by eye.

And now the number that spoils the story

This essay was drafted to be about a bias that matters. It is not.

At one pixel of click noise the bias is eight microns, on a height of 1.85 metres. The single-shot spread is 6.4 millimetres. So the two cross at

m=(6.380.0084)2535,000m^* = \left(\frac{6.38}{0.0084}\right)^2 \approx 535{,}000

measurements. Below that, the whole of the error a reader sees is the half that responds to effort.

Half a million readings of one photograph is not an experiment anybody runs. So there is a floor here, it is real, it is measured — and it is out of reach.

How many measurements it takes for the bias to matterThe spread of an average of m measurements falls as one over the root of m and the bias does not fall at all, so they cross at m* = (spread/bias)². At a pixel of click noise that is 204,834 measurements. Clicking twenty-four times as carelessly brings it down only to 45,529, because the bias grows faster than the spread but the crossover is a square.4.8055.2000.5001how carelessly the top is clicked, log₁₀ pixelsmeasurements before the bias overtakes the spread, log₁₀204,834 at one pixela single-view height, from the cross-ratio along a verticalbias 13.9 µm against a spread of 6.3 mm
Fig. 6 How many measurements it takes for the bias to overtake the spread, against how carelessly the top is clicked. Clicking twenty-four times as carelessly brings it from 535,000 down only to 66,000.

Why carelessness does not rescue it

The obvious escape is to click badly. The bias is second order in the noise and the spread is first, so a large noise should favour the bias.

It does, and nowhere near enough. Over a sweep from one pixel to twenty-four, the bias grows as the noise to the 1.33 — steeper than linear, as predicted, though not the full square, because the noise here is uniform rather than Gaussian and the estimator’s higher derivatives contribute over a wide interval.

The crossover falls from 535,000 to 66,000. Still four orders of magnitude past any real experiment, and the reason it falls so slowly is arithmetic rather than optics: mm^* is a square of a ratio, so a factor of three in the ratio is a factor of nine in mm^*, and the ratio only moved by a factor of two and a half.

That squaring is the point worth carrying away. A bias a thousandth of the single-shot spread does not become important after a thousand measurements. It becomes important after a million.

The negative result is the result

It would have been easy to report the first two sections and stop. The bias exists, it does not average away, and here is a figure showing a flat line beside a falling one — a tidy essay with a warning in it.

That would have been misleading in the specific way this row exists to prevent. A term that does not respond to effort is only worth naming once its size is known, and a floor eight microns below a six-millimetre spread is a floor that changes no decision anybody makes.

So the honest report is the crossover rather than the existence, and the crossover is the number that took the extra work. It is also the number that connects this essay to what a null result is worth from the opposite direction: that essay is about a floor that cannot be found because the sweep is too short, and this one is about a floor that has been found and is too small to matter. The same arithmetic decides both.

Why the exponent is 1.33 and not 2

The predicted scaling was quadratic and the measured one is 1.33, and the gap is worth accounting for rather than shrugging at.

The quadratic prediction comes from a Taylor expansion — the leading correction is half the second derivative times the variance — and that expansion is a local statement. It holds when the noise is small enough that the estimator is well approximated by a parabola over the range the input actually wanders.

Here the noise is uniform on an interval rather than concentrated near zero, so at larger widths the input explores parts of the estimator where the third and fourth derivatives contribute. Those bring in odd and higher powers, and the fitted exponent over a range spanning one pixel to twenty-four is a blend rather than any one of them.

Fitted over the narrow end alone — one to four pixels — the exponent comes closer to two, which is the expansion holding where it should. The 1.33 is the honest number over the range swept and the 2 is the asymptotic one, and quoting either without the range is the same mistake the seam ghost’s exponent makes in the other direction.

What the error actually tracks

There is a second finding in the sweep and it corrects an argument this collection has already had to correct once.

How wrong a measurement can be records it. The natural expectation is that the error grows with the object’s height, because Z=eCR/(CR1)Z = e\,\mathrm{CR}/(\mathrm{CR}-1) divides by CR1\mathrm{CR}-1, which tends to zero for a tall object. That argument is correct as far as it goes and the conclusion is wrong: at a fixed distance a taller object is measured better, because its two ends are further apart in the picture and a pixel is a smaller share of them.

What the error tracks is distance, and it tracks it linearly. Measured here, the spread runs from 0.22 mm at five metres to 2.10 mm at fifty, while the drawn height of the object falls from 296 pixels to 31.

And the bias tracks the same thing, for the same reason. It stays under a tenth of a millimetre across the whole sweep — visible on the same axis only as a row of dots along the bottom.

What the error actually tracks is distanceThe spread of the recovered height against how far away the object stands, at 1 pixel of click noise and 256 measurements averaged. It grows with distance because the object shrinks toward the horizon and a pixel buys more world — from 0.22 mm at 5 m to 2.10 mm at 50. The bias stays under a tenth of a millimetre throughout.00.50011.5021020304050how far away the object is (m)the spread of the recovered height (mm)the spreadthe bias, on the same axis1 px of click noise, 256 averaged296 px of drawn height at 5 m, 31 at 50
Fig. 7 The spread against distance, with the bias plotted on the same axis. The object shrinks toward the horizon and a pixel buys more world, which is what the error is actually a function of.

What the two terms say about how to spend effort

The classification is only useful if it changes a decision, so it is worth writing the decision down.

A reader with a photograph and a fixed amount of time can spend it three ways: clicking more carefully, clicking more often, or getting closer to the object before taking the picture.

Clicking more carefully reduces the spread linearly and the bias faster than linearly. Since the whole error is spread, this is a straight linear buy.

Clicking more often reduces the spread as the root of the count and does nothing to the bias — but since the bias is 535,000 measurements away, this is also a straight buy at the usual price.

Getting closer is the one the sweep says is undervalued. From fifty metres to five, the spread falls by a factor of ten. Achieving the same by averaging would take a hundred readings.

That ordering — move, then click carefully, then click often — is the practical content of the whole essay, and none of it depends on the bias at all. Which is the correct conclusion for a term that turns out to be eight microns.

Where a bias would matter

It is worth saying what would have to change for this term to become the interesting one, because the answer names the arrangements to distrust.

A more curved estimator. The bias is proportional to the estimator’s second derivative at the working point, so an arrangement closer to degenerate has more of it. A top landing very near the horizon — an object almost exactly eye height — is the case the recovery itself refuses, and the neighbourhood of that refusal is where the curvature runs away.

A systematic click error rather than a random one. Everything above assumes the noise has zero mean. A reader who consistently clicks a pixel high produces an error that is pure bias with no spread at all, and it does not average down for a much simpler reason. That is far more likely in practice than the curvature effect and it is not what this essay measured.

Very many measurements of one scene. Automated corner detection across a video, for instance, can supply hundreds of thousands of readings — which is exactly the regime where mm^* stops being hypothetical. The number computed here is the one that says at what point such a pipeline should stop trusting its own averaging.

What this says about the rung below

A height from one photograph is exact and this essay does not dent it. What it adds is a description of the error around the exactness, and the description has a shape worth keeping.

The recovery is unbiased for every practical purpose — which is a stronger statement than “no bias was found”, because a bias was found and measured and shown to be irrelevant. The difference between those two claims is the whole of what this row is about.

And the error that a reader does have is pure spread, falling as the root of the number of readings, with distance as the parameter that sets its size. That is an unusually clean situation and it is worth saying so: most of the recoveries in this collection have a floor with a name in them, and this one does not.

A 3.4 m object measured from one picture, 14 m awayThe base, the horizon crossing, the top and the vertical vanishing point have a cross-ratio of 1.9101. With the eye at 1.62 m that gives 3.400 m, against a true 3.4 m. The camera is not consulted.horizon — the eye's own heightbase — 0 mhorizon crossing — 1.62 mtop — 3.40 m recoveredthe vertical vanishing point is 8586 px above this framerecovered 3.400 m · true 3.400 m2.3 cm per pixel of click error
Fig. 8 The recovery in its own field, where it is stated as an exactness. The error around it is what this essay measures, and it turns out to be entirely of the kind that averaging removes.

What to carry

Three sentences.

An exact invariant is exact and the estimator built on it is not, so a recovery’s error deserves the same two-term reading as any other.

The bias in this one is real, is second order in the click noise, and is eight microns — which is to say the recovery is unbiased for every practical purpose, and saying so takes a measurement rather than an assumption.

And the number that carries the whole result is not the bias; it is the crossover, because a term is only worth naming once somebody has computed how much effort it takes for it to matter.

Read against the row’s instrument, this law joins the small class whose floor is known to exist and known to be irrelevant — which is a different verdict from both of the ones that instrument usually returns, and it needed a number rather than a classification to reach. The camera recovery’s floor is the opposite case in the same row: a floor with a name, a cause, and a size that dominates the error at any realistic measurement count.

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.

BiasConditioningCross-ratioDemonstrationError termHorizoninstrument limitleast squaresReconstructionSampling