Veiligheid op de Werkvloer
Juli 2013
Project Heartbeat
Automatische Analyse en Interpretatie van ECG
Opdrachtgever:
Dr.ir. W.B. Teeuw
Student:
D. Wonnink
Begeleider:
Dr.ir. W.J. Bonestroo
Saxion Kenniscentrum Design en Technologie
Veiligheid op de werkvloer is een initiatief van het kenniscentrum Design en Technologie van Saxion. Het project richt zich op de vraag hoe de veiligheid op de werkvloer te bevorderen met behulp van ambient technologie. Het gaat daarbij om persoonlijke veiligheid, een veilige omgeving en veilig gedrag. Het project is gestart op 1 januari 2011 en heeft een looptijd van vier jaar. De consortiumleden zijn Saxion, Universiteit Twente, Novay, Thales Nederland, Norma MPM, PANalytical, TenCate Protective Fabrics, Alten PTS en Noldus Information Technology. Daarnaast is er een wisselende groep van deelnemende bedrijven die bij gelegenheid deelneemt in het programmateam. Het project ontvangt subsidie van de Stichting Kennis Ontwikkeling HBO onder registratienummer RAAK PRO-2-013.
ISBN/EAN: n.v.t. Titel: Project Heartbeat Subtitel: Automatische Analyse en Interpretatie van ECG Auteurs: Dennis Wonnink en Wilco Bonestroo Projectreferentie: Uitgever: Saxion Kenniscentrum Design en Technologie Verschijningsplaats: Enschede Verschijningsdatum: 12-7-2013 Status document: V1.0
2
Samenvatting Voor het lectoraat Ambient Intelligence binnen het kenniscentrum Design en Technologie van Saxion in Enschede is er onderzoek gedaan naar het automatisch analyseren en interpreteren van ECG data. Er is onderzocht welke technieken beschikbaar zijn en of deze geschikt zijn voor de overkoepelende projecten Veiligheid op de Werkvloer en Saxshirt. Om te testen of de gekozen technieken daadwerkelijk geschikt zijn, is een demonstrator gecreëerd, waarin de technieken zijn toegepast software. Omdat het prototype van Saxshirt, tijdens het volbrengen van deze opdracht, nog niet voltooid was, is er ECG data van verschillende andere bronnen gebruikt om hiermee de demonstrator te kunnen ontwerpen, implementeren en uiteindelijk te kunnen testen. Voor het ontwikkelen van de demonstrator zijn in eerste instantie gegevens van het Roessingh1 uit Enschede gebruikt. De demonstrator kon deze gegevens inlezen en visueel weergeven. Later zijn hier technieken aan toegevoegd waardoor nauwkeurig de hartslag kon worden bepaald. Na het testen met de “mooie” data van het Roessingh, is er gebruikt van een Arduino bordje met een e-Health shield, waar ECG elektroden op konden worden aangesloten. Hier werd “minder mooie” data mee gecreëerd. De demonstrator is hier ook mee getest en bleek goed te functioneren. Echter, wanneer er met de elektroden werd bewogen kwamen er oninterpreteerbare signalen door. Hiervoor is een filter in de demonstrator geïmplementeerd die bepaald of de geschatte hartslag logisch is op basis van de voorgaande hartslagen.
1
http://www.roessingh.nl/
3
Voorwoord Dit rapport beschrijft de bevindingen van een zogenaamde “vrije opdracht” die Dennis Wonnink in het kader van de opleiding Informatica bij Saxion heeft gedaan. De opdracht was 5 studiepunten waard (5*28 = 140 uur) en de oorspronkelijke opdrachtomschrijving is als bijlage opgenomen in dit rapport. Dennis is student Informatica en was tijdens de uitvoering van dit project bezig met de afronding van zijn afstudeerproject bij Nedap in Groenlo. Tijdens de opdracht werd Dennis begeleid door Wilco Bonestroo. Wilco is docent bij de opleiding Informatica en is onderzoeker bij het lectoraat Ambient Intelligence bij het kenniscentrum Design & Technology. Wilco heeft zich voornamelijk gericht op het verkennende vooronderzoek. Dennis heeft zich zowel op het onderzoek als de op de implementatie van de demonstrator gericht. Dennis Wonnink en Wilco Bonstroo Enschede, Juli 2013
4
Inhoudsopgave Samenvatting ......................................................................................................................... 3 Inhoudsopgave ....................................................................................................................... 5 1.
2.
3.
4.
5.
Inleiding .......................................................................................................................... 6 1.1
Aanleiding ..................................................................................................................... 6
1.2
Saxshirt ......................................................................................................................... 6
1.3
Onderzoeksvragen ........................................................................................................ 6
Onderzoeksopzet: methodiek en aanpak .......................................................................... 7 2.1
Verkennend Literatuuronderzoek .................................................................................. 7
2.2
Implementatie Demonstrator ......................................................................................... 7
2.3
Rapportage .................................................................................................................... 7
Verkennend Literatuuronderzoek ..................................................................................... 9 3.1
Introductie in ECG ......................................................................................................... 9
3.2
Welke Analysemethodes zijn er voor ECG? ................................................................... 10
3.3
Geavanceerde analysemethoden .................................................................................. 11
Implementatie van de demonstrator ............................................................................... 13 4.1
Data Inlezen ................................................................................................................ 13
4.2
Datavisualisatie ........................................................................................................... 14
4.3
Toppen Bepalen ........................................................................................................... 15
4.4
Hartslag Bepalen ......................................................................................................... 17
4.5
Analyse van de Data vanuit Fysiotherapieproject ......................................................... 18
4.6
Analyse van de Data van het e-Health Bordje .............................................................. 18
Conclusies en aanbevelingen .......................................................................................... 21 5.1
Onderzoeksvragen ...................................................................................................... 21
5.2
Aanbevelingen ............................................................................................................. 22
Geciteerde werken ................................................................................................................ 24 Bijlage 1: Opdrachtomschrijving ............................................................................................ 25
5
1.
Inleiding
1.1 Aanleiding Dit rapport beschrijft de resultaten van het “Heartbeat” project. Dit project is uitgevoerd in opdracht van het lectoraat Ambient Intelligence binnen het kenniscentrum Design en Technologie van Saxion in Enschede. In het kader van het overkoepelende project Veiligheid op de Werkvloer en het project Saxshirt doet het kenniscentrum onderzoek naar verschillende technologieën die de veiligheid van personen kunnen verbeteren. Het lectoraat Ambient Intelligence richt zich hierbij in het bijzonder op sensoren en op de analyse van de gemeten data. Naast een verzameling andere sensoren
Figuur 1 Prototype van
beschikt het Saxshirt over ECG elektroden die verweven zijn in textiel.
Saxshirt
Om te verkennen wat we met gegevens uit dit soort sensoren zouden kunnen doen, is het huidige project gestart. In grote lijnen is het doel dus het verkennen van de mogelijkheden voor de automatische analyse en interpretatie van elektrocardiogram (ECG) signalen.
1.2 Saxshirt Het doel van het Saxshirt project is om een shirt te ontwikkelen waarmee verscheidene fysiologische verschijnselen van de drager kunnen worden meten, zonder dat deze drager daar hinder van ondervind. Op basis van de gemeten verschijnselen kan een inschatting gedaan worden naar de toestand van de drager, zoals zijn/haar vermoeidheid. Eén van de beoogde sensoren in het shirt bestaat uit drie elektroden die verweven zijn in de stof, en waarmee elektronische signalen kunnen worden gemeten. Op basis van dit soort signalen is het mogelijk om elektrische spieractiviteit te kunnen meten. Door dit soort elektroden rond het hart te plaatsen, kan de activiteit van de hartspier worden gemeten. Bij de start van het huidige project was er nog geen concreet prototype van het Saxshirt beschikbaar. Omdat vanuit het lectoraat Ambient Intelligence wel interesse was in de mogelijkheden van ECG, is er besloten om toch alvast te verkennen wat de mogelijkheden zijn bij het analyseren van ECG gegevens. Daarom hebben we besloten om ECG gegevens uit andere bronnen te zoeken, zodat er geen afhankelijkheid ontstaat ten opzichte van de oplevering van het prototype van het Saxshirt.
1.3 Onderzoeksvragen Om meer inzicht te krijgen in de automatische analyse en interpretatie van ECG signalen, wil het kenniscentrum Design en Technologie antwoord op de volgende vragen: 1. Wat is ECG? 2. Hoe wordt ECG gemeten? 3. Welke ECG analysemethoden zijn er? 4. Welke ECG analysemethoden zijn geschikt voor het Saxshirt? 5. Wat zijn mogelijke vervolgstappen voor de analyse van ECG signalen?
6
2. Onderzoeksopzet: methodiek en aanpak Het Heartbeat project bestond globaal gezien uit de volgende drie fasen: 1) verkennend literatuuronderzoek, 2) implementatie van demonstrator, en 3) rapportage.
2.1 Verkennend Literatuuronderzoek In eerste instantie hebben we een literatuurstudie gedaan naar de stand van zaken in het ECG vakgebied. Een aantal onderzoeksvragen konden direct worden beantwoord op basis van deze studie. Tevens hebben we de resultaten gebruikt als input voor de implementatie van de demonstrator. Op basis van de requirements vanuit het project, hebben we bepaald welke technieken geschikt zijn voor het Saxshirt. Resultaten van het onderzoek zijn beschreven in hoofdstuk 3 vanaf pagina 9 van dit rapport.
2.2 Implementatie Demonstrator De technieken die volgens het literatuuronderzoek bruikbaar waren voor ons project hebben we toegepast in een demonstrator. Op basis van de demonstrator is er een goed inzicht in de complexiteit en de haalbaarheid van de benodigde software voor ECG analyse. De implementatie van de demonstrator is beschreven in hoofdstuk 4 vanaf pagina 13 van dit rapport.
2.3 Rapportage In hoofdstuk 5 (
7
Conclusies en aanbevelingen) vanaf pagina 21 van dit rapport worden de bevindingen gerapporteerd, worden de onderzoeksvragen beantwoord, worden overige conclusies getrokken en worden aanbevelingen voor het vervolgstappen van het project gedaan.
8
3. Verkennend Literatuuronderzoek 3.1 Introductie in ECG Met een electrocardiogram (ECG, engels: electrokardiogram, EKG) kan de elektrische activiteit van het hart gemeten, gevisualiseerd en geïnterpreteerd worden. In rust is een hartspier negatief geladen. Door depolarisatie van omliggend weefsel worden de spiercellen positief geladen en beginnen samen te trekken: het hart “slaat”. Bij ECG wordt deze elektrische activiteit gemeten door elektroden op de huid te bevestigen. Op basis van een ECG kan iemands hartslag worden bepaald. Daarnaast kan een ECG worden gebruikt om lastig op te sporten medische afwijkingen aan het hart te detecteren op basis van de diagrammen. De techniek heeft overeenkomsten met electromyografie (EMG) waarbij de elektrische activiteit van skeletspieren wordt gemeten met behulp van naaldvormige elektroden die in de spier worden geprikt. ECG en Leads Een belangrijk en tevens verwarrend begrip binnen de ECG literatuur is het begrip “lead”. Het is verwarrend, want er zijn twee tamelijk verschillende interpretaties. In de ene interpretatie wordt met een lead een elektrode (eventueel met een snoertje) bedoeld. Als er een ECG-apparaat is en er moeten drie elektroden aangesloten worden op de patiënt, dan wordt er gesproken van een 3-lead systeem, moeten er 5 elektroden aangesloten worden dan is er sprake van een 5-lead system, enzovoort. De 12-lead methode is de meest uitgebreide en deze wordt gebruikt voor gedetailleerde analyse van het hart. De 5-lead methode is makkelijker af te nemen en is tegenwoordig de norm. De 3-lead methode is nog eenvoudiger af te nemen en ook gemakkelijker te interpreteren. Deze methode kan dan ook worden gebruikt bij bijvoorbeeld noodgevallen of tijdens operaties, maar ook bij minder kritische toepassingen, zoals tijdens het sporten2. Tot zover is het aardig duidelijk, maar nu komt de spraakverwarring. Met een lead wordt ook een pad tussen twee elektroden bedoeld. Bij ECG wordt de elektrische spanning gemeten die optreedt bij het samentrekken van spieren. Spanning is een verschil en er wordt altijd tussen twee punten gemeten. Het ene punt noemen we negatief en het andere positief. We noemen een signaal positief als het in de richting van de positieve elektrode gaat. In Figuur 2 betekent een positief signaal dus dat er een golf (samentrekking) in de richting van de zwarte pijl gaat. Een negatief signaal gaat precies de andere kant op. Figuur 2 Drie elektroden met 1 lead 2
http://en.ecgpedia.org/wiki/Basics
9
Het verwarrende is dat er voor één lead in principe slechts twee elektroden nodig zijn. Een systeem met twee elektroden wordt een rhythm strip genoemd en kan worden gebruikt voor het bepalen van basale functies, zoals het aantal slagen per minuut of de regelmaat van de hartslag. Een dergelijk systeem kan verbeterd worden door een extra referentie-elektrode toe te voegen. Deze wordt de aarde (ground) elektrode genoemd. Het bijzondere van een 3-lead systeem (plus, min, aarde) is dat over het algemeen slechts 1 lead word gemeten, met behulp van drie elektroden. In theorie is het mogelijk dat drie elektroden drie verschillende paden trekken, dus met een 3-lead systeem kunnen 3 leads gemeten worden. Er worden dan drie verschillende richtingen van de elektrische activiteit gemeten, dit geeft een gedetailleerder beeld van de werking van het hart. In dit rapport zullen we de term lead verder zoveel mogelijk vermijden. Als we van een 3-lead systeem spreken, dan bedoelen we een systeem met twee of drie elektroden die slechts 1 lead meet. De elektrische activiteit van het hart levert slechts hele kleine spanningen op. Op standaard ECG papier komt 10 mm (1 cm) overeen met 1 mV, dus met 1/1000 Volt. Bij het meten van een hartslag wordt er in de orde van grote van enkele millivolts gemeten. Dit is dus honderden of zelf duizenden malen zwakker dan bijvoorbeeld de spanning van een grote batterij (12 V) of die van het lichtnet (230 V). Omdat zulke kleine spanningen gemeten worden, wordt dit signaal gemakkelijk verstoord. Er kan al ruis optreden wanneer andere grote spieren, zoals de borstspieren, samentrekken. Echter ook apparatuur die elektromagnetische signalen opwekken, zoals mobiele telefoons of het lichtnet kunnen verstoringen teweeg brengen. Het is dus belangrijk dat de patiënt rustig ligt en niet beweegt. Ook is het belangrijk dat de elektroden extreem zorgvuldig worden bevestigd [1]. Zo wordt er onder
Figuur 3 Bevestiging van de elektroden
andere geadviseerd om de huid te scheren en om dode huidcellen te verwijderen voordat de elektroden worden aangebracht. De elektroden moeten stevig worden vastgemaakt met plakkers. Daarnaast zijn er systemen voor in ziekenhuizen, waarbij de elektroden zichzelf vastzuigen met behulp van luchtdruk. Ook hebben elektroden een beperkte houdbaarheidsdatum en moeten na verloop van tijd dus vervangen worden.
3.2 Welke Analysemethodes zijn er voor ECG? In eerste instantie werden ECG metingen direct op papier getekend, zodat een arts deze grafieken kon analyseren en interpreteren. Word een meeting met meerdere elektroden tegelijk gedaan, dan is het mogelijk om verschillende leads tegelijk te meten en weer te geven in meerdere grafieken. Het
Figuur 4 ECG signaal op papier
interpreteren van dergelijke grafiek is geen triviale activiteit en vereist een gedegen medische training [1].
10
Met de komst van digitale computers werd het mogelijk om het digitale ECG signaal automatisch te analyseren. Een van de eerste stappen die gedaan moet worden om data goed lees- en interpreteerbaar te maken is het filteren van de meetgegevens [2]. Zo zit er in het gemeten signaal vaak een verstorende hoge frequentie van de het lichtnet van 50
Figuur 5 Verwerking van digitale ECG signalen
Hz. Een eenvoudige laag-doorlaat-filter (lowpass-filter) zorgt ervoor dat dit soort signalen weg gefilterd worden uit het oorspronkelijke signaal. Ook komt het voor dat de gemiddelde waarde in een grafiek na verloop van tijd veranderd. Als dit soort data grafisch wordt weergegeven, dan is na verloop van tijd zichtbaar dat de grafiek een stukje omhoog of omlaag is geschoven. Dit wordt een “wandering baseline” genoemd en dit kan worden opgelost door hoog-doorlaat-filter te gebruiken, zodat lage frequenties uit de data worden gefilterd. Door bovenstaande filters te combineren kan een zogenaamd banddoorlaatfilter (bandpass filter) worden gemaakt [3]. Zodra de signalen eenmaal zijn gefilterd, is de detectie van een hartslag tamelijk triviaal. Er kan bijvoorbeeld een grenswaarde worden bepaald en worden gedetecteerd wanneer het signaal boven deze grenswaarde uitkomt.
Figuur 6 Hartslag bepalen
3.3 Geavanceerde analysemethoden Naast het automatisch detecteren van basale gebeurtenissen, zoals een hartslag, is het mogelijk om op basis van de vorm van de grafiek gedetailleerde uitspraken over het hart doen. In het ideale geval heeft de grafiek een typische curve zoals in Figuur 7 te zien is. Voor het bepalen van de hartslag kan alleen naar het QRS –complex gekeken worden, maar ook de verhoudingen tussen de andere gedeeltes van de curves geven informatie over de werking van het hart. Dergelijke interpretaties zijn niet meer op te lossen met de DSP oplossingen die in de voorgaande paragraaf zijn besproken. De technieken om bepaalde kenmerken in een grafiek te ontdekken worden “Feature Extraction Techniques” genoemd. Karpagachelvi, Arthanari en
Figuur 7 Een normale ECG curve (Bron: Wikipedia)
11
Sivakumar geven een mooi overzicht van de mogelijke technieken die er tegenwoordig zijn [4]. Ze beoordelen de verschillende technieken op basis van eenvoud, nauwkeurigheid en voorspelbaarheid. De technieken die ze beschrijven zijn aardig complex. Wavelet transformaties is een veel gebruikte methode. Bij wavelet transformaties wordt een basisvorm aangegeven en de analysemethode bepaald vervolgens hoe de gegeven basisvorm moet transformeren om tot een goede fit te komen met de meetgegevens. Support Vector Machines (SVM) en Artificial Neural Networks (ANN) zijn ook een veelgebruikte methode waarmee een computer getraind kan worden in het herkennen van patronen op basis van trainingsgegevens. Op basis van de classificatie van Karpagachelvi, Arthanari en Sivakumar hebben we twee technieken gekozen die op alle vlakken hoog scoren. Deze technieken zijn dus relatief eenvoudig, nauwkeurig en hebben goede voorspellende eigenschappen. Het gaat om de technieken beschreven door Zhao en Zhan [5] en door Jen en Hwang [6]. Zhao en Zhan gebruikten een combinatie van twee technieken: wavelet transformaties en support vector machines. In het artikel worden de technieken op een dusdanig abstract niveau beschreven, dat deze niet als richtlijn voor een implementatie kan worden gebruikt. Jen en Hwang gebruiken de cepstrum (inverse van Fourier transformatie van het spectrum) gecombineerd met neurale netwerken. Ook dit artikel is op een dusdanig abstract niveau beschreven dat deze lastig als richtlijn voor een implementatie kan dienen. Ondanks dat bovenstaande technieken erg interessant zijn, hebben we binnen dit project besloten om deze niet te gebruiken, omdat 1) de implementatie erg veel extra research nodig heeft en dit past niet binnen de scope van de huidige opdracht, en 2) omdat de data die we vanuit het Saxshirt verwachten van een dermate slechte kwaliteit zal zijn (door het gebruik van losse elektroden en door het bewegen van de personen) dat gedetailleerde analyse van het signaal niet mogelijk is.
12
4. Implementatie van de demonstrator Om te kunnen laten zien dat de gebouwde demonstrator werkte was er voorbeeld data uit een ECG systeem nodig. In eerste instantie hebben we dat vanuit drie verschillende bronnen geprobeerd te krijgen, om een zo compleet mogelijk beeld te krijgen van mogelijke data. De eerste bron was data van revalidatiecentrum Het Roessingh 3 uit Enschede. De tweede bron was ECG data uit het project van fysiotherapiestudenten Jeffrey Greuliker en Niki Hovenkamp. De derde bron was een eigen e-Health bordje in combinatie met een Arduino.
4.1 Data Inlezen Om dit project te beginnen is er gestart door de data die
100
3029.2832
geleverd is door het Roessingh te analyseren. Dit is gedaan
101
3025.5332
omdat de werkelijke data van het sensorshirt nog niet
102 ...
3033.9861
beschikbaar is. Figuur 8 bevat een voorbeeld van een gedeelte van de data die we vanuit het Roessingh hebben gekregen. Deze data is op 1024 Hz gemeten, dit houdt in dat er 1024 metingen
Figuur 8 ECG data
in één seconden zijn gedaan. Het eerste getal is een meetpunt, het tweede getal is de gemeten meetwaarde van dat specifieke punt. Wat het ECG telkens doet is het constant meten van de stroompjes binnen het menselijk lichaam. Deze data is ingelezen door middel van een methode die in het java programma is verwerkt. De volgende code zorgt ervoor dat een lijst (ArrayList
()) wordt gevuld met de waarden die in de tweede colom staan aangegeven.
Figuur 9 Methode voor het inlezen van de input data
3
http://www.roessingh.nl/
13
4.2 Datavisualisatie Nu de data ingelezen is (en beschikbaar is in een lijst) is er gekeken naar het visualiseren van de data. Hiervoor is het framework jFreeChart gebruikt. Na het toevoegen van de data aan de grafiek kwamen de volgende grafieken naar voren:
Figuur 10 Ruwe en ongefilterde data van Roessingh
In eerste instantie leek de grafiek in Figuur 10 niet heel nauwkeurig maar toen er verder werd ingezoomd op bijvoorbeeld 4 hartslagen kwam onderstaande grafiek naar voren. Hier zijn de hartslagen duidelijk te zien. Kijkend naar deze data is te concluderen dat deze data tamelijk “mooi” is. Dit houdt in dat er nauwelijks verstorende ruis in de data aanwezig is. De enige verstoring die aanwezig is, is de verhoogde waarde aan het einde van de grafiek in Figuur 10.
Figuur 11 Ingezoomde grafiek met 4 hartslagen
14
4.3 Toppen Bepalen Na het tonen van de grafieken is er gekeken hoe de toppen bepaald konden worden. Eerst is de totale grafiek “plat” gedrukt (generaliseren), dit houdt in dat de grafiek op een nul lijn komt te liggen. Vervolgens was het de bedoeling gebruik te maken van een threshold (grens), deze grens gaf aan dat wanneer er boven deze grens een grafiek zichtbaar was dat dit betekende dat er een hartslag gemeten werd. Later is er van deze methode afgestapt omdat het generaliseren de grafiek begon te misvormen, dit heeft waarschijnlijk te maken met de “smooth” lijn die werd gebruikt. Een smooth lijn werd gebruikt om een gemiddelde waarde te tonen over een groot aantal metingen, hierdoor was het mogelijk de originele data te generaliseren omdat deze smooth lijn meeloopt, ook wanneer deze omhoog loopt. Uiteindelijk is gebruik gemaakt van drie aparte lijnen:
Smooth,
Tops,
Average.
De smooth lijn is hetzelfde als in het vorige model, alleen nu berekend over een nog grotere periode. De tops-lijn gaat van top naar top, echter met deze methode is het niet mogelijk om het specifieke toppunt te bepalen. Vandaar dat de Smooth en Tops lijnen gemiddeld werden waardoor de Average lijn ontstond. De average lijn loopt, in de meeste gevallen, boven de lijn die tussen twee hartslagen liggen, hierdoor is nu wel op een accurate manier te berekenen wat de toppen zijn.
Figuur 12 Grafiek met Average, Smooth en Toppen
15
Nu de lijnen getekend zijn en er een bruikbare “average” lijn beschikbaar is kunnen de toppen berekend worden. Het berekenen van de toppositie is op de volgende manier gedaan. Wanneer de hartslaglijn boven de average lijn komt (1), wordt dit punt onthouden. De hartslaglijn maakt vervolgens de top en kruist de average lijn vervolgens voor de tweede keer (2). Ook dit punt wordt onthouden, deze twee waarden worden vervolgens gemiddeld en daaruit volgt vervolgens het meetpunt van de top (3). De meetpunten zijn vervolgens opgeslagen in een lijst. Het berekenen van de toppen is gedaan met onderstaande methode: Figuur 13 Toppen berekenen
Figuur 14 Methode voor het berekenen van de toppen
Deze lijst is vervolgens gebruikt om de toppen te tekenen. Om dit te doen is er een verticale lijn getekend op het punt waar het programma heeft berekend waar zich een top bevind. Hieronder zijn de uitkomsten van het tekenen van de toppen te zien.
16
Figuur 15 Grafiek met Toppen-indicatie
4.4 Hartslag Bepalen Nu er een lijst beschikbaar is met de hartslagen over een bepaalde dataset is het mogelijk om de hartslag te bepalen. Hieronder staan de gegevens en de berekeningen om de hartslag te berekenen:
Roessingh data is op 1024 Hz gesampled
1024 Hz betekent 1024 samples in 1 seconde
Hartslag is het aantal hartslagen per minuut
1 minuut = 60 seconden
Aantal samples in 1 minuut = 60 * 1024 samples.
Aantal samples in 1 minuut = 61440 samples.
Om de hartslag te bepalen moet er berekend worden hoeveel toppen er tussen elke 61440 samples zitten. De hartslag wordt nu op de volgende manier berekend: De average lijst, die al doorlopen wordt om de toppen te berekenen, zal tegelijkertijd ook kijken of er een veelfout van 1024 * (een in te stellen tijdsinterval) metingen zijn geweest. Is dit het geval dan zal het aantal toppen door worden gegeven. Als het de eerste keer is kan er gelijk worden gezegd wat de hartslag per minuut is (rekening houdend met het in gestelde tijdsinterval). Is dit niet het geval dan word er eerst het vorige aantal toppen vanaf gehaald om zo het correcte aantal toppen te krijgen voor het huidige interval. Ook daarna wordt er weer een hartslag berekend rekening houdend met het ingestelde tijdsinterval.
17
De aanroep wordt in het laatste “if-statement” van Figuur 14 weergegeven. Deze methode zorgt voor het berekenen van de hartslag:
Figuur 16 Methode voor het berekenen van de hartslag
4.5 Analyse van de Data vanuit Fysiotherapieproject Bij het project van fysiotherapiestudenten Jeffrey Greuliker en Niki Hovenkamp is er gebruik gemaakt van ECG apparatuur die binnen Saxion beschikbaar was. Ondanks dat de data goed kon worden gevisualiseerd in de software die bij de apparatuur hoorde, was het niet mogelijk om de data te exporteren naar een leesbaar bestandsformaat. Uit het project van Jeffrey en Niki kwam in ieder geval al duidelijk naar voren dat ECG signalen erg gemakkelijk worden verstoord. Omdat we de data uit dat project niet konden inlezen, hebben we die data niet gebruikt om de demonstrator te testen.
4.6 Analyse van de Data van het e-Health Bordje Naast de nette data van het Roessingh is ook getest met een databordje waar aparte sensoren aan gekoppeld waren. Dit leverde data op met meer ruis (zie Figuur 20 en Figuur 21). Echter zijn de resultaten niet anders. Met de gemaakte software konden alsnog de drie lijnen worden bepaald en dus ook de hartslag. Wel was te zien dat wanneer er bewogen werd met het bordje of er werd aan de sensoren gezeten dat de hartslag niet correct was. De hartslag schoot dan soms van 80 hartslagen per minuut naar 300
Figuur 17 e-Health Biometric Sensor Platform
hartslagen per minuut. Daarom is er een “check” ingebouwd die kijkt naar het vorige aantal hartslagen. In het programma is het mogelijk een percentage in te voeren die wordt gebruikt om een “radius” te kunnen berekenen om het vorige aantal hartslagen per minuut. Op die manier worden uitschieters (van 80 naar 300 hartslagen per minuut) gefilterd. Het programma zal dan “--“ weergeven wat staat voor een incorrecte meting/hartslag. Onderstaande code zorgt
Figuur 18 Data volgens de specificatie
18
hiervoor:
Figuur 19 Extreme waarden voor hartslag controle
Figuur 20 Ruwe data uit e-Health bordje
In de grafiek in Figuur 20 is op een derde van de tijd te zien wat er gebeurt als de persoon een klein beetje beweegt. De rode lijn geeft de ruwe meting weer en deze heeft dan uitschieters naar de maximale (5) en naar de minimale (0) waarden en dan blijft de meting een tijdje hoog of laag. Op die momenten is het signaal dermate verstoord dat er geen hartslag meer te detecteren is.
19
Figuur 21 Detail van Ruwe Data uit e-Health Bordje
In Figuur 21 is een detail te zien van data uit het e-Health bordje. Dit is een voorbeeld van data die niet extreem verstoord is. Ondanks de verstoring in deze data (snelle op-en-neergaande lijn) zijn de hartslagen nog duidelijk te onderscheiden. Ook het algoritme in de demonstrator kan op basis van deze signalen probleemloos de hartslag bepalen.
20
5. Conclusies en aanbevelingen In dit hoofdstuk worden in eerste instantie de onderzoeksvragen uit het eerste hoofdstuk beantwoord. Vervolgens worden aanbevelingen gedaan op basis van de ervaringen die tijdens het huidige project zijn opgedaan.
5.1 Onderzoeksvragen 1. Wat is ECG? Bij ECG worden met behulp van elektroden die op de huid zijn bevestigd elektrische spanning die door de hartspier wordt veroorzaakt gemeten. Op basis van verschillende analyses van de gemeten waarden kunnen uitspraken over het functioneren van het hart worden gedaan.
2. Hoe wordt ECG gemeten? ECG wordt gemeten door middel van elektroden die worden bevestigd op het lichaam van een proefpersoon. ECG’s kunnen worden gemaakt met een 3-, 5- of 12 leads systeem. Hoe meer leads (elektrodes), hoe meer filmpjes tegelijkertijd gemaakt kunnen worden. Hoe meer leads (richtingen) je gebruikt in een meting, hoe meer details je over de activiteit van het hart krijgt.
3. Welke ECG analysemethoden zijn er? Eenvoudige analyses kunnen worden gedaan op basis van traditionele DSP filters. Met dit soort filters kan je basale features, zoals de hartslag, de regelmaat van de hartslagen, enz. worden gemeten. DSP technieken zijn betrouwbaar gebleken en hebben weinig last van verstoringen in de gemeten data. De demonstrator is gemaakt op basis van dit soort filters. Als meer gedetailleerde analyses noodzakelijk zijn, kan er worden gekeken naar de geavanceerde analysetechnieken die zijn beschreven door Karpagachelvi, Arthanari en Sivakumar [4]. Uit die studies kwam naar voren dat er methoden zijn die voornamelijk positieve eigenschappen hebben. De methoden van Zhao & Zhan [5] en Jen & Hwang [6] zijn relatief eenvoudig, nauwkeurig en bevatten goede voorspellende eigenschappen.
4. Welke ECG analysemethoden zijn geschikt voor het Saxshirt? Traditionele DSP technieken zijn bijzonder geschikt voor het detecteren van basale features zoals de hartslag. De technieken zijn gemakkelijk te implementeren en zijn tamelijk robuust voor verstoorde data. Zodra de data extreem verstoord wordt, dan wordt het simpelweg onmogelijk om er nog hartslagen in te detecteren. De in de literatuur gevonden geavanceerdere methoden zijn niet gebruikt i.v.m. de extra tijd die erin gestopt zou moeten worden om dit te implementeren. Binnen dit project hebben we besloten dat het erg veel risico zou opleveren om dergelijke technieken in een demonstrator te bouwen. Ook zijn de geavanceerdere methodes vooral bedoeld voor complexere medische analyse van het hart op basis van systemen met meerdere leads en van nette metingen. Daarnaast is het zeer waarschijnlijk de data die van het Saxshirt met losse elektroden komt slechter zal zijn dan die van systemen met vastgeplakte elektroden. Het is de verwachting dat er erg veel ruis en verstoring in het signaal zal komen en dat deze data niet geschikt is voor een gedetailleerdere analyse van het signaal.
21
5. Wat zijn mogelijke vervolgstappen voor de analyse van ECG signalen? Tijdens het huidige project zijn eerste ervaringen opgedaan met het werken met ECG apparatuur. Eén van de meest opvallende zaken is de hoeveelheid ruis en verstoring die in ECG data zit. Zolang een persoon stilzit of -ligt is er mooie data, maar zodra een persoon begint te bewegen is het signaal zo verstoord dat er weinig informatie uit te halen valt. De eerste vervolgstap is het meten van de data uit het prototype van het Saxshirt. Op basis van een visuele inspectie van het gemeten signaal, kan dan worden geconcludeerd of deze data bruikbaar is of niet. Op basis van de opgedane kennis kan worden (her)overwogen of van het gebruik van een ECG sensor in het Saxshirt verstandig is. Ervaring met de Demonstrator Tijdens het implementeren en testen van de demonstrator kwam naar voren dat er relatief gemakkelijk ruis en verstoringen in ECG signalen kunnen optreden. Ondanks de ruis die het Arduino-databordje standaard meegeeft (een netspanningfrequentie van 50 Hz) was het toch nog goed mogelijk om hier een goede hartslag te kunnen bepalen. Ook wanneer deze verstoringen wel te groot zouden zijn, dan zijn er bekende en beproefde DSP methoden (banddoorlaatfilter) om dat op te lossen. Uit gesprekken met Ronald Tangelder kwam ook naar voren dat dergelijke filters tamelijk gemakkelijk met behulp van analoge schakelingen kunnen worden geïmplementeerd, zodat de software dit niet meer hoeft op te lossen. De verstoringen die worden veroorzaakt door het bewegen van de proefpersoon zorgden voor grotere problemen. De data was soms zo verstoord dat er niets meer overbleef van het oorspronkelijke signaal en dat de hartslagen dan echt niet meer te onderscheiden waren. Om de demonstrator toch correcte waarden te laten tonen is er een filter ingebouwd. Met dit filter is het mogelijk om extreme waarden te laten negeren. Dit filter controleert of het vorige aantal hartslagen binnen een bepaalde marge overeenkomt met de nieuwe hartslag. Is dit een te grote uitschieter dan zal deze hartslag worden genegeerd. Een combinatie van het gemaakte programma met het sensorshirt zal alleen werken wanneer een testpersoon stil zal zitten en de sensoren nauwelijks bewegen. Het shirt is echter ook gemaakt om hartslagen te detecteren wanneer er gesport of gewerkt gaat worden. Op basis van de ervaringen tot nu toe is de verwachting dat de data dermate verstoord zal zijn, dat het bijna onmogelijk is om een hartslag te bepalen op basis van ECG sensoren.
5.2 Aanbevelingen
ECG is een extreem gevoelige meetmethode. Als slechts de hartslag van de proefpersoon moet worden bepaald, dan zijn er waarschijnlijk robuustere methoden. Zo zijn er sensoren die met behulp van pulse oximetry de saturatie (zuurstof in het bloed) meten. Dergelijke sensoren zijn veel stabieler en minder te beïnvloeden door omgevingsfactoren zoals beweging. Bij pulse oximetry wordt de absorptie van licht met verschillende golflengtes gemeten om de hoeveelheid hemoglobine en deoxyhemoglobine (hemoglobine zonder zuurstof) te bepalen. Ook kan hiermee worden bepaald wanneer er een grote hoeveelheid bloed door de anderen stroomt, m.a.w. wanneer er een hartslag
22
plaatsvindt. Tijdens de Sense of Context conferentie4 was er bijvoorbeeld een lezing met de titel “Systems in Foil: Printed Organic Electronics - From device to sensor applications” door Herman Schoo van het Holst Centre5. In de presentatie liet hij een “Smart Bandage” zien. Dit bestond uit een stukje folie dat licht kon geven (flexible OLED) en metingen kon doen en daardoor de saturatie kon meten met resultaten die vergelijkbaar waren met commerciële pulse-oxiometers.
Het Holst Centre heeft overigens ook een “ECG-patch6” ontwikkeld die lijkt op de toepassing in het Saxshirt. Misschien is het verstandig contact met het Holst Centre op te nemen.
De huidige software die geschreven is werkt alleen bij redelijk nette data, waarin nog een hartslag zichtbaar is. Wanneer er wordt bewogen met de apparatuur, dan is dat meestal niet meer het geval. Om het goed te laten werken zullen er filters ingebouwd moeten worden die ruis van bewegende sensoren en/of kastje en/of testpersoon kunnen onderdrukken zodat er een nette stroom van data uit voort komt. Een mogelijke oplossing, die nog niet is uitgeprobeerd, is om fourier analyses toe te passen op de data, zodat je alleen frequenties overhoudt die mogelijk een (onderdeel van een) hartslag representeren.
Kijk bij de keuze van apparatuur naar de mogelijkheden om data uit te wisselen en te exporteren. Ook is het handig als data realtime naar een computer/microcontroller kan worden gestuurd.
De Arduino7 heeft via de standaard programmeeromgeving (Processing) geen strakke sampling-rate. Het is wel mogelijk om een strakke sampling-rate te krijgen, maar dan moet de Arduino met behulp van assembly geprogrammeerd worden. Op die manier kunnen de hardware-timers van de Arduino worden gebruikt. Een strakke timing is essentieel voor de correcte verwerking van data. De meeste DSP filters vereisen namelijk een constante en strakke sampling-rate.
4
http://www2.fhi.nl/senseofcontact/
5
http://www.holstcentre.com/
6
http://www.holstcentre.com/Home/NewsPress/NewsList/ECG_patch.aspx
7
http://www.arduino.cc/
23
Geciteerde werken [1] Nursecom Educational Technologies, „An ECG Primer,” 2004. [Online]. Available: www.skillstat.com/sites/default/files/library/ssecgPrimer.pdf. [Geopend 2013]. [2] C. V. Silva, A. Philominraj en C. del Rio, „A DSP Practical Application: Working on ECG Signal, Applications of Digital Signal Processing,” 2011. [Online]. Available: http://www.intechopen.com/books/applications-of-digital-signal-processing/a-dsppractical-application-working-on-ecg-signal. [Geopend 2013]. [3] P. A. Lynn en W. Fuest, Inleiding Digitale Signaalbewerking met Maple en Matlab, J. Andriessen, Red., Baarn: HB Uitgevers, 2004. [4] S. Karpagachelvi, M. Arthanari en M. Sivakumar, „ECG Feature Extraction Techniques - A Survey Approach,” International Journal of Computer Science and Information Security, vol. 8, nr. 1, pp. 76-80, 2010. [5] Q. Zhao en L. Zhan, „ECG Feature Extraction and Classification Using Wavelet Transform and Support Vector Machines,” in International Conference on Neural Networks and Brain, Bejing, 2005. [6] K.-K. Jen en Y.-R. Hwang, „ECG Feature Extraction and Classification using Ceptrum and Neural Networks,” Journal of Medical and Biological Engineering, vol. 28, nr. 1, pp. 31-37, 2007. [7] J. Parak en J. Havlik, „ECG Signal Processing and Heart Rate Frequency Detection Methods,” in
Mezinarodni conf. Technical Computing, Prague, 2011.
24
Bijlage 1: Opdrachtomschrijving
Project Heartbeat Opdracht voor vrije keuzeruimte opleiding Informatica bij Saxion Hogescholen Student:
Dennis Wonnink
Opdrachtgever:
Kenniscentrum Design and Technology Lectoraat Ambient Intelligence
Begeleider:
Wilco Bonestroo
Studiebelasting:
5 ECTS (5x28 = 140 uur)
De hartslag van een persoon kan worden gemeten met behulp van electrocardiography (ECG). In het “Sensorshirt” project zijn dergelijke sensoren verwerkt in textiel. Om de resultaten van die sensoren te kunnen vergelijken met de huidige state of the art, willen we inzicht verkrijgen in de (bestaande) algoritmes die je op ECG data kan toepassen. De opdracht bestaat uit de volgende drie fasen: 1) verkennend literatuuronderzoek, 2) implementatie en testen algoritmen, en 3) rapportage en presentatie resultaten. Het verkennend literatuuronderzoek (ongeveer 4 weken) richt zich op de stand van zaken m.b.t. ECG analysemethoden. Het doel is om te bepalen wat geschikte en haalbare analyses zijn (bijv. Fourier, Wavelet, Neurale netwerken, enz.) en wat je daarmee zou kunnen afleiden uit de meetgegevens. De precieze onderzoeksvragen worden opgesteld in samenspraak met de begeleider. Het eindproduct van deze fase is een onderzoeksrapport. De tweede fase (ongeveer 10 weken) bestaat uit het schrijven of gebruiken van algoritmes voor de analyse van ECG data. Het lectoraat levert de benodigde ECG data aan (aangeleverd door fysiotherapie-studenten). De requirements worden in samenspraak met de begeleider vastgesteld na oplevering van het onderzoeksrapport uit de eerste fase. Het eindproduct van deze fase is de geschreven en de gevonden software. In de laatste fase (ongeveer 2 weken) worden de bevindingen gedocumenteerd en gepresenteerd en wordt de software opgeleverd. De eindproducten van deze fase zijn: het eindrapport, opgeleverde software en de gegeven presentatie. Het project loopt van maandag 18 maart t/m 5 juli (dus 16 weken, gemiddeld 8 uur per week). Het eindcijfer is het gemiddelde van de beoordeling van bovengenoemde vijf eindproducten.
25