The second eye

Second pictures reach a floor unless they go round

A point with little parallax can be read against several second pictures, and each should count in proportion to the square of its parallax. Doing that does less than expected, because every second picture shares the same first reading. In one direction, no number of them goes below one pixel over the longest parallax. Spread them round the point and a fit can find out where the first reading really was, and the floor goes away.

Worth reading first: A flat scene fixes no second eye · The image of the other eye.

A plane coefficient reaches as far as its parallax found how far a known plane’s measurement of height extends. Exactly read, the coefficient on the epipole gives a point’s scaled height over its depth anywhere both pictures see. Read to a pixel, its error is one over the parallax at that point, and it grows as a point recedes until a kerb forty metres out is effectively unmeasured. What sets the reach is visible in the picture: how many pixels of parallax a point has.

So a point with short parallax wants more pictures. That essay closed on this, and the parallax length had already found that three second pictures, read exactly, reproduce one coefficient to 4×10−144\times10^{-14}. Each second picture is an independent estimate of the same number, with an error set by its own parallax. The arithmetic of combining them looks routine. Weight each by the square of its parallax, and the combined error should come from the root-sum-square of all the parallaxes. It should be as if the pictures had pooled their parallax.

There is one thing wrong with that picture, which the earlier essay flagged and could not measure. Every second picture is compared against the same first picture. So what the first picture got wrong, all of them get wrong in the same way.

The arrangement

The point is a kerb a metre high, 40 m from a camera 1.6 m above the ground, with a focal length of 900 px. A second camera moved sideways by bb sees it with parallax p=fbH/(Zh)p = fbH/(Zh), so 14 px for each metre of baseline. Take four second pictures, at baselines of 0.3, 0.6, 1.2 and 2.4 m. Their parallaxes are 4.2, 8.4, 16.9 and 33.8 px.

Each has a reading error of 1 px in the first picture, which is shared, and 1 px in its own second picture. There is also the error in the plane’s own map at 40 m. That is well past the marks the map was fitted from, so an error of 2 px at that distance is a reasonable working value, and it is independent from one picture to the next. The plane’s map is otherwise taken as read: near a flat scene the map from the first picture to any second is close to a translation, so what the first reading gets wrong lands on every second picture as the same error.

Weights count for more than pictures

Consider three ways of combining these.

Four second pictures of one kerb, combined three waysA kerb a metre high, 40 m out, read to 1 px in a first picture and in four second pictures at baselines of 0.3, 0.6, 1.2 and 2.4 m in one direction, each with 2 px of map error at that distance. The error in its coefficient: the shortest alone 58.1%; the longest alone 7.3%; all four, equal weights 18.9%; all four, by parallax squared 7.1%; all four, fitted together 6.8%. Equal weights do far worse than the longest baseline on its own, since they import the short baselines' large errors. Parallax-squared weights do a little better than the longest alone.the shortest alone58.1%the longest alone7.3%all four, equal weights18.9%all four, by parallax squared7.1%all four, fitted together6.8%error in the coefficientthe weights matter
Fig. 1 The error in the kerb’s coefficient for several ways of using four second pictures, read to a pixel with two pixels of map error. Equal weights lose badly to the single longest baseline. Weighting by parallax squared and fitting everything together both do a little better.

The shortest baseline alone has an error of 58.1 per cent, and the longest alone 7.3 per cent. So far, this just restates the earlier reach. Averaging the four estimates with equal weights gives 18.9 per cent, which is much worse than using only the longest: the three short baselines have imported their own much larger errors. A person who assumes that more pictures are automatically better, and who averages them, has here reduced the value of the fourth.

Weighting each by the square of its parallax, as least squares says to, gives 7.1 per cent. That is hardly better than the longest baseline on its own, at 7.3 per cent. The arithmetic of pooled parallax predicted more than that. Summing the squares of the parallaxes gives 39.1 px, and the second-picture error of about 2.2 px over that would be 5.7 per cent, before the first picture has been accounted for. The rest of the difference is the shared reading.

The check on this is simple and direct. Simulated with independent errors in 4,000 trials, the equal-weight and weighted results both match the closed forms to within five per cent.

The first picture is shared

Split the weighted result’s error into its parts.

Whose error it isThe parallax-weighted coefficient from four second pictures, taken apart. read 0 px, map 2 px: 5.1%, of which the first picture's shared reading is 0.0%; read 1 px, map 0 px: 4.9%, of which the first picture's shared reading is 4.2%; read 1 px, map 2 px: 7.1%, of which the first picture's shared reading is 4.2%; read 1 px, map 6 px: 16.2%, of which the first picture's shared reading is 4.2%. Any error that belongs to one second picture averages out across them. The first picture's reading is common to all, so no number of further second pictures in one direction will average it away.read 0 px, map 2 px5.1%read 1 px, map 0 px4.9%read 1 px, map 2 px7.1%read 1 px, map 6 px16.2%four baselines in one directionthe first picture is shared
Fig. 2 The weighted result’s error taken apart, for several amounts of reading and map error. Errors belonging to each second picture shrink as more are added. The first picture’s reading is common to all of them, and its share stays.

With no reading error at all and 2 px of map error, the coefficient comes to 5.1 per cent, from the second pictures’ independent errors alone. With 1 px of reading and no map error, it comes to 4.9 per cent, of which 4.2 per cent is the shared first reading. The two combine to 7.1 per cent. So the first picture, with its single pixel of reading error, is responsible for most of what is left, even with every picture weighted correctly.

The reason is geometric. A first picture read wrongly by δ\delta moves the plane’s prediction of where the point should be, in every second picture, by about δ\delta. The parallax in each then looks larger or smaller by that amount. If all the parallaxes run in one direction, they all look larger or smaller at the same time. The error in each picture’s coefficient is δ/pi\delta/p_i, all with the same sign, and they do not cancel.

Adding second pictures, then, runs into a floor.

More second pictures hit a floor, unless they go roundThe error in the coefficient, with the first picture's reading fitted along with it, for more and more second pictures at a 2.4 m baseline. All in one direction, it falls to 2.99% at 256 and never passes 2.96%, which is the first picture's own pixel over this parallax. Spread evenly round the point, it keeps falling as the square root of the number, to 0.41%. Pictures in several directions let a fit find out where the first reading really was.00.50000.50011.502second pictures (log₁₀)error in the coefficient, % (log₁₀)one directionround the pointbaselines of 2.4 mfloor 2.96%
Fig. 3 The coefficient’s error against the number of second pictures at one baseline, with the first picture’s reading fitted along with the coefficient. All in one direction, the curve flattens onto the dashed line. Spread round the point, it keeps falling.

Take a baseline of 2.4 m and make as many second pictures there as desired, all in one direction. The error is 7.26 per cent with one, 4.44 with four, 3.39 with sixteen, 3.08 with sixty-four, 2.99 with two hundred and fifty-six. It approaches 2.96 per cent and never reaches it. That number is simply one pixel over 33.75 px of parallax, or the first picture’s reading error, and it has the closed form that the earlier essay’s reach would have predicted for one perfectly read second picture.

On one line, an unlimited number of second pictures is worth about one perfect second picture. That is the answer to the question the earlier essay raised about the map’s share: whether the combination reaches the error the summed parallax predicts, or whether something shared sets a floor. A floor, it is, and what sets it is the first picture rather than the map. The map’s error is independent in each picture and averages away. A further consequence is worth stating. Spending more second pictures at a shorter baseline is capped by a higher floor, so it never catches up.

A longer baseline against more baselinesThe coefficient's error for several ways of spending second pictures on one line: two short: 0.3, 0.6 27.5%, two long: 1.2, 2.4 6.9%, one long: 2.4 7.3%, one longer: 4.8 3.6%, four at 1.2 8.9%, sixteen at 0.6 13.6%. A single baseline twice as long beats any number of pictures at half of it, once the first picture's floor at that baseline has been reached. The floor is one over the longest parallax, so it pays to look for the longest first.two short: 0.3, 0.627.5%two long: 1.2, 2.46.9%one long: 2.47.3%one longer: 4.83.6%four at 1.28.9%sixteen at 0.613.6%fitted togetherreach first, then count
Fig. 4 Several ways of spending second pictures along one line. A baseline twice as long beats any number of pictures at half of it, since its floor is half as high. Reach comes first, then the count.

Two short pictures, at 0.3 and 0.6 m, give 27.5 per cent. Two long, at 1.2 and 2.4 m, give 6.9 per cent. One at 2.4 m gives 7.3 per cent, and one longer, at 4.8 m, 3.6 per cent. Sixteen at 0.6 m give 13.6 per cent. The ordering is clear enough, and there is a clean rule of thumb: first find the longest baseline available, since it sets the floor at one over its parallax. A small number of pictures at that baseline reach near that floor, and any more add little.

How many are worth taking

The floor makes it possible to say in a line how many pictures on one line are worth the trouble. With a reading error σa\sigma_a in the first picture and σb\sigma_b in each second picture, nn pictures at one baseline have a variance of (σa2+σb2/n)/p2(\sigma_a^2 + \sigma_b^2/n)/p^2. The first term is the floor and the second is what averaging removes. To come within 10 per cent of the floor, the second term must fall to 21 per cent of the first, so

n=σb20.21 σa2.n = \frac{\sigma_b^2}{0.21\,\sigma_a^2}.

With a read of a pixel on every picture and two more pixels of map error on each second picture, that is σb2=5\sigma_b^2 = 5, and nn is about 24. With a poorer map at six pixels, σb2\sigma_b^2 is 37 and nn is about 176, since now there is a lot more independent noise to average. If a map is excellent and the second reading is the only error, σb2=1\sigma_b^2 = 1 and nn is 5. So the pictures needed at a stated baseline depend on how much of the error is private to each one, and the rule is plain: keep adding until the private part is small beside the shared part, and then stop, since there is nothing left to buy. A flight planner working from this does not need a simulation. A person who has read the map’s error from its fit, and who knows what a pixel of reading means in their matcher, has what they need.

That gives one further reading of the earlier result on the map’s share. How flat is flat enough asked how close to a plane a scene has to be before the map is good enough for a stated purpose, and a map’s error at a far point can be read from that. So the two limits meet here. A long way past the ground marks, the map’s error is large, and many second pictures are worth having, since they are what averages it down. Near the marks, the map is excellent, and few pictures are worth having, since the first picture’s own reading dominates almost at once.

Going round

The floor applies because all the parallaxes run the same way, and a reading error in that direction looks exactly like a change in the coefficient. Now move second pictures to different sides of the first, so that their parallaxes point in different directions. A reading error δ\delta of the first picture is one vector, and it affects each second picture by its component along that picture’s parallax direction. Parallaxes running at different angles now disagree about what the coefficient would have to be, if the first reading were correct. A fit treating both the first reading and the coefficient as unknowns has enough information to work out where the first reading really was.

In the same figure above, sixteen second pictures spread evenly round the point reach 1.66 per cent, sixty-four reach 0.83, and two hundred and fifty-six reach 0.41. That is falling as the square root of their number, with no floor. Going from one line to a ring has changed the kind of thing the combination is.

A reader may be tempted to think that a little spread would be enough, and it is not quite.

How much turning is enough16 second pictures at a baseline of 2.4 m whose directions from the first spread over a stated angle. In one direction, 3.39%. Spread over 30°, 3.26%. Over 90°, 2.62%. Over 180°, 1.94%. The floor comes off gradually: a small spread gives parallax hardly any component across the first direction, and it takes a real spread of directions to tell the first reading apart from the coefficient.22.5033.50050100150how far the second pictures' directions spread (degrees)error in the coefficient (%)16 second picturesa real spread is needed
Fig. 5 Sixteen second pictures whose directions from the first spread over a stated angle. A small spread gives very little. The floor only starts to come off with a large one, because a fit needs parallax with a real component across the first direction.

With sixteen second pictures at 2.4 m: in one direction, 3.39 per cent. Over 30°, 3.26 per cent. Over 90°, 2.62 per cent. Over 180°, 1.94 per cent. Spreading the pictures over a right angle takes off about a quarter of the floor’s error. The reason is that a fit needs a component across the first direction, and a small spread provides very little of it, in proportion to the sine of the spread. A bundle’s twist is tested by its own error finds a similar need for variety in another setting, where a fit cannot check something its own measurements all share. That result lines up with the way a practical survey is usually laid out, as two marks off a known plane suggests in another setting: a few pictures from well-separated sides are worth more than a long row of them.

Seven numbers no picture can name is the formal version of the point that follows. What is happening here is that a first picture read in isolation has an error nobody can check. Pictures from several sides make it checkable, and they turn the first picture from an authority into one more measurement. So it is not strictly a first picture any more. The asymmetry between “first” and “second” came from the plane-and-parallax way of stating the problem, and a full bundle adjustment has no such asymmetry: every picture is a measurement of the point, and the point’s position is a free unknown. That is the sense in which the fit above is a small bundle adjustment, and it is why a bundle’s error behaves in the same way.

Reading the same thing from a practical angle

Where does a floor matter in practice? It arises wherever someone reads a small height against a known plane, from a fixed reference picture, using a line of later pictures. A camera on a vehicle moving along a road, comparing later frames with one reference frame, is a clear example. So is a drone flying a strip over a nearly flat site. Their parallaxes are all in one direction, set by the direction of travel, and however many frames they compare, a reading error in the reference frame is frozen into the result.

Two remedies follow, in increasing order of cost. Average the reference frame’s own reading by using several reference frames, which amounts to doing the pool in both directions and is a good deal better. Or use the frames as symmetric measurements in a joint fit, which removes the idea of a reference altogether. Both are standard practice in the fields concerned, and the numbers here give their value. A joint fit along a line only recovers what the first picture’s reading can give: it does not remove the floor, because a line does not contain the needed direction. So for a vehicle driving in a straight line, the first frame’s pixel matters no matter how the fit is done. A second pass along a different line is what would help.

A flat scene fixes no second eye reached its own limit by a different route, a limit in the plane’s own family of solutions. The one here is simpler, and it would hold even with a plane and an epipole known exactly. It does not concern the pictures’ geometry. It comes from how many independent readings there really are of the thing being measured, and a person counting pictures may easily count more than there are.

A fitted map shares its error, so the real floor sits higher

A known plane and known epipoles. One flight, two pictures has the same frozen reference in a survey’s own terms. The map’s error is modelled as an independent term per picture, of a stated size. In reality the map is fitted from marks, and each picture’s map shares some of its error with the others, through the first picture’s reading of those same marks. That would raise the floor somewhat, and it is not measured here.

The map as a translation. Near a flat scene, for small baselines, this is close to true, and it is what makes the arithmetic linear. For a very long baseline or a strongly tilted plane, the first picture’s error lands on each second picture with a different size and direction, which would itself provide some of the variety that a ring provides.

Independent readings of 1 px. A matcher’s errors are often correlated from one picture to the next, since it uses the same patch from the first picture. That makes the shared part worse than the model says.

All second pictures have the same reading quality. With real ones, images from further away are lower resolution, and a kerb 40 m out is a small target. How much of this holds for a real low-contrast edge would need a real matcher’s behaviour in the model.

Still open: what a plane fitted from the same pictures shares

In the arrangement here, the plane is known and its error is independent per picture. A real plane is fitted from ground marks read in the same pictures, by the same first reading. So each second picture’s map has an error that shares a component across all of them, as the first picture’s reading of the ground marks is the same in every fit. That common error is a shared tilt of the plane, and a shared tilt is a coefficient that varies across the picture rather than a single offset.

The measurement that settles what it costs fits the plane from stated ground marks in the first picture and each second picture, reads a point at stated distances beyond the marks, and asks whether the first picture’s reading of the ground marks adds a second floor to the one measured here; how far past the marks it starts to dominate; and whether going round the point removes that floor as well, or only the one set by the point’s own reading.

More pictures only help with the errors they do not share. A first picture read once is read once, however many second pictures compare against it, until something in the arrangement lets it be checked.

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.

ConditioningEpipoleerror propagationHomographyinstrument limitParallax