DriverTrac/TROUBLESHOOTING.md

196 lines
4.2 KiB
Markdown

# 🔧 Troubleshooting Guide
## Common Issues and Solutions
### 1. Camera Not Detected
**Symptoms:**
```
[ WARN:0@1.554] global cap_v4l.cpp:914 open VIDEOIO(V4L2:/dev/video0): can't open camera by index
```
**Solutions:**
#### Check Available Cameras
```bash
# List USB cameras
lsusb
# List video devices
ls -la /dev/video*
# Test camera with OpenCV
python3 -c "import cv2; cap = cv2.VideoCapture(0); print('Camera OK' if cap.isOpened() else 'Camera FAILED'); cap.release()"
```
#### Try Different Camera Indices
The POC now automatically tries cameras 0, 1, and 2. If your camera is on a different index:
1. Edit `src/poc_demo.py`
2. Find `for camera_idx in [0, 1, 2]:`
3. Add your camera index: `for camera_idx in [0, 1, 2, 3, 4]:`
#### USB Camera Issues
```bash
# Check USB permissions
ls -l /dev/video*
# If permission denied, add user to video group
sudo usermod -a -G video $USER
# Then logout and login again
```
#### Raspberry Pi Camera
For Raspberry Pi Camera Module:
```python
# In src/poc_demo.py, replace:
cap = cv2.VideoCapture(0)
# With:
cap = cv2.VideoCapture('nvarguscamerasrc ! video/x-raw(memory:NVMM), width=640, height=480, framerate=30/1 ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink', cv2.CAP_GSTREAMER)
```
### 2. Streamlit Deprecation Warnings
**Fixed!** The `use_container_width` warning has been resolved. The code now uses `width='stretch'` instead.
### 3. Low FPS / Performance Issues
**Solutions:**
1. **Increase inference skip:**
- Edit `config/poc_config.yaml`
- Change `inference_skip: 2` to `inference_skip: 3` or `4`
2. **Reduce frame size:**
- Edit `config/poc_config.yaml`
- Change `frame_size: [640, 480]` to `frame_size: [320, 240]`
3. **Close other applications:**
- Free up CPU and memory
### 4. "Driver Absent" Always Active
**Cause:** Camera not working or face not detected
**Solutions:**
1. Fix camera issue (see #1)
2. Ensure good lighting
3. Position face clearly in frame
4. Check camera focus
### 5. Alerts Not Triggering
**Check:**
1. **Thresholds too high:**
- Edit `config/poc_config.yaml`
- Lower `perclos_threshold` (try 0.2)
- Lower `head_pose_threshold` (try 20)
2. **Face not detected:**
- Improve lighting
- Face should be clearly visible
- Remove obstructions
### 6. Memory Issues
**Symptoms:** App crashes, "Killed" messages
**Solutions:**
1. Reduce queue size in code
2. Increase inference skip
3. Use smaller frame size
4. Close other applications
### 7. Models Not Loading
**Solutions:**
```bash
# Check if models exist
ls -lh models/
# If missing, they'll auto-download on first run
# Or manually download:
cd models/
wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt
```
### 8. Import Errors
**Solution:**
```bash
# Reinstall dependencies
source venv/bin/activate
pip install --upgrade -r requirements.txt
```
### 9. Port Already in Use
**Symptoms:** `Address already in use`
**Solutions:**
```bash
# Kill existing Streamlit process
pkill -f streamlit
# Or use different port
streamlit run src/poc_demo.py --server.port 8502
```
### 10. Raspberry Pi Specific Issues
#### Camera Module Not Working
```bash
# Enable camera
sudo raspi-config
# Interface Options > Camera > Enable
# Test camera
raspistill -o test.jpg
```
#### Low Performance
1. Use USB 3.0 SSD instead of SD card
2. Increase swap space
3. Use active cooling
4. Reduce frame size and inference skip
#### Memory Issues
```bash
# Increase swap
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile # Change CONF_SWAPSIZE=100 to 2048
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
```
## Quick Diagnostic Commands
```bash
# Check camera
python3 -c "import cv2; print('Camera 0:', cv2.VideoCapture(0).isOpened()); print('Camera 1:', cv2.VideoCapture(1).isOpened())"
# Check dependencies
python3 src/check_dependencies.py
# Check system resources
free -h
df -h
top
# Check logs
tail -f logs/poc_demo.log
```
## Getting Help
1. Check logs: `logs/poc_demo.log`
2. Review configuration: `config/poc_config.yaml`
3. Test camera separately
4. Check system resources
---
**Most Common Fix:** Camera permissions and camera index. Try different indices (0, 1, 2) or check USB connections.