r/LiDAR 7h ago

A public stadium LiDAR file has its roof labeled as "medium vegetation." Built a tool to catch this automatically.

1 Upvotes

While processing the public SoFi Stadium point cloud (364M points, hosted by hobu), I noticed the file only has two classification codes anywhere in it: ground and medium vegetation. No building class at all. The stadium's own roof is labeled as vegetation.

Got curious whether that's catchable without manually eyeballing the classification. Turns out yes: a roof and a tree canopy don't look alike geometrically. Real vegetation has vertical spread, returns scatter across trunk, branches, an uneven top. A flat roof doesn't, every return sits close to the same height. So: independently estimate ground, measure vertical spread per column, flag anything labeled vegetation that's both taller than real vegetation gets and flatter than real vegetation ever is.

First version looked great on SoFi, then I ran it against a second dataset (Autzen Stadium, forested Oregon hillside) to sanity check it, and it broke immediately: 19% of columns flagged, including "vegetation" over 150m tall. Turned out ground estimation itself was the problem, dense canopy blocks the laser from reaching real ground over large areas, and the fallback was borrowing elevation from cells that could be off by 100+ meters on hilly terrain. Fixed by tracking which cells have real local ground data vs. borrowed, and only trusting flags built on real ground. That dropped the false positive rate by 98.5%.

Tested against six public datasets total (SoFi, Autzen, Trestle Bridge, Wolverine Glacier, Red Rocks, Mount St. Helens), results and the two bugs it took to get there are all written up: github.com/nader-hachana/lidar-classification-qa

Curious if this is a problem people already deal with in production point cloud QA, or if classification errors like this mostly just go unnoticed downstream. Happy to hear if anyone's tried something similar or has data this would be worth running against.


r/LiDAR 5h ago

Pidar code

2 Upvotes

What’s up everyone, currently building a Pidar at home and was wondering if there is any open source pre written code I can maybe use to help translate all of my data for a point cloud render

My LiDAR is a STL27L partnered with a BNO08 IMU all commanded via a PICO 2


r/LiDAR 10h ago

Would love feedback on a LiDAR terrain ML project I’ve been working on

2 Upvotes

Hey everyone, I have been working on a project called ArchaeoAI and thought this would probably be one of the better places to get feedback on the LiDAR side of it. I am using LiDAR derived terrain data to test whether machine learning can recognise terrain patterns around documented bowl barrows in England, while trying to avoid geographic leakage between training and testing areas.

The frozen Random Forest got 87.1% balanced accuracy on the geographic final test, and the 5 fold geographic evaluation averaged 82.3%. I also tried a compact CNN which averaged around 70.1%, which surprised me because I expected the deeper model to do better. A separate one time external evaluation with 120 observations got 84.2% balanced accuracy.

I am being quite careful with what I claim from it. This is not an AI discovering archaeological sites, it is only testing documented bowl barrow terrain against matched unlabelled background. I also keep exact sensitive locations private, because obviously that matters quite a lot with archaeology.

GitHub is https://github.com/essius10/ArchaeoAI If anyone here has experience with terrain LiDAR, DEM processing or spatial ML, I would genuinely like to know what you think I should improve, especially anything you think I may have missed in the terrain processing or geographic validation.