An experimental computer vision system for automatic dart scoring using deep learning
Features β’ Installation β’ Usage β’ Architecture β’ Contributing
β οΈ WORK IN PROGRESS: This project is under active development and is not production-ready. Expect breaking changes and incomplete features.
DartNet is an innovative AI-powered system that automatically detects and scores dart throws using computer vision and deep learning. The project combines synthetic data generation, real-time video analysis, and various detection methods to create a comprehensive dart scoring solution.
- 3D Synthetic Data Generator - Creates realistic training data using Blender
- YOLO-based Detection - Multiple trained models for dart tip detection
- Multi-method Impact Detection - Accelerometer, video delta, and pure video analysis
- Real-time Scoring GUI - Interactive interface with sound effects
- Hardware Integration - Support for GranBoard and custom sensors
- β 3D Data Generation - Photorealistic synthetic dartboard and dart renders
- β Multiple Detection Models - Various YOLO models for different scenarios
- β Impact Detection - Multiple methods including accelerometer and video analysis
- β GUI Scorer - Basic scoring interface with game logic
- β Sound System - Audio feedback for hits and game events
- β MQTT Integration - Real-time communication with sensors
- β Detection accuracy needs improvement
- β Limited to specific board configurations
- β Requires manual calibration for new environments
- β Performance optimization needed
- β Multi-player support incomplete
- Python 3.8 or higher
- OpenCV
- CUDA-capable GPU (recommended for real-time inference)
- Webcam or IP camera
- (Optional) Accelerometer sensor with MQTT support
-
Clone the repository
git clone https://github.com/yourusername/DartNet.git cd DartNet -
Create a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Download pre-trained models (if available)
# Models should be placed in the root directory # best_s_tip_boxes640_B.pt # best_temporal_A.pt # etc.
-
Generate Training Data (Optional)
python generator/gen_dataset.py --num-images 1000
-
Run the Dart Scorer
python scorer_gui.py
-
Live Detection Demo
python live.py
# Accelerometer + Video
python dart_impact_detector.py
# Video-only detection
python live.py --detector video-onlypython train.py --dataset ./dataset --epochs 100βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Video Capture ββββββΆβ Impact Detection ββββββΆβ Dart Scoring β
β (Webcam/IP) β β (Multi-method) β β Engine β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β YOLO Detection β β MQTT Sensors β β GUI Display β
β Models β β (Accelerometer) β β Sound Effects β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
dart_impact_detector.py- Multi-method impact detection systemtarget_detector.py- YOLO-based dart tip detectionscorer_gui.py- Game scoring logic and GUIgenerator/- 3D synthetic data generation pipelinetools.py- Utility functions for image processing
- Basic detection pipeline
- Simple scoring GUI
- Improve detection accuracy to 95%+
- Add calibration wizard
- Multi-player support
- Game variants (Cricket, Around the Clock)
- Statistics tracking
- Online leaderboards
- Mobile app companion
- Voice announcements
- Tournament mode
- AR visualization
We welcome contributions! This project is in early development, so there are many opportunities to help.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- π― Improving detection accuracy
- π Adding more game modes
- π¨ UI/UX improvements
- π Documentation
- π§ͺ Testing and bug fixes
This project is licensed under the MIT License - see the LICENSE file for details.
- YOLOv8 by Ultralytics for object detection
- OpenCV community for computer vision tools
- Blender for 3D rendering capabilities
- All contributors and testers
For questions or suggestions, please open an issue on GitHub.

