Industries · 6 min read
Telecom tower inspection for corrosion, measured as area from a drone pass up the legs
Rust on a lattice tower as a mask so two flights can be compared, the member it sits on as the priority, and salt haze as the frames the model has seen least.
Summary
This post follows a drone up the legs of a coastal telecom tower, labels the corrosion as masks so its area can be compared flight to flight, and boxes the member each patch sits on so a leg outranks a mount. It covers picking the sharp frames from a climbing pass, registering two flights to the same leg, and why salt haze and wet steel are where the model is weakest. It is for tower owners and inspection contractors.
Finn Ellingwood · Engineer · Sep 24, 2026

Transmission lattice tower from a drone pass, corrosion flagged on the hardware, from a customer inspection run
The drone lifts off at 7 am, before the sea breeze picks up, and climbs the north leg of a lattice tower a mile from the coast, then the east leg, then the other two. Five years ago a rigger did this on a rope with a phone, photographing whatever looked wrong on the way up. The tower owner's file for this site is that rigger's photographs, with no scale and no way to tell whether the patch on the third bay grew.
The question the owner has is which towers on the coastal run need paint this year and which can wait. Answering it needs the rust as an area, on a named member, from two flights that can be laid on top of each other.
A bounding box says rust is on the tower, and a mask says how much
The cheapest label is a box around each patch, and on the 7 am flight it is enough to know the tower has corrosion and roughly where. A bounding box grows when the drone flies closer, though, and the same patch at half the standoff is four times the pixels with the rust unchanged. Two flights by two pilots produce boxes that cannot be compared.
The label that survives comparison is the mask, drawn where the rust ends and sound galvanising begins. A mask's pixels still change with distance, but the member the patch sits on has a known width, and that width turns pixels into square centimetres on every frame. The corrosion and structural degradation use case makes the same argument for pipe racks: the label has to be the measurement, or the trend is a record of how close the pilot flew.
The riggers on the coastal run call the white bloom on new galvanising wet storage stain. It is zinc oxidising, it is harmless, and the first model outlined all of it as rust.
The member matters as much as the patch
Rust on a leg is a structural question. Rust on an antenna mount is a maintenance line item. The same patch, the same area, and a different decision depending on what it is sitting on, so the member is a class in its own right: leg, diagonal brace, horizontal, mount, bolt group. Each member is a box, each patch is a mask, and the pipeline reports area of rust per member rather than per tower.
That is what turns a flight into a priority list. The tower with a large patch on a mount ranks below the tower with a small patch on a leg splice, and the owner's paint budget goes to the second one.
You type the classes once, Lexi proposes the boxes and outlines on the frames from the climb, and an inspector who has climbed towers checks them against a written rule. Stain is not rust, the outline follows the last flaked edge, and a bolt group is rust if any bolt in it is. The verification pass is where the rule is applied, and it is why the outlines come back consistent enough to compare.
The sharp frames from a climbing pass are the ones worth labeling
A climb up a leg is video, and most of it is motion. The frames worth keeping are the ones where the drone paused at a bay, the gimbal settled, and the member is sharp. Selecting those is a step of its own: score each frame for sharpness, keep the best one per bay per leg, and drop the rest before any person sees them. On the 7 am flight that is a few dozen frames per tower from several minutes of video, and those few dozen are the ones a person labels and the model runs on.
Skipping this step and labeling every frame is a waste of the inspector's afternoon, and it teaches the model that a blurred patch is rust.
Two flights compare only once they are registered to the same leg
The area from March and the area from September are only a trend if they are the same patch. The frame from each flight is tied to the tower, the leg and the bay before the areas are set side by side, using the member boxes as the anchor. The leg splice at the third bay is a landmark that does not move, and both masks are measured relative to it. Without that, a difference between two numbers is as likely to be a different bay as growth.
The output the owner gets is a page per tower. My view is that the page should carry the frame at the top, with the patches outlined and the member named, and the numbers below it, and that any report which opens with a score will be ignored by the person who has to climb.
Salt haze and wet steel are what the model has seen least
A mile from the coast, the mornings the flight is possible are the mornings the steel is wet, and salt haze sits in the air until the breeze clears it. Wet galvanising is darker, rust on wet steel is darker still, and haze flattens the contrast the model uses to find an edge. The same leg reads as worse at 7 am than at noon. The drift catalog files this under rain, fog and dust, and on a coastal run it is the normal condition rather than the exception.
Those frames come back for review because the model doubts them, the inspector confirms or corrects the outline, and the correction rate on hazy mornings against clear ones is the signal that the model needs more of them. Keep them. They are rare in any training set and they are the frames the coastal towers will always produce.
LexData takes the tower model through its whole life. You type what to look for, Lexi puts an outline on every frame, and a person checks each label before anything trains on it. The model then runs on each flight as it lands, in the cloud, on your servers, or on a runner beside the recorder. Frames it is unsure of come back to a person, the corrections retrain it, and the new version replaces the old one with no downtime. The hazy March frames are what the September version learned from. The same path, pointed at grid assets, is what produces 21,000+ hazard detections per month in our energy work.
The rigger still climbs, and the drone tells the rigger which tower
None of this removes the climb. A patch on a leg splice found on the 7 am flight still gets a person on the tower with a gauge, and the rigger's reading is the check the mask is measured against. What changes is which tower the rigger climbs, and the fact that the file for the site now holds the same leg, the same bay, and the same patch, measured the same way, twice.
See it on your own footage.
Start with your footageMore in Industries

Industries · 6 min read
AI visual inspection as the nondestructive testing step a camera can take over
Visual testing is the first NDT gate, its acceptance criteria are already written, and a camera can apply them to every weld instead of one in twenty.
Rob Hickey · Sep 24, 2026

Industries · 6 min read
Appearance inspection systems that judge scratches, chips and burrs the same way on every shift
The station, the light and the written standard matter more than the model. The outlines carry the limit, and a tightened tolerance makes every label wrong.
Rajiya Sultana · Sep 24, 2026

Industries · 7 min read
Automated pallet accounting from the camera over the staging zone
A polygon on the frame, every pallet tracked so it is counted once, entries and exits as the ledger, and a wash-down that nudges the camera as the failure.
Andreas Ohrvall · Sep 24, 2026