You are on page 1of 5

1

Mjerenje pulsa pomo!u iOS aplikacije



Jasmin Ni"i!
student prvog ciklusa studija
Fakultet elektrotehnike
Tuzla, Bosna i Hercegovina
jasko.nisic@hotmail.com

Sadr!aj Razvoj medicinske opreme u dana!nje vrijeme, pored
razvoja odgovaraju"eg hardvera, sve vi!e se vezuje i za razli#ita
softverska rje!enja. Cilj je izrada preciznijih, ali i jeftinijih
instrumenata. Kako je mjerenje osnovnih parametara kardio-
vaskularnog sistema od velikog zna#aja za preventivu i lije#enje
raznih bolesti jedan od #esto mjerenih parametara je puls
sr#anog mi!i"a. U radu je opisan sistem za pra"enje sr#anog
pulsa realizovan kao aplikacija na Apple mobilnoj platformi.
Aplikacija komunicira sa senzorom ugra$ene kamere i flash
osvjetljenjem na mobilnom ure$aju i nakon provjere potrebnog
hardvera uspostavlja video sesiju za mjerenje. Softverska
implementacija realizovana je u programskom jeziku Objective-
C, kori!tenjem razvojnog okru%enja Xcode.

Klju!ne rije!i - Sr!ani puls; kamera; smartphone; iOS; Objective-
C; algoritmi;
I. UVOD
Princip rada ovakvih ure#aja zasniva se na $injenici da srce
pumpa krv oboga!enu kiseonikom iz plu!a u $itavo tijelo. Za
snabdijevanje organizma kiseonikom i hranljivim materijama
srce se u normalnim uslovima, kada je organizam u mirovanju,
kontrahuje 60 do 70 puta u minutu [1]. Puls predstavlja sr$ani
ritam (engl. Heart rate HR) i on se izra%ava brojem otkucaja
u minutu. Pri optere!enju organizma broj otkucaja srca raste.
Puls predstavlja dobar indikator fizi$ke spremnosti organizma.
&to je organizam u boljoj kondiciji to srcu treba manje truda i
manje otkucaja u minuti da pumpa krv u tijelo. Puls se
naj$e"!e mjeri ure#ajima koji detektuju pulsiranje arterijskih
krvnih sudova [3]. Iako pritisak slabi sa rastojanjem, on je
dovoljno jak da se mo%e osjetiti i na ekstremitetima. Na
primjer, otkucaje srca lako mo%emo osjetiti dodirivanjem vene
na ru$nom zglobu. Pored ovog tradicionalnog na$ina, razvijeni
su mnogi tehni$ki sofisticirani na$ini mjerenja sr$anog pulsa
koji se mogu sresti u literaturi [4]. Najpoznatiji sistem za
mjerenje parametara rada srca, pa i pulsa je
elektrokardiogram, EKG, koji pomo!u odgovaraju!ih senzora,
registruje elektri$nu aktivnost srca.
U radu je dat opis i manifestacija sr$anog pulsa sa medicinske
strane, a potom pregled naj$e"!e kori"!enih metoda za
mjerenje pulsa sa posebnim osvrtom na metod koji je kori"!en
u konkretnoj realizaciji. Razvoj tehnologije na dana"njem
nivou omogu!ava da se do istih rezultata mo%e do!i na vi"e
na$ina. Jedan od tih na$ina je i grafi$ki prikaz i mjerenje pulsa
primjenom odgovaraju!eg softvera i danas "iroko
rasprostranjenih mobilnih telefona. Akcenat je na primjeni
Apple mobilnih ure#aja (iPhone, iPod Touch), kojima se
instalira softver razvijen i opisan u ovom radu.
U zaklju$ku su razmatrane prednosti i mane ovog metoda
mjerenja, upore#eni rezultati virtuelnog i realnog instrumenta.
II. PRINCIP RADA
Fluktuacije krvi uzrokovane sr$anim kontrakcijama imaju
za posljedicu promjenu gustine krvi u tkivu. Ova $injenica
mo%e se iskoristiti za mjerenje pulsa. Potrebno je sa jedne
strane prsta postaviti jak izvor svjetlosti a sa druge strane
osjetljiv detektor svjetlosti. Elektri$ni signal na izlazu
srazmjeran je intenzitetu svjetlosti koja pada na detektor. Kada
do#e do kontrakcije srca pove!a!e se gustina krvi u prstu "to
dovodi do slabljenja svjetlosti koja prolazi kroz prst. Promjena
intenziteta detektovane svjetlosti dovodi do pojave
odgovaraju!ih impulsa na izlazu detektora [2]. Isti efekat
mo%e se ostvariti i kori"tenjem dana"njih smartphone-a koji
imaju dovoljno osjetljive kamere sa flash osvjetljenjem. Jedni
od takvih su i Apple mobilni ure#aji (iPhone, iPod Touch), za
koje je i namijenjena aplikacija iz ovog rada. Da bi se moglo
izvr"iti mjerenje dovoljno je pokrenuti aplikaciju i prst
prisloniti na kameru ure#aja. Aplikacija !e sama aktivirati
osvjetljenje koje je potrebno da bi senzor kamere mogao
registrovati promjenu boje prsta uzrokovanu promjenom
gustine krvi. Cijeli proces traje 30 sekundi, u "to je uklju$eno i
vrijeme potrebno za stabilizaciju slike i pode"avanje fokusa,
koje se naravno vr"i automatski kontrolisano od strane
operativnog sistema ure#aja. O$igledno da proces traje veoma
kratko, "to je zna$ajna prednost u odnosu na ostale metode
mjerenja sr$anog pulsa.
III. SOFTVERSKO RJE&ENJE
Aplikacija preko AVFoundation i CoreVideo frameworka
komunicira sa senzorom ugra#ene kamere i flash osvjetljenja i
nakon provjere da li ure#aj posjeduje sav potrebni hardver
(stariji iPhone i iPad ure#aji nemaju flashlight), uspostavlja
video session. Odabrani su minimalni zahtjevi za rezolucijom
jer kvalitet snimljene slike ne igra ulogu bitne su samo boje,
a one se sasvim dovoljno dobro razlikuju i pri minimalnoj
kvaliteti snimka.

Aplikacija hvata slike sa kamere frekvencijom 25 FPS i
obra#uje ih u realnom vremenu: izme#u svakog dohvata
informacija od senzora kamere vr"i se analiza i obrada
prethodno dohva!enih
2



Slika 1. Slika registrovana senzorom kamere sa uklju$enim flash
osvjetljenjem
podataka. Kako se svaka digitalna slika sastoji od tri
komponente, tj. tri matrice intenziteta odre#enih boja (crvene,
plave i zelene), aplikacija na raspolaganju i ima samo ove
podatke. Kako je plava komponenta gotovo jednaka nuli (zbog
izrazito crvene slike koja se snima), nju i zanemarujemo, a
peak sr$anog impulsa je definisan peakovima intenziteta
zelene i crvene boje (Sl. 2).


Slika 2. Intenziteti crvene i zelene boje na slici snimljenoj u toku jedne
sesije
Ve! na (Sl. 2) vidimo da se lokalni maksimumi i jedne i druge
krive nalaze na pribli%no istom mjestu, tj u pribli%no isto
vrijeme, "to potvr#uje ono ranije napisano, da peak sr$anog
impulsa mo%emo odrediti objedinjavanjem peak vrijednosti
ova dva intenziteta. Informacije o boji koje dobijamo u RGB
formatu mo%emo pretvoriti u ne"to mnogo zgodnije za
analizu: ako RGB vrijednosti konvertujemo u HSV (hue,
saturation, value) i pratimo samo promjenu nijanse (hue),
mo%emo mnogo jasnije upratiti razlike u frameovima. Hue
ozna$ava dominantnu talasnu du%inu boje, tj. dominantnu boju
i kre!e se u rasponu od 0 do 360 i najbolje oslikava male
promjene boje, "to upravo treba za ovu aplikaciju: promjene
boje su jednostavno golim okom neprimijetne.
Nakon konvertovanja RGB formata u HSV i snimanjem samo
hue vrijednosti dobijamo sliku odakle ve! jasnije mo%emo
vidjeti uzorak koji odgovara sr$anom impulsu (Sl. 3).



Slika 3. Promjena nijanse (hue) slike snimljene u toku jedne sesije
Da bismo dobili ravniju funkciju sa manje oscilacija mo%emo
primijeniti filter nepropusnik opsega sa jako uskim
nepropusnim opsegom kako bismo odbacili DC komponentu i
dobili "to je vi"e mogu!e glatku krivu (Sl. 4).

Slika 4. Filtriran signal promjene nijanse

Kori"tenjem ovih vrijednosti koje smo dobili filtriranjem i
snimanjem u buffer mo%emo prikazati na displeju promjenu
3

sr$anog impulsa, i odre#enim algoritmima pro$itati
informaciju o broju otkucaja u minuti. Zbog samog
operativnog sistema koji kontroli"e senzor kamere i sam
framework za video session, nismo uzimali sve vrijednosti od
po$etka do kraja sesije, nego vrijednosti od kako je
stabilizirana slika i pode"en fokus (koji je u ovom slu$aju
automatski i kontrolisan od strane operativnog sistema). Kod
ra$unanja broja otkucaja, jedna od opcija je da odredimo
prosje$nu vrijednost dobijene funkcije na intervalu od
stabiliziranja fokusa pa do kraja snimanja (u na"em
konkretnom slu$aju 15 sekundi), te onda sve vrijednosti koje
su manje od vrijednosti prosjeka pozitivnih ta$aka
elimini"emo (kako bismo uklonili potencijalni "um i ne%eljene
smetnje Sl. 5). Nakon toga pore#enjem svake vrijednosti sa
3 susjedne (ispred i iza trenutne) mo%emo dobiti stvarne
vrijednosti peakova. Napisano pseudo kodom to bi izgledalo
na sljede!i na$in:

for each value as vrijednosti[signal]
if value > tri_ ispred i value<tri_iza
peaks++;

Iz prilo%enog vidimo da je snimanje sr$anog impulsa tipi$an
kauzalan sistem, dok izra$un broja otkucaja predstavlja
akauzalan sistem, koji radi sa prethodno snimljenim
vrijednostima.


Slika 5. Snimljene vrijednosti pulsa: samo pozitivne vrijednosti (gore) i
samo pozitivne vrijednosti ve!e od prosjeka svih ta$aka (dole)
IV. KAUZALAN ALGORITAM ZA DETEKCIJU OTKUCAJA
Jo" jedan algoritam je implementiran i analiziran, a to je
kauzalan algoritam za detekciju otkucaja koji radi real time,
paralelno sa registrovanjem informacije sa senzora kamere na
na$in da detektuje prolazak karakteristike kroz ta$ku y=0, gdje
bi svaki prolazak zna$io jedan otkucaj. U ovom slu$aju pri
samom snimanju promjene boje prsta, pazili smo na pojavu
smetnji (zbog minimalnih pomjeranja prsta i sli$no) i sprije$ili
pojavu ne%eljenih peakova jednostavnim prozorskim filterom
propusnikom opsega. &irina prozora je 4 impulsa, tj. uzima 4
zadnje snimljene vrijednosti i trenutnu vrijednost poredi sa
njima: ukoliko je manja, ne!e je snimiti u buffer, odnosno
ne!e je prikazati. Pseudo kod bi izgledao na sljede!i na$in:

if ( snimljeno_uzoraka>5)
{
if(trenutna_vrijednost<buffer[n] or
trenutna_vrijednost<buffer[n-1] or
trenutna_vrijednost<buffer[n-2] or
trenutna_vrijednost<buffer[n-3])
trenutna_vrijednost=0;
}

"to je omogu!ilo jako $ist signal i dosta manje osjetljiv na
smetnje. Kako se radi u ovom slu$aju o kauzalnom sistemu,
brojanje i registracija peakova je mogu!a u realnom vremenu,
paralelno sa snimanjem novih vrijednosti. Kako smo ve! rekli,
prelazak iz negativnog dijela koordinatne ravni u pozitivni
zna$i jedan novi peak.

if ( trenutna_vrijednost>0 and
zadnja==prelaz_u_negativno)
{
otkucaji++;
zadnja=prelaz_u_pozitivno;
}
if ( trenutna_vrijednost<=0 and
zadnja==prelaz_u_pozitivno)
zadnja=prelaz_u_negativno;

Drugi algoritam se pokazuje kao ta$niji i efikasniji u slu$aju
da imamo dobro filtriran signal, bez ne%eljenih peakova blizu
stvarnih peakova koji ozna$avaju sr$ani impuls (uzrokovanih
pomjeranjem prsta, lo"om pozicijom prsta i sli$no), dobro je
otporan na nivo osvijetljenosti (intenzitet pritiska prsta na
so$ivo kamere). Prvi algoritam (akauzalni) se pokazao
efikasnijim u radu u uslovima lo"ije filtriranog signala, gdje
sam mo%e odlu$iti koji peak je zaista sr$ani impuls, i bolje
podnosi slabi "um u vidu fluktuacija intenziteta svjetla oko
apscise (dok kauzalni algoritam svaki prelazak iz negativnog u
pozitivni dio registruje kao novi sr$ani impuls, negledaju!i
okolne vrijednosti i sam intenzitet osvijetljenosti).
Na Sl. 6 i Sl. 7 nalaze se oblici krive u razli$itim fazama: na
Sl. 6 se nalazi izvorna kriva sa podacima dobivenim sa
senzora kamere i primijenjenim osnovnim filterom
nepropusnikom opsega radi eliminacije DC "uma. Na Sl. 7 se
nalazi kriva sa filtriranim podacima pomo!u prozorskom
4

pomi$nog filtera o kojem je ranije pisano. Jasno se vidi da se
nakon primjene ovog filtera za svaki sr$ani impuls de"ava
ta$no jedan prelazak krive preko apscise, "to omogu!ava
efikasno brojanje impulsa (brojanje ovakvih prelazaka). I na
kraju i grafi$ki je predstavljena usporedba kauzalnog i
akauzalnog algoritma u razli$itim uslovima (Sl. 8).
Snimanje i analiza krivih, uvid u efikasnost i rad algoritama su
vr"eni pomo!u programskog paketa Matlab.

Slika 6. Kriva snimljenog sr$anog impulsa

Slika 7. Kriva snimljenog sr$anog impulsa filtrirana pomi$nim prozorskim
filterom











Apliciran prozorski filter i
dovoljno jako pritisnut prst
Apliciran prozorski filter i
nedovoljno jako pritisnut/nemiran
prst


Slika 8. Usporedba algoritama pri razli$itim uslovima rada
V. ZAKLJU'AK
U radu su analizirana dva razli$ita algoritma koji
omogu!avaju mjerenje sr$anog pulsa primjenom Apple
mobilnih ure#aja.
Svaki od algoritama ima svoje prednosti i mane. Kauzalni
algoritam se pokazuje kao ta$niji i efikasniji u slu$aju da
imamo dobro filtriran signal, bez ne%eljenih peakova blizu
stvarnih peakova koji ozna$avaju sr$ani impuls (uzrokovanih
pomjeranjem prsta, lo"om pozicijom prsta i sli$no), dobro je
otporan na nivo osvijetljenosti (intenzitet pritiska prsta na
so$ivo kamere). Akauzalni algoritam se pokazao efikasnijim
u radu u uslovima lo"ije filtriranog signala, gdje sam mo%e
odlu$iti koji peak je zaista sr$ani impuls, i bolje podnosi slabi
"um u vidu fluktuacija intenziteta svjetla oko apscise (dok
kauzalni algoritam svaki prelazak iz negativnog u pozitivni
dio registruje kao novi sr$ani impuls, negledaju!i okolne
vrijednosti i sam intenzitet osvijetljenosti).
Za eventualnu modifikaciju mjernog sistema mogu!e je i!i u
pravcu izradu softverskog rje"enja koji objedinjava dobre
strane akauzalnog i kauzalnog algoritma, naravno uva%avaju!i
i daljnji razvoj hardvera mobilnih ure#aja, te "irenje aplikacije
i na druge operativne sisteme.
5

ZAHVALNICA
Projekat je realizovan kao samostalni studentski projekat,
a u cilju dalje obrade ove problematike autor !e istu temu
dodatno obraditi i u okviru zavr"nog rada na prvom ciklusu
studija iz predmeta Razvoj softvera pod mentorstvom dr. sc.
Amera Hasanovi!a, van. prof na Fakultetu elektrotehnike
Univerziteta u Tuzli, kome se autor zahvaljuje na podr"ci.
Autor tako#e duguje zahvalu za tehni$ku podr"ku dr. sc.
Damiru Ismailovi!u, docentu na Tehni$kom univerzitetu u
Minhenu.
LITERATURA
[1] R. Ani$i!, D. Kr$um, Monitor sr$anog pulsa, Stru$ni rad, Infoteh-
Jahorina , 2012.
[2] V. Drndarevi!, Personalni ra$unari u sistemima merenja i upravljanja,
Akademska misao, Beograd, 2003.
[3] R. Baican, D. Necsulescu, Applied Virtual Instrumentation, WIT Press
Publishing, 2000.
[4] G. Webster, Medical Instrumentation: Application and Design. 3rd Ed.
Philadelphia: W.B. Saunders Company, 1998.
[5] Maja Strgar Kure$i!, Kontrola boja - od percepcije do mjerenja, Katedra
za reprodukcijsku fotografiju, Univerzitet u Zagrebu







ABSTRACT
Today, development of medical equipment is more
dependent than ever on the different software concepts. The
main goal is production of precise and cheap instruments.
Since cardiovascular measurements have a big role in different
diseases prevention and treatment, one of the most commonly
used parameters is actually heart rate. This work describes
heart rate measuring system based on Apple mobile platform as
an iPhone application. The application interacts with a built-in
camera sensor and flashlight and starts a video session after
checking all necessary things about hardware. Software
implementation is done using Objective-C programming
language in Xcode integrated development environment.

HEART RATE MEASUREMENT USING iOS
APPLICATION
Jasmin Ni"i!







.

You might also like