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 returns — grey = 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% green092/2 ACCEPTED - maize strip, 48.6 m, top 1.75 m, dead-flat crest 0.98006/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)048/8 ACCEPTED - wooden post-and-rail, 16 m, three rails on posts every ~2 m015/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?)049/3 rejected [ragged_crest] - thin opaque sheet, 25.8 m, top 2.75 m008/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)093/3 rejected [ragged_crest] - thin sheet, 31.7 m, top descends 1.65 -> 1.3 m, crest share 0.31059/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
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
Q1 acceptable → the channel is close to done on this data:
the crop edges stop being false positives and precision on the measured set
goes from roughly 58 % to over 90 %. Q1 suppressed →
I arm the three-echo cue: a crop interior splits a pulse three ways, a mesh
fence splits it once, and that plane is now measured per cell (it was added
today after reading how the sign channel uses it).
Q2 → a top-height ceiling and an opacity test separate the
slab and the railing from the fence, both of which already exist as rules; the
question is only where you put the line. If hedges get their own class, the
green + transmissive candidates stop being rejects and become a second output
type.
Q3 → pass 7 measures the crest twice, once over all cells
and once over the NON-GREEN cells only, and keeps the better reading. That is
what recovers 110/5. Whether it should also recover a descending top (093/3) is
your call — it is a one-line change to measure flatness against a fitted slope
instead of a constant.
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.