Inspiration
In many countries, road inspection is still expensive, manual, and inconsistent. Governments often spend money sending people to survey roads, while damage is only recorded after it becomes dangerous, visible, or publicly reported.
I built Sivie around a simple idea: public vehicles already drive through cities every day. With a camera and GPS attached to buses, garbage trucks, service vehicles, or other government fleets, those vehicles can become an autonomous road-monitoring network.
(A note on surveillance: Understandable, I can tweak it so the ai only saves cropped images of detections e.g. potholes and deletes everything else)
For countries like India, where reliable, continuously updated road-damage databases are often missing, Sivie can help governments stop guessing, spot problems earlier, and prevent small cracks or potholes from becoming much more expensive infrastructure failures.
What it does
Sivie turns ordinary dashcam or drive footage into a prioritized, map-based road-hazard database for governments.
It detects road damage such as potholes and cracks, attaches GPS locations when available, and ranks each issue by urgency. The priority score is based not only on the detected damage, but also on context such as severity, confidence, street information, repeated hazards on the same road, and AI-generated triage reasoning.
Instead of relying on manual surveys or scattered citizen complaints, Sivie gives government teams a single operations dashboard showing what damage exists, where it is, how serious it is, and why it should be fixed first.
How I built it
I built Sivie as a full pipeline from raw road footage to an operations dashboard.
The system extracts frames from video, filters out blurry frames, and uses a YOLO road-damage model to detect hazards with bounding boxes. It then scores each hazard, removes duplicate detections across frames, syncs locations with GPS data, and enriches results with road context from OpenStreetMap when available.
I also added street-level aggregation so repeated damage on the same road increases priority. After that, Gemini 2.5 Pro performs an AI triage pass, giving each hazard a bounded priority multiplier and short human-readable reasons.
The backend is built with FastAPI and stores road problems in Supabase Postgres, with a local JSON fallback for easy demos. The frontend is built with React, TypeScript, Tailwind, and Mapbox, with a severity-colored map, analysis review page, and operations database where records can be added, edited, or removed.
Challenges I ran into
One of the biggest challenges was choosing the right AI architecture. I first explored vision-language models for detection, but the bounding boxes were not precise enough and the system produced too many false positives. I switched to a YOLO road-damage model for faster and more reliable detection, then used Gemini only for contextual prioritization.
Another challenge was handling location honestly. If footage has no GPS, Sivie does not place fake markers on the map. The system stores the hazard without coordinates and clearly shows that no location is available, which is important for government trust and data integrity.
I also had to solve repeated detections, street-level priority, and long AI processing runs. I handled this with deduplication, a persistent street registry, and incremental checkpointing.
Accomplishments that I'm proud of
I am proud that Sivie is not just an AI demo. It is an end-to-end civic operations system.
It detects road hazards, prioritizes them, explains the priority, maps them, stores them in a database, and gives operators tools to review and manage the records. The current demo includes 77 seeded detections in the operations database.
I am also proud of the practical design decisions: using public vehicles instead of creating new survey fleets, refusing to fake GPS data, and building a system that could help governments reduce long-term maintenance costs by acting earlier.
What I learned
I learned that real-world AI systems work best when each model does what it is good at. YOLO is strong for fast, precise detection, while Gemini is better for reasoning about urgency and context.
I also learned that civic technology has to be trustworthy. For a government dashboard, accuracy is not enough. The system needs clear locations, explainable scores, editable records, and honest handling of missing data.
Most importantly, I learned that road maintenance is not just a detection problem. It is a prioritization, database, and operations problem.
What's next for Sivie
Next, I want to add authentication, role-based access, repair status history, and a full resolve workflow so agencies can track damage from detection to completion.
I also want to support multiple vehicles, long-term street-condition trends, and exports into existing government work-order systems. Over time, Sivie could become a live infrastructure health database for cities and countries.
Built With
- fastapi
- google-gemini-2.5-pro
- gpxpy
- hugging-face-hub
- mapbox-gl
- opencv
- openstreetmap-overpass
- postgresql
- postgrest
- pydantic
- python
- pytorch
- rdd2022
- react
- supabase
- tailwind-css
- typescript
- ultralytics
- uvicorn
- vite
- yolov11
Log in or sign up for Devpost to join the conversation.