Downloads · 30 days
5
25% of all-time downloads
chrisnguyenx/ConvNeXt-P3
ConvNeXt-P3 is a image classification model from chrisnguyenx. Use it when you need a label for an image. The card lists the license as mit.
Tài liệu hướng dẫn tích hợp mô hình ConvNeXt-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.
Downloads · 30 days
5
25% of all-time downloads
All-time downloads
20
Public
Repo size
447 MB
Likes
0
Public
Click a slice to open those files.
.pt334 MB · 75%
From the Hugging Face model README
Tài liệu hướng dẫn tích hợp mô hình ConvNeXt-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.
convnext_tiny (kiến trúc Convolutional tiên tiến thế hệ mới của Meta, đầu vào 224x224).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)best_model.pt: Checkpoint weights của PyTorch chứa state_dict.convnext_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.convnext_inference.onnx & convnext_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.Tải tệp preprocessing.py và convnext_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 convnext_path trỏ tới file .pt vừa tải
predictor = DRPredictor(convnext_path="convnext_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.7325,
"probabilities": {
"No DR": 0.7325,
"Mild": 0.2048,
"Moderate": 0.0626,
"Severe": 0.0001,
"Proliferative DR": 0.0000
}
}
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.
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]).probabilities. Định dạng float32, Shape: [1, 5]. Chứa phân phối xác suất Softmax của 5 lớp.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('./convnext_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);
}
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.
onnxruntime-web chạy trên WebAssembly (WASM).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/convnext_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);
}