How It Works — Road Inspection System
Gary Hein · Healthy Roads monitoring program
← Back to Portal
How Data Is Captured
On-Vehicle
Once a year (or seasonally when needed), a vehicle equipped with a camera, motion sensor, and GPS unit drives the entire road network in a single pass. The drive takes under an hour and captures everything needed to run all of the analysis tools on the site.
On-board equipment
Camera
- High-resolution video, every frame saved
- Wide-angle lens — full road width
- ~29 frames per second
- On-camera compression, no frames dropped
- 5-minute segments, continuous run time
→
Motion Sensor (IMU)
- 200 shock readings per second
- Detects bumps, ruts, rough pavement
- Runs simultaneously with the camera
- Each event timestamped for GPS matching
→
GPS (RTK)
- Sub-meter accuracy (RTK)
- Real-time correction signals
- 5–10 positions per second
- Geo-locates every video frame
Timing
All three sensors share the same clock
GPS positions are matched to video frames after the drive
Clock is locked during capture to prevent drift
↓
What Gets Saved
· Video segments (every 5 minutes of driving)
· Motion sensor readings (200/second)
· GPS track with accuracy ratings
· Timing reference file linking all three together
Full road network covered in under 1 hour
One frame roughly every 22 inches at normal driving speed
Each road point passes through the camera view 5–6 times per drive
Same data set feeds all analysis tools simultaneously
How the Data Is Analyzed
Software Processing
After the drive, the video and sensor data are processed on a desktop computer. The video is broken into individual frames and each frame is given a precise GPS location. From there, the same set of frames feeds several independent analysis tools — each one looking for something different.
Step 1 — Prepare the data
Extract frames
- Video → individual image files
- 5 frames per second (roughly every 22 in.)
- GPU-accelerated for speed
→
Attach GPS
- Match each frame to a GPS position
- Calculate distance along road
- Assign to named road segment
→
Detect road edge
- Find where pavement meets shoulder
- Per-frame edge position saved
- Used as anchor for all detections
↓ The same frames then run through each detection tool independently ↓
Step 2 — Detection tools (implemented)
Active
Vegetation Encroachment
- Scans the road-edge strip in each frame
- Detects green vegetation using color analysis
- Flags frames where plants are encroaching
- Results shown by road on the vegetation map
In Development
Shoulder Drainage
- Uses the stereo depth camera to measure shoulder geometry beyond the road edge
- Classifies each frame: BERM (shoulder above road — water pushed back), POOLING (shoulder dips — water pools), or FLAT
- Shown as color-coded points on the map
In Development
Road Roughness
- Reads the motion sensor, not the video
- Flags vertical shock events (bumps, ruts)
- Each event is placed on the map by GPS
- Sorted by severity: low, medium, high
Step 3 — Planned tools (same video, no new drive needed)
Planned
Road Edge Loss
- Detects where the road shoulder is eroding
- Year-over-year comparison
Planned
Snow Plow Damage
- Compares pre- and post-winter drives
- Flags edge damage and gravel loss
Planned
Overall Road Score
- Combines vegetation, drainage, roughness, and culvert data
- Single health score per road segment
↓
Results go to the Portal
Interactive maps (Leaflet.js)
Photo thumbnails per detection
Breakdown by road
Year-over-year comparison
Public web access
Gary Hein · Healthy Roads
© 2026 Gary Hein