This is a full-stack application for real-time object detection using YOLO-World model with React Native frontend and FastAPI backend.
- Real-time object detection using YOLO-World model
- Camera integration for live photo capture
- Gallery image selection support
- Configurable detection classes
- Confidence threshold adjustment
- Interactive image labeling interface
- Drag-and-drop bounding box creation
- Support for existing and new class labels
- YOLO format data storage for training
- Automatic model improvement with labeled data
- Training data management and statistics
- Custom class integration
- Model retraining capabilities
- Frontend: React Native with Expo
- Backend: FastAPI with YOLO-World
- Training: YOLOv8 fine-tuning pipeline
- Node.js 18+
- Python 3.8+
- pnpm (recommended) or npm
make setup
# Start both frontend and backend
make dev
# Or start individually
make server # Backend only
make frontend # Frontend only
- Capture or select an image
- Click "Manual Labeling" button
- Draw bounding boxes by dragging on the image
- Assign labels to each bounding box
- Submit the labeled data
# Start model fine-tuning
make train-model
# View training statistics
make view-training-stats
# Clean training data
make clean-training-data
POST /labeling/submit
- Submit labeled training dataGET /training/data/stats
- Get training dataset statisticsPOST /training/start
- Start model fine-tuning
GET /model/classes
- Get current detection classesPOST /model/classes
- Add new detection classesPOST /detect
- Detect objects in imagePOST /detect/with-confidence
- Detect with custom confidence
The application stores training data in YOLO format:
training_data/images/
- Training imagestraining_data/labels/
- YOLO format annotationstraining_data/classes.txt
- Class name mappingstraining_data/data.yaml
- Training configuration
- Initial Detection: Try automatic detection with existing classes
- Add Classes: If objects aren't detected, add new classes
- Manual Labeling: For persistent detection issues, create manual labels
- Model Training: Periodically retrain the model with accumulated labels
- Improved Detection: Enjoy better detection accuracy
make test
Access interactive API docs at: http://localhost:8000/docs