ECG Arrhythmia Classifier (12-Lead DS-CNN)
Lightweight Depthwise Separable 1D CNN model for 12-lead ECG arrhythmia classification. Trained on the Shaoxing People's Hospital (SPH) dataset — 45,152 ECG recordings.
Model Details
| Property | Value |
|---|---|
| Architecture | Depthwise Separable 1D CNN |
| Parameters | ~280K |
| TFLite (INT8) size | ~350 KB |
| Input | (1, 2500, 12) — 10s @ 250Hz, 12 leads |
| Output | 49-class multi-label sigmoid |
| Android latency | ~12ms (mid-range device) |
Conditions (49 SNOMED-CT labels)
1AVB, 2AVB, 2AVB1, 2AVB2, 3AVB, ABI, ALS, APB, AQW, ARS, AVB, CCR, CR, ERV, FQRS, IDC, IVB, JEB, JPT, LBBB, LBBBB, LFBBB, LVH, LVQRSAL, LVQRSCL, LVQRSLL, MI, MIBW, MIFW, MILW, MISW, PRIE, PWC, QTIE, RAH, RBBB, RVH, STDD, STE, STTC, STTU, TWC, TWO, UW, VB, VEB, VFW, VPB, VPE
Usage (Android TFLite)
val classifier = EcgClassifier(context)
val predictions = classifier.classify(ecgData12x2500)
// predictions: List<EcgPrediction> (prob > 0.5)
Training
python dataset/train_ecg_model.py
Project
Part of the Hayatın Ritmi wearable ECG project — TÜBİTAK 2209-A research.