Ground truth · limited-angle tomography

The Wedge the Scanner Never Saw

A CT scanner that cannot go all the way round does not come back with a worse picture. It comes back with a picture that is missing a set of directions, and which directions is decided by geometry, not by how hard the machine tried.

The object below is a real walnut, scanned at the University of Helsinki and published by the Finnish Inverse Problems Society. Before running anything, this page registered a prediction for how much of that walnut's boundary a missing wedge would erase. Measured afterwards, at the registered settings: a 15 degree gap costs 8.43 per cent of the boundary against 8.33 for an object with no preferred direction at all, 30 degrees costs 15.99 against 16.67, 45 degrees costs 23.38 against 25.00, and 60 degrees costs 31.87 against 33.33. All four fell inside the registered intervals, and so would a featureless disc: the intervals are wide enough to contain the value an object with no direction in it scores. So those four hits are the weakest thing on this page, and the number each of them had to be different from is printed beside it rather than left in a footnote. Three other claims on the same sheet came out wrong, a fourth could not be scored on this instrument at all, and the worst of them was undone by this page's own control rather than by the walnut.

Then the part a better algorithm cannot fix: two identical bars, same size, same contrast, same reconstruction, come back 11.6 to one apart, and a ghost you can plainly see moves the record by less than this reconstruction's own noise floor. There is no scanner in that sentence: the walnut is measured, the scan on this page is simulated, and the floor is a synthetic field at the deposit reconstruction's own air-region noise level, put through that same simulation.

Turn the scanner off part way round

A parallel-beam scan takes one projection per angle. Take all of them and filtered back-projection returns the object. Take an arc and leave a wedge out, and the picture below is what comes back. Drag the width. Drag the wedge somewhere else. Under the pictures is the fraction of this object's boundary that lies in the directions you just threw away.

Instrument 1 · the missing wedge

the object
the sinogram; the dark band is the arc the scanner never reached
filtered back-projection from what is left

preparing the walnut...

Two things are worth noticing before anything else. The picture does not fade evenly: it smears, and it smears the same way every time, along the directions the scan kept. And if you pick two identical bars from the object menu, one of them survives a 60 degree gap almost untouched while the other, the same length, the same width, the same contrast, the same distance from the centre, all but disappears. Measured across each bar: the one whose normal points into the missing wedge loses 91.6 per cent of its contrast, and the one turned through a right angle loses 2.0. With every view present they come back within three per cent of each other, so this is the wedge and not the phantom.

What goes missing has a direction

Every projection angle carries exactly one line through the centre of the object's Fourier transform: that is the projection-slice relation, and this page measures it rather than quoting it (agreement to better than 1e-12 along the axes, on the directions where both grids land on whole numbers; see the check). Miss an arc of angles and you miss a wedge of frequency directions. An edge in the picture is a frequency vector pointing across it, so an edge whose normal lands in the missing wedge is not degraded, it is absent, and an edge whose normal lands in the measured arc comes back sharp. That is the visible-singularity result, worked out for the limited-angle X-ray transform by E. T. Quinto and stated in the form this page uses in Frikel and Quinto 2013, cited below. It is what the two bars are doing.

Is the hole exactly the wedge?

Yes, and that is a theorem rather than a discovery, which is worth saying plainly because this page nearly reported it as one. Filtered back-projection is linear in the sinogram, so the picture from every view minus the picture from the kept views is the picture from the deleted views, and the back-projection of a single filtered view carries its Fourier content on a single line. The difference between the two reconstructions is therefore supported exactly on the directions that were deleted: one hundred per cent, for any object, at any wedge, in two lines of argument. Nothing about the walnut is involved.

What the number is good for is checking this page's own projector against that theorem. Back-project the same filtered sinogram twice, once with every view and once with the wedge deleted. At the registered 60 degree wedge, 98.93 per cent of the difference's boundary energy lands inside the wedge. Score the same difference against a wedge in the wrong place and it falls to 0.054 per cent, so the statistic is reading direction rather than returning a large number for anything. The 1.07 per cent left over is not an added artefact and this page will not call it one: a uniform disc, which has no structure at all, leaves 98.36 per cent; running the same test at eight times the view count moves it to 98.59 rather than towards a hundred; and widening the scoring wedge by two degrees takes it to 99.70. It is a hard cut at the edge of the wedge, which is to say it is this page's discretisation. Instrument 1 recomputes it for whatever wedge you set.

Frikel and Quinto's theorem is two-sided and the added singularities are real: a sharply truncated angular range does not only delete edges, it adds them, and those are the streaks you can see in the picture. This measurement cannot find them. Their own directions are the two boundary angles of the arc, so they sit on the rim of the wedge, and no split of the difference by direction can separate them from the edges that were deleted. Locating them means looking in the picture, along the lines those two angles are normal to, and this page does not do it.

One more comparison, because the one a reader wants is against the object rather than against another reconstruction. Measured against the walnut itself the figure is 94.28 per cent, and the extra points are the all-views reconstruction's own discretisation error, 12.58 per cent of the object, which no wedge caused.

All of that belongs to this geometry: parallel beam, 180 views, an exact ramp. A fan-beam scanner spreads each source position over a range of frequency directions equal to its fan angle, which blurs the edge of the wedge and would move more of the difference to covered directions. This page does not measure that case and does not claim it.

So the honest question about a limited-angle scan is not how much resolution it lost. It is: how much of this particular object points the wrong way? Two things about that number before it appears. A theorem fixes its average: sweep the wedge all the way round and the mean of the loss over every placement is exactly alpha/180 for any image whatever, so the four figures above are each within a point or two of a value nothing about the walnut controls. What no theorem fixes is the value at a particular placement, and the difference between placements. That difference is the claim, and it is small. The rose below is the boundary energy this walnut puts into each direction; the shaded sector is the wedge you set above; the dashed line on the sweep is that theorem.

Instrument 2 · the rose, and the fraction inside it

boundary energy by direction; the shaded sector is the missing wedge
the loss against wedge position, with the null band from the shuffles

preparing...

The rose is not round. At the registered grid its worst wedge position is 60.5 degrees and its best is 30.0, which is to say that where you leave the gap matters: a 60 degree wedge centred on 0 costs this walnut 31.87 per cent of its boundary and the same wedge centred on 90 costs 35.75. That difference, 3.88 points, is the whole claim, and it is small enough to be worth doubting. The next section doubts it.

The prediction, and the three places it broke

The predictions were written into research/the-wedge-the-scanner-never-saw/PREREGISTRATION.md and not touched afterwards. What had been seen at that point was the walnut's picture and its noise level; what had not been computed was any directional quantity at all. Scored:

Scored at the registered settings: 256 grid, no refinement, s = 1.5 px, wedge centred on 0. The fourth column is what the same instrument returns for objects with no direction in them: the exact isotropic value a theorem fixes, and what a uniform disc actually reads at that setting. A verdict smaller than the gap between those two is not a verdict.
registeredpredictedmeasurednull, and this instrument on itverdict
P1  U(15)6.5 in [3.5, 9.5]8.438.33; the disc reads 10.47hit
P1  U(30)13.0 in [8.0, 18.5]15.9916.67; the disc reads 17.70hit
P1  U(45)20.0 in [13.0, 27.5]23.3825.00; the disc reads 25.31hit
P1  U(60)27.0 in [19.0, 36.0]31.8733.33; the disc reads 34.39hit
P1  sub-claimbelow isotropic at every width8.43 against 8.33 at 15the disc reads 10.47 therenot resolvable
P2  signwedge at 90 costs more than at 035.75 against 31.87equal, on any gridhit
P3  spread4 to 18 points7.22the shuffle null reaches 9.24hit
P4  worst positionwithin 25 degrees of 9060.5 degreesno null; it moves with the gridmiss
P5  disc controlwithin 0.5 points of alpha/180off by 3.95 points0 by definitionmiss
P6  noise limitthe loss goes isotropic as s fallsit rises to 38.2933.33miss

Every point prediction landed low, so the walnut is less directional than the picture suggested it would be. But the three misses are the interesting part, and two of them are the same miss.

The row that could not be scored at all. P1's sub-claim said every width would come out below the isotropic value. At 15 degrees it came out above, by 0.10 of a point, and an earlier draft of this page called that a miss. It is not one. At that exact setting the instrument's own isotropic object, a uniform disc, reads 10.47 against the same 8.33: the bias is twenty times the departure and in the same direction. Measured against the control instead of against the ideal, the walnut is below at every width, which is what the sub-claim predicted. Refinement does not rescue the row either, because the walnut's departure shrinks faster than the control's does. So the honest verdict is that this instrument cannot resolve it, and that is what the table now says.

P5 and P4: the instrument, not the walnut. A uniform disc is perfectly isotropic, so it must lose exactly alpha/180 of its boundary whatever the wedge, for any object, at any scale. It did not: at the registered grid it was off by up to 3.95 points. A pixellated disc has a ringing spectrum with deep nulls, so almost all of its weight sits on a handful of frequency bins, and on a square grid a whole lattice line lies at exactly 0 degrees and another at exactly 90, so the angular quantisation of a 256-point grid bites hard. Refine the frequency grid fourfold and the same disc comes back to 1.31 points, three times better and still not inside the tolerance that was registered. The pre-registration guessed the wrong tolerance for the right reason, and P4's answer, the worst wedge position, is unstable for the same cause: 60.5 degrees on the registered grid, 70.5 at twice the refinement, 69 at four times. The best position sits at 30.0 degrees on the registered grid. The shuffle test in the next section is the control that replaces P5, and it was built after P5 failed rather than registered in advance, which is worth knowing before it is used to defend anything.

P6: the noise in this reconstruction is not isotropic. The prediction was that as the edge scale s falls towards zero, the reconstruction's own noise, being directionless, would come to dominate the weight and drive the loss to 33.33 per cent. It does the opposite: at s = 0.25 the loss at a 60 degree wedge on 0 rises to 38.29 per cent. Whatever sits at the top of this reconstruction's band is not directionless. That is a real property of a filtered back-projection from a fan-beam scan and it is a warning about any |k|-weighted measure that does not band-limit itself.

And the headline statistic, taken away

The obvious way to say "the rose is not round" is the spread of the loss over wedge position, and P3 reports it: 7.22 points. Press the shuffle button in instrument 2 and it takes that statistic away. The shuffle keeps every ring of the walnut's spectrum exactly as it is, including its speckle, and permutes the bins around each ring, so it builds an object with this walnut's radial content and no preferred direction at all. At the registered grid such an object produces a spread of 6.10 points on the median run and reaches 9.24 over the forty permutations the offline verifier runs. The measured 7.22 is inside its own null. At that grid the spread proves nothing.

And it proves nothing about anything at that grid, which is the part worth being blunt about. Put the striped disc through the same test: an object whose whole structure points one way, whose loss swings 90.71 points across wedge position, and the same shuffle null reaches 77.88, a ratio of 1.16. The rule withholds there too. Shuffling a spectrum whose weight sits on a few enormous bins produces an enormous spread by itself, so at the registered grid a verdict of "withheld" is a statement about the test and not about the object. Refine the grid and the same striped disc clears the line easily. Instrument 2 says this in the readout whenever the null is that large.

What survives is narrower and it needs the refined grid. The contrast between the wedge on 90 and the wedge on 0, which is a directional question rather than a maximum over a noisy curve, is 3.17 points at fourfold refinement against a null whose largest of forty shuffles is 1.12. None of the forty reached it. That is the claim this page will stand behind about the walnut, and it is a smaller claim than the one it set out with.

There is a reason to prefer that statistic to the spread beyond its surviving: a square frequency grid treats its two axes identically, so the quantisation that inflates the loss at any single wedge position cancels exactly in the difference between a wedge on 0 and a wedge on 90. On the uniform disc the contrast is exactly zero at every refinement, while the same disc's spread is off by 3.95 points. The statistic that survived is also the one the instrument's own bias cannot reach.

Three things a reader should hold against that claim, because they are the ones this page would be attacked on. Fourfold refinement was not the registered setting; the registered setting is the one where the spread died. The shuffle null was built after P5 failed rather than registered in advance. And this is one specimen, one slice, one definition of boundary energy out of a family the page lists further down. The contrast is the strongest thing here and it is still a 3.17-point difference on one walnut.

"Use a better algorithm"

The reasonable objection, and it is the one every practitioner has ready:

You have shown filtered back-projection failing, which is not news. Limited-angle data is incomplete and ill-conditioned, so of course the textbook inversion streaks. Regularise it. Put a prior on it. Train a network on it. This is a hard inverse problem, not an impossible one, and the field has spent forty years on exactly this.

The model underneath that objection is that the deficit is quantitative: fewer photons, a worse condition number, more noise, so a better estimator recovers more. Under that model the loss should be graded and everywhere, and effort should buy improvement.

Here is the same three algorithms, run on the same measurements. Zero-fill puts nothing where the data is silent. Positivity-and-support is Gerchberg and Papoulis: the object cannot be negative and it stops at the edge of the specimen holder, and those two facts alone extrapolate. Total variation adds the assumption that the object is made of flat regions with sharp boundaries. Every one of them reproduces the measured half of the record exactly: the residual is at the last bit of a double.

Instrument 3 · three priors, one record

truth
zero-fill
positivity and support
total variation

press run.

Two numbers from that run are the point of this page. The first: every pair of those reconstructions differs by something whose energy is 100.000000 per cent inside the missing wedge. Not approximately. The measured half is pinned by the data, so the only place two reconstructions can disagree is where the data is silent, and that is an identity rather than a finding.

The second: what the priors put there is sometimes right and sometimes not, and which one it is has nothing to do with how hard they worked. The same striped object, turned through a right angle, recovers 25.6 per cent of its missing component with its stripes lying across the wedge and 78.9 per cent with them along it. Same object, same algorithm, same wedge, same number of measurements, and the answer triples. A signal-to-noise story has nothing to say about that. Meanwhile the smooth random field, which is the object a piecewise-constant prior is supposed to be worst at, recovers 73.3 per cent, better than the walnut's 38.8. Texture is not the variable. Direction is.

A caution about what those recovery numbers are worth: the reconstructions here treat the measured arc as exactly known, which is the band-limited idealisation of the problem rather than a noisy scan, and the total-variation step is a crude shrinkage rather than a proper primal-dual solver. A better solver would recover more. It would recover more of the same thing, in the same places, for the same reason, and it would still be the prior speaking wherever the data is not.

A picture the record cannot see

The strongest form of the statement is not about algorithms at all. Below is a ghost: an image built to live entirely in the directions the scan misses. Add it to the reconstruction at any amplitude you like. The picture changes, obviously and visibly. The measurements do not.

How much they do not is the honest part. A limited-angle scan of a compactly supported object is formally injective, so an exactly invisible picture that stops at the edge of the specimen does not exist. What exists is a picture that is invisible to a measured degree, and the number that matters is not how close to zero it gets but whether it disappears under the scan's own noise. The reconstruction's air region has a standard deviation of 323.6 counts, and a noise field at that level disturbs the measured record by 0.2188 per cent. The bar-shaped ghost, at a peak of 9000 counts against the walnut's 24592, disturbs it by 0.0710 per cent. The matched control, the same source shape pushed into the directions the scan does measure, at the same peak, disturbs it by 11.5751 per cent.

Instrument 4 · the ghost and its matched control

the ghost alone
walnut plus ghost
walnut plus matched control

press build.

The disturbance is linear in the amplitude, so dragging the slider slides both numbers and the readout says which side of the noise floor you are on. Where the crossing falls depends on the shape: the blob starts above the floor and drops under it partway down the slider, the ring crosses near the top of the range, and the bar, the default, is under the floor at every amplitude the slider can reach, including the maximum. The matched control never crosses at any of them. That is the difference between an object the scan measured badly and an object the scan did not measure.

Where this leaves a real scan

Nothing above says a limited-angle scan is useless. It says the deficit has a shape. A dental scanner that swings through 180 degrees of arc, a shipping-container inspection line that can only look through the doors, an electron tomogram of a slab that cannot be tilted past 70 degrees: each of them keeps every boundary whose normal it visited and loses every boundary whose normal it did not. If the thing you need to see is a crack, the question is not the dose or the reconstruction software. It is which way the crack points.

The check

Two of the figures quoted below are the offline run's, not this browser's, because the offline run can afford more of them: the shuffle nulls in the prose are over forty permutations against the button's twenty-four, and the angle-shuffle poison uses 360 ray-traced projections against the panel's 180. Both report slightly different numbers for that reason and both are right. Everything else above is recomputed in this browser from walnut.js and wedge.js, and again offline by node research/the-wedge-the-scanner-never-saw/verify-the-wedge-the-scanner-never-saw.mjs, which also pulls the static figures out of this file and requires each one to equal what it computed. Live totals, from this page:

running the panel...

Independent routes, not the same sum twice

Anchors nobody could tune to

Poison the instrument has to reject

Where the comparison would be vacuous, and the refusal

Free choices, all of them

What this page does not establish