What survives

A floor with a referent

Recover a focal length from two vanishing points and measure more points along each line. Through a pinhole the error falls from 0.34 per cent to 0.05 and the instrument finds no floor at all. Through a lens of k₁ = −0.05 it falls, turns, and rises to 0.70 per cent — because the noise the extra points removed had been partly masking the lens's bend. The floor is 0.72 per cent of the focal length, and doubling the distortion coefficient doubles it to 1.44. It is not noise and not conditioning; it is the model, priced.

Worth reading first: Recovering the camera from the picture it drew · An error with two terms · Straight lines that are not.

Recovering the camera is the round trip this collection is built on. Draw a picture from a camera with a stated focal length, forget the camera, find the vanishing points in the drawn edges, and get the focal length back. Agreement to fifteen digits is a statement about the geometry; anything less is a statement about the drawing.

Every one of those digits assumes a pinhole. A lens destroys the invariant measures what a real lens does to the cross-ratio, which is the quantity underneath the whole thing.

This essay puts the two together and asks the question the row’s instrument exists for. Of the error in a recovered focal length, how much responds to measuring more carefully, and how much does not?

More measurement buys the noise and not the lensA focal length recovered from two vanishing points, against how many points were measured along each line. Through a pinhole the error falls from 0.34% to 0.048% and the fit finds no floor at all. Through a lens of k₁ = -0.05 it falls, turns and rises to 0.70%, because the noise the extra points removed had been partly cancelling the lens's bend. The floor is 0.72% and doubling k₁ doubles it, so the floor is the lens.00.2000.4000.6000.50011.502how many points were measured along each line, log₁₀how wrong the recovered focal length is (%)a pinhole — no floora lens, k₁ = -0.05the floor, 0.72%two vanishing points, three lines eachpinhole floor 3e-16 · lens floor 0.72%
Fig. 1 The recovered focal length’s error against how many points were measured along each line, through a pinhole and through a lens. One curve falls and keeps falling; the other falls, turns, and rises to a level.

The control parameter, chosen with care

The obvious sweep is the number of lines used to find each vanishing point. It is the wrong one, and the reason is worth stating because it is the sort of choice that quietly decides an answer.

Adding lines at a fixed spread packs them closer together, so each new line is less independent of the ones already there. The error falls, but it falls for two reasons at once — more measurements, and a worse arrangement of them — and the exponent that comes out is a mixture of both.

The sweep here varies the number of points measured along each line, with the lines fixed and their extent fixed. That is the purchase a careful reader actually makes, and it is clean: more points shrink the fitted line’s angular error, and they do nothing whatever to how the lens bent it.

A rectangular grid through a lens with k₁ = -0.32The faint grid is what a pinhole would have drawn. The solid one is the same grid through barrel distortion: the centre line is untouched, and the outermost bows by 17.8 px.principal pointk₁ = -0.320, k₂ = 0.110 — barrel distortioncentre line 0e+0 px of sag, outermost 17.8 px
Fig. 2 What the lens does to the picture. A straight world line images as a curve, and the fitted straight line through samples of that curve is a chord rather than an image.

Through a pinhole

Three lines per direction, four points along each rising to two hundred and fifty-seven, with half a pixel of measurement noise.

The error falls from 0.338% of the focal length to 0.048%, and the two-term fit returns a floor of 3×10163\times10^{-16} — which is zero, and is the fit correctly reporting that a floor-free law has no floor.

So the pinhole case is the clean one. Every part of the error responds to the control, and it can be driven as low as patience allows.

The fitted exponent of the falling term is about 0.43, which is close to the half a reader would expect from averaging and not equal to it. The shortfall is real and is worth a sentence: the points along a line are not independent samples of one quantity, they are samples of a line’s position and its direction, and only the direction matters downstream. Fitting a line to more points buys its angle at a rate set by the points’ spread along the line rather than by their count alone.

So even the clean case is not quite the textbook square root, and the gap is a fact about the geometry rather than about the arithmetic. Reporting 0.43 rather than rounding it to a half is the difference between a measurement and an assumption.

Through a lens

The same sweep with a Brown–Conrady k1k_1 of 0.05-0.05, a modest barrel distortion of the kind an ordinary wide lens has.

The error at four points is 0.53%. At nine, 0.60. At thirty-three, 0.68. At two hundred and fifty-seven, 0.70%.

It rises.

That was not the expected result and it is the essay’s sharpest one. More measurement makes the answer worse, and the mechanism is that the noise the extra points were removing had been partly cancelling the lens’s bend. Averaging away a random error that happened to be pulling against a systematic one leaves the systematic one exposed.

The floor has a referent

The two-term fit returns a floor of 0.720% of the focal length. At the largest measurement count essentially all of what is left is that floor — the curve has stopped moving.

And here is the claim that makes it a floor with a referent rather than a number: double the distortion coefficient and the floor doubles. At k1=0.10k_1 = -0.10 it is 1.440%, a ratio of 2.001.

So the unbuyable term is not “whatever is left over”. It is the lens, expressed in per cent of focal length per unit of k1k_1, and it can be predicted from the lens’s specification before the experiment is run.

That is a stronger result than the row’s other floors. A panorama’s vertical miss is a floor with a closed form, which is the same thing. A silhouette’s unreachable concavity is a floor with a geometric cause. But a floor that scales exactly with a named parameter of the instrument is the most useful form of all, because it converts into a specification.

The proportionality is the check, not the headline

It is worth being clear about why the doubling matters more than the level does.

A floor of 0.72% is a number. It could be the lens; it could be a conditioning limit of the vanishing-point intersection; it could be an artefact of the three lines chosen, or of the noise model, or of the range swept. Nothing about a single level identifies its cause.

Doubling a parameter of the cause and watching the effect double identifies it. That is a controlled experiment rather than an observation, and it is the difference between “the error stopped at 0.72%” and “the error stopped at a level proportional to k1k_1”.

The same distinction runs through this collection wherever a mechanism is claimed. A dome port’s picture depends on offset over radius is established by scaling both and finding no change, not by observing that the bending is small. A caustic carries a size is established by scaling the mirror and finding every length multiplied.

A level is an observation. A proportionality is a mechanism, and it costs one more run.

The invariant, against the coefficient that destroys itFour collinear points, imaged through a pinhole, return the world's cross-ratio to 2e-16. Through a lens with k₁ = -0.32 they return it 1.29% out. The curve is zero at k₁ = 0 and at no other coefficient, because a radial polynomial is not a projective map.00.50011.502-0.400-0.20000.200k₁departure of the cross-ratio from the world's value (%)pinhole1.29%the pinhole's own error, on the same four points2e-16 — the control
Fig. 3 The invariant’s own departure against the distortion coefficient — the upstream proportionality that this essay’s floor inherits.

Where in the recovery it enters

It is worth tracing the path, because it says which part of the pipeline to fix.

A vanishing point is found by fitting a line to the images of points on a world line, then intersecting several such lines. Distortion bends a straight world line into a curve in the picture, so the fitted line is a chord of a curve rather than the image of a line, and its direction is wrong.

The error in that direction does not fall with more points. Fitting a straight line to more samples of a curve converges to a definite wrong answer — the least-squares chord — and converges there faster the more points there are.

That is the whole mechanism and it explains the rise as well as the level. At four points, the fitted line is a poor estimate of the chord and the noise is large; the two errors are comparable and partially cancel. At two hundred and fifty-seven, the chord is nailed down and the answer is the chord’s answer, which is wrong by the amount the lens bent it.

The invariant, against the coefficient that destroys itFour collinear points, imaged through a pinhole, return the world's cross-ratio to 2e-16. Through a lens with k₁ = -0.16 they return it 0.64% out. The curve is zero at k₁ = 0 and at no other coefficient, because a radial polynomial is not a projective map.00.50011.502-0.400-0.20000.200k₁departure of the cross-ratio from the world's value (%)pinhole0.64%the pinhole's own error, on the same four points2e-16 — the control
Fig. 4 The same lens, measured against the invariant underneath the recovery. A cross-ratio through a real lens is not the cross-ratio, and the departure is what the fitted vanishing point inherits.

Why the proportionality has to hold

The doubling is presented above as a measured fact, which is the right order to present it in. It is also derivable, and the derivation says how far the fact can be trusted.

Radial distortion displaces a picture point along its own radius by k1r3k_1 r^{3} to leading order. A straight world line therefore images as a curve whose departure from the chord through its endpoints is k1k_1 times a purely geometric quantity — where the line sits in the frame and how long it is — and nothing else in the expression carries k1k_1 at all. Fit a straight line to samples of that curve and the fitted direction is the chord’s direction; its angular error is the departure divided by the line’s drawn length, still linear in k1k_1. Intersect two such directions and the vanishing point moves by an amount linear in their angular errors. Take the focal length from the two vanishing points and the recovered value moves linearly again, because every step from the displacement onward is a first-order perturbation of a smooth function.

So the floor is k1k_1 times a constant that depends only on the arrangement of the lines and the frame, and the ratio of two floors at two coefficients must be the ratio of the coefficients. That is a prediction the sweep could have refuted and did not: 2.0012.001 against 22.

The one part in two thousand is not noise to be waved away either — it is the size of the first neglected term. The expansion is in k1r2k_1 r^{2}, and the next term is quadratic in the coefficient, so the ratio of floors should exceed two by something of that order rather than equal it. A lens strong enough to bend the frame’s corners visibly would show the excess plainly, and the proportionality would stop being exact while remaining a good approximation.

Which is the useful form of the result for anyone applying it. The floor can be quoted per unit of k1k_1, taken from a lens’s specification, and multiplied out for the lens in hand — no sweep required — provided the distortion is weak enough that the cubic term is the whole story. Where it is not, the prediction is still the right first estimate and the measured floor is the answer.

Why the rise is the diagnostic

The rising curve deserves one more paragraph, because it is the single most useful thing in the essay for a reader who is not thinking about lenses at all.

An error that falls and flattens is ambiguous. It could be a floor; it could be a falling term with a shallow price; it could be a sweep that has not run far enough, which is exactly what that ambiguity costs. Nothing about a flattening curve settles which.

An error that falls and then rises is not ambiguous at all. No single falling term does that. A rise means at least two terms of opposite sign are present and one of them has stopped shrinking, and it is a signature that no amount of noise-reduction produces on its own.

So the rise is worth watching for, and it is easy to miss because the natural instinct on seeing an error go up with more effort is to suspect the experiment. Here the experiment is correct and the reading is the finding: the measurement improved and the answer got worse, because the measurement had been improving a quantity that was cancelling an error rather than reducing the error.

The valley two distortion coefficients sit ink₁ and k₂ are recovered exactly from clean data and are correlated at -0.997. Walking away from the fit along the stiff direction costs 25.1 px of straightness; the same walk along the soft direction costs 1.28 px. The ratio of the two curvatures is 813.01020-0.200-0.10000.1000.200distance from the fitted coefficients, along each directionstraightness residual (px)stiff directionsoft directioncondition number 813k₁ and k₂ correlate at -0.9969
Fig. 5 The purchase’s own conditioning. The distortion fit has a long shallow valley of its own, which is the price of the remedy.

What buys it off

A floor is only a floor with respect to a stated control. This one is unbuyable by measuring more points, and it is perfectly buyable by a different purchase.

Fit the distortion. Fitting a lens from straightness alone recovers the coefficients from the requirement that straight world lines image straight, and it needs no calibration target — only lines known to be straight. With the distortion removed the recovery is back in the pinhole case and the floor goes.

That is the correct reading of the whole result. The floor is not a property of the world; it is a property of the model, and the way to remove a model error is to enlarge the model rather than to gather more data.

It costs something, and the cost is worth naming. The distortion fit needs several straight lines spanning the frame, and its own conditioning is measured elsewhere in this collection. So the trade is one purchase for another at a different price — which is the ordinary situation, and is what a two-term reading is for.

k₁ recovered from 5 bent lines and nothing elseThe fit is never shown the coefficient, the camera or the scene — only which sets of points came from straight edges. It returns -0.280000000 against a true -0.280000, off by 5e-15, and straightens its own input to 4e-13 px.fitted k₁ = -0.280000true -0.280000, off by 5e-15
Fig. 6 The purchase that does remove the floor. Distortion coefficients fitted from the straightness of world lines, needing no target and no known geometry.

What this changes about the round trip

The round trip is this collection’s central verification and it deserves a note about what the floor does to it.

It does nothing, because the round trip is run on drawn figures rather than on photographs, and a drawn figure comes from a stated pinhole. Fifteen digits of agreement is a statement about the geometry and it stays one.

What changes is the interpretation when the same machinery is pointed at a real picture. A recovery that agrees with the truth to fifteen digits on a synthetic figure and to half a per cent on a photograph has not degraded; it is answering a different question, because the photograph was not taken by the camera the model describes.

Stating it that way removes a temptation that the number invites. A recovery that is exact in arithmetic is not thereby accurate in the world, and the gap between them is not noise — it is the distance between the model and the thing.

Three floors, three kinds

The row has now met three floors and they are worth sorting, because “the error stopped falling” means three different things.

A floor with a closed form. A panorama’s vertical miss is esinβe\sin\beta and there is no frame count in it. Nothing about the measurement removes it; a different instrument would.

A floor with a geometric cause. The part of a concavity no silhouette reaches is unreachable because an outline is a pair of supporting lines and no pair reaches into a bite. More views never help; a different modality would.

A floor that is the model. This one. The data contain the information; the model discards it. Enlarging the model removes the floor entirely, at the price of a different fit.

Only the third is removable by thinking harder, and only the third is invisible from inside the experiment — the other two announce themselves as constants and this one masquerades as an error that has converged.

What a reader with a photograph should do

The three-way sort turns into a short procedure.

Measure the recovery’s error against the amount of measurement, over as much range as the picture allows. If it falls and keeps falling, there is nothing here but noise and the answer is as good as the effort.

If it flattens, change the model before believing the level. Fit the distortion; re-run. That is the cheapest of the three tests and it settles the most common cause.

If it still flattens, change an instrument parameter and see whether the level scales. That identifies which property of the instrument is responsible, and it is what turns a floor into a specification.

And if neither moves it, the floor is geometric — a property of the arrangement rather than of the model or the hardware — and the remedy is a different arrangement rather than a better one.

A 5.6 m object, measured off an uncorrected frameOn a pinhole picture the horizon-fraction recovery returns 5.6 m exactly. Through a lens with k₁ = -0.24 it returns 5.48 m — 2.15% out. A 2.2 m object at the same spot on the same lens comes back 0.14% out, because what costs is the radius the three marks span, not where in the frame they are.5.405.505.60-0.400-0.2000k₁ of the lens the photograph was taken withheight recovered from the photograph (m)the true 5.6 m5.48 m5.6 m tall, 11 m away, on a level camera2.15% out — against 0.14% for a 2.2 m object
Fig. 7 What an uncorrected lens does to a downstream measurement. The same model error, appearing as a bias in a height rather than in a focal length.

How to tell which kind is which

The practical question, and there is a test.

Change the model and watch whether the floor moves. Fit the distortion and re-run; if the floor goes, it was the third kind. That is a cheap experiment and it is the one nobody runs, because a converged error looks like a finished measurement.

Change the instrument’s own parameter and watch whether the floor scales. Doubling k1k_1 doubles the floor here, which identifies it. A floor that did not respond to any parameter of the instrument would be the first or second kind.

Both tests are variations on the same idea and it is the row’s central one. A term is characterised by what it responds to, and finding out takes changing something and looking — which is a different activity from measuring the same thing more carefully, and it is the one the word “error” tends to discourage.

The word is the trouble, in fact. “Error” names a single quantity and invites a single remedy, which is care. Nothing in it suggests that the quantity has parts, that the parts answer to different things, or that the most useful experiment is often to make the measurement worse in a controlled way and see which part responds. That is what doubling k1k_1 does here, and it is the only step in this essay that produced a mechanism rather than a number.

More measurement buys the noise and not the lensA focal length recovered from two vanishing points, against how many points were measured along each line. Through a pinhole the error falls from 0.34% to 0.048% and the fit finds no floor at all. Through a lens of k₁ = 0 it falls, turns and rises to 0.05%, because the noise the extra points removed had been partly cancelling the lens's bend. The floor is 0.00% and doubling k₁ doubles it, so the floor is the lens.00.1000.2000.3000.4000.50011.502how many points were measured along each line, log₁₀how wrong the recovered focal length is (%)a pinhole — no floora lens, k₁ = 0the floor, 0.00%two vanishing points, three lines eachpinhole floor 3e-16 · lens floor 0.00%
Fig. 8 The distortion set to zero, which is the model test run. The floor is gone and the two curves are the same curve, which is what identifies the floor as the lens rather than as anything else in the pipeline.

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.

Camera recoveryConditioningError termFocal lengthinstrument limitleast squaresLens distortionModel errorResidualVanishing point