Skip to content

Conversation

@VibeCodingWithPhil
Copy link

Overview

This PR adds cross-platform support to Yoable by implementing a complete Avalonia UI version that runs on Windows, macOS, and Linux.

What's New

Cross-Platform Compatibility

  • Full Avalonia UI 11.2.2 implementation
  • Runs natively on Windows, macOS, and Linux
  • Modern UI with dynamic sizing and improved layouts
  • All core functionality from the WPF version

Key Features

  • Model Manager: Load and manage multiple YOLO ONNX models with ensemble support
  • YouTube Integration: Download videos and extract frames for training data
  • Auto-Labeling: Batch process images with ensemble model voting
  • Recursive Import: Import images and labels from nested subdirectories
  • Progress Tracking: Real-time progress dialogs for long-running operations

Technical Implementation

  • Service abstraction layer (IDialogService, IFileService, IImageService) for platform independence
  • OpenCvSharp for cross-platform image processing
  • YoutubeExplode for video downloading
  • Async/await patterns with CancellationToken support
  • Thread-safe operations with proper progress reporting

Project Structure

Yoable/               - Core library with managers and services
Yoable.Desktop/       - Avalonia UI implementation
Yoable.sln           - Solution file for Avalonia projects

The original WPF version remains unchanged in the YoableWPF/ directory.

Testing

Tested on:

  • macOS (primary development platform)
  • Cross-platform libraries used throughout ensure compatibility

Benefits

  • Enables macOS and Linux users to use Yoable for YOLO dataset labeling
  • Modern UI framework with better maintainability
  • Separation of concerns with service abstraction layer
  • Foundation for future cross-platform features

Notes

This PR focuses on the core cross-platform migration. Additional features (training, enhanced YouTube support) will be submitted in separate PRs as discussed.

Implements a complete cross-platform version of Yoable using Avalonia UI framework, enabling the application to run on Windows, macOS, and Linux.

Key Features:
- Complete Avalonia UI with all core functionality from WPF version
- Model Manager for loading and managing multiple YOLO ONNX models
- YouTube video download and frame extraction for training data
- Auto-labeling with ensemble model support
- Cross-platform dialog and file services
- Recursive directory import for images and labels
- Modern UI with dynamic sizing and proper layout

Technical Implementation:
- Avalonia UI 11.2.2 for cross-platform compatibility
- Service abstraction layer (IDialogService, IFileService, IImageService)
- OpenCvSharp for cross-platform image processing
- YoutubeExplode for video downloading
- Proper async/await patterns with CancellationToken support
- Progress reporting for long-running operations

Project Structure:
- Yoable/ - Core library with managers and services
- Yoable.Desktop/ - Avalonia UI implementation
- Yoable.sln - Solution file for Avalonia projects

This enables users on macOS and Linux to use Yoable for YOLO dataset labeling and training preparation.
Add full implementation of Auto Suggest Labels feature that runs AI detection on the currently selected image:
- Check for loaded models and prompt to load if none
- Run inference on current image only (vs Auto Label which processes all images)
- Support ensemble detection with multiple models
- Show progress dialog during detection
- Display detection count and model info in completion message
- Update UI after detection completes

This completes the AI menu functionality alongside Model Manager and Auto Label Images.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant