/ Модель

Характеристики

Архитектура
cxr_basic · dense
Базовая модель
tf_efficientnetv2_s.in21k_ft_in1k
Библиотека
transformers
Опубликована
24 дек 2024

chest-x-ray-basic

Сегментация изображенийИзображение → mask3 профессии

Модель сегментирует лёгкие и сердце на рентгенограммах грудной клетки и предсказывает проекцию снимка, возраст и пол пациента.

1 109скачиваний за 30 дней10лайковвеса обновлены3 янв 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

ianpan/chest-x-ray-basic — модель для анализа рентгенограмм грудной клетки, разработанная Ian Pan. Она объединяет EfficientNetV2-S с декодером U-Net для сегментации и линейным классификатором. Для фронтальных снимков модель выделяет правое и левое лёгкие, а также сердце; дополнительно предсказывает проекцию снимка (AP, PA или боковая), возраст пациента и пол.

Модель предназначена для обработки рентгенограмм, получения масок органов и вспомогательных характеристик снимка. Её можно использовать для выделения области лёгких или расчёта кардиоторакального отношения. Обучение проводилось на 335 516 изображениях из наборов CheXpert и NIH Chest X-ray; маски сегментации получены из CheXmask. В README приведены результаты валидации, включая Dice 0,943–0,957 для сегментации сердца и лёгких, но отдельный тестовый набор не использовался.

Модель представлена в формате Safetensors и использует библиотеку Transformers. Это дообучение timm/tf_efficientnetv2_s.in21k_ft_in1k. Лицензия в предоставленных данных не указана. Модель предназначена только для демонстраций и исследований и не одобрена для клинического применения; её предсказания не следует считать медицинским заключением.

Сценарии применения

  • сегментация лёгких на рентгенограмме грудной клетки
  • сегментация сердца на рентгеновском снимке
  • определение проекции снимка AP, PA или боковой
  • оценка возраста пациента по рентгенограмме
  • оценка пола пациента по рентгенограмме
  • подготовка маски для расчёта кардиоторакального отношения

Ограничения

В README указано, что отдельный тестовый набор не использовался, а модель не одобрена для клинического применения. Качество предсказаний возраста и пола за пределами описанной валидации не установлено.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

This model performs both segmentation and classification on chest radiographs (X-rays). The model uses a tf_efficientnetv2_s backbone with a U-Net decoder for segmentation and linear layer for classification. For frontal radiographs, the model segments the: 1) right lung, 2) left lung, and 3) heart. The model also predicts the chest X-ray view (AP, PA, lateral), patient age, and patient sex. The CheXpert (small version) and NIH Chest X-ray datasets were used to train the model. Segmentation masks were obtained from the CheXmask dataset (paper). The final dataset comprised 335,516 images from 96,385 patients and was split into 80% training/20% validation. A holdout test set was not used since minimal tuning was performed. The view classifier was trained only on CheXpert images (NIH images excluded from loss function), given that lateral radiographs are only present in CheXpert. This is to avoid unwanted bias in the model, which can occur if one class originates only from a single dataset.

Validation performance as follows:

Segmentation (Dice similarity coefficient):
  Right Lung: 0.957
   Left Lung: 0.948
       Heart: 0.943

Age Prediction:
  Mean Absolute Error: 5.25 years

Classification:
  View (AP, PA, lateral): 99.42% accuracy
  Female: 0.999 AUC

To use the model:

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) # only takes single image as input
x = torch.from_numpy(x).unsqueeze(0).unsqueeze(0) # add channel, batch dims
x = x.float()

with torch.inference_mode():
  out = model(x.to(device))

The output is a dictionary which contains 4 keys:

  • mask has 3 channels containing the segmentation masks. Take the argmax over the channel dimension to create a single image mask (i.e., out["mask"].argmax(1)): 1 = right lung, 2 = left lung, 3 = heart.
  • age, in years.
  • view, with 3 classes for each possible view. Take the argmax to select the predicted view (i.e., out["view"].argmax(1)): 0 = AP, 1 = PA, 2 = lateral.
  • female, binarize with out["female"] >= 0.5.

You can use the segmentation mask to crop the region containing the lungs from the rest of the X-ray. You can also calculate the cardiothoracic ratio (CTR) using this function:

import numpy as np

def calculate_ctr(mask): # single mask with dims (height, width)
    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

If you have pydicom installed, you can also load a DICOM image directly:

img = model.load_image_from_dicom(path_to_dicom)

This model is for demonstration and research purposes only and has NOT been approved by any regulatory agency for clinical use. The user assumes any and all responsibility regarding their own use of this model and its outputs.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · image-segmentation

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
CXRModel
Ревизия весов
fec189c

0 моделей