GerMed-Mobile
дерматология на смартфоне, офлайн
GerMed-Mobile — открытая ONNX-модель классификации изображений от Oskar Gerlicz-Kowalczuk (Germaz Studio) для скрининга кожных образований: меланома, базальноклеточный рак, актинический кератоз против доброкачественных невусов и кератозов. Работает полностью локально на слабых edge-устройствах и смартфонах, без облака и передачи данных пациентов.
🔥 Ключевые особенности
- 🩹 Обучена и валидирована на 37 747 клинических изображениях: HAM10000 (гистопатология) + ISIC 2024 (смартфонные снимки).
- 🔥 ROC-AUC 0,9566 на независимой валидации; sensitivity/recall 97,64% на клиническом пороге triage (Asymmetric Focal Loss).
- 💻 Компактные ONNX: fp32 — 32,1 МБ, int8 — 8,32 МБ; int8 выдаёт 60+ FPS на ARM Cortex смартфонах.
- 📌 Multi-task «thinking mode»: головы по ABCDE — асимметрия, неровность границ, вариабельность цвета, сложность паттерна.
- ✅ Три уровня риска: ≥65% — срочно к дерматологу и биопсия; 40–64,9% — дерматоскопия и наблюдение; <40% — низкий риск.
💻 Пример
import numpy as np, onnxruntime as ort
from PIL import Image
img = Image.open('my_mole.jpg').convert('RGB').resize((256, 256))
arr = np.array(img).astype(np.float32) / 255.0
mean = np.array([0.485, 0.456, 0.406]); std = np.array([0.229, 0.224, 0.225])
tensor = np.expand_dims(np.transpose((arr - mean) / std, (2, 0, 1)), axis=0)
out = ort.InferenceSession('germed_mobile_v4_int8.onnx').run(None, {'input_image': tensor})
print([float(x[0][0]) for x in out])
Подробнее
ROC-AUC 0,9566; sensitivity 97,64% на пороге triage.Вес int8 — 8,32 МБ, 60+ FPS на ARM Cortex; запуск через ONNX Runtime.
Это вспомогательный triage-инструмент, не самостоятельный диагноз: подозрительные образования должен осматривать дерматолог.
Лицензия GPLv3; автор — Oskar Gerlicz-Kowalczuk / Germaz Studio.








Комментарии