🚀 胸部X光图像分割与分类模型
本模型可对胸部X光片进行分割和分类任务。它使用了 tf_efficientnetv2_s
作为骨干网络,搭配 U-Net 解码器进行分割任务,并使用线性层进行分类任务。该模型能为胸部X光片提供精准的分割和分类结果,在医疗影像分析领域有着重要的应用价值。
🚀 快速开始
模型使用示例
import cv2
import torch
from transformers import AutoModel
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModel.from_pretrained("ianpan/chest-x-ray-basic", trust_remote_code=True)
model = model.eval().to(device)
img = cv2.imread(..., 0)
x = model.preprocess(img)
x = torch.from_numpy(x).unsqueeze(0).unsqueeze(0)
x = x.float()
with torch.inference_mode():
out = model(x.to(device))
输出结果说明
输出是一个包含 4 个键的字典:
mask
:包含 3 个通道的分割掩码。在通道维度上取最大值以创建单个图像掩码(即 out["mask"].argmax(1)
):1 代表右肺,2 代表左肺,3 代表心脏。
age
:患者年龄(以年为单位)。
view
:有 3 个类别对应不同的视图。取最大值以选择预测的视图(即 out["view"].argmax(1)
):0 代表 AP,1 代表 PA,2 代表侧位。
female
:使用 out["female"] >= 0.5
进行二值化处理。
高级用法
计算心胸比
import numpy as np
def calculate_ctr(mask):
lungs = np.zeros_like(mask)
lungs[mask == 1] = 1
lungs[mask == 2] = 1
heart = (mask == 3).astype("int")
y, x = np.stack(np.where(lungs == 1))
lung_min = x.min()
lung_max = x.max()
y, x = np.stack(np.where(heart == 1))
heart_min = x.min()
heart_max = x.max()
lung_range = lung_max - lung_min
heart_range = heart_max - heart_min
return heart_range / lung_range
直接加载 DICOM 图像
img = model.load_image_from_dicom(path_to_dicom)
✨ 主要特性
- 多功能处理:该模型能够对胸部X光片同时进行分割和分类任务。
- 精准分割:对于正位X光片,可准确分割出右肺、左肺和心脏。
- 多信息预测:能够预测胸部X光片的视图(AP、PA、侧位)、患者年龄和患者性别。
📦 安装指南
文档未提供安装相关内容,故跳过此章节。
📚 详细文档
模型结构
模型使用 tf_efficientnetv2_s
作为骨干网络,搭配 U-Net 解码器进行分割任务,并使用线性层进行分类任务。
训练数据
使用了 CheXpert(小版本)和 NIH Chest X-ray 数据集来训练模型。分割掩码来自 CheXmask 数据集 (论文)。最终数据集包含来自 96,385 名患者的 335,516 张图像,并按 80% 训练集和 20% 验证集进行划分。由于只进行了少量调优,因此未使用保留测试集。视图分类器仅在 CheXpert 图像上进行训练(损失函数中排除了 NIH 图像),因为侧位X光片仅存在于 CheXpert 数据集中,这样可以避免模型出现不必要的偏差。
验证性能
分割(Dice 相似系数):
右肺:0.957
左肺:0.948
心脏:0.943
年龄预测:
平均绝对误差:5.25 年
分类:
视图(AP、PA、侧位):准确率 99.42%
女性:AUC 为 0.999
🔧 技术细节
模型架构
模型采用 tf_efficientnetv2_s
作为骨干网络,结合 U-Net 解码器实现分割功能,同时利用线性层完成分类任务。
数据处理
训练数据整合了多个公开数据集,包括 CheXpert 和 NIH Chest X-ray,并从 CheXmask 数据集 中获取分割掩码。最终数据集经过合理划分,80% 用于训练,20% 用于验证。在训练视图分类器时,为避免模型出现偏差,仅使用 CheXpert 图像进行训练,排除了 NIH 图像的影响。
性能评估
在验证集上,模型在分割和分类任务上均表现出色。分割任务中,右肺、左肺和心脏的 Dice 相似系数分别达到 0.957、0.948 和 0.943;年龄预测的平均绝对误差为 5.25 年;分类任务中,视图分类准确率高达 99.42%,女性分类的 AUC 为 0.999。
📄 许可证
文档未提供许可证相关内容,故跳过此章节。
⚠️ 重要提示
本模型仅用于演示和研究目的,尚未获得任何监管机构的临床使用批准。用户需自行承担使用该模型及其输出结果的所有责任。