Tagged as plat2json, qwen, vlm, surveying, local ai
Written on 2026-06-30 16:30:00
A narrow, practical question, the kind I actually care about: can a vision model running entirely on your own machine, offline, read the bearings and distances off a plat well enough to be useful? Not a cloud servicei.e. not "upload your client's recorded document to somebody else's server" — the whole point is that nothing leaves the desk. A model that lives on the desktop and reads the calls the way you'd skim them before typing them into your drafting software.
I tested exactly that, and the results are honest enough to be worth writing down for other surveyors.
The models are from the Qwen2.5-VL familyopen-weight vision models you download and run yourself, served through llama.cpp — nothing phones home. Two ways:
The job: hand the model a tile of the plat, get back a list of what it read, each item tagged bearing or distance. To grade it honestly I needed an answer key I didn't writefor vector plats that still carry a text layer, I harvested the true calls straight out of the file — the model never sees that layer, it only looks at the picture. Blind test: read the image, compare against ground truth it couldn't peek at. Four county plats, 94 bearings and 192 distances.
The number a surveyor wants is recall — of all the real calls on the sheet, what fraction did it find?
| | 7B (8 GB GPU) | 32B (32 GB Mac) | |---|---|---| | bearings found | ~75–85% | ~88–90% | | distances found | ~70–72% | ~82–86% |
Read those like a new instrument person's first day. The small model finds about three calls in four; the big one closer to nine in ten. Neither finds all of them, and that's the entire point of how you'd use this: a fast first pass, not a system of record. A few surprises:
N 15°48'05" E — the model locks onto the skeleton even rotated along a line a bare 152.31 doesn't, and loose digits are where vision models fumble.The biggest accuracy lever wasn't the model, it was how I tiled the image. My first instinct — big 2200-pixel tiles — was wrongit blurred the small lettering, and the 8 GB card couldn't hold the activations anyway; the binding constraint is memory per image, not the model's context length, which surprised me. Switching to smaller tiles at full resolution — about 1100 px, overlapping so nothing falls in a crack — nearly doubled bearing recall on a dense sheet, from ~40% to ~75%.
There's a sweet spot worth knowing if you ever try this:
So the recipe is "tile small, keep it sharp, overlap the tiles" — not "buy a bigger model" and not "shove the whole page in at once."
Mostly a trade in time. The 7B reads a tile in 2–4 seconds — right for sweeping a stack of plats to see what's there. The 32B takes ~27 secondscall it eight times slower and buys 10–15 more points of recall, mostly on the distances the small model was weakest on — right when you've picked a document and want the cleanest first pass. Neither needs a server farm: a gaming GPU you might already own, or a well-specced laptop.
Surveyors are rightly suspicious of software that claims to "read" their documents, so: I don't trust the model's output on its own, and neither should you. The reader is one witness. The geometry pipeline independently traces and measures the lines and curves off the same platthe other post is all about this half, and the two get matched — a distance only counts when there's a segment measured at the same length; a bearing only counts when it lines up with a traced line's azimuth. A hallucinated digit won't match a real segment, so it gets flagged instead of silently entered. The claim is never "the AI read it right." It's "the read and the drawing agree, and here's the one place they don't — go look."
A local vision model can read most of the calls off most plats, offline, on hardware you can afford, with no client document ever leaving your desk. It'll miss some. It's a drafting assistant that gives you a fast, checkable first pass — and the checking is done by the plat's own geometry and curve table, not by faith in the model. For people who've spent careers being precise about what a number means and where it came from, that's the right frame: not automation that replaces judgment, but a second set of eyes that's fast, tireless, cheap, and never allowed the last word.
HALLUCINATED DIGIT. NO MATCHING SEGMENT. FLAGGING FOR HUMAN. PLAT-94.