Applicazioni pratiche di deep learning/Analisi elettrocardiogramma (ECG)

Il modello gianlab/swin-tiny-patch4-window7-224-finetuned-ecg-classification che si trova su Hugging Face qui : https://huggingface.co/gianlab/swin-tiny-patch4-window7-224-finetuned-ecg-classification è stato ottenuto addestrandolo su Google Colab dopo avere importato le immagini degli elettrocardiogrammi ECG da qui : https://www.kaggle.com/datasets/erhmrai/ecg-image-data/data . Il modello consente di individuare l'esito dell'ECG con un'accuratezza del 100% . Le possibili classificazioni ottenute sono:

N: Normal beat - Battito normale
S: Supraventricular premature beat - Battito prematuro sopraventricolare
V: Premature ventricular contraction - Contrazione ventricolare prematura
F: Fusion of ventricular and normal beat - Fusione del ventricolare e battito normale
Q: Unclassifiable beat - Battito inclassificabile
M: myocardial infarction - Infarto miocardico


Ci sono 3 possibilità per utilizzarlo :

1) Collegarsi con la pagina del modello https://huggingface.co/gianlab/swin-tiny-patch4-window7-224-finetuned-ecg-classification, cliccare su "Drag image here or click to browse from your device" e caricare l'immagine dell'ECG . Si otterrà una classificazione dell'ECG con la relativa accuratezza che va dall'1% al 100% .

2) Creare su Colab un nuovo file e incollare il seguente codice :

!pip install -q transformers
from transformers import pipeline

pipe = pipeline("image-classification", "gianlab/swin-tiny-patch4-window7-224-finetuned-ecg-classification")

Caricare l'immagine dell'ECG sul server tramite il seguente codice:

from google.colab import files 
files.upload()

Per visualizzare l'immagine dell'ECG si può utilizzare il seguente codice :

from pathlib import Path
from PIL import Image
path_im = Path('ECG.jpg')
image = Image.open(path_im)
image


Per ottenere la classificazione dell'ECG digitare :

 pipe(image)

con il seguente risultato :

[{'score': 1.0, 'label': 'N'},
{'score': 1.9628176417541e-08, 'label': 'S'},
{'score': 1.3693452594054634e-08, 'label': 'M'},
{'score': 7.3142287781990944e-09, 'label': 'F'},
{'score': 1.8336371310212485e-09, 'label': 'Q'}]


Quindi nel caso specifico si tratta di un normale ECG con un'accuratezza del 100% .

3) Invece di caricare la foto sul server di Colab si può importarla direttamente dal web con :

from PIL import Image
import requests

url = 'https://www.mio_sito.it/ECG.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image
modifica