🚀 胸部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。
📄 許可證
文檔未提供許可證相關內容,故跳過此章節。
⚠️ 重要提示
本模型僅用於演示和研究目的,尚未獲得任何監管機構的臨床使用批准。用戶需自行承擔使用該模型及其輸出結果的所有責任。