Spaces:
Running
Transformer-Based Object Detection
This project implements an object detection system powered by state-of-the-art transformer models, including DETR (DEtection TRansformer) and YOLOS (You Only Look One-level Series). The system supports object detection from both uploaded images and image URLs. It comes with a user-friendly Gradio web interface and a FastAPI API for automated processing.
Try the demo on Hugging Face: [Demo Link].
Supported Models
Here’s a list of the available models for different detection and segmentation tasks:
DETR (DEtection TRansformer):
- facebook/detr-resnet-50: Fast and efficient object detection.
- facebook/detr-resnet-101: More accurate, but slower than ResNet-50.
- facebook/detr-resnet-50-panoptic (currently has bugs): For panoptic segmentation. Detects and segments scenes.
- facebook/detr-resnet-101-panoptic (currently has bugs): High-accuracy segmentation for complex scenes.
YOLOS (You Only Look One-level Series):
- hustvl/yolos-tiny: Lightweight and quick. Ideal for environments with limited resources.
- hustvl/yolos-base: Strikes a balance between speed and accuracy.
Key Features
- Image Upload: Upload an image from your device to run detection via the Gradio interface.
- URL Input: Input an image URL for detection through Gradio or the FastAPI.
- Model Selection: Choose between DETR and YOLOS models for object detection or segmentation.
- Object Detection: Detects objects and shows bounding boxes with confidence scores.
- Panoptic Segmentation: Available with certain models for detailed scene segmentation using colored masks.
- Image Info: Displays metadata such as size, format, aspect ratio, and file size.
- API Access: Use the FastAPI
/detect
endpoint for programmatic processing.
How to Get Started
1. Cloning the Repository
Prerequisites:
- Python 3.8 or higher
pip
to install dependencies
Clone and Set Up:
git clone https://github.com/NeerajCodz/ObjectDetection.git
cd ObjectDetection
pip install -r requirements.txt
Run the Application:
- FastAPI: Start the server with:
uvicorn objectdetection:app --reload
- Gradio Interface: Launch with:
python app.py
Access the Application:
- FastAPI: Navigate to
http://localhost:8000
to interact with the API or view the Swagger UI. - Gradio: The Gradio interface will be available at
http://127.0.0.1:7860
(URL will show up in the console).
2. Running via Docker
Prerequisites:
- Install Docker on your machine (if you haven’t already).
Set Up with Docker:
- Clone the repository (if you haven’t):
git clone https://github.com/NeerajCodz/ObjectDetection.git
cd ObjectDetection
- Build the Docker image:
docker build -t objectdetection:latest .
- Run the container:
docker run -p 5000:5000 objectdetection:latest
Access the app at http://localhost:5000
.
3. Try the Online Demo
Test the demo directly on Hugging Face’s Spaces: Object Detection Demo
API Usage
Use the /detect
endpoint in FastAPI for image processing.
POST /detect
Parameters:
- file (optional): Image file (must be of type image/*).
- image_url (optional): URL of the image.
- model_name (optional): Choose the model (e.g.,
facebook/detr-resnet-50
,hustvl/yolos-tiny
, etc.).
Example Request Body:
{
"image_url": "https://example.com/image.jpg",
"model_name": "facebook/detr-resnet-50"
}
Example Response:
{
"image_url": "data:image/png;base64,...",
"detected_objects": ["person", "car"],
"confidence_scores": [0.95, 0.87],
"unique_objects": ["person", "car"],
"unique_confidence_scores": [0.95, 0.87]
}
Development & Contributions
To contribute or modify the project:
- Clone the repository:
git clone https://github.com/NeerajCodz/ObjectDetection.git
cd ObjectDetection
- Install dependencies:
pip install -r requirements.txt
- Run FastAPI or Gradio:
- FastAPI:
uvicorn objectdetection:app --reload
- Gradio:
python app.py
Access the app on http://localhost:8000
(FastAPI) or the Gradio interface at the displayed URL.
Contributing
Contributions are always welcome! Feel free to submit pull requests or open issues for bug fixes, new features, or improvements.