[ PROMPT_NODE_26966 ]
machine_learning
[ SKILL_DOCUMENTATION ]
# 机器学习
## 概述
PathML 为计算病理学提供全面的机器学习能力,包括用于细胞核检测和分割的预构建模型、PyTorch 集成训练工作流、公共数据集访问以及基于 ONNX 的推理部署。该框架将图像预处理与深度学习无缝连接,实现端到端的病理机器学习流水线。
## 预构建模型
PathML 包含用于细胞核分析的最先进预训练模型:
### HoVer-Net
**HoVer-Net** (水平和垂直网络) 执行同步的细胞核实例分割和分类。
**架构:**
- 具有三个预测分支的编码器-解码器结构:
- **核像素 (NP)** - 核区域的二值分割
- **水平-垂直 (HV)** - 到细胞核质心的距离图
- **分类 (NC)** - 细胞核类型分类
**细胞核类型:**
1. 上皮细胞
2. 炎症细胞
3. 结缔组织/软组织
4. 死亡/坏死
5. 背景
**用法:**
python
from pathml.ml import HoVerNet
import torch
# 加载预训练模型
model = HoVerNet(
num_types=5, # 细胞核类型数量
mode='fast', # 'fast' 或 'original'
pretrained=True # 加载预训练权重
)
# 如果可用则移动到 GPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)
# 对切片进行推理
tile_image = torch.from_numpy(tile.image).permute(2, 0, 1).unsqueeze(0).float()
tile_image = tile_image.to(device)
with torch.no_grad():
output = model(tile_image)
# 输出包含:
# - output['np']: 核像素预测
# - output['hv']: 水平-垂直图
# - output['nc']: 分类预测
**后处理:**
python
from pathml.ml import hovernet_postprocess
# 将模型输出转换为实例分割
instance_map, type_map = hovernet_postprocess(
np_pred=output['np'],
hv_pred=output['hv'],
nc_pred=output['nc']
)
# instance_map: 每个细胞核有唯一 ID
# type_map: 每个细胞核被分配一个类型 (1-5)
### HACTNet
**HACTNet** (分层细胞类型网络) 执行具有不确定性量化的分层细胞核分类。
**特性:**
- 分层分类(从粗略到细粒度类型)
- 预测的不确定性估计
- 改善了在不平衡数据集上的表现
python
from pathml.ml import HACTNet
# 加载模型
model = HACTNet(
num_classes_coarse=3,
num_classes_fine=8,