DaLaw2 5dfae9cedc
Merge pull request #4 from DaLaw2/enhance
1.1.0 released, new user UI and modified system architecture to improve performance
2024-10-27 19:03:23 +08:00

VisioGrid

Table of Contents

Project Introduction

VisioGrid is a heterogeneous distributed computing platform developed in Rust, focusing on image recognition. The project aims to establish an efficient distributed system for large-scale image recognition processing. By parallel processing tasks in a multi-agent environment, VisioGrid enhances the efficiency and speed of image recognition.

Main Features

  • High Efficiency: Thanks to Tokio's asynchronous runtime and efficient I/O processing, VisioGrid can quickly handle large amounts of image data.
  • Stability: Through real-time monitoring of agents and proactive error handling, the system runs stably, avoiding program crashes.
  • Image Recognition: Supports multiple image recognition models, flexibly adapting to different application scenarios.

Tech Stack

  • Rust: Fully utilizes Rust's high performance and safety features to ensure efficient system operation.
  • Actix Web: Provides a user-friendly web management interface for easy system management and monitoring.
  • Tokio: Uses Tokio's asynchronous runtime for performance optimization, improving I/O processing efficiency.
  • GStreamer: Used for handling media streams and content, supporting efficient processing of multimedia data.
  • Ultralytics: Integrates Ultralytics for image recognition, supporting multiple advanced image recognition models.

Installation and Running

Compile from Source Code

  1. Clone the Repository
    git clone https://github.com/DaLaw2/VisioGrid
    cd VisioGrid
    
  2. Compile the Project
  • Compile the Management Node:
    bash Build/ManagementDepend.sh
    cargo build --release --package Management
    
  • Compile the Agent Node:
    bash Build/AgentDepend.sh
    cargo build --release --package Agent
    
  1. Run the Nodes
  • Run the Management Node:
    cargo run --package Management --release
    
  • Run the Agent Node:
    cargo run --package Agent --release
    

Using Docker

VisioGrid provides Docker containers that include all necessary dependencies, eliminating the need for manual installation.

  1. Build the Management Node Container
    docker build -t management-image Docker/Management
    
  2. Run the Management Node Container
    docker run -d --name management management-image
    
  3. Build the Agent Container
    docker build -t agent-image Docker/Agent
    
  4. Run the Agent Container
    docker run -d --name agent agent-image
    

Usage

Access http://localhost:8080 via a web browser to view the management interface. The management interface provides system monitoring and management functions, allowing users to view system status, add agent nodes, check task progress, etc.

  • The Home page provides an overview of the system, including system information, system load, and system logs.

    Image Description

  • The Agents page displays all connected agent nodes. Clicking on an agent reveals more detailed information.

    Image Description Image Description

  • The Inference page allows you to create a new inference task. After selecting a model and image, you can submit it.

    Image Description

  • The Tasks page lists all tasks that are in progress, successful, or failed. You can view the execution status of each subtask.

    Image Description Image Description

  • The Configuration page provides system configuration options, allowing users to modify system settings.

    Image Description

Description
VisioGrid is a heterogeneous distributed computing platform developed in Rust, specializing in efficient large-scale image recognition.
Readme 50 MiB
Languages
Rust 92.5%
Python 3.8%
Shell 3.5%
HTML 0.2%