许可证: MIT
标签:
- 图像特征提取
- 组织学
- 病理学
- 视觉
- PyTorch
- 自监督学习
- ViT
- DINO
语言:
- 英语
评估指标:
- 准确率
基础模型:
- facebook/dinov2-giant
Kaiko午夜计划
午夜计划 - 用数量级更少的数据训练顶尖病理学基础模型
本仓库包含我们论文《用数量级更少的数据训练顶尖病理学基础模型》中提出的Midnight-12k模型检查点。尽管训练使用的全切片图像(WSI)数量显著减少,我们的方法仍能取得与领先病理学基础模型(FM)相媲美的性能。
概述
我们提出了基于DINOv2的改进自监督训练框架,通过针对性优化使其特别适用于计算病理学领域。主要贡献包括:
- 使用大幅减少的数据(最高减少100倍WSI)训练的三个创新病理学FM
- 引入高分辨率后训练以提升嵌入质量
模型亮点
- Midnight-12k:仅使用公开TCGA数据集(12k WSI)训练
- Midnight-92k:在TCGA和荷兰癌症研究所(NKI-80k)专有数据集上训练
- Midnight-92k/392:通过高分辨率后训练的顶级性能模型
模型权重
- Midnight-12k:遵循宽松的MIT许可证公开可用
- Midnight-92k & Midnight-92k/392:基于专有数据集训练,访问受限
使用说明
我们的模型使用均值(0.5, 0.5, 0.5)和标准差(0.5, 0.5, 0.5)对224x224图像进行归一化处理。提取嵌入特征时请确保采用相同参数。
from transformers import AutoImageProcessor, AutoModel
from PIL import Image
import requests
from torchvision.transforms import v2
url = 'https://upload.wikimedia.org/wikipedia/commons/8/80/Breast_DCIS_histopathology_%281%29.jpg'
image = Image.open(requests.get(url, stream=True).raw)
transform = v2.Compose(
[
v2.Resize(224),
v2.CenterCrop(224),
v2.ToTensor(),
v2.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)),
]
)
model = AutoModel.from_pretrained('kaiko-ai/midnight')
分类特征提取
对于分割任务,模型输出对应16x16图像块标记(224/14=16)
import torch
def extract_classification_embedding(tensor):
cls_embedding, patch_embeddings = tensor[:, 0, :], tensor[:, 1:, :]
return torch.cat([cls_embedding, patch_embeddings.mean(1)], dim=-1)
batch = transform(image).unsqueeze(dim=0)
embedding = extract_classification_embedding(model(batch).last_hidden_state)
print(f"嵌入维度: {embedding[0].shape}")
分割特征提取
import math
import torch
def extract_segmentation_embedding(tensor):
features = tensor[:, 1:, :].permute(0, 2, 1)
batch_size, hidden_size, patch_grid = features.shape
height = width = int(math.sqrt(patch_grid))
return features.view(batch_size, hidden_size, height, width)
batch = transform(image).unsqueeze(dim=0)
embedding = extract_segmentation_embedding(model(batch).last_hidden_state)
print(f"嵌入维度: {embedding[0].shape}")
训练数据集
数据集 |
WSI数量 |
来源 |
备注 |
TCGA |
1.2万 |
公开 |
仅FFPE样本 |
NKI-80k |
8万 |
专有 |
10,141名患者,31个器官 |
训练组件
- DINOv2:采用DINOv2自监督训练
- KDE正则化:替代DINOv2中的KoLeo确保嵌入多样性和训练稳定性
- 在线分块:高效实时提取信息丰富的图像块
- 色彩增强(HED):增强对染色差异的鲁棒性
- 图块过滤:去除低信息量的组织区域
评估
我们使用两套开源基准进行全面评估:
- eva:用于图像块(分类/分割)和切片级任务
- HEST:用于基因表达预测任务(回归)
我们的最佳模型Midnight-92k/392在多数任务上超越或持平Virchow2、UNI-2等领先模型。
结果摘要
模型 |
平均 |
PCam 10样本 |
BACH |
BRACS |
BreaKHis |
CRC |
Gleason |
MHIST |
PCam |
Cam16(小) |
Panda(小) |
CoNSeP |
MoNuSAC |
HEST |
Midnight-92k/392 |
0.778 |
0.900 |
0.904 |
0.646 |
0.802 |
0.966 |
0.807 |
0.828 |
0.951 |
0.868 |
0.651 |
0.662 |
0.708 |
0.415 |
UNI-2 |
0.776 |
0.885 |
0.924 |
0.651 |
0.863 |
0.970 |
0.777 |
0.829 |
0.951 |
0.873 |
0.666 |
0.626 |
0.644 |
0.431 |
Midnight-92k |
0.767 |
0.882 |
0.889 |
0.615 |
0.793 |
0.967 |
0.823 |
0.831 |
0.948 |
0.872 |
0.643 |
0.629 |
0.656 |
0.425 |
Virchow2 |
0.766 |
0.835 |
0.890 |
0.633 |
0.818 |
0.966 |
0.791 |
0.865 |
0.938 |
0.860 |
0.646 |
0.640 |
0.674 |
0.403 |
Midnight-12k |
0.763 |
0.803 |
0.907 |
0.639 |
0.840 |
0.967 |
0.790 |
0.815 |
0.931 |
0.869 |
0.656 |
0.625 |
0.664 |
0.412 |
引用文献
@article{KDK2025,
title={用数量级更少的数据训练顶尖病理学基础模型},
author={米哈伊尔·卡拉西科夫、约斯特·范多恩、尼古拉斯·肯齐格、梅利斯·埃达尔·切苏尔、雨果·马克·霍林斯、罗伯特·伯克、唐飞、塞巴斯蒂安·奥塔罗拉},
year={2025},
journal={arXiv预印本 arXiv:2504.05186},
url={https://arxiv.org/abs/2504.05186},
}
