Official repository for Federated Medical and Surgical Object Detection on the Edge.
UltraFlwr provides random and equally sized YOLO compatible data partitioning, federated training, and flexible testing capabilities. It integrates Ultralytics YOLO off-the-shelf within the Flower framework.
Developed by anonymized authors.
Inspiration from existing issues:
- Exact Ask in Ultralytics Library | Issue
- Problem of loading the YOLO state | dict Issue
- (Similar issue raised by us: Issue)
- Need to easily integrate flower strategies with Ultralytics | Issue
- Request from mmlab support in flower indicates a want from the community to be able to do federated object detection | Issue
Inspiration from actual need:
- Ultralytics allows the easy change of final heads (during inference) for multiple tasks.
- The Ultralytics style datasets are also well supported for easy off-the-shelf testing (and coco benchmarking).
- Allow flower strategies become smoothly integrated with Ultralytics' YOLO.
- Create detection specifc partial aggregation strategies, such as YOLO-PA.
Comprehensive benchmarks are included in the benchmarks folder.
We provide usage guides using pills dataset under these settings:
For testing and getting client-wise global and local scores: ./FedYOLO/test/test.sh
- This automatically prints out tables in Ultralytics style.
To collect tables (suitable for latex) for all scores across all global and local data and models: python /FedYOLO/test/master_table.py
- Proper Federated Training using off-the-shelf Flower strategies.
- Inference Code for Local and Global datasets using client models.
- Inference Code for Local and Global datasets using server model.
- Fast Prototyping through simple bash script launch and logging.
- Propose new custom strategy in the Flwr framework. Our proposal: YOLO-PA
- Dynamically adapt entire code base to any number of clients and not rely on manually changing code base.
- Develop scripts more sophisticated/adaptable data splits.
We are working on formulating rules but feel free to raise issues and PRs.