satdetect / Pothole_Detection_Integration_Plan.md
coderuday21's picture
Add pothole detection as new menu type with separate engine and research plan
4e9c6ba
|
raw
history blame
3.36 kB

Pothole Detection Integration (Research + Architecture)

1) Computer vision approaches for road damage detection

Typical successful families:

  • Object detection (bounding boxes): YOLOv5/YOLOv8, Faster R-CNN

    • Pros: simple outputs, fast, easy UI.
    • Cons: boxes are coarse; struggles with thin cracks and complex shapes.
  • Instance segmentation: Mask R-CNN, YOLACT

    • Pros: tighter region boundary and size estimation.
    • Cons: heavier models, more training complexity.
  • Semantic segmentation: U-Net / DeepLabv3+ / SegFormer

    • Pros: best for pixel-level damage maps, severity estimation.
    • Cons: needs mask labels; inference cost.
  • Two-stage pipelines:

    1. road surface ROI extraction (segment road), then
    2. damage detection inside road only
    • Pros: reduces false positives (buildings, shadows, non-road textures).

2) Datasets and pretrained models (starting points)

Common public datasets (road damage + potholes):

  • RDD (Road Damage Dataset / Road Damage Detection)
    Includes potholes and other damage classes from multiple countries.

  • Pothole-600 / Pothole datasets on Kaggle
    Smaller but useful for prototyping.

  • CrackForest / CFD / other crack datasets
    More focused on cracks; can help pretraining for surface defects.

Practical approach:

  • Use a model pretrained on COCO, then fine-tune on RDD/pothole datasets.
  • For best results, fine-tune on your region-specific imagery (road texture and lighting differs).

3) Feasibility: drone vs satellite vs vehicle camera

  • Vehicle camera (recommended):

    • Highest feasibility for potholes.
    • Typical resolution and perspective supports pothole features.
  • Drone (good):

    • Works well at low altitude with good GSD (cm/px).
    • Requires flight plan and stable capture.
  • Satellite (usually not feasible):

    • Most satellite imagery is too low resolution for potholes.
    • Only very high-res (sub-10cm) commercial imagery could work, and still hard due to shadows and angle.

4) Detection pipeline (integrated with current system)

Implemented integration strategy:

  • Add Pothole Detection as another detection type in the menu.
  • Route through the existing POST /api/detect using:
    • detection_type=pothole_detection
    • pothole_model=<selected>
  • Separate engine module:
    • app/pothole_engine.py

Starter logic implemented (Rule-Based v1)

For fast CPU MVP (vehicle/drone imagery):

  • shadow/dark region score (local brightness drop)
  • rough texture score (Laplacian roughness)
  • edge score (Canny)
  • fuse + sensitivity percentile threshold
  • region extraction + severity/confidence

5) Model architectures to implement next

  • YOLOv8n (boxes) for fast detection and scalable deployment.
  • SegFormer-b0 / U-Net for pixel-level damage mapping.
  • Optional road ROI segmentation first to reduce false positives.

6) Immediate next steps for dataset preprocessing / feature extraction

  1. Define input standard: camera height, FOV, resolution, and capture protocol.
  2. Build a labeled dataset:
    • bounding boxes or masks for potholes,
    • metadata: day/night, wet/dry, shadows.
  3. Add preprocessing:
    • road ROI extraction,
    • illumination normalization,
    • motion blur handling.
  4. Train baseline YOLO model and integrate as pothole_model=YOLOv8.