/ Модель

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

Лицензия
MIT
Опубликована
21 июл 2026

DeiT-ViT-P3

Классификация изображенийИзображение → label

Модель DeiT/ViT-Tiny классифицирует изображения сетчатки по пяти степеням диабетической ретинопатии ICDR.

7скачиваний за 30 дней0лайковвеса обновлены29 июл 2026

Бенчмарки

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

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

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

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

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

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

DeiT-ViT-P3 — модель компьютерного зрения для классификации диабетической ретинопатии по изображениям сетчатки. В карточке она описана как Vision Transformer архитектуры vit_tiny_patch16_224 с размером входа 224×224 пикселя. Модель распределяет изображение по пяти уровням ICDR: от отсутствия ретинопатии до пролиферативной стадии. Репозиторий содержит веса PyTorch, вариант TorchScript и версию ONNX; ONNX Runtime позволяет запускать её на CPU или GPU, в том числе в браузере и мобильных приложениях.

Модель предназначена для автоматизированной предварительной оценки снимков глазного дна и интеграции в медицинские приложения. На тестовом разделении карточка сообщает точность 67,55%, macro F1 47,75%, weighted F1 69,84% и QWK 0,6147, поэтому результаты следует оценивать с учётом этих показателей. Входное изображение требует предварительной обработки и нормализации; выход — вероятности пяти классов. Лицензия — MIT. Карточка не подтверждает клиническую пригодность модели или замену заключения специалиста.

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

  • оценка степени диабетической ретинопатии по снимку глазного дна
  • предварительная сортировка изображений сетчатки по тяжести поражения
  • получение вероятностей пяти классов ретинопатии в медицинском приложении
  • запуск классификации снимков сетчатки в браузере или мобильном приложении

Ограничения

На тестовом разделении указаны accuracy 67,55%, macro F1 47,75%, weighted F1 69,84% и QWK 0,6147; качество может быть недостаточным для самостоятельных клинических решений. Требуются изображения сетчатки, обработанные согласно описанному формату; карточка не заявляет клиническую валидацию.

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

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

Открыть на Hugging Face

Model Card: DeiT-ViT-P3 (Diabetic Retinopathy Classification)

Tài liệu hướng dẫn tích hợp mô hình Vision Transformer (DeiT/ViT-Tiny) chẩn đoán Bệnh Võng mạc Tiểu đường 5 phân lớp dành cho Backend, Frontend, và Software Engineers.


1. Tổng quan Mô hình (Model Overview)

  • Kiến trúc: vit_tiny_patch16_224 (Vision Transformer kích thước Tiny, 16x16 patch size, đầu vào 224x224).
  • Nhiệm vụ: Phân loại mức độ Bệnh võng mạc tiểu đường (Diabetic Retinopathy - DR) theo tiêu chuẩn liên bang ICDR gồm 5 lớp:
    • 0: No DR (Bình thường)
    • 1: Mild DR (Nhẹ)
    • 2: Moderate DR (Trung bình)
    • 3: Severe DR (Nặng)
    • 4: Proliferative DR (Tăng sinh nguy hiểm)
  • Hiệu năng trên tập kiểm thử (Test Split):
    • Accuracy: 67.55%
    • Macro F1-Score: 47.75%
    • Weighted F1-Score: 69.84%
    • QWK (Quadratic Weighted Kappa): 0.6147

2. Cấu trúc thư mục repository (Files in Repository)

  • best_model.pt: Checkpoint weights của PyTorch chứa state_dict.
  • vit_inference.pt: Phiên bản mô hình đóng gói dưới dạng TorchScript (đã tích hợp Logit Adjustment và Softmax). Nhận đầu vào là Tensor ảnh đã chuẩn hóa và trả về xác suất 5 lớp trực tiếp.
  • vit_inference.onnx & vit_inference.onnx.data: Phiên bản mô hình định dạng ONNX dùng cho deploy đa nền tảng không phụ thuộc PyTorch.
  • preprocessing.py: Script Python duy nhất chứa toàn bộ luồng tiền xử lý (letterbox resize, Ben Graham transform) và lớp DRPredictor chạy suy luận.

3. Hướng dẫn Tích hợp dành cho Backend Engineer (Python)

Tải tệp preprocessing.py và vit_inference.pt về chung thư mục dự án của bạn và chạy suy luận trực tiếp:

from preprocessing import DRPredictor

# Khởi tạo predictor (chỉ cần chạy 1 lần khi startup hệ thống để nạp model vào RAM/GPU)
# Chỉ định vit_path trỏ tới file .pt vừa tải
predictor = DRPredictor(vit_path="vit_inference.pt")

# Dự đoán từ đường dẫn ảnh hoặc dữ liệu bytes nhận được từ client upload
result = predictor.predict("test_retina.jpg", use_ben_graham=True)

print("Kết quả chẩn đoán:", result)

Đặc tả dữ liệu đầu ra (Output JSON format):

{
  "class_id": 0,
  "class_name": "No DR",
  "confidence": 0.8190,
  "probabilities": {
    "No DR": 0.8190,
    "Mild": 0.0512,
    "Moderate": 0.1118,
    "Severe": 0.0120,
    "Proliferative DR": 0.0060
  }
}

4. Hướng dẫn chạy trực tiếp mô hình ONNX (Đa ngôn ngữ: Node.js, Go, C#)

ONNX Runtime hỗ trợ chạy suy luận trực tiếp trên CPU/GPU mà không cần cài đặt PyTorch.

Đặc tả Input/Output Tensor

  • Đầu vào (Input): Tên tensor: input_image. Định dạng float32, Shape: [1, 3, 224, 224] (NCHW format). Ảnh được resize letterbox về (224, 224) và chuẩn hóa ImageNet (mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]).
  • Đầu ra (Output): Tên tensor: probabilities. Định dạng float32, Shape: [1, 5]. Chứa phân phối xác suất Softmax của 5 lớp.

Tích hợp bằng Node.js Backend:

const ort = require('onnxruntime-node');
const sharp = require('sharp'); // Thư viện xử lý ảnh cho Node.js

async function predict(imagePath) {
    const session = await ort.InferenceSession.create('./vit_inference.onnx');
    
    // 1. Thực hiện Resize & Normalize ảnh (tương đương preprocessing.py)
    // - Resize letterbox về 224x224
    // - Chuyển sang Float32 và chuẩn hóa ImageNet: (pixel / 255.0 - mean) / std
    // - Sắp xếp lại chiều thành NCHW [1, 3, 224, 224]
    const inputTensor = new ort.Tensor('float32', float32Data, [1, 3, 224, 224]);
    
    // 2. Chạy suy luận
    const outputs = await session.run({ input_image: inputTensor });
    const probabilities = outputs.probabilities.data;
    
    console.log("Xác suất dự đoán:", probabilities);
}

5. Hướng dẫn Tích hợp phía Client (Frontend / Mobile / Web-Browser)

Mô hình ONNX có thể chạy trực tiếp trên trình duyệt Client (React/Vue) hoặc ứng dụng Di động (Flutter/React Native) để bảo mật tuyệt đối dữ liệu y tế của bệnh nhân và giảm tải tối đa cho Server.

  • Web Browser (React/Vue): Sử dụng thư viện onnxruntime-web chạy trên WebAssembly (WASM).
  • Mobile (React Native / Flutter / Android / iOS): Sử dụng thư viện onnxruntime-react-native hoặc onnxruntime_flutter.
import * as ort from 'onnxruntime-web';

async function runOnClient(imageElement) {
    // Tải mô hình trực tiếp từ thư mục public hoặc CDN
    const session = await ort.InferenceSession.create('/models/vit_inference.onnx');
    
    // Thực hiện trích xuất dữ liệu pixel của ảnh từ thẻ <canvas> hoặc <img> 
    // Chuẩn hóa và đóng gói thành Float32Array [1, 3, 224, 224]
    const tensor = new ort.Tensor('float32', Float32ArrayPixels, [1, 3, 224, 224]);
    
    const results = await session.run({ input_image: tensor });
    console.log("Kết quả chẩn đoán client-side:", results.probabilities.data);
}

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

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

GPU в ailist

Универсальный рантайм

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

Архитектура ? неизвестна transformers в образе рантайма.

Ревизия весов
9eb451f

0 моделей