/ Модель

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

Лицензия
CC BY-NC-SA 4.0
Библиотека
timm
Опубликована
17 апр 2026

DALE-CT-2S

Эмбеддинги изображенийИзображение → embedding

DALE-CT-2S — обученный на КТ грудной клетки экстрактор признаков ViT-Large для разработки систем сегментации, выявления аномалий и анализа медицинских изображений.

105скачиваний за 30 дней0лайковвеса обновлены23 сен 2026

Бенчмарки

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

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

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

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

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

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

DALE-CT-2S — модель извлечения признаков для компьютерной томографии грудной клетки, разработанная Institute for Biomedical Informatics Center for Applied AI при University of Kentucky. Это Vision Transformer ViT-Large, обученный с нуля на срезах КТ по самообучающейся схеме LeJEPA с дополнительной плотной супервизией по анатомическим и радиологическим меткам. Модель принимает одноканальные изображения срезов КТ; рекомендуемое разрешение — 512×512 пикселей, размер патча — 16, размерность эмбеддингов — 1024. Она выдаёт токен класса и токены патчей для последующего анализа.

Модель предназначена как визуальный экстрактор признаков для построения систем анализа КТ: классификации и выявления аномалий, сегментации, анализа сканов методом multi-instance learning и объёмной оценки. Для соответствия обучающим данным срезы необходимо предварительно обработать в единицах Хаунсфилда: ограничить значения указанным в карточке диапазоном, масштабировать и нормализовать по заданным среднему и стандартному отклонению. Модель обучалась на CT-RATE с использованием аннотаций ReXGroundingCT; опубликованные авторами результаты показывают сильные показатели на CT-RATE при линейном пробировании, но качество зависит от задачи и набора данных. Лицензия CC BY-NC-SA 4.0 допускает использование на её условиях, включая ограничения на коммерческое применение и распространение производных материалов.

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

  • получение признаков из срезов КТ грудной клетки
  • построение классификатора патологий по КТ
  • выявление аномалий на компьютерной томографии
  • подготовка признаков для сегментации анатомии и патологий
  • анализ целого КТ-сканирования методом multi-instance learning

Ограничения

Модель требует срезов КТ в единицах Хаунсфилда и точной предобработки, соответствующей обучающей. Это экстрактор признаков, а не готовый диагностический классификатор; лицензия CC BY-NC-SA 4.0 ограничивает коммерческое использование.

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

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

Открыть на Hugging Face

Model Card for DALE-CT-2S

Authors: Evan W. Damron (ORCID 0009-0009-1104-3202) · Mahmut S. Gokmen · Mitchell A. Klusty · Caroline N. Leach · Emily B. Collier · V. K. Cody Bumgardner — Institute for Biomedical Informatics Center for Applied AI (IBI-CAAI), University of Kentucky

This repository hosts the backbone weights for DALE-CT-2S (Depth-Aware Latent-Euclidean Computed Tomography), a foundational Vision Transformer (ViT-Large) trained on Chest CT scans using the strictly non-predictive Latent-Euclidean Joint-Embedding Predictive Architecture (LeJEPA) framework.

This 2S model improves upon the 1S variant by introducing a native 512px architecture, a refined patch size (16), and a more sophisticated dual-source (2S) dense auxiliary supervision objective that balances macroscopic and fine-grained pathology tracking using both TotalSegmentator and ReXGroundingCT targets.

This model was developed by the Institute for Biomedical Informatics Center for Applied AI (IBI-CAAI) at the University of Kentucky to serve as a robust feature extractor for downstream medical imaging tasks, including segmentation, multi-instance learning (MIL), and anomaly detection.

Note: This model was originally published as Guided-Chest-CT-LeJEPA-2S. The name has been formally updated to DALE-CT-2S.

Quick Load (timm)

import timm
model = timm.create_model("hf-hub:Kentucky-Open-Science/DALE-CT-2S", pretrained=True)
model.eval()

Inputs must be Hounsfield-Unit slices preprocessed exactly as during training (clipping + z-score; see the full example below).

The DALE-CT Family

All numbers are our own head-to-head measurements: every model (including the public 3D baselines in the paper) is probed under one linear-probing MIL protocol on shared splits (CT-RATE n = 992 test scans; RAD-ChestCT n = 360). See the paper for the full protocol and confidence intervals.

ModelCT-RATE Macro AUROCRAD-ChestCT AUROC (frozen / retrained probe)Role
DALE-CT-2S0.82470.6252 / 0.7389Best in-domain (CT-RATE)
DALE-CT-1S-v20.80980.6284 / 0.7334Anatomical (TotalSegmentator) dense supervision only
DALE-CT-00.80570.5946 / 0.7477Pure self-supervised, CT-RATE
Finetuned DINOv20.79530.6252 / 0.7550Continual-pretraining baseline — strongest dense (patch-level) features

Paper: DALE-CT: Depth-Aware 2D Slice Encoders Learn an Anatomical World Model of Chest CT · Code: Kentucky-Open-Science/DALE-CT · Benchmark: Kentucky-Open-Science/chest-ct-foundation-model-benchmark

Model Details

  • Model Type: Vision Transformer (ViT-Large) for Chest CT analysis.
  • Developed by: Institute for Biomedical Informatics Center for Applied AI (IBI-CAAI)
  • Model Date: 04/2026
  • Base Model Architecture: vit_large_patch14_dinov2 (via timm). Note: This model was randomly initialized and trained entirely from scratch with modified architecture arguments.
  • Input: 1-channel Grayscale CT Image.
  • Output: Class token and patch tokens. These can be used for various downstream tasks (e.g., classification, anomaly detection, multi-instance learning).
  • Embedding Dimension: 1024
  • Patch Size: 16
  • Image Size Compatibility: Native 512x512 resolution. The architecture supports variable input sizes dynamically, provided the height and width are divisible by the patch size (16).
  • License: CC BY-NC-SA 4.0 (Inherited from the CT-RATE dataset terms).

Intended Uses

This model is intended for research purposes in the field of medical imaging and radiology.

  • Primary Intended Uses:
    • Feature extraction for quantitative analysis of Chest CT scans.
    • Foundational backbone for downstream models predicting organ anomalies, segmentation, or volume-level analysis via MIL.

Training Data

  • Dataset(s): The model was trained exclusively on the train split of the CT-RATE dataset, leveraging annotations for guided cropping from ReXGroundingCT.
  • Preprocessing: Hounsfield Units (HU) were strictly clipped between [-997.0, 888.0]. These values correspond to the 0.5% and 99.5% pixel intensities of the foreground voxels calculated on a subset of the CT-RATE dataset. The clipped values were mapped to a [0, 1] range, followed by Z-score normalization utilizing a dataset mean of -142.39 and standard deviation of 360.97.

Training Procedure

  • Training System/Framework: Distributed Data Parallel (DDP) utilizing bf16 mixed precision.
  • Hardware & Scale: The model was trained for a total of 50,000 iterations. The configuration utilized a batch size of 64 per GPU, a peak learning rate of 3.0e-04 (decaying to 3.0e-05), and a 5,000-step warmup.
  • Training Strategy: Global and local crops were sampled from within a 12mm physical slab rather than a single 2D plane to ensure anatomical awareness.

Invariant Formulation and Dense Auxiliary Supervision

The total loss combines the self-supervised spatial invariance objective with a dense auxiliary head: $$\mathcal{L}{\text{Total}}=\mathcal{L}{\text{LeJEPA}}+\lambda_{\text{aux}}\mathcal{L}{\text{Aux}}$$ where \(\lambda{\text{aux}}=0.1\).

Self-Supervised Objective: LeJEPA

The model utilizes a strictly non-predictive architecture that combines a spatial invariance loss with Sketched Isotropic Gaussian Regularization (SIGReg): $$\mathcal{L}{\text{LeJEPA}}=(1-\lambda)\mathcal{L}{\text{invariance}}+\lambda\mathcal{L}_{\text{SIGReg}}$$ where \(\lambda=0.02\). The SIGReg formulation projects embeddings onto a set of random 1D directions to enforce normality via empirical characteristic functions, completely avoiding traditional architectural heuristics like predictor networks.

Auxiliary Supervision Objective

The auxiliary loss evaluates soft, fractional labels describing the proportional composition of anatomy/pathology within a crop. It is split between macroscopic and fine-grained views, and further divided between TotalSegmentator (TS) and ReX predictions: $$\mathcal{L}{\text{Aux}}=0.5\cdot\mathcal{L}{\text{Global}}+0.5\cdot\mathcal{L}_{\text{Patch}}$$ Because ReX labels represent sparse abnormalities, their loss is strictly masked to prevent penalizing the model on unverified scans.

Data Augmentation Pipeline

A specialized, GPU-accelerated augmentation pipeline generated the multi-crop views required for the invariant architecture.

1. Spatial & Guided Cropping

  • Global Crops: 2 global crops generated per volume, sized at 256x256 pixels, with a random scale between 60% and 100% of the original image dimensions.
  • Local Crops: 8 local crops generated per volume, sized at 144x144 pixels, with a random scale between 30% and 60%.
  • Anatomy & Label Guidance: Local crops had an 80% probability of being explicitly centered on physical anatomy (probabilistically guided by TS or ReX masks).
  • Flip & Resize: Resized using nearest-neighbor interpolation to prevent artificial averaging of HU values, followed by a random horizontal flip (50% probability).

2. Intensity & Noise Augmentations

  • Random Gamma Correction: A random gamma shift (range: 0.9 to 1.1) was applied independently to all crops with an 80% probability.

How to Get Started with the Model

Because CT scans require strict Hounsfield Unit (HU) windowing and normalization to match the training distribution, you must apply the specific preprocessing logic below. Note: With 2S's native 512px architecture, standard CT slices (512x512) no longer require dynamic padding.

import torch
import numpy as np
import timm
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file

class CTInferenceTransform:
    """ 
    Applies the exact HU windowing and Z-score normalization used during DALE-CT 2S training. 
    Assumes standard 512x512 CT slice inputs.
    """
    def __init__(self):
        self.clip_min = -997.0
        self.clip_max = 888.0
        self.mean_hu = -142.39
        self.std_hu = 360.97
        
        # Calculate 0-1 scaled mean and std
        range_val = self.clip_max - self.clip_min
        self.norm_mean = (self.mean_hu - self.clip_min) / range_val
        self.norm_std = self.std_hu / range_val

    def __call__(self, volume):
        # Expects a 2D numpy array or torch tensor (H, W) in Hounsfield Units
        if isinstance(volume, np.ndarray):
            volume = torch.from_numpy(volume).float()
        if volume.ndim == 2:
            volume = volume.unsqueeze(0) # Add channel dim: (1, H, W)

        # 1. Clamp HU values and map strictly to [0, 1]
        volume = torch.clamp(volume, self.clip_min, self.clip_max)
        range_val = self.clip_max - self.clip_min
        volume = (volume - self.clip_min) / range_val

        # 2. Z-score standardization
        volume = (volume - self.norm_mean) / self.norm_std

        # Returns (1, 1, H, W). For batched inference, stack these along dim=0.
        return volume.unsqueeze(0) 

def load_ct_model(repo_id="Kentucky-Open-Science/DALE-CT-2S"):
    """
    Downloads and initializes the ViT-Large backbone using timm and safetensors.
    """
    # 1. Initialize the base architecture with 2S overrides (patch_size=16, img_size=512)
    model = timm.create_model(
        "vit_large_patch14_dinov2",
        pretrained=False,
        num_classes=0,
        in_chans=1,          
        patch_size=16,       
        img_size=512,        
        dynamic_img_size=True 
    )
    
    # 2. Download and load the custom safetensors weights
    model_path = hf_hub_download(repo_id=repo_id, filename="model.safetensors")
    state_dict = load_file(model_path)
    model.load_state_dict(state_dict, strict=False)
    model.eval()
    
    return model

if __name__ == "__main__":
    # Initialize the transform and the model
    transform = CTInferenceTransform()
    model = load_ct_model()
    
    # Simulate a raw CT slice (Replace this with an actual NIfTI/DICOM load in Hounsfield Units)
    raw_ct_slice = np.random.uniform(-1000, 1000, size=(512, 512)) 
    
    # Process the image to ensure correct normalization
    input_tensor = transform(raw_ct_slice)
    
    # Extract embeddings
    with torch.no_grad():
        # Option A: Get the single pooled global feature for the entire slice
        global_feature = model(input_tensor)
        
        # Option B: Get the unpooled, dense spatial patch tokens (for fine-grained tasks like Segmentation)
        patch_tokens = model.forward_features(input_tensor)
        
    print(f"Input tensor shape: {input_tensor.shape}")  
    print(f"Extracted features shape: {global_feature.shape}")
    print(f"Dense patch tokens shape: {patch_tokens.shape}")

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

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

GPU в ailist

Универсальный рантайм · timm · image-feature-extraction

Можно запустить

Подбираем GPU…

Ревизия весов
a29a028

0 моделей