Downloads · 30 days
0
dunnowho/dermatoai-multimodal
dermatoai-multimodal is a machine learning model from dunnowho. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for onnx. The card lists the license as cc-by-4.0.
Alat bantu triase, BUKAN alat diagnosis. Purwarupa penelitian, belum divalidasi klinis. Jangan dipakai untuk keputusan medis.
Downloads · 30 days
0
Access
Public
Updated Aug 10, 2026
Repo size
130 MB
Likes
0
Public
Click a slice to open those files.
.onnx130 MB · 100%
From the Hugging Face model README
Alat bantu triase, BUKAN alat diagnosis. Purwarupa penelitian, belum divalidasi klinis. Jangan dipakai untuk keputusan medis.
Repo ini memuat dua model terpisah untuk dua domain yang berbeda, plus satu diskriminator berpasangan. Keduanya tidak saling menggantikan: yang satu dilatih pada lesi onkologis, yang lain pada kondisi kulit umum, dan memakai salah satunya di domain yang salah menghasilkan keluaran yang percaya diri tetapi tidak bermakna.
| Berkas | Jalur | Dilatih pada |
|---|---|---|
dermato-mm.onnx + .meta.json | onkologis — p(ganas) + 6 kelas | PAD-UFES-20 |
dermato-common.onnx + .meta.json | kondisi umum — 10 kelas | SCIN |
tinea-eczema.json | diskriminator Tinea vs Eksem | SCIN |
dermato-mmModel multimodal untuk triase lesi kulit dari foto ponsel + delapan pertanyaan anamnesis. Dua kepala di atas satu backbone: probabilitas keganasan (biner) dan enam kelas diagnostik.
efficientnet_b0 @ 320pxdermato-mm-20260808-fold4from huggingface_hub import hf_hub_download
import onnxruntime as ort, json
onnx = hf_hub_download("dunnowho/dermatoai-multimodal", "dermato-mm.onnx")
meta = json.load(open(hf_hub_download("dunnowho/dermatoai-multimodal", "dermato-mm.meta.json")))
sess = ort.InferenceSession(onnx, providers=["CPUExecutionProvider"])
meta.json memuat SEMUA konstanta yang dibutuhkan: urutan fitur klinis,
normalisasi, suhu kalibrasi (biner dan kelas terpisah), ambang OOD, dan kamus
region. Jangan menyalinnya ke kode — baca dari berkas, supaya bobot dan
aturannya tidak pernah berpisah versi.
Stratified group 5-fold pada patient_id (2.298 citra, 1.373 pasien).
CI 95% dari cluster bootstrap 1.000 resample tingkat pasien.
| Seluruh data | Subset biopsi | |
|---|---|---|
| Base rate ganas | 0,474 | 0,811 |
| AUC | 0,9355 [0,9232–0,9471] | 0,8245 [0,7879–0,8584] |
| Sensitivitas @ spesifisitas 0,80 | 0,9155 [0,8964–0,9352] | 0,6777 [0,6453–0,7090] |
Seluruh 1.089 kasus ganas di PAD-UFES-20 ada di subset terbiopsi; nol dari 956 lesi yang tidak dibiopsi. Status biopsi adalah prediktor keganasan yang sempurna di dataset ini.
Artinya metrik atas seluruh data bersandar pada 956 negatif yang tidak pernah dianggap cukup mencurigakan untuk dibiopsi — populasi mudah yang tidak akan ada di basis pengguna aplikasi, karena orang membuka aplikasi triase justru ketika khawatir. AUC 0,8245 dan sensitivitas 0,6777 adalah angka klinis yang jujur.
Akurasi 0,7591. Terkalibrasi (T = 1.4619); rerata keyakinan top-1 turun 0,852 → 0,764 terhadap akurasi sebenarnya 0,759.
| Kelas | n | Recall |
|---|---|---|
| ACK | 730 | 0,833 |
| NEV | 244 | 0,816 |
| BCC | 845 | 0,767 |
| SEK | 235 | 0,740 |
| MEL | 52 | 0,538 |
| SCC | 192 | 0,266 |
SCC recall 0,266 — model gagal mengenali dua dari tiga karsinoma sel skuamosa, padahal SCC berurgensi tinggi. Yang menahan kerugiannya adalah kepala biner, yang tetap menandainya ganas. Dinyatakan terang-terangan, bukan ditutupi akurasi keseluruhan.
| AUC | Akurasi-6 | |
|---|---|---|
| Multimodal | 0,9376 | 0,7644 |
| Citra saja | 0,9252 | 0,7346 |
| Selisih | +0,0124 | +2,98 poin |
dermato-commonSepuluh kelas kondisi kulit umum, dilatih pada SCIN (foto konsumen dari ponsel, hasil crowdsourcing — domain yang sama dengan aplikasi ini, bukan foto klinik):
Eczema · Allergic Contact Dermatitis · Urticaria · Insect Bite ·
Folliculitis · Tinea · Psoriasis · Impetigo · Acne · Lainnya
Tinea Versicolor digabung ke Tinea (diverifikasi ml/data/audit_scin.py).
Stratified group 5-fold, rerata atas lima fold:
| Rerata | Rentang antar-fold | |
|---|---|---|
| Top-1 | 0,4100 | 0,3788 – 0,4438 |
| Top-3 | 0,7104 | 0,6831 – 0,7570 |
| Balanced accuracy | 0,4090 | 0,3853 – 0,4541 |
Top-1 0,41 disebut apa adanya. Sepuluh kelas kondisi umum pada foto ponsel konsumen adalah masalah yang jauh lebih sulit daripada enam kelas onkologis pada foto terkurasi, dan angkanya menunjukkan itu. Yang membuatnya tetap berguna adalah top-3 0,71 dan cara jalur ini dipakai di aplikasi: sebagai penyempit kemungkinan yang menuntun ke perawatan mandiri atau rujukan, bukan sebagai label diagnosis yang ditampilkan sebagai kepastian.
tinea-eczema.jsonSatu-satunya kekacauan model yang melintasi keluarga terapi: 59 citra eksem diprediksi Tinea, dan antijamur untuk eksem tidak menolong. Ambang keyakinan biasa tidak menyaringnya — keduanya sama-sama lolos sebagai kelas layak produk.
Pasangan ini sendiri terpisah dengan baik (AUC 0,8330); yang menghasilkan presisi 0,352 adalah aturan keputusan, bukan kebutaan model: dengan prior 1:5 (211 tinea vs 1.238 eksem), argmax 10-kelas menghasilkan banyak panggilan Tinea palsu.
| Sumber skor | AUC |
|---|---|
| Citra saja | 0,8330 |
| Kuesioner saja | 0,7516 |
| Campuran (bobot kuesioner 0,3) | 0,8646 |
Kuesioner bukan pengganti citra — ia menambah yang tidak terlihat di foto, terutama lokasi (telapak kaki condong tinea; lengan dan punggung tangan condong eksem) dan durasi.
Metrik di atas diukur dari logit yang dirata-ratakan atas empat orientasi
(asli, flip horizontal, flip vertikal, keduanya). Menjalankan satu forward pass
berarti memakai model yang lebih lemah daripada yang dilaporkan di sini.
meta.json menyatakan "tta": true beserta daftar flip-nya.
SOLE/PALM/NAIL bahkan tidak ada sebagai kategori. Lokasi
akral harus dirutekan ke rujukan manusia tanpa memanggil model.Jalur onkologis: PAD-UFES-20 (Pacheco et al. 2020, CC BY 4.0, doi:10.17632/zr7vgbcyr2.1).
Jalur kondisi umum: SCIN (Ward et al., "Creating an empirical dermatology dataset through crowdsourcing", 2024).
Inisialisasi ImageNet pada keduanya. HAM10000 dan SLICE-3D sengaja tidak dipakai — CC BY-NC 4.0 bertabrakan dengan tautan afiliasi + repo publik + rilis bobot. Mirror Kaggle juga ditolak: tanpa patient/lesion ID, group split mustahil dan metrik menggelembung karena lesi yang sama muncul di train dan test.
Seluruh kode training, audit, dan evaluasi ada di repo proyek; logit out-of-fold disertakan sehingga setiap angka di atas dapat dihitung ulang tanpa melatih ulang.