This project is a FastAPI application designed to manage SSD (Single Shot MultiBox Detector) CNN (Convolutional Neural Network) models for image processing and object detection. It includes functionality for managing projects, image bundles, annotations, and trained model snapshots.
- Python 3.8+
- MySQL Server
- Libraries: FastAPI, Peewee, PyMySQL, Uvicorn
SSD-CNN/
│
├── app/ # Main application folder for FastAPI
│ │
│ ├── models/
│ │ ├── database.py # Database orm model definition
│ │ │
│ │ ├── dicts/ # Dictionairies for passing data between Router and Service Classes
│ │ ├── response/ # Response model definition for API
│ │ ├── request/ # Request model definition (json format) for API requests
│ │
│ ├── routers/ # Fast API Router structure
│ │
│ ├── services/ # Fast API Logic
│ │
│ ├── utils/ # All helper functions for services
│ │
│ ├── enums/ # Status Enum definition
│ │
│ ├── dependencies.py # Database session management
│ ├── main.py # FastAPI application entry point
│
│
├── static/ # Staticly generated files for the application
│
├── test/ # Test results and collections
│
├── requirements.txt # Project python dependencies
├── .env # Environment variables file
└── README.md # This file
-
Clone the Repository
git clone https://gitlab.rz.htw-berlin.de/s0577395/ssd-cnn.git cd SSD-CNN
-
Create virtual python environment
python3 -m venv venv source venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Set Up the Environment Variables
- Rename the .env.example file to .env.
- Update the .env file with your MySQL database credentials and other configurations.
-
Run the Application
uvicorn app.main:app --reload # or for production and published on port 600 uvicorn app.main:app --host 0.0.0.0 --port 8888
Access the FastAPI Swagger UI to interact with the API at http://localhost:8000/docs. Use endpoints under /project to manage projects and /bundle for running inference tasks.
This project is licensed under the MIT License - see the LICENSE file for details.