๐ฒ 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
- Upload: Click "Upload Rubik's Cube Image" and select your image
- Analyze: Click "๐ Analyze Image" or wait for automatic processing
- 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
face
- Rubik's cube facered_tile
- Red color tilewhite_tile
- White color tileblue_tile
- Blue color tileorange_tile
- Orange color tilegreen_tile
- Green color tileyellow_tile
- Yellow color tile
๐ Performance Metrics
Metric | Target | Status |
---|---|---|
[email protected] | >0.85 | In Training |
Inference Speed | <100ms | Optimized |
Accuracy | >90% | Evaluating |
๐ ๏ธ Local Development
# 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
# 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 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
- Hugging Face: @itsyuimorii
๐ References
๐ฒ Ready to solve your Rubik's cube detection challenges!
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
๐
Ask for provider support