Masonmason a099c56bb5 docs: Update documentation to match current visual pipeline designer architecture
- Rebrand README from InferencePipeline to Cluster4NPU UI Visual Pipeline Designer
- Focus documentation on PyQt5-based GUI and drag-and-drop workflow
- Update PROJECT_SUMMARY with current capabilities and focused development priorities
- Streamline DEVELOPMENT_ROADMAP with 4-phase implementation plan
- Remove redundant Chinese technical summary files (STAGE_IMPROVEMENTS_SUMMARY.md, UI_FIXES_SUMMARY.md, STATUS_BAR_FIXES_SUMMARY.md)
- Align all documentation with actual three-panel UI architecture and NodeGraphQt integration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 16:32:28 +08:00

259 lines
8.4 KiB
Markdown

# Cluster4NPU UI - Visual Pipeline Designer
A visual pipeline designer for creating parallel AI inference workflows using Kneron NPU dongles. Build complex multi-stage inference pipelines through an intuitive drag-and-drop interface without coding knowledge.
## Features
- **Visual Pipeline Design**: Drag-and-drop node-based interface using NodeGraphQt
- **Multi-Stage Pipelines**: Chain multiple AI models for complex workflows
- **Real-time Performance Monitoring**: Live FPS, latency, and throughput tracking
- **Hardware Integration**: Automatic Kneron NPU dongle detection and management
- **Professional UI**: Three-panel layout with integrated configuration and monitoring
- **Pipeline Validation**: Real-time pipeline structure analysis and error detection
## Installation
This project uses [uv](https://github.com/astral-sh/uv) for fast Python package management.
```bash
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create and activate virtual environment
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
uv pip install -r requirements.txt
```
### Requirements
**Python Dependencies:**
- PyQt5 (GUI framework)
- NodeGraphQt (visual node editor)
- OpenCV (image processing)
- NumPy (array operations)
- Kneron KP SDK (NPU communication)
**Hardware Requirements:**
- Kneron NPU dongles (KL520, KL720, KL1080)
- USB 3.0 ports for device connections
- Compatible firmware files (`fw_scpu.bin`, `fw_ncpu.bin`)
- Trained model files (`.nef` format)
## Quick Start
### Launching the Application
```bash
# Activate virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Launch the visual pipeline designer
python main.py
```
### Creating Your First Pipeline
1. **Start the Application**: Launch `main.py` to open the login/project manager
2. **Create New Project**: Click "Create New Pipeline" or load an existing `.mflow` file
3. **Design Pipeline**: Use the 3-panel interface:
- **Left Panel**: Drag nodes from the template palette
- **Middle Panel**: Connect nodes to build your pipeline flow
- **Right Panel**: Configure node properties and monitor performance
### Basic Pipeline Structure
```
Input Node → Preprocess Node → Model Node → Postprocess Node → Output Node
```
**Node Types:**
- **Input Node**: Camera, video file, or image source
- **Preprocess Node**: Data transformation (resize, normalize, format conversion)
- **Model Node**: AI inference on Kneron NPU dongles
- **Postprocess Node**: Result processing (classification, detection formatting)
- **Output Node**: Display, file output, or network streaming
### Visual Pipeline Design Workflow
1. **Node Placement**: Drag nodes from the left template palette
2. **Connection**: Connect nodes by dragging from output to input ports
3. **Configuration**: Select nodes and configure properties in the right panel
4. **Validation**: Real-time pipeline validation with stage counting
5. **Deployment**: Export configured pipeline for execution
## User Interface
### Three-Panel Layout
The main dashboard provides an integrated development environment with three main panels:
**Left Panel (25% width):**
- **Node Templates**: Drag-and-drop node palette
- Input Node (camera, video, image sources)
- Model Node (AI inference on NPU dongles)
- Preprocess Node (data transformation)
- Postprocess Node (result processing)
- Output Node (display, file, stream output)
- **Pipeline Operations**: Validation and management tools
- **Instructions**: Context-sensitive help
**Middle Panel (50% width):**
- **Visual Pipeline Editor**: NodeGraphQt-based visual editor
- **Real-time Validation**: Instant pipeline structure analysis
- **Node Connection**: Drag from output to input ports to connect nodes
- **Global Status Bar**: Shows stage count and pipeline statistics
**Right Panel (25% width):**
- **Properties Tab**: Node-specific configuration panels
- **Performance Tab**: Real-time performance monitoring and estimation
- **Dongles Tab**: Hardware device management and allocation
### Project Management
**Login/Startup Window:**
- Recent projects list with quick access
- Create new pipeline projects
- Load existing `.mflow` pipeline files
- Project location management
### Real-time Feedback
- **Stage Counting**: Automatic detection of pipeline stages
- **Connection Analysis**: Real-time validation of node connections
- **Error Highlighting**: Visual indicators for configuration issues
- **Performance Metrics**: Live FPS, latency, and throughput display
## Architecture
### Core Components
**Pipeline Analysis Engine (`core/pipeline.py`):**
- Automatic stage detection and validation
- Connection path analysis between nodes
- Real-time pipeline structure summarization
- Configuration export for deployment
**Node System (`core/nodes/`):**
- Extensible node architecture with type-specific properties
- Business logic separation from UI presentation
- Dynamic property validation and configuration panels
**Inference Engine (`core/functions/InferencePipeline.py`):**
- Multi-stage pipeline orchestration with thread-based processing
- Real-time performance monitoring and FPS calculation
- Inter-stage data flow and result aggregation
**Hardware Abstraction (`core/functions/Multidongle.py`):**
- Kneron NPU dongle management and auto-detection
- Multi-device support with load balancing
- Async inference processing with result queuing
### Data Flow
1. **Design Phase**: Visual pipeline creation using drag-and-drop interface
2. **Validation Phase**: Real-time analysis of pipeline structure and configuration
3. **Export Phase**: Generate executable configuration from visual design
4. **Execution Phase**: Deploy pipeline to hardware with performance monitoring
## File Formats
### Pipeline Files (`.mflow`)
JSON-based format storing:
- Node definitions and properties
- Connection relationships
- Stage configurations
- Export settings
### Hardware Configuration
- Firmware files: `fw_scpu.bin`, `fw_ncpu.bin`
- Model files: `.nef` format for Kneron NPUs
- Device mapping: USB port assignment to pipeline stages
## Performance Monitoring
### Real-time Metrics
- **FPS (Frames Per Second)**: Processing throughput
- **Latency**: End-to-end processing time
- **Stage Performance**: Per-stage processing statistics
- **Device Utilization**: NPU dongle usage monitoring
### Statistics Collection
- Pipeline input/output counts
- Processing time distributions
- Error rates and failure analysis
- Resource utilization tracking
## Testing and Validation
Run the test suite to verify functionality:
```bash
# Test core pipeline functionality
python tests/test_pipeline_editor.py
# Test UI components
python tests/test_ui_fixes.py
# Test integration
python tests/test_integration.py
```
## Troubleshooting
### Common Issues
**Node creation fails:**
- Verify NodeGraphQt installation and compatibility
- Check node template definitions in `core/nodes/`
**Pipeline validation errors:**
- Ensure all model nodes are connected between input and output
- Verify node property configurations are complete
**Hardware detection issues:**
- Check USB connections and dongles power
- Verify firmware files are accessible
- Ensure proper Kneron SDK installation
**Performance issues:**
- Monitor device utilization in Dongles tab
- Adjust queue sizes for throughput vs. latency tradeoffs
- Check for processing bottlenecks in stage statistics
## Development
### Project Structure
```
cluster4npu_ui/
├── main.py # Application entry point
├── config/ # Configuration and theming
├── core/ # Core processing engine
│ ├── functions/ # Inference and hardware abstraction
│ ├── nodes/ # Node type definitions
│ └── pipeline.py # Pipeline analysis and validation
├── ui/ # User interface components
│ ├── windows/ # Main windows (login, dashboard)
│ ├── components/ # Reusable UI widgets
│ └── dialogs/ # Modal dialogs
├── tests/ # Test suite
└── resources/ # Assets and styling
```
### Contributing
1. Follow the TDD workflow defined in `CLAUDE.md`
2. Run tests before committing changes
3. Maintain the three-panel UI architecture
4. Document new node types and their properties
## License
This project is part of the Cluster4NPU ecosystem for parallel AI inference on Kneron NPU hardware.