开源项目介绍:MIL_BASELINE
项目概览
MIL_BASELINE 是一个集成了多种多实例学习方法(MIL)的统一框架库,旨在简化多实例学习模型的开发与应用。它不仅整合了多种MIL方法,还提供了统一的数据集接口和常用的数据集划分方法,使得用户可以轻松扩展和自定义功能。
更新日志
- 2024-07-20: 修复了除DTFD-MIL之外所有MIL模型的bug。
- 2024-07-21: 修复了DTFD-MIL和test_mil.py的bug。
- 2024-07-27: 修复了plip-transforms的bug。
功能特点
数据集统一接口
- 用户无论使用公共数据集还是私有数据集,只需提供相应的csv文件。
支持的数据集划分方法
- 用户自定义的Train-Val-Test划分。
- K折交叉验证的Train-Val划分。
- K折交叉验证的Train-Val-Test划分。
特征编码器
- 支持多种特征编码器,包括但不限于R50、VIT-S、CTRANSPATH、PLIP、CONCH、UNI和GIG等。
实现的网络
- 包括MEAN_MIL、MAX_MIL、AB_MIL等在内的多种MIL网络。
实现的评估指标
- 支持AUC、F1、准确率、召回率、Confusion Matrix等多种评估指标。
开始使用
代码框架
- /configs: 通过YAML配置文件定义MIL模型。
- /modules: 定义不同MIL模型的网络架构。
- /process: 定义不同MIL模型的训练框架。
- /feature_extracter: 支持不同的特征提取器。
- /datasets: 用户数据集路径信息。
- /utils: 框架的实用脚本。
- /train_mil.py: 框架的训练入口函数。
- /test_mil.py: 框架的测试入口函数。
数据预处理
- 支持OpenSlide和SDPC格式。
- 直接支持R50和VIT-S。
- 通过将模型权重推送到相应的文件夹来支持PLIP/UNI/CONCH/CTRANSPATH/GIG。
训练/测试MIL
- 在/configs中配置yaml文件,例如AB_MIL.yaml。
- 使用/train_mil.py进行训练,使用/test_mil.py测试预训练模型。
Git仓库
- 欢迎代码提交和贡献,共同推动项目发展。
项目链接
结语
MIL_BASELINE是一个功能强大、灵活易用的开源库,适用于需要进行多实例学习的研究人员和开发者。它的设计哲学是简化复杂性、提高可扩展性,让使用者可以集中精力于模型的创新和实验。我们期待您的加入和贡献,共同推动多实例学习领域的发展。