Skip to content

syllebra/DartNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 DartNet - AI-Powered Dart Scoring System

Project Banner

Status License Python

An experimental computer vision system for automatic dart scoring using deep learning

Features β€’ Installation β€’ Usage β€’ Architecture β€’ Contributing


🚧 Project Status

⚠️ WORK IN PROGRESS: This project is under active development and is not production-ready. Expect breaking changes and incomplete features.

πŸ“– About

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.

🎯 Key Components

  • 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

✨ Features

Current Capabilities

  • βœ… 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

🚧 Known Limitations

  • ❌ Detection accuracy needs improvement
  • ❌ Limited to specific board configurations
  • ❌ Requires manual calibration for new environments
  • ❌ Performance optimization needed
  • ❌ Multi-player support incomplete

πŸ› οΈ Installation

Prerequisites

  • Python 3.8 or higher
  • OpenCV
  • CUDA-capable GPU (recommended for real-time inference)
  • Webcam or IP camera
  • (Optional) Accelerometer sensor with MQTT support

Setup

  1. Clone the repository

    git clone https://github.com/yourusername/DartNet.git
    cd DartNet
  2. Create a virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. 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.

πŸš€ Usage

Quick Start

  1. Generate Training Data (Optional)

    python generator/gen_dataset.py --num-images 1000
  2. Run the Dart Scorer

    python scorer_gui.py
  3. Live Detection Demo

    python live.py

Advanced Usage

Using Different Detection Methods

# Accelerometer + Video
python dart_impact_detector.py

# Video-only detection
python live.py --detector video-only

Training Custom Models

python train.py --dataset ./dataset --epochs 100

πŸ—οΈ Architecture

System Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Video Capture  │────▢│ Impact Detection │────▢│  Dart Scoring   β”‚
β”‚   (Webcam/IP)   β”‚     β”‚  (Multi-method)  β”‚     β”‚     Engine      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                         β”‚
         β–Ό                       β–Ό                         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ YOLO Detection  β”‚     β”‚ MQTT Sensors     β”‚     β”‚   GUI Display   β”‚
β”‚    Models       β”‚     β”‚ (Accelerometer)  β”‚     β”‚  Sound Effects  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Modules

  • dart_impact_detector.py - Multi-method impact detection system
  • target_detector.py - YOLO-based dart tip detection
  • scorer_gui.py - Game scoring logic and GUI
  • generator/ - 3D synthetic data generation pipeline
  • tools.py - Utility functions for image processing

πŸ“Έ Screenshots

View Screenshots

Detection in Action

Coming soon...

Scorer GUI

Coming soon...

3D Generator Output

Generator Sample

πŸ—ΊοΈ Roadmap

Phase 1: Core Functionality (Current)

  • Basic detection pipeline
  • Simple scoring GUI
  • Improve detection accuracy to 95%+
  • Add calibration wizard

Phase 2: Enhanced Features

  • Multi-player support
  • Game variants (Cricket, Around the Clock)
  • Statistics tracking
  • Online leaderboards

Phase 3: Advanced Integration

  • Mobile app companion
  • Voice announcements
  • Tournament mode
  • AR visualization

🀝 Contributing

We welcome contributions! This project is in early development, so there are many opportunities to help.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Areas Needing Help

  • 🎯 Improving detection accuracy
  • πŸ“Š Adding more game modes
  • 🎨 UI/UX improvements
  • πŸ“ Documentation
  • πŸ§ͺ Testing and bug fixes

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • YOLOv8 by Ultralytics for object detection
  • OpenCV community for computer vision tools
  • Blender for 3D rendering capabilities
  • All contributors and testers

πŸ“ž Contact

For questions or suggestions, please open an issue on GitHub.


Made with ❀️ for the darts community

About

An AI system to score regulars steel darts scores based on a custom data Generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published