Spaces:
Sleeping
Sleeping
| title: Tunnel Crack Detection | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: red | |
| sdk: streamlit | |
| sdk_version: 1.28.0 | |
| app_file: app.py | |
| pinned: false | |
| license: agpl-3.0 | |
| # π Tunnel Crack Detection | |
| A state-of-the-art web application for detecting cracks and defects in tunnel infrastructure using YOLOv12-DINO deep learning model. Deployed on Hugging Face Spaces for easy access and sharing. | |
| ## Features | |
| - π **Real-time crack detection** using YOLOv12-DINO | |
| - πΌοΈ **Interactive web interface** built with Streamlit | |
| - π **Detailed analysis** with charts and detection tables | |
| - π **Large file support** (up to 5GB model weights) | |
| - π **Detection history** and results export | |
| - π― **Configurable parameters** (confidence, IoU thresholds) | |
| ## π Quick Start | |
| This application is deployed on Hugging Face Spaces. Simply: | |
| 1. **Upload your YOLOv12-DINO model weights** (.pt file) using the sidebar | |
| 2. **Upload a tunnel image** for analysis | |
| 3. **Click "Analyze for Cracks"** to get instant results! | |
| ## π οΈ Local Setup | |
| ### Prerequisites | |
| - Python 3.8 or higher | |
| - YOLOv12-DINO trained model weights (.pt file) | |
| ### Installation | |
| 1. **Clone or navigate to the project directory:** | |
| ```bash | |
| cd /Users/sompoteyouwai/env/deploy_tunnel_crack | |
| ``` | |
| 2. **Create a virtual environment (recommended):** | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. **Install dependencies:** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### Running the Application | |
| 1. **Start the Streamlit app:** | |
| ```bash | |
| streamlit run streamlit_app.py | |
| ``` | |
| 2. **Open your browser** and navigate to `http://localhost:8501` | |
| 3. **Load the model:** | |
| - If the default model exists at `/Users/sompoteyouwai/env/model_weight/segment_defect.pt`, click "Load Default Model" | |
| - Alternatively, upload your own model weights (.pt file) | |
| 4. **Upload an image** and click "Detect Cracks" to analyze | |
| ## Usage | |
| ### Model Loading | |
| - **Default Model**: The app automatically detects if the default model is available | |
| - **Custom Model**: Upload your own YOLOv12-DINO trained weights | |
| - **Device Selection**: Choose between CPU, CUDA (GPU), or MPS (Apple Silicon) | |
| ### Detection Parameters | |
| - **Confidence Threshold**: Minimum confidence score for detections (0.01-1.0) | |
| - **IoU Threshold**: Intersection over Union threshold for Non-Maximum Suppression (0.01-1.0) | |
| - **Image Size**: Input resolution for the model (320-1280 pixels) | |
| ### Results | |
| - **Annotated Images**: View detected cracks with bounding boxes | |
| - **Detection Summary**: Count and classification of detected defects | |
| - **Interactive Charts**: Pie charts and confidence distributions | |
| - **Detailed Table**: Exportable CSV with detection coordinates and metadata | |
| - **History**: Track multiple detection sessions | |
| ## File Structure | |
| ``` | |
| deploy_tunnel_crack/ | |
| βββ streamlit_app.py # Main Streamlit application | |
| βββ inference.py # YOLOv12-DINO inference engine | |
| βββ requirements.txt # Python dependencies | |
| βββ README.md # This file | |
| βββ run.sh # Quick start script | |
| ``` | |
| ## Model Information | |
| The application expects a YOLOv12-DINO model trained for crack/defect detection. The default model path is: | |
| ``` | |
| /Users/sompoteyouwai/env/model_weight/segment_defect.pt | |
| ``` | |
| ### Supported Model Features: | |
| - Object detection and segmentation | |
| - Multiple defect classes | |
| - Configurable inference parameters | |
| - GPU acceleration support | |
| ## Troubleshooting | |
| ### Common Issues: | |
| 1. **Model not found**: Ensure the model file exists at the specified path or upload a custom model | |
| 2. **CUDA errors**: Install appropriate PyTorch version for your GPU | |
| 3. **Memory issues**: Reduce image size or use CPU device for large images | |
| 4. **Import errors**: Ensure all dependencies are installed: `pip install -r requirements.txt` | |
| ### Performance Tips: | |
| - Use GPU (CUDA/MPS) for faster inference | |
| - Optimize image size based on your hardware capabilities | |
| - Adjust confidence threshold to filter false positives | |
| ## Development | |
| To modify or extend the application: | |
| 1. **Streamlit App**: Edit `streamlit_app.py` for UI changes | |
| 2. **Inference Engine**: Modify `inference.py` for model-related changes | |
| 3. **Dependencies**: Update `requirements.txt` for new packages | |
| ## License | |
| This project is for tunnel infrastructure monitoring and maintenance applications. | |