|
|
--- |
|
|
title: Rubiks Cube Recognition |
|
|
emoji: ๐ฒ |
|
|
colorFrom: blue |
|
|
colorTo: red |
|
|
sdk: gradio |
|
|
sdk_version: 4.19.2 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
license: apache-2.0 |
|
|
--- |
|
|
|
|
|
# ๐ฒ Rubik's Cube Recognition with TensorFlow RetinaNet |
|
|
|
|
|
This is a deep learning model that can recognize and analyze Rubik's cubes in images. The model is built using TensorFlow and RetinaNet architecture for object detection. |
|
|
|
|
|
## ๐ Features |
|
|
|
|
|
- **Real-time Detection**: Upload images of Rubik's cubes for instant analysis |
|
|
- **Multi-class Recognition**: Detect cube faces and 6 different color tiles |
|
|
- **Interactive Interface**: Simple and intuitive Gradio web interface |
|
|
- **Advanced AI**: Powered by RetinaNet with SpineNet-49 backbone |
|
|
|
|
|
## ๐ฏ How to Use |
|
|
|
|
|
1. **Upload**: Click "Upload Rubik's Cube Image" and select your image |
|
|
2. **Analyze**: Click "๐ Analyze Image" or wait for automatic processing |
|
|
3. **Results**: View detection results and visualization with bounding boxes |
|
|
|
|
|
## ๐ฌ Technical Details |
|
|
|
|
|
- **Framework**: TensorFlow 2.15+ with Gradio interface |
|
|
- **Architecture**: RetinaNet with SpineNet-49 backbone |
|
|
- **Input Size**: 640ร640 pixels |
|
|
- **Classes**: 7 total (1 face + 6 color tiles) |
|
|
- **Colors Detected**: Red, White, Blue, Orange, Green, Yellow |
|
|
|
|
|
## ๐ Model Architecture |
|
|
|
|
|
### RetinaNet-SpineNet-49 |
|
|
- **Base Model**: RetinaNet for object detection |
|
|
- **Backbone**: SpineNet-49 for feature extraction |
|
|
- **Input Resolution**: 640ร640ร3 |
|
|
- **Output**: Bounding boxes with class predictions and confidence scores |
|
|
|
|
|
### Detection Classes |
|
|
1. `face` - Rubik's cube face |
|
|
2. `red_tile` - Red color tile |
|
|
3. `white_tile` - White color tile |
|
|
4. `blue_tile` - Blue color tile |
|
|
5. `orange_tile` - Orange color tile |
|
|
6. `green_tile` - Green color tile |
|
|
7. `yellow_tile` - Yellow color tile |
|
|
|
|
|
## ๐ Performance Metrics |
|
|
|
|
|
| Metric | Target | Status | |
|
|
|--------|--------|--------| |
|
|
| mAP@0.5 | >0.85 | In Training | |
|
|
| Inference Speed | <100ms | Optimized | |
|
|
| Accuracy | >90% | Evaluating | |
|
|
|
|
|
## ๐ ๏ธ Local Development |
|
|
|
|
|
```bash |
|
|
# Clone the repository |
|
|
git clone https://huggingface.co/spaces/itsyuimorii/rubiks-cube-recognition |
|
|
cd rubiks-cube-recognition |
|
|
|
|
|
# Install dependencies |
|
|
pip install -r requirements.txt |
|
|
|
|
|
# Run the application |
|
|
python app.py |
|
|
``` |
|
|
|
|
|
## ๐ Project Structure |
|
|
|
|
|
``` |
|
|
rubiks-cube-recognition/ |
|
|
โโโ app.py # Main Gradio application |
|
|
โโโ requirements.txt # Python dependencies |
|
|
โโโ README.md # This file |
|
|
โโโ configs/ # Model configurations |
|
|
โ โโโ retinanet_config.py |
|
|
โโโ src/ # Source code |
|
|
โ โโโ data/ # Data processing utilities |
|
|
โ โโโ model/ # Model training and inference |
|
|
โโโ images/ # Training and test datasets |
|
|
โโโ train/ # Training images and annotations |
|
|
โโโ test/ # Test images and annotations |
|
|
โโโ valid/ # Validation images and annotations |
|
|
``` |
|
|
|
|
|
## ๐ฎ Demo Status |
|
|
|
|
|
โ ๏ธ **Note**: This is a demo version. The complete trained model is currently being developed. The interface will show a preview of the detection capabilities. |
|
|
|
|
|
## ๐ Dataset Information |
|
|
|
|
|
- **Format**: COCO annotation format |
|
|
- **Image Size**: 640ร640 pixels |
|
|
- **Training Images**: 50+ annotated cube images |
|
|
- **Classes**: 7 object classes (face + 6 colors) |
|
|
- **Annotation Tool**: LabelMe |
|
|
|
|
|
## ๐ง Training Pipeline |
|
|
|
|
|
```python |
|
|
# Training command |
|
|
python src/model/trainer.py --config configs/retinanet_config.py |
|
|
|
|
|
# Inference command |
|
|
python src/model/visualize.py --image path/to/cube_image.jpg |
|
|
``` |
|
|
|
|
|
## ๐ค Contributing |
|
|
|
|
|
Contributions are welcome! Areas for improvement: |
|
|
- Additional training data |
|
|
- Model optimization |
|
|
- UI/UX enhancements |
|
|
- Performance improvements |
|
|
|
|
|
## ๐ License |
|
|
|
|
|
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details. |
|
|
|
|
|
## ๐ Acknowledgements |
|
|
|
|
|
- **TensorFlow Model Garden** - RetinaNet implementation |
|
|
- **SpineNet** - Backbone architecture |
|
|
- **Gradio** - Web interface framework |
|
|
- **Hugging Face** - Model hosting and deployment |
|
|
|
|
|
## ๐ง Contact |
|
|
|
|
|
- **GitHub**: [@itsyuimorii](https://github.com/itsyuimorii) |
|
|
- **Hugging Face**: [@itsyuimorii](https://huggingface.co/itsyuimorii) |
|
|
|
|
|
## ๐ References |
|
|
|
|
|
- [RetinaNet Paper](https://arxiv.org/abs/1708.02002) |
|
|
- [SpineNet Architecture](https://arxiv.org/abs/1912.05027) |
|
|
- [TensorFlow Object Detection API](https://github.com/tensorflow/models/tree/master/research/object_detection) |
|
|
- [LabelMe Annotation Tool](https://github.com/wkentaro/labelme) |
|
|
|
|
|
--- |
|
|
|
|
|
*๐ฒ Ready to solve your Rubik's cube detection challenges!* |
|
|
|
|
|
|
|
|
|
|
|
|