Measuring from one picture

The dish no outline reaches

An outline is a pair of numbers per direction and nothing more, so a shape built from outlines has two errors that behave differently. The part outside the convex hull falls as one over the square of the view count. The part inside a concavity is the same area at four views and at a hundred and twenty-eight, because no pair of supporting lines ever reaches into a bite.

Worth reading first: One picture of a ball · The ball a drawing does not draw round · Another picture of the same sweep.

Two pictures of a ball finishes the ball, and it finishes it because a sphere has no shape beyond a size and a place. Ask the same question of an object that does have a shape and the answer changes character completely.

An outline is a pair of numbers per direction: where the object’s shadow starts and where it ends, in that direction. That is all the information a silhouette contains. Everything a reconstruction from outlines can produce has to be built out of a finite set of such pairs.

Every outline this object has, from 8 directionsA cross-section with a bite taken out of it, and the region every one of 8 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.1098 against the object's 2.9193. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.0749, is the floor. The bite is 5.3% of the object and it is invisible to outlines from every direction at once.hull 3.1098 · object 2.9193 · floor 3.07498 outlinesthe notch survives all of them
Fig. 1 A cross-section with a bite taken out of it, and the region every one of eight outlines admits. Each view contributes a pair of supporting lines, and the visual hull is what is left when all of them have cut.

Two error terms, and they are not the same kind

Compare the visual hull with the object and the difference splits into two pieces that behave completely differently.

The outside term is the area the hull has beyond the object’s convex hull — the corners between adjacent tangent lines, which are cut away as more views arrive. It falls, and it falls fast.

The unreachable term is the area inside the convex hull that is not the object. The bite. No pair of supporting lines from any direction ever reaches into a concavity, so it is the same area at every view count.

One error term falls away and the other never movesThe two things a silhouette reconstruction gets wrong, on the same object, against how many views it was given. The falling curve is the area outside the convex hull that the views have not yet cut away: it goes as n raised to -1.995, fitted rather than asserted, so at 128 views it is 1.38e-4. The flat line is the notch — 0.1556 of area, 5.3% of the object — and it is the same number at four views and at a hundred and twenty-eight, because an outline is a pair of numbers per direction and no pair of numbers ever reaches inside a concavity. Only 85.1% of this boundary is ever on a silhouette from any direction at all.-4-3-2-111.502views taken round the object (log₁₀)area still wrong (log₁₀)the notch: 0.1564slope -1.99a notch of 60°one term for sale, one not
Fig. 2 The two terms on one plot, against how many views the hull was built from. One falls away and the other is a horizontal line.

Reporting them as one number — “the reconstruction is out by five per cent” — hides the whole finding, because one half responds to effort and the other does not.

The first term falls as one over the square

Take more views and the polygon circumscribing the convex hull gets more sides, so the little triangles between the tangents and the true boundary shrink.

The rate is measured rather than argued: fit a power law to the excess area against the view count and the exponent comes out at minus two, to within a few hundredths. Four views to a hundred and twenty-eight is a factor of thirty-two in count and close to a thousand in excess.

Every outline this object has, from 24 directionsA cross-section with a bite taken out of it, and the region every one of 24 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.0786 against the object's 2.9193. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.0749, is the floor. The bite is 5.3% of the object and it is invisible to outlines from every direction at once.hull 3.0786 · object 2.9193 · floor 3.074924 outlinesthe notch survives all of them
Fig. 3 Twenty-four views. The hull has crept in toward the convex hull almost everywhere, and the bite is exactly where it was.

The fitted exponent is the right way to state it, for the same reason a resampling kernel’s order is fitted rather than quoted: an asserted rate is a claim about the theory, and a fitted one is a claim about the computation. Here the two agree, which is the outcome that makes the assertion worth making.

The second term does not move at all

The bite is a twentieth of the object’s area, and it is that at four views, at eight, at a hundred and twenty-eight.

Not approximately unchanged. The visual hull is by construction a superset of the convex hull — a supporting line cannot cut inside it, because the convex hull is exactly the intersection of all half-planes containing the object — so the area inside the convex hull is untouched by any number of views.

Every outline this object has, from 8 directionsA cross-section with a bite taken out of it, and the region every one of 8 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 2.8888 against the object's 2.7711. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 2.8580, is the floor. The bite is 3.1% of the object and it is invisible to outlines from every direction at once.hull 2.8888 · object 2.7711 · floor 2.85808 outlinesthe notch survives all of them
Fig. 4 A wider bite. The unreachable term grows with the notch and the falling term does not notice, because the two are about different parts of the boundary.

The check asserts both halves and it asserts the second one as an identity rather than as a bound: at every view count the hull’s area is greater than or equal to the convex hull’s, at the arithmetic floor. A version that checked “the concavity is not much reduced” would pass an implementation that reduced it a little, which would be an implementation with a bug in it.

And the control, which is a convex object

Take the notch out and everything changes. A convex object’s convex hull is itself, so the second term is zero and the first is the whole error — and the reconstruction converges to the object as the views multiply.

Every outline this object has, from 8 directionsA cross-section with a bite taken out of it, and the region every one of 8 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.1760 against the object's 3.0593. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.1381, is the floor. The bite is 2.6% of the object and it is invisible to outlines from every direction at once.hull 3.1760 · object 3.0593 · floor 3.13818 outlinesthe notch survives all of them
Fig. 5 Nearly convex. The unreachable term has shrunk toward nothing and will reach it exactly when the notch does, which is the control drawn as the end of a slider rather than described.

That control is what turns the finding from a statement about this object into a statement about concavity. Without it, “the error does not go to zero” could be a fact about the hull algorithm; with it, the error goes to zero exactly when there is nothing concave for it to be about.

Only part of the boundary is ever on a silhouette

There is a second way of saying the same thing and it is the one a reader can picture.

Walk every viewing direction and mark the boundary point that is extreme in it. On a convex outline every point gets marked eventually. On a notched one, eighty-five per cent of the boundary is marked and the rest never is — and the rest is exactly the inside of the notch, which is the fraction of the perimeter the notch occupies.

Every outline this object has, from 48 directionsA cross-section with a bite taken out of it, and the region every one of 48 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.0758 against the object's 2.9193. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.0749, is the floor. The bite is 5.3% of the object and it is invisible to outlines from every direction at once.hull 3.0758 · object 2.9193 · floor 3.074948 outlinesthe notch survives all of them
Fig. 6 Forty-eight views. The supporting lines have accumulated into something very close to the convex hull and the inside of the notch has never been touched by one.

So the concavity is not poorly sampled. It is not sampled at all, from any direction, ever. There is no view from which the inside of a bite is on the object’s outline, because a point in a concavity always has some of the object between it and the outside in every direction that would make it extreme.

That is a different kind of limit from the ones this site usually reports. Seven numbers no picture can name is a gauge freedom: the reconstruction is determined up to a transformation, and every member of the family is an equally good answer. This is not a freedom; it is a region the measurement never touches, and the answer it produces there is a definite wrong shape rather than a family.

Seven moves that change no picture, and three that change every oneThe whole reconstruction shifted by up to 1.3 m, turned by up to 0.55 rad and scaled by 2.7: every picture stays where it was, to 2.6e-11 px. Move one camera by 50 mm or one point by 50 mm and the pictures move by 0.63 px or more. The seven are not small effects that could be measured with better data; they are exactly zero, and the 2e+10× between the two groups is what makes that a claim rather than a tolerance.shift x1.7e-11 pxshift y1.7e-11 pxshift z2.6e-11 pxturn x3.3e-12 pxturn y1.7e-11 pxturn z7.9e-12 pxscale ×2.71.8e-11 pxturn camera 0 by 0.01 rad0.940 pxmove camera 0 by 50 mm2.138 pxmove point 0 by 50 mm0.626 pxchange in reprojection error, log scalebelow: not gauge directionsflat to 2.6e-11 px · stiff from 0.63 px2e+10× apart
Fig. 7 The gauge freedom, from the manyviews field: seven directions along which the whole reconstruction slides with no picture changing. A concavity is not one of these — it is not free, it is unmeasured.

Why parallel views and not perspective ones

The whole essay is built on parallel silhouettes and it is worth saying why, because the choice makes the result cleaner and slightly narrower.

Under a parallel projection a silhouette is an interval: the object’s extent in one direction, bounded by two supporting lines perpendicular to it. So each view contributes a slab, and the intersection of slabs over all directions is exactly the convex hull — a classical fact, and the reason the second term has such a sharp statement.

Under a perspective projection each view contributes a cone rather than a slab, and a cone is larger than the slab in the same direction. So a perspective visual hull contains the parallel one, strictly, and it shrinks toward it as the viewpoints move away.

Choosing parallel views therefore gives the best case for the method: any real camera does worse on the first term. The second term is unaffected — a cone cannot reach into a concavity any more than a slab can — so the finding that matters is unchanged and the finding that is a rate is stated for the friendliest arrangement there is.

That is the right way round for a limit. A negative result proved on the favourable case holds on the unfavourable one, and quoting the convergence order for perspective views would have mixed the method’s limit with the rig’s geometry.

A parallel projection is a perspective one with the eye taken awayThe four small boxes are photographs from 3 m, 8 m, 30 m, 300 m with the lens lengthened to match. The isometric drawing is the limit, and its bundles stay parallel to 0e+0 radians.isometric — the limit3 m8 m30 m300 msame box, same drawn sizethe eye recedes
Fig. 8 The limit the parallel case is, from the parallel field: an eye taken to infinity, where every ray is parallel and the picture has no station point at all.

What this makes of the previous rungs

The row’s three earlier essays now sit in an order that says something.

The wall under the paint recovers a surface exactly, and it can because the design supplies the correspondence: each mark’s ray is known, so the surface is measured point by point and a step comes back as a step.

One and two pictures of a ball recover it exactly, and they can because a sphere has no shape to recover beyond four numbers.

Outlines of a general object recover the visual hull, which is not the object, and no number of them fixes it. The difference between the first two cases and this one is not the number of pictures; it is whether the pictures carry information about where on the surface each mark came from.

The front view and the top view draw two different curves on the ballThe two contour generators of one ball, drawn on the object in a third view so that both can be seen at once. The front view's outline is the great circle perpendicular to its own ray; so is the top view's; and they are perpendicular to each other, so they meet in exactly two points — the frontier points, marked. A transfer line between the two views joins the marked pair, which are 1.414 radii apart here and √2 apart at the worst. Turn the view by one degree and the curve on the ball turns by one degree with it; a box's silhouette does not move at all until the direction crosses a face's plane, and then it jumps to another set of the box's own edges.frontierthe transfer joins points 1.414 R apartone ball, two outlinesmeeting in exactly two points
Fig. 9 The reason, from the parallel field: two outlines of one ball are images of two different curves on it, meeting at exactly two points. An outline never says which points of the surface produced it.

That is what the parallel field found about transfer lines, followed one step further. There it costs a draughtsman a correspondence that does not matter because the drawing is right anyway; here it costs a reconstruction the concavities, because a method built on outlines has nothing else to be built on.

The shape of the answer, met twice on this site

There is a pattern here that this collection has now found twice, from two directions that have nothing to do with each other.

A stitched panorama’s parallax has a horizontal half that falls as the sine of half a frame spacing — buy it off by shooting more — and a vertical half that is the sine of half the frame’s own height and does not move at any frame count.

A silhouette reconstruction’s error has a term outside the convex hull that falls as one over the square of the view count, and a term inside a concavity that does not move at any count.

Different subjects, different machinery, same structure: one term that responds to effort and one that does not. And in both cases the useful engineering statement is which is which rather than how large either is, because the first belongs in an instruction and the second belongs in the description of what the method is.

One half falls away and the other does not moveThe worst miss across the seam and the worst miss at the top of the frame, against the number of frames, for a pivot 60 mm off the pupil and a frame 38° tall. The first is e·sin(π/n) and falls from 60.0 mm to 2.9 mm; the second is e·sin(β) and is 19.53 mm at every count, bit for bit. They cross at π/β = 9.47, so past 10 frames every remaining pixel of parallax is vertical and no further shooting touches it. The upper curve is the corner of the strip, which is what a reader actually gets.0204060204060frames in the panoramadistance from the pivot (mm)π/β = 9.5across the seamup the framepivot 60 mm · frame 38° tallfloor 19.53 mm
Fig. 10 The other instance, from the curved field. One curve falls away as the frames multiply and one line is flat, and the flat one is what the arrangement cannot do rather than what it has not done yet.

The bite this object has, and why it is a bite

The object is a disc with a notch cut into its rim, and the shape of the notch is worth a sentence because a reader might reasonably suspect it of being chosen to make the point.

It is chosen to make the point, and the point survives any other choice. What a concavity is, for this purpose, is any region of the boundary that is not on the convex hull — and every non-convex object has one by definition. The notch’s depth sets how large the unreachable term is; its width sets what fraction of the perimeter is never on a silhouette; and neither of them changes the fact that the term does not fall with the view count.

That is why both of those are on a slider. Widen the notch and the unreachable area grows and the falling term is untouched; narrow it to nothing and the unreachable term reaches exactly zero, which is the control. Nothing in between behaves differently in kind.

The one property that does matter is that the boundary stays simple — the notch runs in to a chord and back out without the outline crossing itself. A self-intersecting boundary would have an area that depends on a winding convention, and the areas quoted here would be answering a question about the convention rather than about the shape.

Every outline this object has, from 4 directionsA cross-section with a bite taken out of it, and the region every one of 4 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.2115 against the object's 2.9193. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.0749, is the floor. The bite is 5.3% of the object and it is invisible to outlines from every direction at once.hull 3.2115 · object 2.9193 · floor 3.07494 outlinesthe notch survives all of them
Fig. 11 Four views, which is the coarsest the plot uses. The hull is visibly a polygon and the notch is visibly untouched, so both terms can be read off one picture at the count where the first is largest.

What a reconstruction does about it

Two things, and both of them amount to adding a different kind of measurement.

Stop using outlines. Texture, stereo correspondence, structured light and time-of-flight all produce points on the surface rather than tangents to it, and a point in a concavity is a point in a concavity. The visual hull is what a method uses when the object has no texture to match, which is exactly when the concavities are hardest to see any other way.

Or accept the hull and say so. A visual hull is a genuine and useful object — it bounds the truth, it is cheap, and it is exactly right for a convex object — and calling it a reconstruction is what causes the trouble.

Where the adjustment stops, and why the two curves stop in different placesBoth runs start from the same chained initialisation and move every camera and every point at once. Given exact correspondences the error falls to 1.3e-11 px, which is arithmetic rather than geometry. Given the same points read to 1 px it falls from 4.67 px to 0.3324 px and stays: no camera track and no scene reproject quantised marks exactly, and a solver that reached zero on them would be fitting the rounding.-10-50012345iterationreprojection error (px, log scale)exact marksread to 1 px4.67 px → 0.3324 px in 5 iterationsexact marks reach 1.3e-11 px
Fig. 12 The alternative, from the manyviews field: a bundle adjustment on matched points, which reaches wherever the matches reach and has a completely different failure mode.

The uncomfortable version is that the two terms fail in opposite directions for a reader trying to judge the result. The falling term makes a reconstruction from many views look excellent — smooth, tight, converged. The unreachable term is invisible in exactly the same picture, because a filled-in concavity looks like a surface.

Three views, and two solids that draw themA stepped block with a hole on a 6-cell grid. The three views along the top are drawn by the 192-cell solid on the left and by the 64-cell solid on the right — every filled square in every one of the three views is filled by both. The views bound the solid and do not determine it.front view · 32 filledtop view · 36 filledside view · 36 filledthe largest solid with these views — 192 cellsand a solid with the same views — 64 cells6 × 6 × 6 cellsthe three views are identical; the solids differ by 128 cells
Fig. 13 The same species in the parallel field: two solids that produce identical views, so nothing about the drawing distinguishes them and the drawing looks complete.

The refusal, and what it is protecting

visualHull2D builds its hull by clipping a large starting region with every view’s two half-planes, and it asserts that what is left is still a region.

Handed a clipping box that does not contain the object, every clip removes everything and the hull collapses to nothing. The routine refuses, and the refusal is worth having because the failure is silent otherwise: an empty polygon has area zero, and an area of zero is a perfectly plausible number that would have gone into the plot as a very good reconstruction.

That is the same class of trap as a figure whose clip removed every mark — the symptom is absence, and absence is what no check notices unless it is asked to.

What this does not settle

It does not treat three dimensions. Everything here is a cross-section, on purpose: the argument is about supporting lines and a third dimension adds arithmetic and no argument. The 1/n² rate is the two-dimensional one, and the three-dimensional version has its own.

It does not treat an object whose concavity is visible through another part of it — a torus seen through its own hole, where the silhouette has an inner boundary as well as an outer one and carries more than two numbers per direction.

It does not treat perspective silhouettes. Views from finite points give cones rather than slabs, so the hull is larger and converges to the convex hull only as the viewpoints recede — which changes the first term’s rate and not the second term at all.

And it does not say the visual hull is the wrong thing to compute. It says what the two halves of its error are, which of them a reader can buy off, and that the other one is not small and does not shrink.

An error that falls with effort and an error that does not are different objects, and averaging them into one figure of merit destroys the only thing about them worth knowing. Measure the rate of the first and the size of the second, and report them apart.

Every outline this object has, from 12 directionsA cross-section with a bite taken out of it, and the region every one of 12 outlines admits. Each view contributes a pair of supporting lines — an outline is a pair of numbers per direction and nothing more — and the visual hull is what is left when all of them have cut. It has area 3.0900 against the object's 2.9193. Adding views shaves the corners between the tangents, and no number of them touches the notch: the convex hull, at 3.0749, is the floor. The bite is 5.3% of the object and it is invisible to outlines from every direction at once.hull 3.0900 · object 2.9193 · floor 3.074912 outlinesthe notch survives all of them
Fig. 14 Twelve views, which is where a reader’s eye stops seeing a polygon. The first term is already small enough to look converged and the second is exactly where it was at four.
A ring tipped 55°, lit from straight aboveThe shadow is computed cell by cell — a patch of floor is dark when the line from it to the light meets the ring — so the count of holes is a measurement. The hole survives at 55° of tilt; the closed form puts the transition at 71.34°, where the ring's own opening, foreshortened to R·cos θ, drops below the tube's radius.1 holetilt 55°closes at 71.3°
Fig. 15 The light field’s version of a shape a projection loses: a hole in an occluder that its shadow does not preserve. A concavity is the same kind of loss, made by an outline instead of a lamp.
One error term falls away and the other never movesThe two things a silhouette reconstruction gets wrong, on the same object, against how many views it was given. The falling curve is the area outside the convex hull that the views have not yet cut away: it goes as n raised to -1.997, fitted rather than asserted, so at 128 views it is 1.26e-4. The flat line is the notch — 0.1236 of area, 4.4% of the object — and it is the same number at four views and at a hundred and twenty-eight, because an outline is a pair of numbers per direction and no pair of numbers ever reaches inside a concavity. Only 77.8% of this boundary is ever on a silhouette from any direction at all.-4-3-2-111.502views taken round the object (log₁₀)area still wrong (log₁₀)the notch: 0.1236slope -2.00a notch of 80°one term for sale, one not
Fig. 16 The two terms with a wider bite. The falling curve is unmoved and the flat line has risen, which is the cleanest statement that they are measuring different things.

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.

Contour generatorConvergence orderConvex hullDemonstrationinstrument limitOrthographicReconstructionreconstruction ambiguitySilhouetteVisual hull