How shrestha-sachin/pothole-verification works
Pothole Verification is a Streamlit system for finding pothole candidates in road video, grouping detections into events, applying verification policies, and supporting human review and export. Its broader workflow also includes image annotation and dataset preparation for detector and verifier training. The dashboard excerpt is partial, so documented workflow edges are included where the README establishes them; implementation detail beyond the shown source references is left out.
Main entry points: app.py Review Dashboard · annotate.py Annotation Dashboard · annotations Annotation Files · generate_crops.py Verifier Crop Generation
Components 25
Video Review
- Review Dashboard
dashboard/app.py - Review Database
src/database.py - CSV Report
Detection Analysis
- Frame Sampler
src/detector/video_sampler.py - YOLO Detector
src/detector/inference.py - Event Grouper
src/tracking/event_grouper.py - A/B/C Policies
src/evaluation/policies.py - Visual Verifier
src/verifier/interface.py - Crop Processing
src/verifier/preprocessing.py - Ground Truth Matching
src/evaluation/matcher.py - Video Renderer
src/video/annotated_renderer.py
Image Annotation
- Annotation Dashboard
dashboard/annotate.py - Annotation Canvas
dashboard/annotation_canvas/editor.js - Editor Logic
src/annotation_editor.py - Annotation Storage
src/annotations.py - Annotation Files
data/annotations
Dataset Preparation
- Image Inventory
scripts/build_inventory.py - YOLO Label Export
scripts/export_yolo.py - Verifier Crop Generation
scripts/generate_crops.py - Detector Training
scripts/train_detector.py - Verifier Training
src/verifier/train.py
Other components
- Reviewer
- Road Video
- Mapillary Images
data/raw/mapillary - Extracted Frames
scripts/extract_frames.py
Connections 27
- Reviewer → Review Dashboard: analyzes video
README.md - Road Video → Review Dashboard: provides input
README.md - Review Dashboard → Frame Sampler: samples frames
README.md - Frame Sampler → YOLO Detector: feeds frames
README.md - Review Dashboard → Event Grouper: groups detections
README.md - Review Dashboard → A/B/C Policies: applies policies
README.md - Review Dashboard → Visual Verifier: requests verification
dashboard/app.py - Visual Verifier → Crop Processing: preprocesses crops
src/verifier/interface.py - Review Dashboard → Ground Truth Matching: uses matching
dashboard/app.py - Review Dashboard → Video Renderer: renders video
dashboard/app.py - Review Dashboard → Review Database: persists events
dashboard/app.py - Review Dashboard → CSV Report: exports report
README.md - Reviewer → Annotation Dashboard: labels images
README.md - Annotation Dashboard → Annotation Canvas: draws boxes
README.md - Annotation Dashboard → Editor Logic: uses editor
dashboard/annotate.py - Annotation Dashboard → Annotation Storage: loads and saves
dashboard/annotate.py - Annotation Storage → Annotation Files: reads and writes
src/annotations.py - Mapillary Images → Annotation Dashboard: browses images
README.md - Mapillary Images → Image Inventory: indexes images
README.md - Road Video → Extracted Frames: extracts frames
README.md - Image Inventory → YOLO Label Export: supports labeling
- Annotation Files → YOLO Label Export: exports labels
README.md - Annotation Files → Verifier Crop Generation: generates crops
README.md - Verifier Crop Generation → Crop Processing: uses preprocessing
scripts/generate_crops.py - YOLO Label Export → Detector Training: prepares labels
- Verifier Crop Generation → Verifier Training: prepares samples
README.md - Verifier Training → Visual Verifier: produces checkpoint