Restore api_docs.py and add comprehensive file structure to README
✅ API Documentation Restored: - Kept api_docs.py for developer use (not exposed in frontend) - Added Flask-RESTX back to requirements.txt - Swagger UI available at http://localhost:5003/docs/ for developers ✅ Enhanced README Documentation: - Added comprehensive project file structure - Detailed directory tree with all files and folders - Key files description table with purpose and usage - Clear separation between user-facing and developer files ✅ File Organization: - Documented all 40+ files and directories in the project - Explained training outputs and model artifacts - Clarified virtual environment and temporary directories - Added file size and content descriptions ✅ Developer vs User Separation: - main.py: User-facing web interface (port 5002) - api_docs.py: Developer-only Swagger UI (port 5003) - Clear documentation of intended usage for each component The README now provides a complete overview of the project structure for both users and developers.
This commit is contained in:
@@ -49,7 +49,8 @@ python3 test_api.py
|
|||||||
|
|
||||||
```
|
```
|
||||||
ds_task_recycling_project/
|
ds_task_recycling_project/
|
||||||
├── main.py # Flask API application
|
├── main.py # Flask API application (main interface)
|
||||||
|
├── api_docs.py # Swagger UI API documentation (developer only)
|
||||||
├── train.py # YOLOv8 training script
|
├── train.py # YOLOv8 training script
|
||||||
├── inference_utils.py # Detection and visualization utilities
|
├── inference_utils.py # Detection and visualization utilities
|
||||||
├── prepare_dataset.py # Dataset preparation script
|
├── prepare_dataset.py # Dataset preparation script
|
||||||
@@ -57,24 +58,58 @@ ds_task_recycling_project/
|
|||||||
├── setup.py # Automated setup script
|
├── setup.py # Automated setup script
|
||||||
├── requirements.txt # Python dependencies
|
├── requirements.txt # Python dependencies
|
||||||
├── dataset.yaml # YOLO dataset configuration
|
├── dataset.yaml # YOLO dataset configuration
|
||||||
|
├── .gitignore # Git ignore file for ML projects
|
||||||
|
├── VALIDATION_CHECKLIST.md # Project validation checklist
|
||||||
├── templates/ # Frontend templates
|
├── templates/ # Frontend templates
|
||||||
│ └── index.html # QA testing web interface
|
│ └── index.html # QA testing web interface
|
||||||
├── static/ # Frontend assets
|
├── static/ # Frontend assets
|
||||||
│ ├── style.css # Styling for web interface
|
│ ├── style.css # Styling for web interface
|
||||||
│ └── script.js # JavaScript for web interface
|
│ └── script.js # JavaScript for web interface
|
||||||
|
├── venv/ # Virtual environment (created by user)
|
||||||
├── training/ # Dataset directory
|
├── training/ # Dataset directory
|
||||||
│ ├── memory/ # Images with memory modules + labels
|
│ ├── memory/ # Images with memory modules + YOLO labels
|
||||||
|
│ │ ├── out1.png # Sample motherboard image with memory
|
||||||
|
│ │ ├── out1.txt # YOLO format annotation file
|
||||||
|
│ │ └── ... # 19 more image/label pairs
|
||||||
│ ├── no_memory/ # Images without memory modules
|
│ ├── no_memory/ # Images without memory modules
|
||||||
│ ├── train/ # Training split (80%)
|
│ │ ├── out21.png # Sample motherboard image without memory
|
||||||
│ └── val/ # Validation split (20%)
|
│ │ └── ... # 19 more images (no labels needed)
|
||||||
|
│ ├── train/ # Training split (80% = 32 images)
|
||||||
|
│ │ ├── images/ # Training images
|
||||||
|
│ │ └── labels/ # Training labels
|
||||||
|
│ └── val/ # Validation split (20% = 8 images)
|
||||||
|
│ ├── images/ # Validation images
|
||||||
|
│ └── labels/ # Validation labels
|
||||||
|
├── uploads/ # Temporary upload directory (created at runtime)
|
||||||
└── runs/ # Training outputs (created after training)
|
└── runs/ # Training outputs (created after training)
|
||||||
└── detect/
|
└── detect/
|
||||||
└── memory_module_detection/
|
└── memory_module_detection/
|
||||||
└── weights/
|
├── weights/
|
||||||
├── best.pt # Best model weights
|
│ ├── best.pt # Best model weights
|
||||||
└── last.pt # Last epoch weights
|
│ └── last.pt # Last epoch weights
|
||||||
|
├── train_batch*.jpg # Training visualization
|
||||||
|
├── val_batch*.jpg # Validation visualization
|
||||||
|
├── confusion_matrix.png # Model performance metrics
|
||||||
|
├── results.png # Training curves
|
||||||
|
└── args.yaml # Training arguments
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### **📁 Key Files Description**
|
||||||
|
|
||||||
|
| File/Directory | Purpose | Usage |
|
||||||
|
|----------------|---------|-------|
|
||||||
|
| `main.py` | Main Flask API application | `python3 main.py` |
|
||||||
|
| `api_docs.py` | Swagger UI documentation (developer only) | `python3 api_docs.py` |
|
||||||
|
| `train.py` | YOLOv8 model training | `python3 train.py` |
|
||||||
|
| `inference_utils.py` | Detection utilities and classes | Imported by other scripts |
|
||||||
|
| `test_api.py` | Comprehensive API testing | `python3 test_api.py` |
|
||||||
|
| `setup.py` | Automated project setup | `python3 setup.py` |
|
||||||
|
| `templates/index.html` | Web interface for QA testing | Served by Flask |
|
||||||
|
| `static/` | CSS, JavaScript, and assets | Served by Flask |
|
||||||
|
| `training/` | Complete dataset with annotations | Used by training script |
|
||||||
|
| `runs/` | Model training outputs | Created after training |
|
||||||
|
| `venv/` | Python virtual environment | Created by user |
|
||||||
|
|
||||||
## 🤖 Algorithm Choice & Technical Decisions
|
## 🤖 Algorithm Choice & Technical Decisions
|
||||||
|
|
||||||
### 1. **Algorithm Choice: YOLOv8 Nano**
|
### 1. **Algorithm Choice: YOLOv8 Nano**
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ Pillow==10.0.1
|
|||||||
# Web Framework
|
# Web Framework
|
||||||
Flask==2.3.3
|
Flask==2.3.3
|
||||||
Flask-CORS==4.0.0
|
Flask-CORS==4.0.0
|
||||||
|
Flask-RESTX==1.3.0
|
||||||
Werkzeug==2.3.7
|
Werkzeug==2.3.7
|
||||||
|
|
||||||
# Data Processing
|
# Data Processing
|
||||||
|
|||||||
Reference in New Issue
Block a user