Inspiration
Lane keeping systems steer by reading painted lane lines through a camera. When the paint fades or disappears, the system quietly switches off. Councils rarely know which of their streets these cameras can read, and survey vehicles are expensive.
What it does
ADAS-Ready Roads screens streets using free, crowdsourced Mapillary photos. For each location it answers one question: are painted lane lines visible to a camera? It shows the answers on a live map, ranks places for a person to inspect, and sends unclear cases to human review instead of guessing.
How I built it
- OpenCV 5 checks every photo: a quality gate, semantic segmentation (fastseg) and a lane detection network (Ultra-Fast-Lane-Detection), both running in the OpenCV DNN module.
- An agent decides per location: it reads the OpenCV results, checks OpenStreetMap, fetches more photos when evidence is thin, and asks a vision language model on Amazon Bedrock (Nova Lite) for a second look at the best road photos. It stops early when answers agree and escalates when they don't. Every step is logged.
- AWS in Sydney: a public API on Lambda (ARM64 container from ECR), Bedrock, and a dashboard on S3 and CloudFront, with least privilege IAM and CloudWatch logs.
Challenges
- OpenCV 5's new DNN engine crashed on ARM64 Lambda; I diagnosed it and switched to the classic engine (99.4% matching results).
- Three versions using OpenCV alone looked good in development but did no better than chance on new suburbs. Honest testing caught it.
- A blind relabelling study showed even a person cannot grade paint wear consistently from these photos, so I changed the question to one that can be measured.
Accomplishments
On four Sydney suburbs it had never seen, the system confirmed visible lane lines at 42 of 48 decided locations (88%, 95% CI 75 to 94%) and sent 7 more to human review. Everything is live and reproducible.
What I learned
Test on data the system has never seen, measure how reliable your own labels are, and let the agent hand hard cases to people.
What's next
Test missing marking detection properly with a dedicated sample of unmarked roads, compare with council survey records, and benchmark COOL on Graviton.
Built With
- amazon-bedrock
- amazon-cloudfront
- amazon-ecr
- amazon-web-services
- aws-iam
- aws-lambda
- docker
- leaflet.js
- mapillary
- onnx
- opencv
- openstreetmap
- python
Log in or sign up for Devpost to join the conversation.