What a pair is for

A raised eye reads the storeys as the pair read the columns

Put a third camera 3.5 metres above the left one and its epipolar lines run up the facade: the storeys repeat along them as the columns repeated along the level pair's rows, the roofline and the foot carry depth where the corners did, and a raise shorter than a storey can only pull the windows nearer. The three pictures together refuse the level pair's one-column mistake at every raise except those where the storey over the raise equals the period over the baseline — 1.375 and 2.75 metres here — and even there the facade's lowest storey lands on the ground.

Worth reading first: A wrong match is not a small error · Two rays that do not meet.

A facade matched a column out comes forward, not back followed a stereo pair — two cameras 1.1 metres apart, level, twenty metres from a wall of identical windows — into the mistake a repeated structure invites. Matching every window to the one a column along rebuilds a perfect facade at another depth, and because the windows are 2.4 metres apart, wider than the baseline, the only such facade in front of the cameras is a nearer one: at 6.3 metres, a third the size, floating 1.1 metres off the ground. The pair could not see the float, because the foot of a wall is a level edge and a level edge lies along the pair’s rows, matching everywhere. What held the facade was its corners, and only through the assumption that the wall between them is flat.

The essay ended on the eye that would read what the pair could not. A camera raised above one of the pair has a vertical baseline with it, so its epipolar lines run up the picture rather than across. Its repeats are the storeys, its readable edges are the level ones, and it ought to reproduce the pair’s whole story turned on its side. The question was whether it does, whether the roofline and the foot pin the depth for it the way the corners did, and whether the two baselines together leave any wrong reading standing.

The column law, turned on its side

The facade here is the one of the earlier essay with a third storey added — five columns of windows 2.4 metres apart, three storeys of 3 metres, a roof at 9 metres — and the frame is tall enough for every eye to see all of it. The third camera stands straight above the left one, facing the wall squarely like the pair. Between the left camera and the raised one, a point’s two images differ only in height, and a window’s patch searched for along that vertical line finds a window once every storey.

Raised 3.5 m, more than a storey of 3 m, the third eye can push the facade's windows back to 140.0 m or pull them to 10.8 mThe facade of the earlier pair — twenty metres off, three storeys of windows 3 m apart, roof at 9 m — seen from the side by the level pair's left eye at 1.6 m and a third eye raised 3.5 m straight above it, at 5.1 m. The two eyes' baseline is vertical, so their epipolar lines run up the facade and the windows repeat along them once a storey. Matching each window of the left picture to the window a storey lower in the raised one builds 2 windows a column at 10.8 m, heights 3.16 and 4.78 m, each on both of its rays to 8e-15 m. Matching a storey higher builds them at 140.0 m, heights 0.90 and 21.90 m, beyond this drawing. The law is the columns' law with the storey for the period and the raise for the baseline, h/(h − j·F). The roofline and the foot are level edges, which this pair matches once, so they stay on the wall at 20 m while the windows move.02.5057.50100204060depth from the cameras, metresheight, metresthe left eyeraised 3.5 mwall at 20 ma storey lower: 10.8 ma storey higher: 140.0 mthree storeys of 3 m, the third eye above the lefth/(h − j·F)
Fig. 1 The facade from the side, the left eye at 1.6 m and the third eye raised 3.5 m above it. Matching each window to the one a storey lower in the raised picture builds the windows at 10.8 m, 0.538 of their distance; a storey higher builds them at 140 m. The slider raises the eye from 1 m to 6 m; below 3 m there is no further reading.

Matching each window of the left picture to the window a storey lower in the raised one gives two rays that meet — to within a hundred-million-millionth of a metre — at 10.8 metres, a little over half the true distance. A storey higher gives rays that meet at 140 metres. The depth ratios are the ones the facade essay wrote for the columns, B/(B − kp), with the storey F in place of the period p and the raise h in place of the baseline B: h/(h − jF). At a raise of 3.5 metres a storey lower gives 3.5/6.5 = 0.538 and a storey higher gives 3.5/0.5 = 7.

The slider moves the raise, and the transposed law has the transposed consequence. A raise shorter than a storey — a camera on a pole two metres up, looking at a building of three-metre floors — has no further reading at all. Matching a storey higher would need the facade behind the cameras, exactly as matching a column along did for windows wider than the baseline. Such an eye can only pull the windows nearer: to 5.0 metres at a one-metre raise, 8.0 at two. Only a raise longer than a storey — an upper window across the street, a drone — admits a reading behind the wall, and it runs off towards infinity as the raise shrinks to the storey, 140 metres at 3.5, 40 at 6.

In the level pair’s reading the windows came forward as a block, roof and foot and all, because nothing on the facade carried depth except its corners. Here the drawing shows something different. The roofline and the wall’s foot stay on the wall at twenty metres while the windows move, and the reason is the next figure.

The edges the two pairs can read are exchanged

A patch of the picture carries depth along an epipolar line only if it changes along that line. For the level pair the lines were rows, so the corners — edges crossing the rows — carried depth, and the roofline, running along the rows, slid into itself at every disparity. The raised pair’s lines are columns.

Up the raised pair's column the roofline has one match and a corner a match everywhere — the level pair's edges, exchangedThe mismatch between a 13-pixel patch of the left picture and the patch of the raised one at each disparity up the same column, the third eye 3.5 m above the left, the facade in flat tones. A patch on the roofline, where the wall meets the sky above it, matches only at the true disparity, 157.5 px, the minimum found at 157.5. A patch on a corner matches equally everywhere (the mismatch varies by 0e+0 across the range), because the corner runs along the column and slides into itself. A patch on a window's sill matches wherever a sill is: at 22, 158 px, a storey of 135 px apart. The level pair read depth from vertical edges and nothing from level ones; the raised pair reads the reverse, so the roofline and the foot of the wall play the part the corners played.00.2000.4000100200300disparity tried up the column (px)mismatch between the two patchestrue disparityon the rooflineon a corneron a window13 × 13 px patches, flat tonesonly a level edge carries depth
Fig. 2 Patches compared up the raised pair’s column, the third eye 3.5 m up. The roofline matches once, at 157.5 px; a corner matches equally at every disparity; a window’s sill matches once a storey, 135 px apart. The level pair’s edges, exchanged.

The roofline, where the wall meets the sky above it, has one minimum, at 157.5 pixels, which is the raise times the focal length over the depth. A patch on a corner has none: along the column the corner looks the same everywhere, and the mismatch varies by exactly nothing across the range. A patch on a window’s sill matches wherever a sill is, a storey of 135 pixels apart.

So the two pairs see complementary halves of the facade’s outline. The level pair reads the corners and is blind to the roofline and the foot; the raised pair reads the roofline and the foot and is blind to the corners. The railing essay found that a railing’s feet convicted a railing matched one post along, because feet meet the ground and the pair could read them; the facade’s foot was the edge the level pair could not read, and it is exactly the edge the raised eye can. The floating block of the earlier essay — windows at 6.3 metres with a foot 1.1 metres in the air — is, to the raised pair, a set of windows 13.7 metres in front of a wall whose foot it can place on the ground at twenty metres.

That makes the two readings of the facade’s depth independent in a strong sense. Each pair’s mistakes are made in its own repeats, the columns or the storeys, and each pair’s anchors are the edges the other cannot see. A wrong reading has to survive both.

Where the two baselines agree

The level pair’s one-column mistake rebuilds the facade scaled about the left eye by B/(B − p). In the raised picture, whose camera is straight above the left one, a point anywhere on the left eye’s ray lands in the same column as the true window, and only its height changes: the rebuilt facade slides straight down the raised picture by h·p/B metres of wall. It is refused by the raised picture unless that slide happens to be a whole number of storeys, in which case every rebuilt window lands on a real window and the raised eye has no complaint.

The raised picture refuses the level pair's one-column mistake at every raise but 1.375 m and 2.750 m, where the storey over the raise equals the period over the baselineThe level pair's facade matched one column back (k = −1) and two back (k = −2), each rebuilt window carried into the picture of a third eye raised straight above the left one, and its distance to the nearest window that eye sees, in px, for raises from 0.2 to 5 m; windows 2.4 m apart on a 1.1 m baseline, storeys 3 m. The wrong facade is the true one scaled about the left eye, so in the raised picture it slides straight down by h·k·p/B metres of wall, and it lands on a window exactly when that is a whole number of storeys: raises of j·F·B/(k·p). One column back: 1.375 m, 2.750 m. Two back: 0.688 m, 1.375 m. Between them the miss rises to 712 px, far above any reading error; within a pixel of zero it holds for a band of raises about 0.020 m wide.02004006008000.50011.5022.5033.5044.505how far the third eye is raised above the left, metresthe wrong reading's miss in the raised picture (px)one column backtwo columns backwindows 2.4 m apart, storeys 3 m, baseline 1.1 mblind at h = j·F·B/(k·p)
Fig. 3 The level pair’s wrong facade carried into the raised picture: the rebuilt windows’ miss from the nearest real window, for raises from 0.2 to 5 m. One column back (solid) it reaches zero at 1.375 m and 2.75 m; two columns back (dashed) at 0.688 m and 1.375 m. Elsewhere it rises to 712 px.

The condition is kp/B = jF/h: the raise at which the three pictures accept a k-column mistake as a j-storey one is h = jFB/(kp). On this facade the one-column mistake passes at raises of 1.375 metres and 2.75 metres — a storey and two storeys, each scaled by the baseline over the period. The two-column mistake passes at 0.688 and 1.375. Everywhere else the miss is large: the curve climbs from zero at a slope of the focal length times kp/(BZ), which here is almost a hundred pixels per metre of raise, and reaches 712. A raise that misses a blind value by more than a centimetre keeps the miss above a pixel, because the band within which a pixel of reading error would hide it is two centimetres wide.

The picture this gives is not “a third eye breaks the ambiguity” but “a third eye breaks it at every placement except a countable set”, which is the same shape of answer a mismatch on its own line needs a third eye and a third eye that lands on the next post gave for the railing. There, a third camera placed along the railing’s direction reproduced the pair’s mistake; here, a third camera placed at a raise that matches the lattice’s proportions does. Both are the same statement about lattices. A wrong reading scaled about one eye moves each other camera’s image by that camera’s baseline times one fixed number. It survives if every baseline, times that number, lands on a lattice vector of the facade. For a raise straight up, that is a lattice of columns and storeys and a baseline that is a multiple of the column spacing in one direction and of the storey in the other.

The practical rule is short. A raise equal to the storey height times the baseline over the window spacing — or a small multiple or fraction of it — should be avoided, and anything else, by more than a few centimetres, is enough. With a baseline of about a metre and windows about twice that apart, the first blind raise is about half a storey — 1.375 metres here, well within the reach of a photographer raising a second camera on a short pole.

The lattice’s edge still convicts

The figure above measured the best-placed window, and on a lattice with no edge that is the whole story. A real facade has a lowest storey.

At a raise of 1.375 m the level pair's wrong facade lands on windows in the raised picture everywhere but its lowest storey, which lands on plain wallThe raised picture at the blind raise 1.375 m, where a storey of 3 m seen from the raised eye matches a column of 2.4 m seen across the 1.1 m baseline. The outlines are the windows the raised eye sees; the dots are the 12 windows the level pair rebuilt a column back, carried into this picture. 8 land on a window to 1e-12 px — each on the window a storey below its own — and the three pictures accept them. The 4 of the lowest storey land a storey below it, 135 px under the lowest windows, where the raised eye sees the ground in front of the wall's foot. A lattice with no edge would pass every test the three eyes can put; this one is refused only at its edge, which is the corners' argument moved to the bottom row.windows the raised eye sees8 rebuilt windows on them4 on the ground belowraised 1.375 m: F/h = p/Bthe edge storey convicts
Fig. 4 The raised picture at the blind raise of 1.375 m. Outlines: the windows the raised eye sees. Dots: the 12 windows the level pair rebuilt a column back, carried into this picture. Eight land on a window to 1e-12 px; the four of the lowest storey land a storey below it, where the raised eye sees the ground in front of the wall.

At the blind raise, eight of the twelve rebuilt windows land on real windows — each on the window a storey below its own — to twelve decimal places. The four of the lowest storey land a storey below the lowest windows, 135 pixels under them, where the raised eye sees the ground in front of the wall’s foot. A matcher that compares patches would find there not a window but paving, and refuse.

This is the corners’ argument moved to the bottom row. The facade essay found that a facade shifted a column back has one column too few, and the column that falls off is what a corner test sees. Here the storey that falls off is what the raised picture sees. So even at a blind raise, the three pictures together do not accept the wrong facade whole; they accept it everywhere but at its edge. A lattice without an edge — a curtain wall running out of frame on every side — would pass every test these three eyes can put, and that is the one case the raise must be chosen to avoid.

What the roofline and the foot hold

The level pair’s corners held the facade by the assumption that the wall between them is one plane. The raised pair’s level edges can do the same: triangulate points along the roofline and the foot, fit a plane through them, carry each window’s left mark along its ray to that plane, and ask whether the mark the matcher paired it with in the raised picture sits where the plane says. A window matched a storey out misses by a storey; an honest window misses only by what the wall’s reading error puts there.

Storeys are an easy case, 135 pixels apart. The measurement that tests the method replaces the windows with a finer vertical repeat — brick courses, boards, the bars of balconies — from five centimetres to three metres, and asks at each how often every shifted course is convicted and every honest one cleared, with the level edges read across themselves to a pixel.

The roofline and the foot convict a repeat shifted one course at every period from 5 cm; the roofline and a sill 0.6 m below need courses of 0.8 m raised 3.5 m and 1.5 m raised 1.4 mA nine-metre facade whose windows are replaced by a vertical repeat of 0.05, 0.1, 0.2, 0.4, 0.8, 1.5, 3 m — brick courses, boards, balcony bars — matched one course down in the raised picture; the wall read by the raised pair as a plane through level edges, each sampled at 24 points and read across itself to a pixel in both pictures; every shifted repeat convicted when its matched mark lies more than half a course from where the wall puts it and every honest one cleared when less; 80 pictures a point. The roofline and the foot: 100%, 100%, 100%, 100%, 100%, 100%, 100% raised 3.5 m, and the same at 1.4 m. The roofline and a sill 0.6 m below it, raised 3.5 m: 8%, 14%, 30%, 60%, 100%, 100%, 100%; raised 1.4 m: 0%, 0%, 0%, 3%, 64%, 100%, 100%. Between two edges at the top and bottom the wall is interpolated and the raise hardly matters; from two edges near the top it is extrapolated nine metres down, the lever is fifteen, and the raise decides how steady the tilt is.0.050.10.20.40.81.5300.2500.5000.7501the vertical repeat, metres (log scale)share of pictures convicting every shifted repeatroof and footroof and sill, 3.5 mroof and sill, 1.4 mlevel edges read across themselves to 1 px, 80 pictures a pointthe lever is the facade's height
Fig. 5 A facade of vertical repeats from 5 cm to 3 m, matched one course out. The roofline and the foot convict every shifted course and clear every honest one in all 80 pictures at every period, raised 3.5 m or 1.4 m. The roofline and a sill 0.6 m below it: 8%, 14%, 30%, 60% then 100% from 0.8 m, raised 3.5 m; 0%, 0%, 0%, 3%, 64%, then 100%, raised 1.4 m.

The roofline and the foot convict a repeat shifted one course at every period down to five centimetres — two and a quarter pixels — in every picture, at both raises. With the two edges at the top and bottom of the wall, every course lies between them and the plane is interpolated; its error in the raised picture is the reading error averaged over forty-eight points, a small fraction of a pixel, whatever the raise. A lower raise reads each point’s depth less precisely, but the error of the prediction in the raised picture is that depth error times the raise, and the two cancel.

When the foot is hidden — a parked car, a hedge, a crowd, the commonest case in a street — the edges left are near the top: the roofline and, say, a sill 0.6 metres below it. Then the plane is extrapolated nine metres down from a pair of lines 0.6 metres apart, a lever of fifteen, and the result depends on the raise. Raised 3.5 metres, courses of 80 centimetres and more are convicted every time, 40 centimetres six times in ten, 5 centimetres once in twelve. Raised 1.4 metres, nothing finer than 1.5 metres is reliably convicted. The tilt of the plane is read from the difference in depth between two close lines, and a short raise reads each depth too roughly for the difference to survive fifteen-fold magnification.

This is the facade essay’s corner-and-pipe result again, turned on its side: two corners interpolate and a corner with a pipe extrapolates, and the lever is the whole facade over the pipe’s distance. The difference here is that the level pair’s lever did not depend on its baseline, which was fixed, while the raised pair’s lever depends very much on its raise. A tall raise buys a steady tilt.

What the third eye adds

Put together, the raised eye reproduces the level pair’s story turned through a right angle and then does something the level pair could not. It reproduces the story because the geometry is the same with the axes exchanged: storeys for columns, the raise for the baseline, the roofline and the foot for the corners, a sill for a pipe. A raise shorter than a storey can only pull the facade nearer; a raise longer can push it back.

It does more because what each pair fixes firmly lies on the other pair’s blind edges. The level pair’s floating facade stands 13.7 metres in front of the foot the raised pair places on the ground, and the raised pair’s storey mistakes stand in front of the corners the level pair places. Between them, every edge of the wall’s outline is read by one pair or the other. The only wrong readings the three pictures accept are those in which a single scaling of the facade about the left eye lands every camera’s image on the lattice at once, which happens at a discrete set of raises, and even there the lattice’s edge refuses the reading at the storey that falls off.

A wrong match is not a small error began this sequence by observing that a mismatch moves a point to a different place rather than slightly off its own. The facade makes the same point at the scale of a whole wall. A repeated structure offers a pair a complete, self-consistent alternative, and what refuses it is never the repeats themselves but something that does not repeat: an edge, a foot, a storey that runs out.

What was assumed

The third eye is straight above the left one. Offset sideways as well, its baseline with the left camera leans, its epipolar lines lean, and the lattice condition becomes a statement about a slanted vector landing on the lattice. The blind placements are then points in a plane of possible positions rather than values of one raise, and the argument above carries over with the baseline read as a vector.

Every camera faces the wall squarely. A raised camera tilted down to frame the facade — the natural way to hold it — turns its picture about a horizontal axis. The epipolar lines between it and the left camera then converge rather than run parallel, and the storeys’ repeat along them is no longer even. Tilting keeps the blind condition, which is about where the camera is, and changes where in its picture each wrong window lands, which is about where it points.

The wall is one plane, and the windows lie in it. As with the corners, the level edges hold the facade only through this assumption, and the facade essay measured what a window’s reveal spends of the margin. A cornice projecting from the roofline puts the raised pair’s top edge in front of the wall, which moves the whole fitted plane forward by the cornice’s depth; a raise does not change that.

The matcher finds the nearest wrong window. Every reading here is a clean shift of whole columns or whole storeys, which is what a matcher that jumps once and then follows its neighbours produces. A matcher that errs window by window produces a scatter of shifts, and a scatter is refused by any third eye, blind raise or not, because no single scaling lands it on the lattice.

Still open: a camera that moves between the two baselines

The raise here is a fixed rod. A photographer on a staircase, a drone climbing, or a camera on a vehicle whose suspension is compressing all move the third eye continuously, and pass through the blind raises on the way.

The measurement that settles what that is worth takes a third camera that climbs from level with the pair to five metres above it over a stated number of frames, reads the level pair’s column mistake against each frame’s picture, and asks two things. First, how many frames are enough that at least one of them falls outside every blind band — which, with bands two centimetres wide and a climb of several metres, should be nearly all of them, so that a moving third eye is safe by construction. Second, and more interesting, whether the frames can be pooled: a wrong facade that passes the frame at 1.375 metres fails the frame at 1.4 by 2.5 pixels, and the rate at which its miss grows with the raise is itself a measurement of the column shift it was built from — which would let a climbing camera not only refuse the mistake but say which mistake it was.

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.

CorrespondenceDegenerate configurationDisparityEpipolar lineOutlierrobust estimationTriangulation