DermatoAI β€” model triase lesi kulit

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

Jalur onkologis β€” dermato-mm

Model multimodal untuk triase lesi kulit dari foto ponsel + delapan pertanyaan anamnesis. Dua kepala di atas satu backbone: probabilitas keganasan (biner) dan enam kelas diagnostik.

  • Backbone: efficientnet_b0 @ 320px
  • Fitur klinis: 22 dimensi dari 8 kolom
  • Versi: dermato-mm-20260808-fold4
  • Inferensi: ONNX Runtime CPU, TTA 4 orientasi (wajib β€” lihat di bawah)

Cara memakai

from 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.

Hasil β€” jalur onkologis

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]

Kutip kolom kanan, bukan kiri

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.

Kepala enam kelas

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.

Sumbangan anamnesis (ablasi 5-fold)

AUC Akurasi-6
Multimodal 0,9376 0,7644
Citra saja 0,9252 0,7346
Selisih +0,0124 +2,98 poin

Jalur kondisi umum β€” dermato-common

Sepuluh 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.

Diskriminator Tinea vs Eksem β€” tinea-eczema.json

Satu-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.

TTA wajib

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.

Keterbatasan

  1. Purwarupa penelitian. Belum divalidasi klinis.
  2. Melanoma akral tidak diklaim. Nol melanoma di telapak kaki pada data latih, dan SOLE/PALM/NAIL bahkan tidak ada sebagai kategori. Lokasi akral harus dirutekan ke rujukan manusia tanpa memanggil model.
  3. Prior kohort Brasil. Median usia 62, base rate ganas 47,4%. Pada prevalensi skrining aplikasi 1%, PPV turun ke 0,044 β€” dari 100 lesi yang ditandai, sekitar 4 benar-benar ganas. NPV 0,999. Nilai sistem ini ada pada NPV, bukan PPV.
  4. Keadilan tipe kulit tidak dijamin. Hanya 73 sampel Fitzpatrick IV–VI di data latih, strata tergelap n=1. Fitzpatrick TIDAK dipakai sebagai fitur model β€” ia variabel kebijakan yang memperlebar pita abstensi.
  5. Ambang OOD diuji pada citra non-onkologis, dan gagal. Ditetapkan pada persentil 95 energi in-distribution. Pada 60 citra ruam SCIN ia menandai 0,0%, sementara pada citra PAD-UFES dalam-sebaran ia menandai 6,7% β€” nol daya pisah domain; pada 24 potongan kulit sehat ia juga menyala nol kali. Skor ini tidak dipakai untuk memisahkan domain di produksi. Pemisahan domain dilakukan lewat lingkup yang dideklarasikan pengguna, bukan detektor OOD, yang tidak ada di jalur ini.
  6. MEL n=52 dari 36 pasien. Deskriptif saja, bukan klaim.

Data & reproduksi

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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support