YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
ECG Digitization Experiments
This repository contains archived PyTorch .pth checkpoints from ECG digitization research experiments (Kaggle competition).
About
These are model weights for ECG image-to-signal digitization - extracting ECG waveform values from paper ECG images.
Competition: ECG Image Digitization Challenge
Experiments Overview
| Experiment | Architecture | Description | Best SNR |
|---|---|---|---|
| v7 | EfficientNet-B4 | Early baseline | ~15 dB |
| v9 | EfficientNet-B4 | Improved training | ~16 dB |
| v10 | EfficientNet-B4 | Multi-scale features | ~17 dB |
| v10_1 | EfficientNet-B4 | Refinements | ~17 dB |
| v11 | EfficientNet-B4 | 1.5x scale | ~17 dB |
| v14 | ConvNeXt + SimDR | SimDR heatmap approach | ~18 dB |
| v15 | Per-Lead CNN | Per-lead extraction | ~18 dB |
| v16 | Per-Lead + BiLSTM | Temporal coherence | ~19 dB |
| v18 | Refiner Network | Post-processing refiner | ~19 dB |
| v19 | Augraphy Augmentation | Paper degradation aug | ~20 dB |
| v20 | Integral Regression | Integral loss | ~20 dB |
| v21 | GRU Refiner | GRU-based refinement | ~20 dB |
| v22 | ConvNeXt-Base + U-Net | Multi-scale fusion + Height Attention + BiLSTM | ~22 dB |
| v23 | V22 + DSNT | DSNT Sub-Pixel Head (Rank 3 technique) | ~22.35 dB |
| mixed | Various | Early mixed training | ~16 dB |
| mixed_v4 | Various | Mixed v4 | ~17 dB |
| mixed_v5 | Various | Mixed v5 | ~17 dB |
V23 Architecture (Best Model)
β ConvNeXt-Base Encoder β L3 + L4 multi-scale features
β‘ Feature Fusion (fine details + semantics)
β’ U-Net Decoder with skip connections
β£ Height Attention (learns vertical regions)
β€ BiLSTM (temporal coherence)
β₯ Conv1D + Linear β Sigmoid (V22 head)
β¦ DSNT Sub-Pixel Head (Rank 3 winner technique)
Directory Structure
βββ README.md
βββ v7/ # EfficientNet-B4 baseline
βββ v9/ # Improved training
βββ v10/ # Multi-scale features
βββ v10_1/ # Refinements
βββ v11/ # 1.5x scale
βββ v14/ # ConvNeXt + SimDR
βββ v15/ # Per-lead CNN
βββ v16/ # Per-lead + BiLSTM
βββ v18/ # Refiner network
βββ v19/ # Augraphy augmentation
βββ v20/ # Integral regression
βββ v21/ # GRU refiner
βββ v22/ # ConvNeXt-Base + U-Net
βββ v23/ # V22 + DSNT (BEST)
βββ mixed/ # Mixed training v1
βββ mixed_v4/ # Mixed training v4
βββ mixed_v5/ # Mixed training v5
βββ code/
βββ scripts/ # All training scripts
βββ notebooks/ # Kaggle inference notebooks
Checkpoint Format
Each .pth file contains:
model: Model state dictopt: Optimizer state dictepoch: Training epochsnr: Validation SNR (dB)mae: Mean Absolute Error (pixels)
Usage
import torch
# Load checkpoint
checkpoint = torch.load("v23/v23_epoch038.pth", map_location="cpu")
# Load model state
model.load_state_dict(checkpoint['model'])
# Check metrics
print(f"Epoch: {checkpoint['epoch']}")
print(f"SNR: {checkpoint['snr']:.2f} dB")
Key Files
v23/v23_epoch038.pth- Best V23 checkpoint (22.35 dB)v22/v22_best_snr.pth- Best V22 checkpointcode/scripts/train_v23.py- V23 training scriptcode/scripts/inference_v23.py- V23 inference scriptcode/notebooks/kaggle_v23_inference.ipynb- Kaggle submission notebook
License
Research use only. Please cite if you use these weights.
Framework
- PyTorch 2.x
- timm (ConvNeXt-Base encoder)
- albumentations (augmentation)
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support