Fence detection — what counts as a Fence

AI3D-388 · branch t3code/implement-fence-detection · 2026-09-08 · renders from the pass-6 sweep, verdicts from the pass-7 gates

Why this page. Recall on the training split is solved and the gates are stable; what is left is a vocabulary question. Thirteen objects below all pass, or nearly pass, the same twelve rules, and whether they are errors depends on where the schema's Fence class ends. Each one is shown as the detector sees it, so the answer can be given against a picture.

How to read a panel. Top left: RGB, viewed obliquely. Top middle: the same points coloured by number of returnsgrey = 1 (the pulse ended there: a hard surface), orange = 2, red = 3 or more (the pulse punched through: foliage). Right: a cross-section across the line and an along-line side view — a fence is a thin spike in the first and a flat-topped band in the second. Bottom: two top-downs. The red line is the fitted candidate, green is an accepted guardrail, blue a wall.

Q1 · Is the edge of a crop field ever a Fence?

028/8 ACCEPTED - crop edge, 12 m, top 1.42 m, 85% multi-return, 78% green
028/8 ACCEPTED - crop edge, 12 m, top 1.42 m, 85% multi-return, 78% green
092/2 ACCEPTED - maize strip, 48.6 m, top 1.75 m, dead-flat crest 0.98
092/2 ACCEPTED - maize strip, 48.6 m, top 1.75 m, dead-flat crest 0.98
006/9 ACCEPTED - bramble and grass tufts on a cutting crest, 10.8 m
006/9 ACCEPTED - bramble and grass tufts on a cutting crest, 10.8 m

These three are what the channel reports today when it reports a field boundary. They are hard-edged, straight, roughly fence-height and, in the returns panel, orange/red all the way through — the pulse passes through them at every height, which is what tells them from a sheet. The maize strip in the middle is the strongest one: 48.6 m long with a crest flatter than most real fences.

Should any of these be exported as a Fence, or should all three be suppressed? If they are acceptable output, the gate set is already close; if they must never appear, I need a cue that fails on them, and neither crest flatness nor sheet concentration does.

Q2 · Where does Fence end and Wall / Geländer / hedge begin?

128/1 ACCEPTED - wire mesh, 66 m, top 1.25 m, posts every ~5 m (the reference fence)
128/1 ACCEPTED - wire mesh, 66 m, top 1.25 m, posts every ~5 m (the reference fence)
048/8 ACCEPTED - wooden post-and-rail, 16 m, three rails on posts every ~2 m
048/8 ACCEPTED - wooden post-and-rail, 16 m, three rails on posts every ~2 m
015/2 ACCEPTED - top rail + balusters, 43.8 m, top 1.25 m, 9% multi-return (railing / Geländer?)
015/2 ACCEPTED - top rail + balusters, 43.8 m, top 1.25 m, 9% multi-return (railing / Geländer?)
127/3 ACCEPTED - solid slab with lettering, 46 m, top 2.39 m, 11% multi-return (wall?)
127/3 ACCEPTED - solid slab with lettering, 46 m, top 2.39 m, 11% multi-return (wall?)
049/3 rejected [ragged_crest] - thin opaque sheet, 25.8 m, top 2.75 m
049/3 rejected [ragged_crest] - thin opaque sheet, 25.8 m, top 2.75 m
008/7 ACCEPTED - 0.6 m thick body, top 1.95 m, 92% multi-return (clipped hedge?)
008/7 ACCEPTED - 0.6 m thick body, top 1.95 m, 92% multi-return (clipped hedge?)

The first two are fences by any reading. The next three are the class boundary: a railing with a solid top rail, a 2.4 m advertising/noise slab and a 2.75 m thin sheet all pass the same gates as the mesh line, because every one of them is a straight, thin, flat-topped vertical object. The last one is a hedge or a privacy screen — 0.6 m thick, flat-topped and almost transparent to the pulse.

You said: thin with holes = fence; thick and overgrown = wall; a 2.4 m solid panel = wall; a double-rail railing = guardrail. Does that hold against these pictures — in particular, is 015/2 a Geländer to be dropped, and does the hedge 008/7 get its own class rather than being suppressed?

Q3 · How much overgrowth still counts as a Fence?

110/5 - wire fence in undergrowth, 24 m, crest share 0.56 (you called this a fence; pass 7 now keeps it)
110/5 - wire fence in undergrowth, 24 m, crest share 0.56 (you called this a fence; pass 7 now keeps it)
093/3 rejected [ragged_crest] - thin sheet, 31.7 m, top descends 1.65 -> 1.3 m, crest share 0.31
093/3 rejected [ragged_crest] - thin sheet, 31.7 m, top descends 1.65 -> 1.3 m, crest share 0.31
059/4 rejected [ragged_crest] - brown shrub row, 15.9 m, spread 1.75 m (not a fence)
059/4 rejected [ragged_crest] - brown shrub row, 15.9 m, spread 1.75 m (not a fence)
124/2 ACCEPTED - clean reference fence, 50 m, crest share 0.75
124/2 ACCEPTED - clean reference fence, 50 m, crest share 0.75

The first two are the disputed band. 110/5 is the one you identified: the fence's own top is a straight wire, but nettles reach above it in about half the stations, so the crest statistic — a per-station p90 over everything present — reads the weeds, not the wire. 093/3 fails the same statistic for a different reason: its top is smooth but it DESCENDS with the ground, so no single height holds. The shrub row is the object the rule exists for.

Is 093/3 a fence? And is the shrub row 059/4 correctly suppressed, or is it a plant fence in your reading?

What I do with the answers

Hop and grape trellises: I looked for them and found only hedge-like objects capped at the 3 m evidence ceiling. I am not tuning against them.