| .. | ||
| ASSESSMENT_REPORT.md | ||
| BUG_FIX_SUMMARY.md | ||
| QUICK_START.md | ||
| RASPBERRY_PI_GUIDE.md | ||
| README.md | ||
Driver DSMS/ADAS Real-Time Validator
A Streamlit-based application for real-time Driver State Monitoring System (DSMS) and Advanced Driver Assistance System (ADAS) validation using computer vision and deep learning.
📋 Project Status
Current Status: ⚠️ Requires Critical Fixes Before Use
- Dependencies: 2/11 installed (18%)
- Code Quality: Multiple critical bugs identified
- Performance: Not optimized for low-spec CPUs
- Functionality: Non-functional (will crash on execution)
🚀 Quick Start
1. Check Current Status
python3 check_dependencies.py
2. Install Dependencies
pip install -r requirements.txt
Note: This will download ~2GB and require ~5GB disk space.
3. Configure
Edit track_drive.py and set your Roboflow API key:
'roboflow_api_key': 'YOUR_ACTUAL_KEY_HERE',
4. ⚠️ DO NOT RUN YET
The code has critical bugs that must be fixed first. See ASSESSMENT_REPORT.md for details.
📚 Documentation
- ASSESSMENT_REPORT.md - Comprehensive evaluation, issues, and improvement plan
- QUICK_START.md - Installation and setup guide
- requirements.txt - Python dependencies
🔍 What This Project Does
DSMS (Driver State Monitoring)
- Drowsiness detection (PERCLOS)
- Distraction detection (phone use, looking away)
- Smoking detection
- Seatbelt detection
- Driver absence detection
ADAS (Advanced Driver Assistance)
- Forward Collision Warning (FCW)
- Lane Departure Warning (LDW)
- Pedestrian detection
- Tailgating detection
- Hard braking/acceleration detection
- Overspeed detection
🛠️ Technology Stack
- Streamlit: Web UI framework
- YOLOv8n: Object detection (vehicles, pedestrians, phones)
- MediaPipe: Face mesh analysis for PERCLOS
- OpenCV: Image processing and optical flow
- Roboflow: Seatbelt detection API
- VideoMAE: Action recognition (⚠️ too heavy, needs replacement)
- scikit-learn: Anomaly detection
⚠️ Known Issues
Critical Bugs (Must Fix)
- Optical Flow API Error:
calcOpticalFlowPyrLKused incorrectly - will crash - VideoMAE JIT Scripting: Will fail - transformers can't be JIT scripted
- YOLO ONNX Parsing: Incorrect output format assumption
- ONNX Export: Runs on every load instead of conditionally
Performance Issues
- VideoMAE Too Heavy: Not suitable for low-spec CPUs
- All Models Load at Startup: Slow initialization
- No Model Quantization: VideoMAE runs in FP32
- Untrained Isolation Forest: Produces random predictions
See ASSESSMENT_REPORT.md for complete analysis.
📊 Performance Targets
Target Hardware: Low-spec CPU (4 cores, 2GHz, 8GB RAM)
Current (Estimated After Fixes):
- FPS: 5-8
- Memory: 4-6GB
- CPU: 70-90%
Target (After Optimizations):
- FPS: 12-15
- Memory: 2-3GB
- CPU: <80%
- Accuracy: >90% precision, >85% recall
🗺️ Implementation Roadmap
Phase 1: Critical Fixes (Week 1)
- Fix optical flow implementation
- Remove VideoMAE JIT scripting
- Fix YOLO ONNX parsing
- Add error handling
- Install and test dependencies
Phase 2: Performance Optimization (Week 2)
- Replace VideoMAE with lightweight alternative
- Implement lazy model loading
- Optimize frame processing pipeline
- Add smart frame skipping
Phase 3: Accuracy Improvements (Week 3)
- Train Isolation Forest
- Improve PERCLOS calculation
- Add temporal smoothing
- Fix distance estimation
Phase 4: Testing & Validation (Week 4)
- Unit tests
- Integration tests
- Performance benchmarking
- Documentation
🧪 Testing
After fixes are implemented:
# Run dependency check
python3 check_dependencies.py
# Run application
streamlit run track_drive.py
📝 Requirements
- Python 3.8+
- ~5GB disk space
- Webcam or video file
- Roboflow API key (free tier available)
🤝 Contributing
Before making changes:
- Read ASSESSMENT_REPORT.md
- Follow the implementation plan
- Test on low-spec hardware
- Document changes
📄 License
[Add your license here]
🙏 Acknowledgments
- Ultralytics for YOLOv8
- Google for MediaPipe
- Hugging Face for transformers
- Roboflow for model hosting
Last Updated: November 2024 Status: Assessment Complete - Awaiting Implementation