This project uses Computer Vision and Object Detection to identify highway rumble strips from forward-facing road video and provide an early warning to drivers.
The system was developed using Roboflow RF-DETR and tested on previously unseen highway footage. The objective is to detect rumble strips before the vehicle reaches them, allowing additional reaction time.
Rumble strips are safety features installed on highways to alert drivers when they are approaching hazardous areas such as:
- Speed reduction zones
- Toll plazas
- Sharp curves
- Intersections
- Pedestrian crossings
However, drivers may sometimes fail to notice them until they are very close.
This project aims to automatically detect rumble strips from video feeds and generate an early warning.
- Collect rumble strip and non-rumble strip images.
- Annotate rumble strips using bounding boxes.
- Train an RF-DETR Object Detection model.
- Evaluate performance on validation data.
- Test on unseen highway videos.
- Generate real-time warnings.
- Create annotated output videos.
| Category | Count |
|---|---|
| Positive Images | 46 |
| Negative Images | 53 |
| Total Images | 99 |
| Classes | 1 |
rumble_strip
- Roboflow
Positive Images:
- Highway rumble strips
- Different lighting conditions
- Multiple viewpoints
Negative Images:
- Roads without rumble strips
- Hard negatives
- Similar road patterns
RF-DETR Object Detection (Small)
- Roboflow
- Python
- Inference SDK
512 Γ 512
| Metric | Score |
|---|---|
| mAP@50 | 90.1% |
| Precision | 100.0% |
| Recall | 90.0% |
| F1 Score | 94.7% |
Road Video β Frame Extraction β RF-DETR Detection β Confidence Filtering β Temporal Confirmation β Warning Generation β Annotated Video Output
The warning system uses:
- Detection confidence threshold
- Consecutive detection confirmation
- Temporal filtering
Warning message:
β RUMBLE STRIP AHEAD
This reduces false positives caused by isolated detections.
- Resolution: 1920 Γ 804
- FPS: 30
- Duration: 5 minutes
| Strip | Visibility Window |
|---|---|
| Strip 1 | 00:55 β 00:58 |
| Strip 2 | 02:31 β 02:41 |
| Strip 3 | 02:52 β 02:53 |
Detected Events:
3 / 3
Detection Rate:
100%
| Strip | Warning Time |
|---|---|
| Strip 1 | 1.0 sec |
| Strip 2 | 3.0 sec |
| Strip 3 | 0.6 sec |
The system outputs:
- Bounding boxes
- Confidence scores
- Warning overlays
- Annotated MP4 video
- RF-DETR
- Computer Vision
- Object Detection
- Roboflow
- Python
- OpenCV
- Inference SDK
- NumPy
- Roboflow Serverless API
rumble-strip-detection/
β
βββ README.md
βββ requirements.txt
β
βββ src/
β βββ test_api.py
β βββ video_warning.py
β βββ evaluate_strips.py
β
βββ demo/
β βββ rumble_strip_demo.mp4
β βββ screenshot_1.jpg
β βββ screenshot_2.jpg
β
βββ docs/
β βββ architecture.png
β
βββ results/
βββ v1_results.md
- Small dataset size
- Limited testing videos
- Detection distance can be improved
- Occasional false positives
- Warning lead time varies depending on road geometry
- Hard-negative mining
- Additional highway footage
- More far-distance rumble strip examples
- Earlier detection
- Reduced false positives
- Increased robustness
- Distance estimation
- Time-to-strip estimation
- Real-time webcam integration
- Edge deployment
Initial working prototype
Features:
- 99-image dataset
- RF-DETR Small
- 90.1% mAP@50
- Driver warning prototype
- Annotated video generation
- External video testing
- 3/3 rumble-strip events detected
Hemanath T
Data Science | Machine Learning | Computer Vision
Portfolio: https://hemanath-t.netlify.app/
LinkedIn: www.linkedin.com/in/hemnaththangavel
GitHub: github.com/Hemanath400