Engineering
How we build and train our models
A road network fails in a handful of visible ways: potholes and cracking, line markings that fade past legibility, culverts that block before a storm, roads that go under water. Each one is a picture problem, and each gets its own model, trained on openly licensed imagery and on the corrections people make in our own review queues. The models propose. People decide.
The training loop
Every detector on this page sits in the same loop. A frame is captured, personal information is blurred on the device before anything is uploaded, a model reads it, and any reading a person disputes becomes a labelled training example. The models improve because the disagreements are kept, not discarded.
Road damage live
Potholes and cracking are the bread and butter. A detector runs on the phone itself, in real time and offline, and triages every frame for free; frames it flags are confirmed by a stronger cloud model before anything reaches a council's defect register with photo evidence attached.
Scores are agreement with the test set's own labels at IoU 0.5. We publish the disagreements as well as the wins.
Faded line markings live
Fadedness is not something we ask a model to have an opinion about. Once a marking is located, we measure the luminance contrast between the paint and the road surface beside it. A measurement is comparable between drives in a way a judgement never is, which is exactly what "deteriorating" needs.
One honest boundary: marking standards specify retroreflectivity, which needs a retroreflectometer at night. A daylight camera measures a contrast proxy, useful for trend and triage. We say so on every reading.
Number plates and faces live
The survey camera points at public streets, so the first model in the chain protects the public: faces and number plates are detected and pixellated on the phone, before a frame is uploaded anywhere. Face detection is Apple's on-device vision; the plate detector is our own, trained on openly licensed imagery.
Flooded roads in training
The hardest visual call on a road network is the difference between a wet road and a flooded one; a puddle or headlight sheen that reads as floodwater teaches people to ignore the feed. Our flood-frame classifier trains on the platform's own adjudicated record: frames a strong model overturned, and frames a person struck down, are exactly the boundary cases a public dataset cannot supply.
Validation holds out whole cameras, not random frames: a fixed camera's frames in both halves would let a model score well by recognising the camera rather than the water. Openly licensed flood and waterlogging imagery joins the training half only, so the score keeps measuring our own domain.
Blocked culverts building
A culvert blocking up is a trend, not an event: no single frame looks like an emergency, and the value is seeing it coming. Cameras that watch a culvert have their openings pinned once, and the model reports on those exact openings so "partly obstructed for six weeks" is a work order, not a guess.
Where the training data comes from
Two sources, and rules about both.
Public Domain, MIT and CC BY datasets only, with attribution shipped in the product. Licences are re-checked automatically at fetch time, so a dataset whose terms change is dropped by name. ShareAlike, NonCommercial and copyleft-licensed tooling are excluded outright.
Every reading a reviewer disputes, every flag a person overturns, and every box drawn in our labelling tools becomes a training example. This is the data no public set can supply: Australian roads, our cameras, our edge cases.
Test sets are carved out before training and split by site, never by frame. We publish the numbers either way, including where a cloud model still beats ours.
No model on this page publishes a verdict on its own. Low-confidence frames route to a person, and the review queues are part of the product, not an afterthought.
Want the numbers behind a claim?
Every figure on this page comes from a held-out evaluation we can show you, disagreements included.