QRS_MORPH

Transkrypt

QRS_MORPH
AKADEMIA GÓRNICZO-HUTNICZA
im. St. Staszica w Krakowie
WEAIiE, Katedra Automatyki
Laboratorium Biocybernetyki
Przedmiot: Przetwarzanie sygnałów w systemach diagnostyki medycznej.
Temat projektu: Wyznaczanie morfologii uderzeń serca.
QRS_MORPH
Spis treści:
1. ABSTRAKT........................................................................................................................................................... 2
2. WSTĘP................................................................................................................................................................... 2
3. REZULTATY......................................................................................................................................................... 4
4. WNIOSKI I PODSUMOWANIE......................................................................................................................... 4
5. LITERATURA....................................................................................................................................................... 5
6. ODNOŚNIKI.......................................................................................................................................................... 5
7. DODATEK A: OPIS INFORMATYCZNYCH PROCEDUR........................................................................... 6
8. DODATEK B: SPIS ZAWARTOŚCI DOŁĄCZONEGO NOŚNIKA...............................................................9
Wykonali: Bartosz Beza, Piotr Figiel
V rok Informatyka Stosowana
konsultant: dr hab. inż. Piotr Augustyniak
Wersja 1.0
Kraków, styczeń 2010.
-1-
1. Abstrakt
Projekt QRS_MORPH jest modułem systemu automatycznej analizy elektrokardiogramów. Moduł
ma za zadanie określanie źródła pobudzenia uderzenia serca na podstawie morfologii
reprezentantów klas QRS. Moduł stworzono z użyciem środowiska Matlab. Do badania zagadnienia
oraz testów użyto sygnałów z bazy MIT-BIH Arrhythmia Database[6]. Uzyskano zadowalające
rezultaty w przypadku pacjentów z brakiem dużej ilości patologii skurczów serca co pokazuje, że
użycie prostych metod detekcji jest uzasadnione i poprawne. Nie udało się połączyć w całość
wszystkich modułów systemu.
2. Wstęp
a) Cele i założenia projektu.
Zadanie automatycznego określania morfologii wykrytych klas zespołów QRS jest jednym
z ważniejszych zadań w elektrokardiografii. Określając morfologię zespołów QRS system jest
w stanie określić pochodzenie tego zespołu przez stwierdzenie czy występują prawidłowe
pobudzenia nadkomorowe czy nieprawidłowe komorowe oraz ich ilości. W przypadku
komorowych rytmów zastępczych patologią objęty jest węzeł SA, w przypadku nadmiarowych
komorowych rytmów, patologią objęty jest mechanizm zastępczych generatorów rytmu.
Występowanie zespołów komorowych może być także wynikiem uszkodzenia przewodnictwa serca
[1].
Realizacja projektu polega na zaimplementowaniu algorytmu określającego morfologię zespołów
QRS - prawdopodobne źródło pobudzenia. Wynikiem ma być przyporządkowanie odpowiedniej
klasie jednej z czterech cech jakościowych: zespół nadkomorowy SV (1)1, zespół komorowy V(5),
zespół inny nie możliwy do określenia (13), artefakt omyłkowo wykryty jako zespół QRS (0).
b) Dyskusja dostępnych rozwiązań.
Zadanie detekcji morfologii zespołów QRS wymaga określenia zestawu parametrów w pewnej
N-wymiarowej przestrzeni, gdzie N to ilość tych parametrów [2]. Parametry powinny być dobrane
w taki sposób aby maksymalnie rozróżniały przypadek zespołów komorowych od nadkomorowych.
Powszechnie przyjętym kryterium podziału jest długość zespołu QRS gdzie przyjmuje się że
zespoły krótsze niż 100 ms są nadkomorowe, natomiast dłuższe niż 130 ms są komorowe. Jako
kolejny parametr można przyjąć maksymalną prędkość sygnału, gdzie dla zespołu SV będzie ona
dużo większa niż dla V [1]. Innymi możliwymi do zastosowania parametrami mogą być funkcje
amplitudy QRS, pola powierzchni pod krzywą analizowanego fragmentu, wyznaczenie środka
1
W nawiasach przedstawione zostały numery kodowe poszczególnych pobudzeń zgodne z konwencją i zapisami
w bazie MIT-BIH
-2-
ciężkości kształtu analizowanego zespołu, policzenie współczynnika kształtu, momentów
centralnych przebiegu lub widma. W literaturze pojawiają się także próby wykorzystania
transformacji Karhunena-Loeve'go w celu redukcji wektora cech do wektora o mniejszej liczbie
nieskorelowanych elementów lub dekompozycja sygnału EKG z użyciem teorii falek. Posiadając
wektor parametrów opisujących zespół QRS, musi on być porównany z pewnym wzorcowym
sygnałem danego typu lub musi zostać poddany progowaniu, które jednoznacznie przydzieli sygnał
do pewnej klasy. Porównania z wzorcem może następować w wyniku wyliczenia wzajemnej
korelacji elementów lub na przykład w wyniku policzenia odległości pomiędzy wektorami
reprezentującymi zespół QRS który rozpoznajemy a wzorcowym zespołem zapisanym w systemie.
Połączeniem tych dwóch rozwiązań jest metoda wykorzystująca odległość Mahalanobisa. Metoda
ta zwana także ważoną odległością euklidesową, uwzględnia przy porównywaniu dwóch wektorów,
informacje zarówno o wariancjach składowych wektora cech ale także o ich wzajemnej korelacji.
Wektor parametrów zespołu QRS można także rozważyć jako wektor wejściowy odpowiednio
przygotowanej sieci neuronowej.
c) Zarys ogólny proponowanego rozwiązania.
Rozwiązania zastosowane w module QRS_MORPH musiały zachować kompatybilność
z pozostałymi modułami systemu, czego konsekwencją była ograniczona możliwość dostępu do
pełnego zakresu informacji o analizowanym sygnale EKG.
W ramach projektu przebadano szereg parametrów możliwych do wyliczenia z dostępnych na
etapie przetwarzania informacji. Parametry, które poddane zostały testom to między innymi:
długość QRS, prędkość sygnału, moc sygnału, wartość skuteczna sygnału, wartość pola
powierzchni pod krzywą QRS, centralne momenty od 1 do 4 stopnia (wraz z parametrami
wykorzystującymi momenty jak współczynnik skośności czy kurtoza) zarówno dla przebiegu
w dziedzinie czasu jak i policzone z widma sygnału. Ponadto przetestowano wyliczanie parametru
obwodu i pola powierzchni trójkąta tworzonego przez wykryte punkty QRS oraz wzajemnego
stosunku powyższych. Przeprowadzone próby i wyliczone statystki wskazały, że większość
wyliczanych parametrów źle rozróżniała przyjęte rodzaje pobudzeń. Wybrano jedynie dwa
parametry: długość QRS oraz kurtozę z przebiegu sygnału QRS będącą miara spłaszczenia rozkładu
K=
wartości cechy. Kurtoza dana jest wzorem:
4
−3 gdzie
4
4 to moment centralny
czwartego rzędu a  4 to odchylenie standardowe. Próg dla długości zespołu QRS przyjęty został
zgodnie z informacjami zaczerpniętymi z literatury, natomiast dla kurtozy przeprowadzono proces
maksymalizacji ilości poprawnie wykrytych zespołów QRS w funkcji wartości progu.
Przyjęto że komunikacja pomiędzy modułami będzie miała miejsce z wykorzystaniem pliku
w formacie XML. Przyjęty format pliku pozwala na łatwe zapisanie posiadanych ilości informacji
-3-
wraz z podziałem hierarchicznym dla poszczególnych parametrów. Co więcej pliki w formacie
XML w łatwy sposób można przenosić między różnymi platformami co wymaga jedynie
zapewnienia poprawności kodowania znaków całego pliku. Odczyt i zapis plików XML
realizowany jest z wykorzystaniem gotowego toolboxa do programu Matlab[8].
3. Rezultaty
Przeprowadzono testy z wykorzystaniem zapisów bazy MIT-BH. Porównywano kody wykrytych
przez moduł QRS_MORPH morfologii z zapisami w bazie. Tabela 1 przedstawia otrzymaną
skuteczność rozwiązania. Warto zwrócić uwagę na bardzo słaby wynik rozpoznawania dla zapisu
107.
Tabela 1. Wyniki testów modułu QRS_MORPH. Wyniki detekcji morfologii QRS były porównywane z zapisami w bazie
MIT-BIH.
Numer zapisu z bazy MIT-BH
Skuteczność rozpoznania
[%]
100
98.5
101
99.5
106
92.0
107
1.5
108
53.0
109
71.5
118
46.8
207
71.1
231
99.7
4. Wnioski i podsumowanie
Otrzymano dobre wyniki rozpoznawania średnio na poziomie około 70%. Wynik średni jest bardzo
zaniżony z powodu rezultatów rozpoznania dla sygnału 108 z bazy MIT-BH. Sygnał ten sygnałem
o specyficznej morfologii, zespoły komorowe przyjmują różne kształty z powodu bloku serca, stąd
też przyjęty próg detekcji dla standardowego pobudzenia komorowego kompletnie nie zdaje
egzaminu w tym przypadku. Co więcej baza rozróżnia więcej możliwości klasyfikacji. Oprócz
podziału na zespoły komorowe (PVC) i pobudzenia nadkomorowe (Normal) baza wyróżnia także
LBBB i RBBB czyli bloki prawej i lewej odnogi pęczka Hissa. W projekcie bloki zostały
sprowadzone do klasyfikacji jako Normal.
Z otrzymanych wyników wnioskować można, że istnieje możliwość bardzo prostego
rozpoznawania i klasyfikacji zespołów QRS z użyciem prostych do policzenia parametrów.
-4-
Większym problemem jest sam dobór progowania wybranych parametrów. Problem ten mógłby
zostać rozwiązany przez użycie odpowiednio przygotowanej i nauczonej sieci neuronowej. Co
więcej sieć neuronowa mogłaby zostać nauczona rozpoznawania przypadków nietypowych,
w których schorzenia serca powodują powstanie bardzo nietypowych zespołów QRS lub nałożenie
się wielu rodzajów pobudzeń na siebie.
5. Literatura
[1]
Piotr Augustyniak,
“Przetwarzanie
sygnałów
elektrodiagnostycznych”,
Uczelniane
wydawnictwo Naukowo-Dydaktyczne, Kraków 2001
[2]
S.H Rappaport, L. Gillick, G.B Moody, R. G. Mark, „QRS Morphology Classification
Quantitative Evaluation of Different Strategies”, Computers in Cardiology 1982, 33-38.
[3] Philip de Chazal, Maria O’Dwyer, and Richard B. Reilly, „Automatic Classification of
Heartbeats Using ECG Morphology and Heartbeat Interval Features ”, IEEE TRANSACTIONS ON
BIOMEDICAL ENGINEERING, VOL. 51, NO. 7, JULY 2004
[4]JCTB Moraes, MO Seixas, FN Vilani, EV Costa, „A Real Time QRS Complex Classification
Method using Mahalanobis Distance”, Escola Politécnica da Universidade de São Paulo, São Paulo,
SP, Brazil
[5] F Chiarugi, D Emmanoulidou, I Tsamardinos, IG Tollis, „Morphological Classification Using
Similarity Features and a Two-Phase Decision Tree”, University of Crete, Computer Science
Department, Heraklion, Crete, Greece
[6] IvayloIChristov, „Real time electrocardiogram QRS detectionusing combined adaptive
threshold”, BioMedical Engineering OnLine, BioMedical Engineering OnLine 2004, 3:28
doi:10.1186/1475-925X-3-28
6. Odnośniki
[7] http://www.physionet.org/physiobank/database/mitdb/
[8] http://www.mathworks.com/matlabcentral/fx_files/4278/1/xml_toolbox-3.1.2_matlab-6.5.zip
-5-
7. DODATEK A: Opis informatycznych procedur
morph_det.m
Główna funkcja detekcyjna.
Argumenty:
ecg – sygnał ekg
sampling_frequency – częstotliwość próbkowania
q – numer próbki załamka q badanego zespołu QRS
s – numer próbki załamka s badanego zespołu QRS
Wyjście:
morphology_code – numer kodowy wykrytego rodzaju zespołu QRS, 1
Normal, 5 PVC, 13 Unknown, 0 NotQrs
morph_det.m
Skrypt
wywołujący
funkcję
detekcyjną
dla
danych
przesyłanych
między modułami w pliku PSSDM_shared.xml
Argumenty: Wyjście:
zapis w PSSDM_shared.xml wartości kodu morphology_code dla
poszczególnych klas i uderzeń serca
Zależności:
wymagane: morph_det.m,
dane z modułów (PSSDM_shared.xml ):
QRS_DET,
QRS_CLASS,
-6-
QRS_WAVE
readTestData.m
Funkcja ładująca dane za bazy MIT-BH oraz modułu QRS_DET
Argumenty:
record_id – numer sygnału z bazy MIT-BH
Wyjście:
M – sygnały EKG
annot – wektor anotacji
annot_time – wektor czasu wystąpienia anotacji
Q – wektor numerów kolejnych załamków q
R – wektor numerów kolejnych załamków r
S – wektor numerów kolejnych załamków s
Dodatkowe informacje:
funkcja została napisana w oparciu o skrypt Roberta Tratinga,
poniżej komentarz z tego skryptu:
% This programm reads ECG data which are saved in format 212.
% (e.g., 100.dat from MIT-BIH-DB, cu01.dat from CU-DB,...)
% The data are displayed in a figure together with the
% annotations.
% The annotations are saved in the vector ANNOT, the
% corresponding times (in seconds) are saved in the vector
% ATRTIME.
% The annotations are saved as numbers, the meaning of the
% numbers can be found in the codetable "ecgcodes.h" available
% at www.physionet.org.
% ANNOT only contains the most important information, which is
% displayed with the program rdann (available on
% www.physionet.org) in the 3rd row.
% The 4th to 6th row are not saved in ANNOT.
-7-
%
created on Feb. 27, 2003 by
%
Robert Tratnig (Vorarlberg University of Applied
%
Sciences)
%
(email: [email protected]),
%
%
algorithm is based on a program written by
%
Klaus Rheinberger (University of Innsbruck)
%
(email: [email protected])
testy.m
Skrypt
testujący
działanie
wykrywania
z
pominięciem
pliku
PSSDM_shared.xml
Argumenty: Wyjście:
Wypisanie w konsoli programu Matlab ilości poprawnie rozpoznanych
zespołów QRS podane w procentach
Zależności:
wymagane pliki:
readTestData.m,
morph_det.m
-8-
8. DODATEK B: Spis zawartości dołączonego nośnika
•
ADD – dodatki
•
•
qrs_det.zip – zestaw przykładowych wyników działania modułu QRS_DET
SRC – pliki źródłowe projektu:
•
morph_det.m – skrypt z funkcją wykonującą detekcję morfologii QRS
•
qrs_morpg.m – skrypt uruchomieniowy wykonujący detekcję morfologii QRS z danych
dostarczonych z innych modułów projektu za pomocą pliku PSSDM_shared.xml
•
readTestData.m – funkcja odczytująca dane testowe z bazy MIT-BIH oraz projektu
QRS_DET autorstwa Tomasza Kozery i Pawła Rębisza
•
testy.m – skrypt pozwalający wykonać detekcję QRS z danych z modułu QRS_DET bez
użycia pliku PSSDM_shared.xml
•
LIB – biblioteki:
•
XML_Toolbox.zip – toolbox programu Matlab pozwalający na odczyt i zapis plików
XML
•
DOC – dokumentacja oraz załączniki:
•
raport-QRS_MORPH-Beza-Figiel.pdf
•
PSSDM_struktury.doc – opis struktur danych
•
PSSDM_shared.XML – przykładowy plik XML
-9-

Podobne dokumenty