95
Univerza v Ljubljani Fakulteta za ra ˇ cunalni ˇ stvo in informatiko David Koren Aplikacija za uˇ cenje igranja basov diatoniˇ cne harmonike DIPLOMSKO DELO VISOKO ˇ SOLSKI STROKOVNI ˇ STUDIJSKI PROGRAM PRVE STOPNJE RA ˇ CUNALNI ˇ STVO IN INFORMATIKA Mentor: viˇ s. pred. dr. Borut Batagelj Asistent: as. Bojan Klemenc Ljubljana 2013

Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Embed Size (px)

Citation preview

Page 1: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Univerza v Ljubljani

Fakulteta za racunalnistvo in informatiko

David Koren

Aplikacija za ucenje igranja basov

diatonicne harmonike

DIPLOMSKO DELO

VISOKOSOLSKI STROKOVNI STUDIJSKI PROGRAM PRVE

STOPNJE RACUNALNISTVO IN INFORMATIKA

Mentor: vis. pred. dr. Borut Batagelj

Asistent: as. Bojan Klemenc

Ljubljana 2013

Page 2: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 3: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Rezultati diplomskega dela so intelektualna lastnina avtorja in Fakultete za ra-

cunalnistvo in informatiko Univerze v Ljubljani. Za objavljanje ali izkoriscanje

rezultatov diplomskega dela je potrebno pisno soglasje avtorja, Fakultete za racu-

nalnistvo in informatiko ter mentorja.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

Page 4: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 5: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 6: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 7: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Izjava o avtorstvu diplomskega dela

Spodaj podpisani David Koren, z vpisno stevilko 63060131, sem avtor di-

plomskega dela z naslovom: Aplikacija za ucenje igranja basov diatonicne

harmonike

S svojim podpisom zagotavljam, da:

• sem diplomsko delo izdelal samostojno pod mentorstvom vis. pred. dr.

Boruta Batagelja,

• so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek

(slov., angl.) ter kljucne besede (slov., angl.) identicni s tiskano obliko

diplomskega dela

• soglasam z javno objavo elektronske oblike diplomskega dela v zbirki

”Dela FRI”.

V Ljubljani, dne 2. julija 2013 Podpis avtorja:

Page 8: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 9: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Kazalo

Povzetek

Abstract

1 Uvod 1

2 Pregled nacinov ucenja diatonicne harmonike 3

2.1 Klasicni nacini ucenja diatonicne harmonike . . . . . . . . . . 4

2.2 Racunalniski programi za ucenje diatonicne harmonike . . . . 7

3 Obogatena resnicnost 11

3.1 Uvod v obogateno resnicnost . . . . . . . . . . . . . . . . . . . 11

3.2 Uporaba obogatene resnicnosti . . . . . . . . . . . . . . . . . . 12

3.3 Ucenje igranja glasbenih instrumentov z uporabo obogatene

resnicnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Uporabljena orodja 23

4.1 Razvojno okolje Xcode in programski jezik Objective C . . . . 23

4.2 Orodje Cubase . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3 Virtualni instrument AUSampler . . . . . . . . . . . . . . . . 27

5 Analiza metod zaznave basne tipkovnice diatonicne harmo-

nike 29

5.1 Neprimerni nacini zaznave basne tipkovnice . . . . . . . . . . 29

Page 10: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

KAZALO

5.2 Detekcija oznake z uporabo odprtokodne programske knjiznice

OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6 Predstavitev obogatene resnicnosti z uporabo vmesnika OpenGL 43

6.1 Smer stiskanja ali raztezanja harmonike . . . . . . . . . . . . . 45

6.2 Prijem ustrezne tipke . . . . . . . . . . . . . . . . . . . . . . . 45

6.3 Prijem naslednje tipke . . . . . . . . . . . . . . . . . . . . . . 47

7 Podatkovni del aplikacije 49

7.1 Zapis podatkov o prstnih prijemih v datoteki MIDI . . . . . . 50

7.2 Zapis podatkov o smeri stiskanja meha v datoteki MIDI . . . . 52

8 Virtualni instrument za predvajanje zvoka diatonicne har-

monike 53

8.1 Arhitektura virtualnega instrumenta za predvajanje datoteke

MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8.2 Predstavitev datoteke MIDI v aplikaciji . . . . . . . . . . . . . 57

9 Sinhronizacija predvajane pesmi s prikazom obogatene re-

snicnosti 59

10 Aplikacija za ucenje igranja basov diatonicne harmonike 63

10.1 Glavno okno aplikacije . . . . . . . . . . . . . . . . . . . . . . 64

10.2 Nastavitve predvajanja skladbe . . . . . . . . . . . . . . . . . 65

10.3 Nastavitve prikaza obogatene resnicnosti . . . . . . . . . . . . 67

11 Moznosti izboljsav in razsiritev 71

11.1 Zaznavanje prstov s pomocjo barv ali oznak . . . . . . . . . . 71

12 Sklepne ugotovitve 73

Page 11: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Povzetek

Ucenja igranja glasbenega instrumenta se obicajno lotimo s pomocjo glas-

benega ucitelja. V kolikor tega ne storimo obstaja velika verjetnost, da se

naucimo napacnega igranja. Za ucenje igranja glasbenih instrumentov ob-

stajajo racunalniski programi ter aplikacije, ki na zaslon izrisujejo pravilne

prijeme tipk, vendar pa imajo velikokrat skupno pomanjkljivost, saj ne vse-

bujejo informacij pravilnega vrstnga reda igranja. V tej diplomski nalogi

je bila razvita aplikacija za tablicni racunalnik Apple iPad, ki s pomocjo

obogatene resnicnosti, nauci uporabnika pravilnega igranja basnega dela di-

atonicne harmonike. Najprej je predstavljena obogatena resnicnost s primeri

uporabe na razlicnih podrocjih. Sledi predstavitev uporabljenih orodij. V

nadaljevanju se osredotocimo na problem detekcije tipk oziroma basne tip-

kovnice diatonicne harmonike s pomocjo racunalniskega vida. Po raziskavi

obstojecih tehnologij, je bila uporabljena detekcija oznake z uporabo od-

prtokodne programske knjiznice za racunalniski vid OpenCV. Po detekciji

je predstavljen se izris obogatene resnicnosti. Posvetiti se je potrebno tudi

prednostim izbora pesmi v zapisu formata protokola MIDI. Proti koncu na-

loge je podrobno razlozen graficni vmesnik aplikacije. Pred zakljuckom so

izpostavljene moznosti izboljsave aplikacije.

Kljucne besede:obogatena resnicnost, virtualni instrument, ucenje igranja glasbila, diatonicna

harmonika, OpenCV, detekcija oznake, racunalnkiski vid

Page 12: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 13: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Abstract

Learning to play a musical instrument is usually tackle with the help of a

music teacher. For learning purposes there already exist computer programs

and applications that help the user in learning process. Many programs

have a disadvantage of not showing the correct finger order while playing

an instrument. In this thesis work we developed an application for an Ap-

ple iPad tablet, which teaches the user how to play the bass notes on the

diatonic accordion. The presented information is based on the techonolgy

called augmented reality. First are presented examples of augmented real-

ity applications in various fields of use. Followed by a presentation of the

programs and tools used in the development. In the following we focus on

the problem with detection of the keys on the diatonic accordion. Among

available technologies the marker detection algorithm based on open source

library for coumputer vision OpenCV is being used. Then the outline of

augmented reality is presented. Moving along the thesis work presents the

advantages of MIDI protocol for saving all the data needed in the applica-

tion. Before the completion of the thesis work reader will get to know the

possible improvements of final implemented application.

Key words:augmented reality, virtual instrument, music instructor, diatonic accordion,

OpenCV, marker detection, computer vision

Page 14: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 15: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Seznam uporabljenih kratic in

simbolov

• AR (Augmented Reality) – obogatena resnicnost

• CV (Computer Vision) – racunalniski vid

• IDE (Interface Development Environment) – razvojno okolje

• GUI (Graphic User Interface) – graficni uporabniski vmesnik

• MIDI (Musical Instrument Digital Interface) – digitalni vmesnik glas-

benega instrumenta

• CHT (Circle Hough Transform) – Houghova krozna transformacija

• PNG (Portable Network Graphics) – prenosljiva spletna grafika

• FPS (Frames Per Second) – stevilo slik na sekundo

• WAVE (Waveform Audio File Format) – format datoteke z zvocnim

zapisom

• RGBA (Red Green Blue Alpha) – rdeca zelena modra prosojnost

• HUD (Head Up Display) – prosojni ekran za prikaz obogatene resnicnosti

Page 16: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 17: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 1

Uvod

Igranja diatonicne harmonike sem se naucil pri zasebnem ucitelju. Kot po-

znavalca instrumenta me velikokrat zmoti napacno igranje basov diatonicne

harmonike, kar tudi izda harmonikasa samouka, ki se je naucil napacnega

igranja. Zato smo v diplomski nalogi naredili aplikacijo, ki uporabnika nauci

pravilnega igranja basov diatonicne harmonike, s cimer harmonikas dodatno

popestri igrano pesem. Proces ucenja temelji na tehnologiji obogatene re-

snicnosti.

Pri razvoju aplikacije so bile preizkusene razlicne tehnologije za razpo-

znavo objektov s pomocjo racunalniskega vida, ki so se izkazale za nepri-

merne. Kot najprimernejso tehnologijo smo izbrali zaznavo oznake z uporabo

odprtokodne programske knjiznice OpenCV. Oznako kvadratne oblike, ki jo

aplikacija zazna, namestimo poleg basne tipkovnice harmonike. Pred samim

razvojem je bilo potrebno opraviti podrobno raziskavo obstojecih programov,

ki s pomocjo obogatene resnicnosti ucijo igranja razlicnih glasbil. Hkrati

smo predstavili vse razlicne nacine ucenja diatonicne harmonike. Poleg same

predstavitve obogatene resnicnosti aplikacijo dopolnimo tudi z implemen-

tacijo virtaulnega instrumenta sposobnega reprodukcije originalnega zvoka

diatonicne harmonike.

1

Page 18: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 19: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 2

Pregled nacinov ucenja

diatonicne harmonike

Diatonicna harmonika se je razvila iz ustne harmonike leta 1821. Izumi-

telj obeh pa je Nemec Ludwig Buschmann [1]. Kmalu je postala ljudski

instrument in tak status uziva se danes.

V splosnem harmonike delimo na skupini diatonicnih ter kromaticnih har-

monik. Pomembna razlika med njima je v nacinu raztezanja meha, saj se pri

diatonicnih harmonikah zaigrani ton tipke spreminja glede na stiskanje ali

raztezanje meha, medtem ko pri kromaticnih harmonikah ostaja isti. Po-

membna razlika med tema dvema vrstama harmonik je ta, da kromaticna

harmonika pokrije vse tone ter lestvice, medtem ko pri diatonicni harmoniki

temu ni tako. Tako obstajajo razlicne uglasitve diatonicnih harmonik, pri

katerih se za isti nivo zvisa ali zniza intonacija vseh tipk. Igranje na razlicno

uglasenih diatnicnih harmonikah pa ostaja enako, le melodija zveni v drugih

durovskih visinah. Pri trivrstnih diatonicnih harmonikah so poznane sledece

durovske kombinacije: G-C-F, Gis-Cis–Fis, A-D-G, B-Es-As, H-E-A, C-F-B,

Cis-Fis-H ter D-G-C. Se enkrat ponovimo, da je pri razlicnih uglasitvah di-

atonicnih harmonik nacin igranja enak.

Danasnje diatonicne harmonike se v osnovi ne razlikujejo vec tako, kot so

se v preteklosti. V Sloveniji je trenutno najbolj priljubljen model trivrstne

3

Page 20: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

4POGLAVJE 2. PREGLED NACINOV UCENJA DIATONICNE

HARMONIKE

diatonicne harmonike (slika 2.1), s priblizno 40 tipkami na melodicni desni

polovici ter 11 tipkami na levi basni polovici. Ta model je uporabljen tudi

v nasi nalogi. V praksi basno stran imenujemo leva stran ali leva polovica,

saj nanjo igramo z levo roko. Melodicno stran pa imenujemo desna stran ali

desna polovica.

Slika 2.1: Model trivrstne diatonicne harmonike.

2.1 Klasicni nacini ucenja diatonicne harmo-

nike

Sledi pregled klasicnih nacinov ucenja diatonicne harmonike brez racunalniskih

programov.

Page 21: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

2.1. KLASICNI NACINI UCENJA DIATONICNE HARMONIKE 5

2.1.1 Ucenje diatonicne harmonike po posluhu

Pri ucenju igranja na diatonicno harmoniko po posluhu ni nobene potrebe

po poznavanju glasbene teorije. Ucenje igranja poteka tako, da ucitelj zaigra

pesem in nato ucencu razlozi prstne prijeme. Ucencu pri ucenju pomagajo

tudi posnetki ucene skladbe. Vecina harmonikasev se je igranja diatonicne

harmonike naucila na ta nacin, saj je v Sloveniji veliko harmonikasev, ki nu-

dijo instrukcije igranja diatonicne harmonike.

V Nemciji, kakor tudi pri nas, obstaja moznost ucenja diatonicne harmo-

nike s pomocjo gledanja video posnetkov. V Nemciji ter Avstriji je izdelek

poznan pod imenom �Musikschule zu Hause� [3], medtem ko se slovenska

razlicica imenuje �Glasbena sola na daljavo� [2]. Uporabniski vmesnik je

viden na sliki 2.2. Harmonikas se tu uci igranja harmonike po posluhu. Po-

snetek vsebuje zaigrano pesem ter razlago pravilnih prstnih prijemov. Ker

tu ne gre za racunalniski program, ampak le za video posnetek igranja z

razlozenimi prstnimi prijemi, smo ta nacin ucenja vkljucili v skupino nacina

ucenja po posluhu.

Slika 2.2: Glasbena sola na daljavo.

Page 22: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

6POGLAVJE 2. PREGLED NACINOV UCENJA DIATONICNE

HARMONIKE

2.1.2 Ucenje po principu igre potapljanja ladjic

Ena izmed alternativ je tudi nacin ucenja po principu priljubljene igre pota-

pljanja ladjic. Basne tipke so glede na pozicijo ostevilcene s stevilkami od 1

navzgor. Tipke na melodicni strani pa so zapisane najprej z ustrezno vrsto

(A, B, C, D), kateri sledi se zaporedna stevilka tipke v dani vrsti. Legenda

tipk je vidna na sliki 2.3. Tako so sekvence prijemov zapisane kot �pritisni

tipki A3,A4 ter bas stevilka 3�. Hkrati pa je podana se informacija o stisku

in raztezanju meha. Obstaja vec razlicic taksnega nacina ucenja, saj so ne-

kateri ucitelji harmonike razvili tudi svoje razlicice, ki v osnovi temeljijo na

principu igre potapljanja ladjic.

Slika 2.3: Legenda oznacenih tipk za ucenje po principu potapljanja ladjic.

Page 23: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

2.2. RACUNALNISKI PROGRAMI ZA UCENJE DIATONICNEHARMONIKE 7

2.1.3 Ucenje diatonicne harmonike s klasicnim notnim

sistemom

Prvi sistematicni notni zapis za diatonicno harmoniko je nastal komaj leta

1975 v Avstriji. Leta 1988 gospod Stanko Zagar predstavi prvi slovenski

ucbenik �Sola za diatonicno harmoniko�, v katerem je uporabljen prej ome-

njeni notni sistem [1]. Leta 2003 pa je diatonicna harmonika postala del

nizje glasbene sole. To je za diatonicno harmoniko velik dosezek, saj prej

ni obstajala nobena uradna ustanova, ki bi ucila igranja tega instrumenta.

Tu ucenje prvic poteka z uporabo klasicnega notnega sistema, s cimer se je

diatonicna harmonika popolnoma izenacila z ostalimi instrumenti.

2.2 Racunalniski programi za ucenje diatonicne

harmonike

Skladno z razsirjenostjo diatonicne harmonike so nastali tudi racunalniski

programi za ucenje tega instrumenta. Na svetovnem trgu dejansko obsta-

jajo le trije taksni primerki, ceprav aplikacija �Strasser harmonika� komaj

ustreza pogojem programa za ucenje diatonicne harmonike. Za potrebe raz-

iskave smo povprasali tudi lastnika obeh slovenskih programov �LTK har-

monika� in �VSLN harmonika�, ki potrdita, da tudi na svetovnem trgu ne

obstaja nobena druga razlicica racunalniskega programa za ucenje diatonicne

harmonike.

2.2.1 Racunalniska programa �VSLN� ter �LTK har-

monika�

G. Robert Goter, eden izmed najboljsih harmonikasev na svetu, je leta 2005

skupaj z g. Darkom Obretanom in sodelavci ustvaril racunalniski program

�Vsak se lahko nauci igrati harmoniko - VSLN� [4] (slika 2.5). Alterna-

tivo temu programu predstavlja racunalniski program �LTK harmonika� [6]

Page 24: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

8POGLAVJE 2. PREGLED NACINOV UCENJA DIATONICNE

HARMONIKE

(slika 2.4), ki je bil izdelan leta 2004. Avtorja programa sta g. Tomaz in

Luka Knavs. V osnovi sta si programa zelo podobna, zato jih obravnavamo

v istem razdelku.

Slika 2.4: Glavni uporabniski vmesnik programa �LTK harmonika�.

Slika 2.5: Glavni uporabniski vmesnik programa �VSLN�.

Page 25: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

2.2. RACUNALNISKI PROGRAMI ZA UCENJE DIATONICNEHARMONIKE 9

Pri obeh programih so na ekranu izrisane tipke, katere se ob predvaja-

nju pesmi obarvajo in tako podajo informacijo o pravilnem prstnem prijemu.

Prsti so doloceni z zaporedno stevilko od 1 do 5. Med predvajanjem pesmi

se na zaslonu izrisuje tudi informacija smeri raztezanja ali stiskanja meha

ter besedilo pesmi. Programa omogocata pomikanje po pesmi in nastavlja-

nje hitrosti predvajanja skladbe. Za taksno ucenje uporabnik ne potrebuje

nobenega znanja glasbene teorije, saj je tu dejansko uporabljen nacin ucenja

po posluhu, opisan v podpoglavju 2.1.1. Ena vecjih razlik programov je ta,

da program �LTK harmonika� ne prikazuje pravilnih prstnih prijemov ba-

sne strani harmonike. Hkrati pa so pri programu �VSLN� zaigrane pesmi

boljse kvalitete, saj jih je zasnoval g. Robert Goter [5]. Kot harmonikas je

namrec leta 1999 osvojil naslov absoultnega svetovnega prvaka v igranju na

diatonicno harmoniko. �VSLN� program je tako nekoliko boljsi od konku-

renta �LTK harmonika�. Oba racunalniska programa sta placljiva.

2.2.2 Aplikacija �Strasser Harmonika�

Ucenja diatonicne harmonike se je mogoce nauciti tudi s pomocjo aplikacije

�Strasser Harmonika� (slika 2.6). Izdelalo jo je nemsko podjetje Byte Po-

ets [44], le za uporabo na tablicnem racunalniku iPad. Aplikacija omogoca

ucenje le melodicne strani stirivrstne diatonicne harmonike. Ob predvajanju

pesmi se tipke ustrezno obarvajo. Pravilni prstni red igranja ni podan, kar je

velika pomanjkljivost programa, saj ima pravilni prstni red velik pomen pri

pravilnem igranju glasbila. Za namen ucenja aplikacija ponuja le 5 avstrijskih

pesmi. Omogoceno je snemanje lastnih skladb, katere lahko uporabnik tudi

deli z ostalimi uporabniki te iste aplikacije. S pritiski po zaslonu je omogoceno

tudi igranje harmonike tako, da za samo ucenje fizicna diatonicna harmonika

sploh ni potrebna. Aplikacija je brezplacna, kajti narejena je z namenom

reklamiranja proizvajalca harmonik.

Page 26: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

10POGLAVJE 2. PREGLED NACINOV UCENJA DIATONICNE

HARMONIKE

Slika 2.6: Glavni uporabniski vmesnik mobilne aplikacije �Strasser Harmo-

nika�.

Po pregledu programskih resitev ucenja diatonicne harmonike ugotovimo,

da je racuanlniski program �VSLN�, opisan v podpoglavju 2.2.1, trenutno

najboljsi program za ucenje igranja diatonicne harmonike.

Page 27: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 3

Obogatena resnicnost

Ker zelimo narediti aplikacijo, ki bo s pomocjo obogatene resnicnosti ucila

pravilnega igranja basov diatonicne harmonike, si poglejmo kaj obogotena re-

snicnost sploh je. Obravnavali bomo tudi programe, ki s pomocjo obogatene

resnicnosti ucijo igranja razlicnih glasbenih instrumentov.

3.1 Uvod v obogateno resnicnost

Ideja obogatene resnicnosti je prvic omenjena ze v letu 1901, kjer je gospod

L. Frank Baum v svojem literarnem delu [25] predstavil misel o elektron-

skih ocalih, ki preko lec podajo informacijo o znacaju videne osebe. Infor-

macija je bila s pomocjo predstavitve posebnih ocal predstavljena na celu

glave videne osebe. Ta ideja pa danes predstavlja osnovo tehnologije oboga-

tene resnicnosti (angl. Augmented Reality – AR) [7]. S pomocjo zmogljivih

racunalnikov je sedaj mogoce predstaviti kombinacijo realnega sveta oboga-

tenega z racunalnisko obdelanimi ucinki. Pojem obogatene resnicnosti pa

ne zajema le vizualnih ucinkov, temvec tudi ostala podrocja multimedije.

Ronald Azum je postavil sledece pogoje, ki morajo biti izpolnjeni, da lahko

govorimo o dejanski obogateni resnicnosti [8]. Potrebno je prepletanje real-

nega sveta z navideznimi elementi. Zagotovljena mora biti tridimenzionalna

umestitev objekta v sliki. Da ugodimo se nacelu resnicnosti, je obvezna in-

11

Page 28: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

12 POGLAVJE 3. OBOGATENA RESNICNOST

teraktivnost v realnem casu.

3.2 Uporaba obogatene resnicnosti

Trenutno se nahajamo v obdobju razcveta aplikacij z obogateno resnicnostjo.

Pojavljajo se nove tehnicne resitve, kakor tudi nove ideje z novimi podrocji

uporabe. Spoznajmo najbolj razsirjene.

Med popularnejsimi je podrocje arhitekture ter notranjega opremljanja

prostorov, kjer s pomocjo obogatene resnicnosti razporejamo pohistvo po

prostoru ali celo stavbe v okolju. Slika 3.1 prikazuje uporabo mobilne apli-

kacije �Augment – 3D� [15], s katero lahko uporabnik s pomocjo obogatene

resnicnosti razporeja pohistvo po prostoru.

Slika 3.1: Mobilna aplikacija �Augment – 3D�.

Medicina predstavlja eno izmed vecjih potencialnih podrocij za uporabo

obogatene resnicnosti. Aplikacije ponujajo tridimenzionalen vpogled v clovesko

telo, kar omogoca lazje razumevanje delovanja telesa kot celote ter tudi po-

sameznih organov. Hkrati pa sem vkljucujemo tudi podrocje rehabilitacije

bolnikov ter podrocje uporabe obogatene resnicnosti v izobrazevanju. Slika

3.2 prikazuje uporabo mobilne aplikacije �Anatomy - 4D� [12] s funkcijo

vpogleda v tridimenzionalni objekt cloveskega telesa.

Page 29: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

3.2. UPORABA OBOGATENE RESNICNOSTI 13

Slika 3.2: Mobilna aplikacija �Anatomy 4D�.

Obogateno resnicnost uporabljajo tudi v proizvodnji oziroma v indu-

striji [9]. Dobrodosla je pri razvoju novih izdelkov ter tudi pri postavitvah

delovnih strojev ali proizvodnih linij v tovarni. Primer taksnega programa

je viden na sliki 3.3.

Slika 3.3: Razporeditev delovnega stroja v tovarni s pomocjo obogatene re-

snicnosti.

Besedo racunalnik marsikdo poveze s pojmom racunalniskih iger, tako

tudi to podrocje ne zaostaja v uporabi obogatene resnicnosti. Na trgu je ze

veliko iger s to tehnologijo. Na sliki 3.4 vidimo primer ene izmed tehnolosko

Page 30: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

14 POGLAVJE 3. OBOGATENA RESNICNOST

bolje razvitih iger na trgu, imenovano �ar.drone� [11]. Helikopter fizicne

narave, ki se nahaja na desni strani slike 3.4, je mogoce kontrolirati s pame-

tnim telefonom preko brezzicnega omrezja. Ker pa ima helikopter na prednji

strani tudi kamero, se slika posilja na pametni telefon, kjer je nalozena apli-

kacija, v kateri se je potrebno bojevati z nasprotniki prikazanimi z obogateno

resnicnostjo. Izgled aplikacije je viden na na levi polovici slike 3.4.

Slika 3.4: Graficni vmesnik aplikacije z obogateno resnicnostjo ter helikopter

s stirimi propelerji.

Tehnologija obogatene resnicnosti se uporablja tudi pri reklamiranju ter

prodaji izdelkov podjetij. Potencialnemu kupcu se predstavi 3D model pro-

dukta. Posledicno se uporabnik lazje odloci za nakup nekega izdelka. Na

sliki 3.5 vidimo primer, kjer si uporabnica nadene izbrano oblacilo s pomocjo

obogatene resnicnosti in posledicno lazje odloci za nakup [10].

Page 31: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

3.2. UPORABA OBOGATENE RESNICNOSTI 15

Slika 3.5: Program �The Webcam Social Shopper�.

Eno izmed starejsih podrocij uporabe predstavlja uporaba v vojski. Sis-

tem �HUD� (angl. Head Up Display – HUD) na sliki 3.6 pilotu prikazuje

podatke na prosojnem zaslonu. Sistem zazna tudi ostala letala v zraku,

tako da jim lahko pilot lazje sledi. Sistem podrobneje opisan v poglavju 3.2

clanka [8].

Slika 3.6: Delovanje �HUD� sistema v letalu.

Na podrocju turizma se obogatena resnicnost uporablja za podajanje tu-

ristu uporabnih informacij. Aplikacija �Musem of London� (slika 3.7) pred-

stavlja dober primer, kjer obogatena resnicnost dopolni fotografirano stavbo

ali objekt z zgodovinsko sliko ter informacijo o tej stavbi [13]. Aplikacija je

dozivela velik uspeh ter s tem pripomogla k vecji obiskanosti muzejev mesta

London.

Page 32: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

16 POGLAVJE 3. OBOGATENA RESNICNOST

Slika 3.7: Aplikacija �Museum of London�.

3.3 Ucenje igranja glasbenih instrumentov z

uporabo obogatene resnicnosti

Podrocje ucenja glasbenih instrumentov s pomocjo obogatene resnicnosti

ostaja dokaj neraziskano. Poglejmo si dosedanji razvoj.

3.3.1 Primer aplikacije, ki uci igranja klavirja

Spoznajmo zanimiv primerek aplikacije, ki s pomocjo obogatene resnicnosti

uci igranja lestvic ter prijema akordov na klavirju [14]. Uporabnik ima na

glavi celado z namesceno kamero. Za zaznavo tipkovnice klavirja sistem

uporablja algoritem, ki detektira oznako namesceno na klaviaturi. Program

z modro barvo obarva tipko. Obarvano tipko mora uporabnik nato priti-

snit. Z zeleno obarva pravilno pritisnjeno tipko, napacno pritisnjeno pa z

rdeco. Kontrola pritisnjene tipke se izvaja s pomocjo protokola MIDI. Klavi-

atura je povezana z racunalnikom preko MIDI kabla, preko katerega sporoca

racunalniku informacijo o pritisnjeni tipki. Slika 3.8 prikazuje pravilno pri-

tisnjeno tipko, saj je obarvana z zeleno barvo. Sistema s taksnim nadzorom

pravilnega igranja ni mogoce uporabiti pri ucenju diatonicne harmonike. Po-

znane so harmonike z vgrajenim modulom MIDI, katerega lahko povezemo

na racunalnik. Zaradi nacina sestave diatonicne harmonike pa to ni mogoce.

Page 33: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

3.3. UCENJE IGRANJA GLASBENIH INSTRUMENTOV Z UPORABOOBOGATENE RESNICNOSTI 17

Pri diatonicni harmoniki se namrec s spremembo premikanja meha spremeni

tudi ton pritisnjene tipke in tako v programu pritisnjene tipke ne moremo

preverjati. To bi bilo mogoce le z posebej programiranim MIDI sistemom,

ki bi preko enega kanala MIDI posiljal informacije o pritisnjeni tipki glede

na to ali harmonikas stiska ali razteza meh. Tak sistem bi lahko uporabili

na klavirski harmoniki, saj se pri menjavi smeri stiskanja meha igrani ton ne

spremeni.

Program ne podaja nobenih informacij pravilnega prstnega reda igranja,

kar predstavlja veliko pomankljivost. Za pravilno igranje klavirja je, kakor

pri ostalih glasbilih, pomemben pravilen prstni red igranja.

Slika 3.8: Program za ucenje igranja klavirja z uporabo obogatene resnicnosti.

3.3.2 Primer aplikacije, ki uci igranja bas kitare

Sedaj si poglejmo primer implementacije ucenja bas kitare s pomocjo obo-

gatene resnicnosti [16]. Tipicna bas kitara ima le stiri strune, medtem ko jih

ima standardna kitara sest. Strune na bas kitari so debelejse kot pri navadni

kitari. Razdalje med preckami na vratu kitare so na bas kitari vecje kot pri

standardni kitari.

Page 34: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

18 POGLAVJE 3. OBOGATENA RESNICNOST

Algoritem uporablja dve oznaki, eno vecjo za detekcijo kitare ter drugo,

manjso za detekcijo glasbenikovega prsta. Sistem deluje tako, da najprej za-

zna oznake, nato pa oznaci lokacijo na struni kitare, katero mora uporabnik

zaigrati. Pravilna postavitev oznak je vidna na sliki 3.9. Ko sistem zazna, da

oznaka na glasbenikovem prstu prekrije lokacijo na struni, oznaci naslednjo

lokacijo na eni izmed strun bas kitare. Program je brez zvoka. Algoritem

ima doloceno le zaporedje lokacij na strunah. Uporabniku ni podana nobena

informacija o ritmu ter trajanju prijema strune. Program ne vsebuje nobene

informacije o pravilnem prstnem redu igranja, saj je implementacija narejena

le za igranje z enim prstom. Zaradi vseh pomanjkljivosti trenutna razlicica

programa ni primerna za ucenje igranja bas kitare.

Slika 3.9: Program za ucenje igranja bas kitare z uporabo obogatene re-

snicnosti.

3.3.3 Primer aplikacije, ki s pomocjo obogatene re-

snicnosti uci igranja klasicne kitare

Na sliki 3.10 je vidna uporaba programa za ucenje kitare s pomocjo oboga-

tene resnicnosti [18]. Pri razvoju programa so uporabili izsledke raziskave

programa predstavljenega v prejsnjem podpoglavju 3.3.2. Za zaznavo kitare

je tudi tu uporabljena detekcija oznake programske knjiznice ARToolKit [19].

Ker pa se zaradi majhnih razdalij med preckami in strunami sama detekcija

Page 35: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

3.3. UCENJE IGRANJA GLASBENIH INSTRUMENTOV Z UPORABOOBOGATENE RESNICNOSTI 19

oznake ni izkazala dovolj dobro, je algoritem podkrepljen se z detekcijo ro-

bov vratu kitare. Program uporabnika uci pravilnega prijema akordov v

predvajani pesmi. Prikaz obogatene resnicnosti prijema akordov je narejen

s tridimenzionalno sliko prstov, ki prikazuje pravilni prstni polozaj prijema

akordov na kitari. Na ta nacin se uporabnik nauci pravilnega prstnega pri-

jema akordov ter tudi pravilnega igranja predvajane skladbe.

Slika 3.10: Program za ucenje igranja kitare z uporabo obogatene resnicnosti.

V clanku [20] smo spoznali se eno podobno implementacijo programa

namenjeno ucenju igranja kitare. Oznaka za detekcijo kitare je postavljena

na vrh vratu kitare kot je vidno na sliki 3.11. Ta sistem uporablja le detekcijo

oznake, medtem ko je v prejsnjem opisanem programu [18] detekcija oznake

podkrepljena z detekcijo samega vratu kitare. Prikaz obogatene resnicnosti

je opravljen s krogci, ki dolocajo polozaj pritisnjene strune. Informacija o

pravilnem prstnem prijemu akordov ni podana. Sistem uporablja vec oznak,

saj vsaka oznaka doloca svoj akord. Ko se uporabnik zeli nauciti prijema

naslednjega akorda, mora fizicno zamenjati oznako na kitari, kar je nerodno

za uporabo. Boljso razlicico predstavlja prejsnji program, viden na sliki 3.10.

Page 36: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

20 POGLAVJE 3. OBOGATENA RESNICNOST

Slika 3.11: Program za ucenje pravilnih prijemov akordov na klasicni kitari

z uporabo obogatene resnicnosti.

3.3.4 Primer programa za rehabilitacijo bolnika s pomocjo

ucenja igranja klavirja

Kap bolnika prizadene na razlicne nacine. Med pogostejsemi posledicami se

pojavlja okvarjena motorika okoncin, vecinoma rok. V clanku [17] je opisan

program, ki s pomocjo detekcij dveh oznak ter robotske rokavice s senzorji,

pomaga bolniku pri uspesnejsi rehabilitaciji (slika 3.12). Program detektira

prvo oznako postavljeno na mizo pred uporabnika, na podlagi katere se na

zaslonu izrise virtualna tipkovnica klavirja. Nato program poisce se drugo

oznako, s katero algoritem dobi informacijo o polozaju roke v prostoru. Druga

oznaka je namrec namescena na robotski rokavici, katero si bolnik nadene na

roko. Rokavica ima namescene senzorje, ki programu sporocaju informacijo

o skrcenosti prstov. Na podlagi informacij o polozaju roke in skrcenosti pr-

stov algoritem doloci katera tipka je bila pritisnjena. Mozno je tudi dvorocno

igranje ter izbira skladb razlicnih zahtevnosti. Kljub temu, da je osnovni na-

men programa rehabilitacija bolnika, ponuja povsem nov nacin ucenja igranja

instrumenta z uporabo obogatene resnicnosti. Z zdruzitvijo tega programa

s programom opisanim v podpoglavju 3.3.1 se lahko nadejamo aplikacije za

kvalitetno ucenje igranja na klavir.

Page 37: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

3.3. UCENJE IGRANJA GLASBENIH INSTRUMENTOV Z UPORABOOBOGATENE RESNICNOSTI 21

Slika 3.12: Program za ucenje igranja klavirja, ki je prvotno namenjen reha-

bilitaciji bolnikov.

Spoznali smo pet programov, ki s pomocjo obogatene resnicnosti ucijo

igranja razlicnih glasbenih instrumentov. Zaradi njihove razlicne namemb-

nosti ima vsak program svoje posebnosti. Vsem predstavljenim pa je skupna

implementacija detekcije oznake, katera predstavlja glavno pomoc pri izrisu

obogatene resnicnosti.

Page 38: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 39: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 4

Uporabljena orodja

Pri razvoju aplikacije, kot osrednje teme te diplomske naloge, so bila upora-

bljena razlicna orodja. Ker je aplikacija namenjena za uporabo na tablicnem

racunalniku iPad, je odlocitev o razvojnem okolju trivialna. Aplikacije za

tablicni racunalnik iPad je mogoce izdelati le z orodjem Xcode. Orodje je

mogoce namestiti le na racunalnike z operacijskim sistemom Mac OS X.

Operacijski sistem je last podjetja Apple. Pri tem smo uporabili se profesi-

onalno orodje za zvocno produkcijo Cubase. Za implementacijo virtualnega

instrumenta pa je bilo uporabljeno orodje AUSampler.

4.1 Razvojno okolje Xcode in programski je-

zik Objective C

Razvojno okolje Xcode (angl. Interface development environment - IDE) [21]

je razvilo podjetje Apple. Xcode IDE je vidno na sliki 4.1. S tem orodjem

je mogoce izdelovati aplikacije za uporabo na strojni opremi podjetja Apple.

Namestitev razvojnega okolja Xcode je brezplacna, vendar ima svoje omeji-

tve. Brez zakupljene licence aplikacije ni mogoce testirati na fizicni napravi.

Licenco potrebujemo tudi za objavo aplikacije na portalu �App Store�, s

katerega si lahko uporabniki prenesejo aplikacijo na svojo napravo. Pri ra-

zvoju je bila uporabljena licenca Fakultete za racunalnistvo in informatiko.

23

Page 40: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

24 POGLAVJE 4. UPORABLJENA ORODJA

Okolje Xcode ima implementirana vsa orodja, ki jih razvijalec potrebuje pri

programiranju aplikacij. V istem oknu je mogoc dostop do datotek z izvorno

programsko kodo ter urejanje graficnega uporabniskega vmesnika GUI (angl.

Graphic User Interface). Tu je mogoce aplikacijo tudi testirati na simulatorju

ali mobilni napravi iPad, iPhone ali iPod. Pri razvoju je bila uporabljena

razlicica orodja Xcode 4.6.

Slika 4.1: Zaslon razvojnega okolja Xcode.

Pomemben del okolja Xcode IDE imenovan �Instruments� (slika 4.2),

nam pomaga zagnati aplikacijo ter spremljati dogajanje in stanje zasedenosti

virov med samim izvjanjem na napravi [22]. S pridobljenimi podatki je moc

izlociti ozka grla ter sibkosti aplikacij, ki povzrocajo pocasnejse odzivanje ter

celo samodejno zapiranje aplikacije.

Page 41: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

4.2. ORODJE CUBASE 25

Slika 4.2: Graficni uporabniski vmesnik orodja �Instruments�.

Razvojno okolje Xcode uporablja lasten objektno usmerjen programski

jezik Objective C [23]. Zasnovan je po vzoru starejsega programskega jezika

C. Za sam zacetek programiranja v programskem jeziku Objective C je bilo

potrebnega kar nekaj truda. Pozneje pa sta se razvojno okolje ter sam pro-

gramski jezik izkazala kot dokaj preprosta za uporabo. Podjetje Apple vsako

leto priredi konferenco, kjer predstavijo novosti svojega razvoja ter jezika

Objective C. Na podlagi konstantega razvoja programskega jezika Objective

C in programskih knjiznic menimo, da se bosta uporaba ter ucenje program-

skega jezika Objective C se poenostavila.

4.2 Orodje Cubase

Z vecanjem zmogljivosti racunalnikov se je povecevala tudi zmogljivost pro-

gramov za urejanje zvocnih posnetkov. Nemsko podjetje Steinberg je na

podrocju racunalniskih zvocnih sekvencerjev eden izmed pionirjev ter gonil-

nih sil samega razvoja. Njihov paradni konj se imenuje orodje Cubase [38],

katerega smo tudi mi uporabili za izdelavo datotek pesmi uporabljenih v apli-

kaciji. Uporabljena je bila trenutno najnovejsa razlicica programa Cubase 7.0

(slika 4.3). Program ni brezplacne narave, ampak to ni predstavljalo pro-

blema, saj sem lastnik licence za uporabo. Omeniti velja, da so bili s tem

Page 42: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

26 POGLAVJE 4. UPORABLJENA ORODJA

programom posneti tudi vsi zvoki harmonike uporabljeni za reprodukcijo

zvoka harmonike v sami aplikaciji.

Slika 4.3: Zaslon programa za avdio produkcijo, imenovan Cubase, razlicice

7.0.

4.2.1 Protokol MIDI

Specifikacija protokola MIDI (angl. Musical Instrument Digital Interface)

je bila izdana avgusta leta 1983 [24]. Osnovna ideja protokola je nadzor vec

medseboj povezanih klaviatur oziroma modulov sintetizatorjev zvoka z le eno

klaviaturo. Na podlagi protokola MIDI so nastale tudi standardne datoteke

MIDI, ki omogocajo standardiziran zapis glasbenih sekvenc v formatu proto-

kola MIDI. Zaradi njihove majhne velikosti so bile v zacetku zelo prikladne

za uporabo. Sama datoteka ne vsebuje nobenega zvocnega zapisa, ampak le

kontrole sekvenc pesmi. Nepoznavalcu bi lahko razlozili, da je to le notni za-

pis pesmi v digitalni obliki, ceprav je vec kot to. Najpomembnejsi parametri

protokola MIDI so:

• �NOTE ON� (pritisk tipke),

• �NOTE OFF� (spust tipke),

• �NOTE NUMBER� (stevilka tipke),

Page 43: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

4.3. VIRTUALNI INSTRUMENT AUSAMPLER 27

• �VELOCITY� (hitrost pritisnjene tipke),

• �PROGRAM NUMBER� (stevilka programa MIDI),

• �MIDI CHANNEL� (kanal MIDI).

Pri razvoju nas zanimajo le parametri �NOTE ON�, �NOTE OFF�, �VE-

LOCITY� ter �MIDI CHANNEL�, saj z njimi poskusimo predstaviti vse

informacije potrebne za implementacijo aplikacije.

4.3 Virtualni instrument AUSampler

AULab [39] je zastonjsko orodje podjetja Apple, ki deluje po principu ana-

logne zvocne mesalne mize. Uporabnik lahko uporabi vec kanalov, katerim

tudi doloci razlicne avdio-zvocne vhode. Na te kanale se lahko vkljuci tudi

razlicne digitalne procesorje zvocnega signala. Tipicen primer taksnega pro-

cesorja zvoka je efekt odmeva. Na mesalno mizo lahko vkljucimo tudi po-

sebne kanale brez zvocnih vhodov. Zvocni izvor teh posebnih kanalov pred-

stavljajo virtualni instrumenti. V nasi implementaciji je uporabljen virtualni

instrument AUSampler (slika 4.4). V ta virtualni instrument je mozno vsta-

viti zvocne datoteke formata WAVE (angl. Waveform Audio File Format)

ter jih razporediti tako, da vsaki zvocni datoteki dodelimo svojo tipko na

tipkovnici klaviature. S pritiskom dolocene tipke klaviature pricnemo s pred-

vajanjem zvocne datoteke dodeljene tej isti tipki. Podatke o razporejenosti

zvocnih posnetkov glede na polozaj tipk na klaviaturi izvozimo v posebno

datoteko formata �aupreset�, katero skupaj z vsemi zvocnimi datotekami

ponovno uporabimo pri programiranju novega virtualnega instrumenta nase

aplikacije.

Page 44: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

28 POGLAVJE 4. UPORABLJENA ORODJA

Slika 4.4: Virtualni instrument AUSampler.

Page 45: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 5

Analiza metod zaznave basne

tipkovnice diatonicne

harmonike

Cilj te naloge je izdelana aplikacija za ucenje basov diatonicne harmonike s

pomocjo obogatene resnicnosti, zato se osredotocimo na detekcijo basne polo-

vice harmonike, natancneje basnih tipk (slika 5.1). V slovenskem standardu

je le teh 11, 6 v prvi in 5 v drugi vrsti. Najprej bomo predstavili nacine

detekcije, ki so se izkazali kot neprimerni za uporabo.

5.1 Neprimerni nacini zaznave basne tipkov-

nice

Pregledani so bili razlicni nacini implementacije same detekcije harmonike.

V tem podpoglavju so opisani neprimerni nacini zaznave basne polovice har-

monike.

29

Page 46: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

30POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

Slika 5.1: Basna tipkovnica diatonicne harmonike.

5.1.1 Zaznava regije barv

Pri detekciji s pomocjo zaznave regije barv (angl. Blob detection) [27] imamo

model, ki detektira obmocja oziroma regije obarvane z enako ali podobno

barvo. Namesto barve se lahko uporabi tudi podatek o osvetlenosti podrocja.

V osnovi se ideja zdi zelo primerna za zaznavo tipk diatonicne harmonike.

Na levi strani je 11 tipk, ki so skoraj vedno razlicne barve kot harmonika,

kar ponuja dober barvni kontrast pri zaznavi tipk. Vendar pa se kmalu po-

javijo sledeci problemi. Pod tipkami se nahaja kovinski nosilec zrcalne krom

barve, ki je viden tudi na sliki 5.2. Tudi tipke so vedno svetlece, medtem

ko obstajajo tudi v krom kovinski barvi. Da pa svetlikanja in odsevov se ni

dovolj, je ohisje harmonike zasciteno z visokosijocim lakom. To pomeni, da

se na povrsini harmonike pojavljajo odsevi razlicnih barv, kar je neprikladno

za trenutno obravnavano detekcijo. Omenimo se problem prekrivanja tipk s

prsti, kar dodatno onemogoci ucinkovito detekcijo s pomocjo barv. Za detek-

cijo je potrebno uporabiti zaznavo, ki tudi med samim igranjem harmonike

dobro deluje. Zaznava tipk s pomocjo barv je v primeru harmonike nepri-

merna. Vsi nasteti problemi so prevelik zalogaj za uspesno implementacijo s

taksnim nacinom zaznave.

Page 47: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.1. NEPRIMERNI NACINI ZAZNAVE BASNE TIPKOVNICE 31

Slika 5.2: Basna tipkovnica diatonicne harmonike z vidnimi odsevi.

5.1.2 Zaznavanje okroglih tipk s pomocjo Houghove

transformacije

Krogi so v aplikacijah racunalniskega vida pogosta geometricna telesa. Za

iskanje teh teles je zelo poznana metoda iskanja s pomocjo Houghove trans-

formacije CHT (angl. Circle Hough Tranform) [28]. Predstavlja zanesljiv

nacin iskanja krogov, vendar je metoda tudi casovno zahtevna, saj za vsako

tocko na sliki izracuna vse mozne kroznice. Za pohitritev racunanja lahko

metodo omejimo z najvecjim ter najmanjsim moznim radijem, katerega me-

toda se isce na sliki. Hkrati operacijo pohitrimo tudi z glajenjem robov ter

odstranjevanjem suma iz slike. Vse nasteto posledicno vpliva na manjso na-

tancnost algoritma.

Programska odprtokodna knjiznica OpenCV ponuja naslednjo implemen-

tirano funkcijo HoughCircles, ki v crnobeli sliki poisce kroge s pomocjo

CHT [29]. Funkcija se je izkazala neprimerna za uporabo. Poleg ze nastetih

problemov z odsevi ter prekrivanjem tipk s prsti, se tu pojavijo novi. Basna

tipkovnica diatonicne harmonike je sestavljena iz 11-ih okroglih tipk. Za-

radi nacina igranja so tipke v prvi vrsti postavljene globlje kot tipke druge

vrste. Ta razlika znasa po standardnih merilih okrog 13 milimetrov. Pri

igranju harmonike druga vrsta tipk malo prekrije prvo vrsto, kar dodatno

otezuje zaznavo tipk. Algoritem na harmoniki zazna tudi okrogle oblike pod

in nad tipkami, tako imenovane trobentice, kar pa ne predstavlja razloga, ki

Page 48: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

32POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

bi nas odvrnil od uporabe te metode. Detekcija trobentic je vidna na sliki

5.3. Glavni problem nastane pri igranju in premikanju harmonike, ko zaradi

spreminjanja perspektive glede na kamero okrogle tipke izgubljajo okroglo

obliko. Med samim igranjem pa tudi s prsti prekrijemo tipke, tako da za-

znava le teh ni mogoca. Zaradi vseh omenjenjih problemov zaznavo tipk s

pomocjo Houghove transformacije oznacimo kot neprimerno za naso uporabo.

Slika 5.3: Detekcija okrogle trobentice na basnem delu diatonicne harmonike.

5.1.3 Zaznavanje basne tipkovnice s pomocjo ujemanja

slikovnega vzorca

Pri pregledu programske knjiznice za racunalniski vid OpenCV smo naleteli

na se eno zanimivo funkcijo matchTemplate [30]. Njeno delovanje preveri,

ali se del slike, imenovan slikovni vzorec, pojavi v neznani sliki (slika 5.4).

Po nadalnji analizi se ideja o uporabi te funkcije kmalu opusti. Tako se

odlocimo na podlagi njenega nefleksibilno okornega iskanja. Zavedati se je

potrebno, da potrebujemo detekcijo, ki omogoca normalno igranje ter premi-

kanje harmonike, cesar nam funkcija matchTemplate ne omogoca.

Page 49: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.1. NEPRIMERNI NACINI ZAZNAVE BASNE TIPKOVNICE 33

Slika 5.4: Prikaz delovanja funkcije matchTemplate.

5.1.4 Zaznavanje basne tipkovnice z uporabo kaska-

dnega Haarovega klasifikatorja

Zaznava objektov je v racunalniskem vidu opravljena na razlicne nacine.

Eden obstojecih je uporaba razreda CascadeClassifier [31], ki se upora-

blja tudi za detekcijo obrazov. Razred je del programske knjiznice OpenCV.

Aplikacija z uporabo le tega hitro detektira obraz. Princip delovanja algo-

ritma je sledec. Razred CascadeClassifier vsebuje objekt tipa klasifikator,

na podlagi katerega algoritem zazna clovekov obraz. Sestava klasifikatorja

pa ni tako enostavna. Potrebno ga je nauciti, kaj je in kaj ni obraz oziroma

iskani objekt v sliki. Za to potrebujemo veliko stevilo slik (nekaj sto) iste

velikosti, ki predstavljajo iskani objekt. Te slike se imenujejo �pozitivni pri-

meri�. Na drugi strani pa so potrebni tudi �negativni primeri�, predstavljeni

z ravno tako cimvecjim stevilom slik iste velikosti. Kot primer negativnih slik

bi lahko uporablili slike dreves, stavb, roz, skratka vsega, kar ne predstavlja

iskanega objekta.

Algoritem za razpoznavo obraza deluje v redu, vendar je nenatancen pri

pozicioniranju objekta. Pri detekciji harmonike pa je potrebno tudi natancno

pozicioniranje tipk. Po dodatni analizi algoritma se odlocimo da nadaljnji

razvoj z uporabo razreda CascadeClassifier ni primeren. Sama postavi-

tev baze pozitivnih in negativnih primerov je neprimerna, kajti potreben je

algoritem ki ne bo detektiral harmonike kot celote.

Page 50: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

34POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

5.2 Detekcija oznake z uporabo odprtokodne

programske knjiznice OpenCV

Pogost nacin zaznave predstavlja detekcija oznake. Vse implementacije pro-

gramov za ucenje igranja glasbil s pomocjo obogatene resnicnosti, katere

smo spoznali v podpoglavju stevilka 3.3, se posluzujejo uporabe te tehnolo-

gije. Oznaka, vidna na sliki 5.5, je predstavljena z vnaprej doloceno obliko,

ki jo mora algoritem najti v podani sliki. Kvadratna oznaka je sestavljena

iz vnaprej dolocenih 49 manjsih crnobelih kvadratkov. Pogoj za uporabo

algoritma je obarvanost obrobnih kvadratkov s crno barvo. Podroben opis

postopka zaznave oznake z uporabo knjiznice OpenCV skupaj z izvorno kodo

se nahajata v knjigi [41].

Slika 5.5: Algoritem detektira na sliki vidno oznako.

Diatonicne harmonike imajo poleg basnih tipk dovolj prostora za posta-

vitev oznake. Postavitev oznake je vidna na sliki 5.6.

Page 51: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.2. DETEKCIJA OZNAKE Z UPORABO ODPRTOKODNEPROGRAMSKE KNJIZNICE OPENCV 35

Slika 5.6: Zacetna slika, na kateri se zacne detekcija oznake.

Zaradi poznane omejitve oznake je iskanje le te dokaj preprosto opravilo.

V osnovi je zaznava sestavljena iz naslednjih korakov:

• pretvorba RGB (angl. Red Green Blue) barvne vhodne slike v sivinsko

sliko formata cv::Mat,

• uporaba filtra binarizacije sivinske slike,

• detektcija obrisov shem,

• iskanje moznih oznak,

• dekodiranje mozne oznake,

• postavitev oznake v prostoru glede na lokacijo kamere.

Pretvorba vhodne RGB barvne slike v sivinsko (slika 5.7) je potrebna za-

radi pohitritve ter same arhitekture algoritma zaznave oznake. Ze vnaprej je

znano, da je oznaka sestavljena le iz crne ter bele barve, zato procesiranje z

barvami predstavlja dodatno obremenitev ter upocasnitev algoritma iskanja

Page 52: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

36POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

oznake. V programski knjiznici OpenCV se pretvorba RGB barvne slike v

sivinsko opravi s klicem funkcije cv::cvtColor.

Slika 5.7: Sivinska slika.

Za nadalnje procesiranje je potrebno sivinsko sliko pretvoriti v binarno

crnobelo [32], kjer ima vsaka slikovna tocka na voljo le dve mozni vredno-

sti (slika 5.8). Vrednost 255 predstavlja belo barvo, vrednost 0 pa crno.

V tem primeru potrebujemo za predstavitev ene slikovne tocke le en bit

informacije, 0 ali 1. Ta postopek mora biti opravljen pred pregledom obri-

sov objektov v sliki. V danem algoritmu za zaznavo oznake je uporabljena

funkcija cv::adaptiveThreshold. Nove vrednosti so dolocene na podlagi

svetlosti sosednjih tock v izbranem radiju. Taksen nacin procesiranja bina-

rizacije daje algoritmu vecjo robustnost, saj izracun nove vrednosti opravi

glede na vrednost sosednjih tock. Z vecanjem radija sosednjih tock se veca

tudi casovna zahtevnost funkcije. Ob izbiri radija vecjega od 10 slikovnih

pik se procesiranje slik upocasnjuje, tako da aplikacija postane prepocasna

za normalno uporabo. Da je aplikacija se primerna za uporabo potrebujemo

hitrost prikazovanja vecjo od 15 slik na sekundo FPS (angl. Frames Per Se-

Page 53: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.2. DETEKCIJA OZNAKE Z UPORABO ODPRTOKODNEPROGRAMSKE KNJIZNICE OPENCV 37

cond). Zaradi pohitritve algoritma uporabimo manjso locljivost zajema in

procesiranja slik, ki meri 352 slikovnih tock v sirino ter 288 slikovnih tock v

visino.

Slika 5.8: Binarizacija sivinske slike s funkcijo cv::adaptiveThreshold.

Uporabljena funkcija cv::findContours najde obrise shem v binarni

crnobeli sliki. Funkcija vrne seznam zaznanih obrisov v binarni sliki. Kot

vhodni argument funkcija zahteva tudi najmanjso mozno velikost obrisa.

Tako se izognemo shemam, ki so premajhne za nadaljnjo detekcijo. Vsak

obris je dolocen kot seznam vogalnih tock obrisa. Stevilo dobljenih tock, ki

dolocajo dobljene obrise, zmanjsamo z uporabo funkcije cv::approxPolyDP.

Le ta s pomocjo priblizkov zmanjsa stevilo vogalnih tock. Naslednja upora-

bljena funkcija cv::isContourConvex pa preveri, da dobljene tocke predsta-

vljajo zaprto konveksno shemo.

V seznamu so sedaj shranjene vogalne tocke obrisov, ki mogoce pred-

stavljajo oznako. Perspektiva pogleda na mozne oznake se s premikanjem

oznake glede na kamero stalno spreminja. Frontalni pogled na premikajoco

oznako v prostoru dobimo s klicem funkcij cv::getPerspectiveTransform

ter cv::warpPerspective (slika 5.9). Prva funkcija izracuna perspektivo,

Page 54: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

38POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

druga pa le to izracunano vrednost uporabi za spremembo perspektive mozne

oznake.

Slika 5.9: Pretvorba perspektive slike oznake na frontalni pogled.

Oznaka je razdeljena na kvadratno mrezo 49-ih kvadratkov (slika 5.10).

Zunanji crni kvadratki dolocajo obrobo oznake. Znotraj oznake tako ostane le

se mreza 25-ih kvadratkov. S kombinirano postavitvijo notranjih kvadratkov

lahko sistem zaznava do 1024 razlicnih oznak. Ali je kvadratek bele ali crne

barve preverimo s pomocjo funkcije cv::countNonZero, ki preveri ali ima

posamezna slikovna tocka razlicno vrednost od vrednosti 0.

Slika 5.10: Oznaka, sestavljena iz mreze 7x7 manjsih crno belih kvadratkov.

Sedaj vemo, da je algoritem zaznal oznako in si shranil koordinate nje-

nih kotov. Potrebna je se ocenitev pozicije oznake iz dvodimenzionalnega v

tridimenzionalni prostor glede na lokacijo kamere. Uporabljena je funkcija

cv::solvePnP.

Page 55: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.2. DETEKCIJA OZNAKE Z UPORABO ODPRTOKODNEPROGRAMSKE KNJIZNICE OPENCV 39

5.2.1 Poskus izboljsave binarizacije sivinske slike

Spoznali smo proces binarizacije slike, ki vsaki slikovni tocki dodeli le eno

izmed dveh moznih vrednosti. Ta postopek je v podanem algoritmu opra-

vila funkcija cv::adaptiveThreshold. Sedaj poskusimo isti postopek opra-

viti s funkcijama cv::threshold ali cv::Canny. Obe sta del odprtokodne

knjiznice OpenCV.

Binarizacijo sivinske slike najprej opravimo s funkcijo cv:threshold. Re-

zultat funkcije je viden na sliki 5.11. Locnica, ki doloca mejo med dvema

moznima vrednostima, je fiksno dolocena, kar pomeni da je med samim iz-

vajanjem ni mogoce dinamicno spreminjati. Posledicno nastane binarizirana

slika, ki pa ni vedno dovolj dobre kvalitete za nadaljnjo obdelavo. Ob premi-

kanju harmonike se zaradi odsevov v prostoru vcasih zabrise meja oznake, kar

privede do nemogoce detekcije. V kolikor bi bila intenzivnost svetlobe vnaprej

dolocena, bi bilo smotrno izbrati funkcijo cv::threshold. Na racun njene

enostavnosti je hitrejsa od ze uporabljene funkcje cv::adaptiveThreshold.

Slika 5.11: Binarizacija sivinske slike s funkcijo cv::threshold.

Binarizacijo slike omogoca tudi funkcija cv::Canny, ki na vhodni sivinski

sliki najde obrobe in obrise elementov. Implementacija funkcije sloni na

Page 56: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

40POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

teoriji zaznave robov v sliki, katero leta 1986 predstavi g. John F. Canny [34].

Oznaka, katero zelimo detektirati, je dobro vidna na sliki 5.12. Vidni so le

obrisi shem, izrisani z belo barvo. Algoritem je z uporabo funkcije cv::Canny

sposoben zaznave oznake, vendar se ob premikanju oznake obnasa slabse od

funkcije cv::adaptiveThreshold.

Slika 5.12: Slika po procesu iskanja robov s funkcijo cv::Canny.

Po preizkusu treh funkcij za binarizacijo sivinske slike nadaljujemo detek-

cijo z ze v zacetku podano funkcijo cv::adaptiveThreshold. Le ta najbolj

ugodi potrebam in zahtevam zaznave oznake. Algoritem z uporabo izbrane

funkcije postane dovolj robusten za zaznavo oznake tudi v tezjih pogojih,

kot sta menjavanje nivojev svetlobe ter premikanje harmonike z oznako po

prostoru.

5.2.2 Problem algoritma za detekcijo oznake

Ob direktnem frontalnem pogledu na oznako, se ob premikanju kamere pojavi

napaka aproksimacije oznake v tridimenzionalnem prostoru. V tem primeru

opazimo manjse nekontrolirano obnasanje izrisa obogatene resnicnosti. Po te-

Page 57: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

5.2. DETEKCIJA OZNAKE Z UPORABO ODPRTOKODNEPROGRAMSKE KNJIZNICE OPENCV 41

stiranju sklepamo, da napako najverjetneje povzroca funkcija cv::solvePnP,

ki skrbi za izracun postavitve oznake v tridimenzionalen prostor.

Testiranih je bilo vec aplikacij s podobno implementacijo detekcije oznak,

pri katerih opazimo podoben problem. Primer taksne aplikacije je tudi apli-

kacija �AR Basketball� [40], kjer se ob frontalnem pogledu na oznako pojavi

napaka, ki privede do nenormalnega premikanja kosa oziroma obogatene re-

snicnosti. V aplikiciji to ne predstavlja ovire, saj z vrha nikoli ne mecemo na

kos, temvec od spredaj ali od strani.

Pojav te napake izvira iz omejitve uporabljenega koordinatnega sistema,

kjer ob poravnavi dveh osi prihaja do problema imenovanega �Gimbal Lock�,

ko nadalnje premikanje v tej smeri ni mogoce. Problem je viden na sliki 5.13.

Na levi strani je prikazano normalno premikanje vseh treh osi. Ob poravnavi

dveh osi, pa se na desni strani slike 5.13 pojavi problem, imenovan �Gim-

bal Lock�. V tem primeru lahko letalo premikamo le se v smeri dveh osi,

namesto v smeri vseh treh.

Slika 5.13: Geometrijski problem, imenovan �Gimbal Lock�.

Nekontrolirano premikanje za nekatere aplikacije ni motece, saj pri de-

lovanju ne uporabljajo celnega frontalnega pogleda pri zaznavi oznake. V

nasem primeru pa se zanasamo na frontalni pogled, saj smo s harmoniko

postavljeni direktno pred kamero tablicnega racunalnika iPad.

Kot resitev problema smo uporabili enostavno resitev, ki se je v uporabi

izkazala za zelo dobro. Sami oznaki smo zamaknili perspektivo, kot je vidno

Page 58: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

42POGLAVJE 5. ANALIZA METOD ZAZNAVE BASNE TIPKOVNICE

DIATONICNE HARMONIKE

na sliki 5.14, s cimer se izognemo detekciji iz direktnega frontalnega pogleda.

Spremembo perspektive oznake upostevamo pri izrisu obogatene resnicnosti.

Slika 5.14: Prirejena oznaka z zamaknjeno perspektivo.

Page 59: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 6

Predstavitev obogatene

resnicnosti z uporabo vmesnika

OpenGL

Aplikacija z obogateno resnicnostjo postane uporabna sele s pravilno pred-

stavitvijo informacije uporabniku. Informacije, ki jih potrebuje ucenec dia-

tonicne harmonike, so:

• informacija o pritisnjeni tipki,

• informacija o uporabljenem prstu,

• informacija o smeri raztezanja ali stiskanja meha harmonike.

Za izris obogatene resnicnosti na zaslon je uporabljen vmesnik OpenGL

(ang. Open Graphics Library), ki vsebuje funkcije za izris zahtevnih tridi-

menzionalnih ter tudi enostavnejsih objektov. Leta 1992 ga razvije podjetje

Silicon Graphics. V uporabljenem algoritmu zaznave oznake iz knjige [41] je

prikaz obogatene resnicnosti viden na sliki 6.1. Vmesnik OpenGL v okvir za-

znane oznake izrise barvni kvadrat ter vse tri osi koordinatnega sistema. Osi

so obarvane z rdeco, modro ter zeleno barvo. Za dejanski izris je uporabljen

vektorski zapis vidnih elementov. Za nas izris smo podano implementacijo

43

Page 60: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

44POGLAVJE 6. PREDSTAVITEV OBOGATENE RESNICNOSTI Z

UPORABO VMESNIKA OPENGL

prikaza obogatene resnicnosti modificirali z uporabo tekstur.

Slika 6.1: Prikaz obogatene resnicnosti uporabljenega algoritma za zaznavo

oznake.

Za nas izris obogatene resnicnosti ne potrebujemo zahtevnih tri dimen-

zionalnih objektov, ampak enostavnejse tri dimenzionalno izrisovanje slik

shranjenih v formatu PNG (angl. Portable Network Graphics). Za ta format

se odlocimo na podlagi moznosti brezbarvnega prosojnega ozadja slike.

Za uvoz slik v aplikacijo uporabimo razred GLKTextureLoader.h, ki je del

knjiznice GLKit. Za izris slik uporabimo objekt tipa GLKTextureInfo [42],

ki se uporablja za dejansko nalaganje slik v pomnilnik. S klicem OpenGL

funkcije glBindTexture se slika dejansko izrise na zaslon. Sledi predstavitev

slik in nacina prikazovanja obogatene resnicnosti.

Vse uporabljene knjiznice so del osnovnega okolja Xcode. V projekt je

bilo potrebno posebej namestiti le programsko knjiznico OpenCV.

Page 61: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

6.1. SMER STISKANJA ALI RAZTEZANJA HARMONIKE 45

6.1 Smer stiskanja ali raztezanja harmonike

Informacija o stiskanju ali raztezanju harmonike je podana s sliko formata

PNG, ki se vedno izrisuje nad oznako, postavljeno na basnem delu harmonike.

Puscici sta vidni na sliki 6.2. V kolikor je potrebno stiskanje meha harmonike,

se na ekranu izrise desno usmerjena puscica zelene barve. Ce je potrebno

raztezanje meha harmonike, se na ekranu izrise levo usmerjena puscica rdece

barve.

Slika 6.2: Puscici, ki podajata informacijo o stiskanju ali raztezanju meha.

Ob spremembi smeri raztezanja ali stiskanja meha se eno glasbeno dobo

pred samo spremembo na zaslonu izrise puscica (slika 6.3) z manjso puscico,

ki naznanja spremembo smeri stiskanja.

Slika 6.3: Puscici, ki podajata informacijo o spremembi stiskanja meha.

6.2 Prijem ustrezne tipke

Za pravilno igranje diatonicne harmonike je potrebno izrisati tudi informacijo

o igrani tipki. Tipko je potrebno pritisniti, ko le to prekrije krogec dolocene

barve (slika 6.4).

Page 62: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

46POGLAVJE 6. PREDSTAVITEV OBOGATENE RESNICNOSTI Z

UPORABO VMESNIKA OPENGL

Slika 6.4: Mozni obarvani krogci na pritisnjeni tipki.

Pri glasbenem instrumentu, na katerega igramo s prsti, je zaradi eno-

stavnejsega igranja ter tudi hitrejsih prijemov pomemben pravilni prstni red

igranja. Za napacne prstne prijeme obstaja zelo dober izraz, da si igralec med

igranjem �lomi prste�. Pravilen prstni prijem je v aplikaciji predstavljen z

barvami na naslednji nacin (slika 6.5):

• mezinec doloca rumena barva,

• prstanec doloca modra barva,

• sredinec doloca zelena barva,

• kazalec doloca rdeca barva,

• palca ne upostevamo, saj z njim ni mogoce doseci tipk basne polovice

harmonike.

Slika 6.5: Predstavitev prstov leve roke z barvami.

Page 63: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

6.3. PRIJEM NASLEDNJE TIPKE 47

Obarvani krog, ki se izrise na ekranu je dejansko shranjen v nevtralni beli

barvi. Obarvamo ga le med izrisom s klicem funkcije glColor4f, ki je del

vmesnika OpenGL.

6.3 Prijem naslednje tipke

Pri igranju glasbila s pomocjo branja not igralec vedno sledi informaciji o

naslednjem dogodku, to je noti. Ce igralec v notnem zapisu ne bi iskal te

informacije, njegovo igranje ne bi zvenelo tekoce. Zato smo tudi mi imple-

mentirali podajanje predinformacije o naslednji zaigrani tipki. Naslednja

tipka, ki jo moramo pritisniti, pocasi pridobiva na barvi, dokler ob pritisku

ne zasveti z eno izmed dolocenih barv. Nacin pridobivanja gostote barv je

viden na sliki 6.6. S to dodatno informacijo je proces ucenja pospesen, kajti

igralec je pripravljen na naslednji pritisk tipke.

Slika 6.6: Nacin predstavitve informacije o naslednji pritisnjeni tipke.

Tudi tu so obarvani krogi dejansko shranjeni v nevtralno beli barvi v

formatu PNG. V aplikaciji pa so predstavljeni kot tekstura. Barvo in prosoj-

nost teksture dolocamo s klicem funkcije glColor4f, kjer z visanjem cetrtega

argumenta v funkciji znizujemo prosojnost. Tipka se tako postopoma obarva.

Page 64: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 65: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 7

Podatkovni del aplikacije

Predstavitev vseh potrebnih podatkov smo shranili v datoteko MIDI [26].

Datoteka MIDI omogoca zapis dogodkov, kot so �NOTE ON�, �NOTE

OFF� ter �VELOCITY� . �NOTE ON� nastopi ob pritisku tipke, medtem

ko �NOTE OFF� predstavlja konec pritiska dolocene tipke. Obe kontroli

vsebujeta tudi podatek o hitrosti udarca (angl. Velocity). Pomembno je

seveda tudi to, da so vsi dogodki doloceni s kanalom MIDI (angl. MIDI

channel), na katerem igrajo.

Standard protokola MIDI doloca da kanal stevilka 10 predstavlja zapis

igranja bobnov. V primeru krsitve pravila bomo namesto zvokov dolocenega

instrumenta slisali zvoke bobnov. V implementaciji aplikacije smo definirali

svoj sistem, kjer pa je izpuscen kanal stevilka 10, ceprav bi ga lahko uporabili.

Ustvarjene datoteke MIDI so namrec namenjene izkljucno nasi aplikaciji, kjer

smo neodvisni od kakrsnihkoli standardov in pravil protokola MIDI. Neod-

visni smo pa zato, ker bomo uporabljali le za to aplikacijo zgrajen virtualni

instrument, s katerim bomo predvajali datoteke MIDI. V kolikor bi datoteke

MIDI uporabljali se v drugih programih ter klaviaturah, si cesa takega ne bi

mogli dovoliti.

49

Page 66: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

50 POGLAVJE 7. PODATKOVNI DEL APLIKACIJE

7.1 Zapis podatkov o prstnih prijemih v da-

toteki MIDI

Podatki o pravilnem pritisku tipk so v datoteki MIDI shranjeni na kanalu

stevilka 9. Ker pritisnjena tipka potrebuje tudi informacijo o uporabljenem

prstu, nam protokol MIDI ponudi zelo dobro resitev problema. �NOTE

ON� tako doloca pritisnjeno tipko (slika 7.1), �VELOCITY� pa uporabimo

za predstavitev prsta, s katerim pritisnemo tipko. Implementacija bi lahko

bila tudi obratna, vendar je ta nacin bolj naraven.

Slika 7.1: Stevilcenje tipk basne tipkovnice.

Informacjie o pritisnjeni tipki so shranjene na naslednji nacin:

• �NOTE ON� stevilka 1 predstavlja tipko stevilka 1,

• �NOTE ON� stevilka 2 predstavlja tipko stevilka 2,

• �NOTE ON� stevilka 3 predstavlja tipko stevilka 3,

• �NOTE ON� stevilka 4 predstavlja tipko stevilka 4,

• �NOTE ON� stevilka 5 predstavlja tipko stevilka 5,

• �NOTE ON� stevilka 6 predstavlja tipko stevilka 6,

• �NOTE ON� stevilka 7 predstavlja tipko stevilka 7,

Page 67: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

7.1. ZAPIS PODATKOV O PRSTNIH PRIJEMIH V DATOTEKI MIDI51

• �NOTE ON� stevilka 8 predstavlja tipko stevilka 8,

• �NOTE ON� stevilka 9 predstavlja tipko stevilka 9,

• �NOTE ON� stevilka 10 predstavlja tipko stevilka 10,

• �NOTE ON� stevilka 11 predstavlja tipko stevilka 11.

Uporabljen prst pa je predstavljen s podatkom �VELOCITY�, ki je del

podatka �NOTE ON�, na naslednji nacin:

• mezinec je predstavljen z �VELOCITY� vrednostjo 100,

• prstanec je predstavljen z �VELOCITY� vrednostjo 80,

• sredinec je predstavljen z �VELOCITY� vrednostjo 60,

• kazalec je predstavljen z �VELOCITY� vrednostjo 40,

• palec pa ne potrebuje te informacije, saj z njim ni mogoce doseci tipk.

Na sliki 7.2 je vidna vizualna predstavitev kanala MIDI stevilka 9 v pro-

gramu Cubase. Podolgovati lezeci pravokotniki predstavljajo podatka MIDI

�NOTE ON� ter �NOTE OFF�, medtem ko pokoncni stolpci na spodnji

polovici slike predstavljajo kontrolo �VELOCITY�.

Slika 7.2: Kanal MIDI stevilka 9 v programu Cubase.

Page 68: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

52 POGLAVJE 7. PODATKOVNI DEL APLIKACIJE

7.2 Zapis podatkov o smeri stiskanja meha v

datoteki MIDI

Podatki o mehu so postavljeni na zadnji kanal MIDI stevilka 16. Podatek je,

enako kot pri pravilnem prstnem prijemu, shranjen kot tip �NOTE ON� na

nacin kjer:

• �NOTE ON� stevilka 1 pomeni stiskanje meha,

• �NOTE ON� stevilka 2 pomeni raztezanje meha,

• �NOTE ON� stevilka 3 pomeni, da v naslednji glasbeni dobi sledi

prehod iz stiskanja na raztezanje meha,

• �NOTE ON� stevilka 4 pomeni, da v naslednji glasbeni dobi sledi

prehod iz raztezanja na stiskanje meha,

• �NOTE ON� stevilka 0 pa uporabimo za oznacitev konca pesmi.

Ker so pri mehu dejansko potrebne le te informacije, je podatek o hitrosti

�VELOCITY� nepomemben.

Page 69: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 8

Virtualni instrument za

predvajanje zvoka diatonicne

harmonike

V datoteki MIDI niso shranjeni le podatki o pritisnjenih tipkah ter smeri

raztezanja meha. Za samo predvajanje melodije diatonicne harmonike v

aplikaciji potrebujemo tri kanale MIDI. Tako bo uporabniku omogoceno tudi

poslusanje pravilno zaigrane pesmi.

Protokol MIDI smo predstavili v podpoglavju 4.2.1. Najvecja prednost

uporabe formata MIDI je v neodvisnosti kvalitete zvoka od hitrosti predva-

janja pesmi. Z uporabo standardnih zvocnih datotek bi se s spreminjanjem

hitrosti zmanjsevala kvaliteta zvoka. Ob pohitritvi pesmi bi se tako tudi

intonacija zvisala ter obratno. Ker pa za predvajanje uporabimo virtualni

instrument s posebej posnetimi zvoki vsakega tona harmonike, se le to ne

zgodi. Tako si lahko vsak uporabnik nastavi hitrost predvajanja pesmi, glede

na svojo spretnost igranja.

V tem poglavju si poglejmo zgradbo virtualnega instrumenta, ki skrbi za

zvocni del aplikacije. V osnovi je arhitektura zvocnega dela aplikacij zgra-

jena iz manjsih avdio enot, ki skupaj predstavljajo celoto imenovano zvocni

graf razreda AUGraph (angl. Audio Graph) (slika 8.1). Apple nam za upo-

53

Page 70: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

54POGLAVJE 8. VIRTUALNI INSTRUMENT ZA PREDVAJANJE

ZVOKA DIATONICNE HARMONIKE

rabo ponuja sledece avdio enote: �Effects�, �Instruments�, �Generators�,

�Panners�, �Converters�, �Mixers�, �Offline effects� in �Output units�.

Izmed vseh izberemo le nam nujne za implementacijo. Te so �Instrumets�,

�Mixer� ter �Output unit�.

Slika 8.1: Shema razlicnih avdio enot, prikljucenih na mesalno mizo v pro-

gramskem jeziku Objective C.

8.1 Arhitektura virtualnega instrumenta za

predvajanje datoteke MIDI

Protokol MIDI se zaradi svoje uporabnosti uporablja tudi pri diatonicnih

harmonikah. Poznane so harmonike z vgrajeno elektroniko protokola MIDI,

katere se z MIDI kablom poveze na sintetizatorje ali vzorcnike zvoka. V glasbi

pojem vzorcnik (angl. Sampler) predstavlja glasbeni instrument (slika 8.2),

ki je sposoben snemanja zvokov iz okolja, recimo zvena enega udarca bobna

ter le tega pozicionirati na tipkovnici virtualnega instrumenta. Ce se ta

zvok nahaja na tipki 60, ga s signalom MIDI �NOTE ON 60� ponovno zai-

gramo. Na ta isti nacin z igranjem elektricnih bobnov vzorcnik reproducira

zvok originalnih analognih bobnov. Svetovna glasbena industrija sloni na

tej tehnologiji, saj poveca in izboljsa moznosti reprodukcije zvoka analognih

Page 71: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

8.1. ARHITEKTURA VIRTUALNEGA INSTRUMENTA ZAPREDVAJANJE DATOTEKE MIDI 55

glasbil. Ta princip je najveckrat uporabljen za reproduciranje zvoka pra-

vega analognega klavirja z igranjem na cenejso elektricno klaviaturo MIDI.

Komunikacija med MIDI klaviaturo ter virtualnim instrumentom poteka po

pravilih protokola MIDI.

Slika 8.2: Primer vzorcnika zvoka (angl. Sampler), ki deluje po principu

virtualnega instrumenta.

S pritiski na tipke basne tipkovnice diatonicne harmonike lahko igramo

base ali sestavljene akorde. Razporeditev basov in akordov na basni tipkov-

nici je vidna na sliki 8.3, kjer crka A predstavlja akorde, crka B pa base. V

standardu MIDI sistema se diatonicna harmonika zaradi njene sestave po-

sluzuje naslednje razporeditve MIDI kanalov, katero uporabimo tudi mi:

• MIDI kanal st. 1 predstavlja desno melodicno stran harmonike,

• MIDI kanal st. 2 predstavlja akorde leve basne strani harmonike,

• MIDI kanal st. 3 predstavlja base leve basne strani harmonike.

Page 72: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

56POGLAVJE 8. VIRTUALNI INSTRUMENT ZA PREDVAJANJE

ZVOKA DIATONICNE HARMONIKE

Slika 8.3: Razporeditev basov in akordov na basni tipkovnici diatonicne har-

monike.

Za predvajanje MIDI datoteke potrebujemo virtualni instrument, ki bo

znal predvajati zvok diatonicne harmonike. Sestavimo ga iz treh avdio enot

�Sampler unit�.

• �Sampler unit� st. 1 reproducira zvok melodije desne melodicne strani,

ki se nahaja na MIDI kanalu st. 1,

• �Sampler unit� st. 2 reproducira zvok akordov leve basne polovice, ki

se nahajajo na MIDI kanalu st. 2,

• �Sampler unit� st. 3 reproducira zvok basov leve basne plovice, ki se

nahajajo na MIDI kanalu st. 3.

Zgoraj navedene avdio enote so prikljucene na zvocne vhode mesalne

mize, objekta razreda Mixer, ki vse dobljene signale zdruzi v en sam zvocni

signal. Shema povezav je vidna na sliki 8.4. Mesalna miza omogoca spre-

minjanje jakosti zvocnih vhodnih signalov ter mesanje le teh. Uporabnik

bo s pomocjo drsnikov nadziral nivo glasnosti posameznih zvocnih kana-

lov. Za spreminjanje jakosti zvoka v mesalni mizi je uporabljena funk-

cija AudioUnitSetParameter.

Page 73: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

8.2. PREDSTAVITEV DATOTEKE MIDI V APLIKACIJI 57

Slika 8.4: Avdio graf aplikacije.

8.2 Predstavitev datoteke MIDI v aplikaciji

Za uvoz MIDI datoteke v aplikacijo je uporabljen razred MusicSequence [35],

ki datoteko MIDI predstavi kot sekvenco oziroma zaporedje. Objektu ra-

zreda MusicSequence je potrebno nastaviti se ustrezni objekt razreda AUGraph

s klicem funkcije MusicSequenceSetAUGraph. Celotna shema predstavitve

MIDI datoteke v aplikaciji je vidna na sliki 8.5. MIDI kanali so v objektu ra-

zreda MusicSequence postavljeni po istem narascajocem vrstnem redu kot v

datoteki MIDI. Sedaj pa ne govorimo vec o MIDI kanalnih, ampak o objektih

razreda MusicTrack [36]. S funkcijo MusicSequenceGetIndTrack razdelimo

elemente objekte razreda MusicSequence na objekte razreda MusicTrack,

kjer vsak vsebuje podatke MIDI svojega MIDI kanala uvozene datoteke

MIDI. Sledi le se klic funkcije MusicTrackSetDestNode, ki poslje objekt

tipa MusicTrack na ustrezno enoto razreda SamplerUnit nasega virtual-

nega instrumenta. V implementaciji nastavimo izhode prvih treh objektov

tipa MusicTrack na virtualni instrument, medtem ko zadnja dva uporabimo

za kontrolo predstavitve obogatene resnicnosti meha ter pritisnjenih tipk.

Page 74: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

58POGLAVJE 8. VIRTUALNI INSTRUMENT ZA PREDVAJANJE

ZVOKA DIATONICNE HARMONIKE

Slika 8.5: Shema uvozene datoteke MIDI v aplikacijo.

Page 75: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 9

Sinhronizacija predvajane

pesmi s prikazom obogatene

resnicnosti

Seznanjeni smo s podatkovnim delom aplikacije, MIDI datoteko ter uvozom le

te v aplikacijo. MIDI kanali so razporejeni po objetkih razreda MusicTrack,

ki pa med samim predvajanjem pesmi ne omogocajo direktnega sinhronega

vpogleda v svoje elemente. Omenjenemu objektu razreda MusicTrack je

mogoce le dolociti koncno lokacijo elementov. To so avdio enote SamplerUnit,

ki predstavljajo dejanski izvor zvocnega signala aplikacije.

Med samim predvajanjem pesmi moramo izlusciti podatke potrebne za

prikazovanje obogatene resnicnosti, shranjene v objektu tipa MusicTrack.

Edini dostop do elementov objekta razreda MusicTrack predstavlja objekt

razreda MusicEventIterator [37]. V osnovi je to objekt iterator, s kate-

rim se je moc sprehoditi preko vseh elementov objekta razreda MusicTrack.

Funkcija, ki bi omogocala sinhron dostop do podatkov med predvajanjem

pesmi, ne obstaja. Tako implementiramo svoj algoritem, ki bo poskrbel za

sinhronizacijo predvajane pesmi s podatki, potrebnimi za prikaz obogatene

resnicnosti.

V aplikaciji je uporabljena casovna enota tipa MusicTimeStamp. Do

59

Page 76: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

60POGLAVJE 9. SINHRONIZACIJA PREDVAJANE PESMI S

PRIKAZOM OBOGATENE RESNICNOSTI

trenutnega casa med samim predvajanjem pesmi pridemo s klicem funk-

cije MusicPlayerGetTime. Z uporabo trenutnega casa v predvajani skladbi

ter s klicem funkcije MusicEventIteratorSeek poiscemo naslednji dogodek

v objektu tipa MusicTrack. Funkcija MusicEventIteratorNextEvent po-

makne izbrani iterator na naslednji dogodek v seznamu. S klicem funk-

cije MusicEventIteratorGetEventInfo pa pridobimo vse podatke trenu-

tnega objekta shranjenega v iteratorju. Sedaj je potrebna le se sinhronizacija

objekta tipa MusicEventIterator s trenutnim casom v predvajani skladbi.

Vse navedeno je implementirano v funkciji synchronizeTime na naslednji

nacin:

1 (void ) synchronizeTime

{3 MusicTimeStamp timestampInSong ;

MusicPlayerGetTime ( myPlayer , &timestampInSong ) ;

5 //imamo l o k a c i j o v pesmi

Mus icEventIterator i t e rTipkaKontro la ; // i t e r a t o r

7 NewMusicEventItarator ( t rackBasPrst i , &i te rTipkaKontro la ) ;

Mus icEventIteratorSeek ( i terTipkaKontro la , timestampInSong ) ;

9 MusicEventType eventTypeKontrolaTipka = 0 ;

Const void ∗ eventDataKontrolaTipka = NULL;

11 Uint32 eventDataSizeKontrolaTipka = 0 ;

MusicTimeStamp durat ionKontrolaTipka = 0 ;

13 Int noteKontrolaTipka = 0 ;

Int ve loc i tyKontro laTipka = 0 ;

15 MusicTimeStamp timestampKontrolaTipka ;

MusicEventIteratorGetEventInfo ( i terTipkaKontro la , &

timestampKontrolaTipka , &eventTypeKontrolaTipka , &

eventDataKontrolaTipka , &eventDataSizeKontrolaTipka ) ;

17 // podatki i t e r a t o r j a

NSSTring ∗ Str ingCasPlayer ;

19 NSString ∗ t imestampTipkaString ;

t imestampTipkaString = [ NSSTring stringWithFormat : @”%.1 f ” ,

timestampKontrolaTipka ] ;

21 Str ingCasPlayer = [ NSSTring stringWithFormat : @”%.1 f ” ,

Page 77: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

61

timestampInSong ] ;

Boolean i s P l a y i n g = 0 ;

23 MusicPlayer I sPlay ing ( myPlayer , &i s P l a y i n g ) ;

While ( i s P l a y i n g )

25 // zanka se i z v a j a dok l e r se skladba predvaja

{27 I f ( [ s t r ingCasPlayer i sEqualToStr ing : t imestampTipkaString ] )

{29 I f ( eventTypeKontrolaTipka ==

kMusicEventType MIDINoteMessage )

{31 MIDINoteMessage ∗noteMessageKontrolaTipka = (

MIDINoteMeassage ∗) eventDataKontrolaTipka ;

noteKontrolaTipka = noteMessageKontrolaTipka −> note

;

33 ve loc i tyKontro laTipka = noteMessageKontrolaTipka −>v e l o c i t y ;

durat ionKontrolaTipka = noteMessageKontrolaTipka −>durat ion ;

35 MusicEventIteratorNextEvent ( i t e rTipkaKontro la ) ;

MusicEventIteratorGetEventInfo ( i terTipkaKontro la , &

timestampKontrolaTipka , &eventTypeKontrolaTipka , &

eventDataKontrolaTipka , &eventDataSizeKontrolaTipka ) ;

37 g loba lNote = noteKontrolaTipka ;

g l o b a l V e l o c i t y = ve loc i tyKontro laTipka ;

39 [ s e l f performSelectorOnMainThread : @selector (

updateLabelFinger ) withObject : n i l waitUnti lDone :NO] ;

t imestampTipkaString = [ NSSTring stringWithFormat : @

”%.1 f ” , timestampKontrolaTipka ] ;

41 }}

43 MusicPlayerGetTime ( myPlayer , &timestampInSong ) ;

Str ingCasPlayer = [ NSSTring stringWithFormat : @”%.1 f ” ,

timestampInSong ] ;

45 MusicPlayer I sPlay ing ( myPlayer , &i s P l a y i n g ) ;

// a l i s e pesem predvaja

47 }}

Page 78: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

62POGLAVJE 9. SINHRONIZACIJA PREDVAJANE PESMI S

PRIKAZOM OBOGATENE RESNICNOSTI

Preverjanje sinhronizacije poteka zanki, ki se med predvajanjem skladbe

stalno ponavlja. V kolikor se zanka izvaja na glavni niti aplikacije, se pojavi

problem neodzivanja graficnega vmesnika aplikacije. Objective C omogoca

vecnitno programiranje [43], kar v nasi implementaciji tudi uporabimo. Funk-

cijo, ki skrbi za sinhronizacijo predvajane skladbe s prikazom obogatene

resnicnosti, tako izvajamo v lastni niti objekta razreda NSThread, s cimer

graficni vmesnik aplikacije postane normalno odziven. Med pocasnejsim

predvajanjem skladbe pa izvajanje zanke upocasnimo s klici funkcije usleep,

ki izvajanje niti ustavi za doloceno stevilo milisekund. Tako prihranimo pro-

cesorsko moc tablicnega racunalnika.

Page 79: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 10

Aplikacija za ucenje igranja

basov diatonicne harmonike

Aplikacija je izdelana samo za uporabo na tablicnem racunalniku iPad. Ker

je za delovanje aplikacije potrebna tudi kamera, aplikacija ne bo delovala na

iPadu prve generacije. Postavitev harmonike ter tablicnega racuanlnika je

vidna na sliki 10.1.

Graficni vmesnik je zasnovan na nacin, da je uporabniku cimbolj razu-

mljiv. Aplikacija uporablja vodoravni nacin prikaza (angl. Landscape mode).

Tako se odlocimo zaradi nacina igranja harmonike, kjer je potrebno razte-

zanje in stiskanje meha v sirino. V primeru da uporabnik z basnim delom

harmonike zaide iz vidnega polja kamere, lahko svoj polozaj popravi s pri-

tiskom na tipko imenovano sapnik. Le ta se nahaja na zunanji strani leve

polovice harmonike. Vsaka harmonika jo ima, saj je nujno potrebna pri

sproscanju ter zajemanju zraka v meh harmonike.

63

Page 80: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

64POGLAVJE 10. APLIKACIJA ZA UCENJE IGRANJA BASOV

DIATONICNE HARMONIKE

Slika 10.1: Uporaba aplikacije v praksi.

10.1 Glavno okno aplikacije

Bistvo aplikacije predstavlja cim boljsa predstavitev obogatene resnicnosti

na zaslonu (slika 10.2), zato je potrebno prostorsko omejiti stevilo prikazanih

kontrol na zaslonu. Prva kontrola je tipka za zacetek predvajanja pesmi. Ob

naslednjem pritisku na ta isti gumb pa se predvajanje pesmi ustavi. V pri-

meru da se je pesem odvrtela do konca, se s ponovnim pritiskom na to isto

tipko zacne predvajati od zacetka. Kontrola predvajanja je implementirana

podobno kot pri ostalih predvajalnikih video ter avdio vsebin. Sama tipka

je razmeroma majhne velikosti, kar za uporabnika med igranjem predstavlja

problem. Za lazji pritisk nanjo je implementacija tipke razsirjena na celotni

zaslon pod drsnikom. Tako uporabnik z enim dotikom na zaslon pricne pred-

vajati izbrano skladbo.

Edina drsna kontrola na glavnem oknu podaja informacijo o trenutni lo-

kaciji v pesmi. Ob pritsku nanjo ter drsenju s prstom po njej spreminjamo

Page 81: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

10.2. NASTAVITVE PREDVAJANJA SKLADBE 65

trenutno lokacijo v pesmi. Uporabnik se tako lahko hitro osredotoci in po-

stavi na izbrani del pesmi.

V spodnjem desnem robu sta se dve tipki za prikaz dveh razlicnih menujev

nastavitev aplikacije. Do nastavitev je mogoc dostop med samim predvaja-

njem skladbe.

Slika 10.2: Glavno uporabnisko okno koncane aplikacije.

10.2 Nastavitve predvajanja skladbe

Ob pritisku tipke z napisom �Nastavitve� aplikacija prikaze kontrole, ki

sluzijo nastavitvam predvajanja pesmi (slika 10.3). Na vrh zaslona je po-

stavljena tipka za izhod iz menija. Pod njo se nahaja drsnik za nastavljenje

hitrosti predvajanja. Uporabnik doloci hitrost predvajanja glede na svojo

sposobnost igranja. S klicem funkcije MusicPlayerSetPlayRateScalar spre-

Page 82: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

66POGLAVJE 10. APLIKACIJA ZA UCENJE IGRANJA BASOV

DIATONICNE HARMONIKE

minjamo hitrost predvajanja skladbe. Sledijo stiri tipke za izbiro pesmi.

Nizje so postavljeni se trije drsniki, povezani z mesalno mizo nasega vir-

tualnega instrumenta. Prvi drsnik kontrolira nivo glasnosti prvega kanala

mesalne mize, na katerem se predvaja melodicna stran harmonike. Drugi

drsnik kontrolira jakost drugega kanala, skozi katerega potuje zvok akordov

basnega dela harmonike. Zadnji, tretji drsnik pa kontrolira jakost basov har-

monike. Uporabnik si tako sam nastavi nivoje glasnosti harmonike. Dober

primer uporabe je, ko uporabnik utisa nivo glasnosti akordov ter basov in

jih poskusi nadomestiti z lastnim igranjem. Medtem se predvaja samo zvok

melodicne polovice diatonicne harmonike.

Diatonicne harmonike so uglasene v razlicnih durovskih kombinacijah.

Uporabniku je tako omogocena izbira ustreznega durovskega nacina glede

na njegovo harmoniko. Igranje se pri razlicnih uglasitvah harmonike ne

spreminja, edino, kar se spremeni je visina intonacije skladbe. Tako mo-

ramo spremeniti le intonacijo predvajane skladbe, medtem ko se prikazana

obogatena resnicnost ne spremeni. Spreminjanje intonacije se v glasbenem

zargonu imenuje transponiranje za doloceno stevilo poltonov. Transponi-

ranje opravimo na sami avdio enoti razreda samplerUnit, kjer s klicem

funkcije AudioUnitSetParameter na zeljeno vrednost nastavimo parame-

ter kAUSamplerParamCoarseTuning.

Page 83: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

10.3. NASTAVITVE PRIKAZA OBOGATENE RESNICNOSTI 67

Slika 10.3: Prikaz nastavitev predvajanja pesmi.

10.3 Nastavitve prikaza obogatene resnicnosti

Uporabnik si poleg basnih tipk namesti oznako vidno na sliki 5.14. Polozaj

in razmaki tipk se na levi basni strani harmonike razlikujejo glede na izdelo-

valca harmonik. Gre za majhna odstopanja, vendar dovolj velika za omembo

ter da omogocimo uporabniku samostojno nastavitev polozaja ter velikosti

prikaza obogatene resnicnosti glede na zaznano oznako (slika 10.4). Tocna

lokacija in velikost oznake tako nista nujno potrebna. Ob pritisku na gumb

�Oznaka� na glavnem uporabniskem oknu se na zaslon izrisejo drsne kontrole

za nastavitev. Vse tipke, ki predstavljajo obogateno resnicnost aplikacije, se-

daj zasvetijo z nevtralno belo barvo. Uporabnik z drsniki dodatno nastavi

prikaz obogatene resnicnosti, tako da tipke obogatene resnicnosti prekrijejo

basne tipke diatonicne harmonike. Pravilna nastavitev je vidna na sliki 10.4.

Drsniki si sledijo po sledecem vrstem redu:

Page 84: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

68POGLAVJE 10. APLIKACIJA ZA UCENJE IGRANJA BASOV

DIATONICNE HARMONIKE

• drsnik za povecavo navzgor,

• drsnik za povecavo navzdol,

• drsnik za povecavo v levo,

• drsnik za povecavo v desno,

• drsnik za globino prve vrste (kjer je 6 tipk),

• drsnik za globino druge vrste (kjer je 5 tipk).

Basne tipke diatonicne harmonike so postavljene v dveh vrstah. Da lahko

igralec normalno doseze vse tipke, so tipke prve vrste postavljene priblizno

13 milimetrov globlje glede na tipke druge vrste. Pri nekaterih harmonikah

obstajajo majhna odstopanja. Za dolocanje globine prikaza sta uporabljena

spodnja dva drsnika vidna na sliki 10.4.

Slika 10.4: Natancna nastavitev polozaja prikaza obogatene resnicnosti glede

na oznako.

Page 85: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

10.3. NASTAVITVE PRIKAZA OBOGATENE RESNICNOSTI 69

Ob uporabi kvalitetno natisnjene oznake in cvrsti pritrditvi le te na har-

moniko je potrebna samo prva nastavitev oznake v aplikaciji. Vse nastavitve

se shranijo v pomnilnik aplikacije z uporabo razreda NSUserDefaults, tako

da jih ob vsakem ponovnem zagonu aplikacije ni potrebno vec nastavljati. To

velja tudi za nastavitve predstavljene v prejsnjem podpoglavju 10.2. V pro-

gramski kodi funkcije saveData, saveDataMixer, loadData in loadDataMixer

opravijo shranjevanje ter nastavljanje shranjenih vrednosti aplikacije. Vse te

funkcije so implementirane v razredu MusicViewCotroller.m.

Page 86: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical
Page 87: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 11

Moznosti izboljsav in razsiritev

V diplomskem delu smo realizirali aplikacijo, ki uporabnika s pomocjo oboga-

tene resnicnosti nauci pravilnega igranja basov diatonicne harmonike. Sama

implementacija predstavlja izziv za vec podrocij racunalnistva, glasbenega

znanja ter celo pedagogike. V razvoju je uporabljenih veliko stevilo razlicnih

tehnologij, za katere obstajajo izboljsave in razsiritve.

11.1 Zaznavanje prstov s pomocjo barv ali

oznak

Delo glasbenega pedagoga ni samo ucenje pravilnega igranja instrumenta.

Poleg pravilnega ucenja mora biti tudi dober pedagog, ki zna ucenca mo-

tivirati ter pohvaliti ob dosezenih rezultatih. Tega aplikacija seveda ne zna

storiti in tako v pedagoskem pogledu ne bo nikoli uspela nadomestiti dobrega

ucitelja. Z moznostjo detekcije prstov, bi aplikacija lahko sledila igranju

uporabnika. Algoritem bi tako sesteval pravilne pritiske tipk, ter na koncu

igranja izpisal dosezeni rezultat. Uporabnik bi tako dobil povratno oceno

pravilnega igranja.

Sama implementacija algoritma zaznave oznake, prikaza obogatene re-

snicnosti ter predvajanja skladbe preko virtualnega instrumenta aplikacije

je za tablicni racunalnik iPad tretje generacije velik zalogaj. Ob dodatnem

71

Page 88: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

72 POGLAVJE 11. MOZNOSTI IZBOLJSAV IN RAZSIRITEV

procesiranju detekcije prstov bi se tako soocili s se pocasnejsim izrisovanjem

slike na ekran.

Page 89: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Poglavje 12

Sklepne ugotovitve

Rezultat diplomske naloge nam ponudi nov nacin ucenja pravilnega igranja

basov diatonicne harmonike. Uporabnik na zaslonu tablicnega racunalnika

iPad takoj vidi in slisi ali je njegovo igranje pravilno. Aplikacija je primerna

za uporabo na vseh trivrstnih diatonicnih harmonikah z enajstimi basnimi

tipkami. Omogocen je izbor vseh moznih durovskih kombinacij trivrstnih

diatonicnih harmonik. Polozaj oznake in izris obogatene resnicnosti se doda-

tno nastavi v sami aplikaciji. Algoritem ucenja je bil izboljsan s predhodno

informacijo naslednje pritisnjene tipke ter raztezanja meha. Ta izboljsava je

pripomogla k uporabniku prijaznejsi metodi ucenja, saj se tako lahko pri-

pravi za naslednji pritisk tipke.

Ideja ucenja instrumenta s pomocjo obogatene resnicnosti bi bila upo-

rabna tudi pri ostalih instrumentih, ceprav ne pri vseh. Za samo detekcijo

harmonike smo izbrali najbolj primeren nacin z uporabo detekcije oznake,

ceprav obstajajo alternative, ki pa se zaenkrat niso izkazale kot najbolj pri-

merne. Z dodatnim razvojem na podrocju racunalniskega vida ter odprtoko-

dne knjiznice OpenCV se to seveda lahko tudi spremeni. Uporaba MIDI pro-

tokola za predstavitev pesmi ponudi aplikaciji dodano vrednost spreminjanja

hitrosti igranja, visoke kvalitete zvoka ter podajanja informacij o pravilnem

igranju basov diatonicne harmonike.

Uporaba obogatene resnicnosti v aplikacijah trenutno predstavlja novo

73

Page 90: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

74 POGLAVJE 12. SKLEPNE UGOTOVITVE

smer razvoja aplikacij in programske opreme. Odpirajo se nove moznosti tudi

v povezavi obogatene resnicnosti z ucenjem igranja glasbenih instrumentov.

Page 91: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

Literatura

[1] M. Debevec, �Nadgradnja tradicionalnega pristopa v igranju na dia-

tonicno harmoniko�, diplomsko delo, Rakitna 2003, str. 3-10, str. 43-47

[2] Glasbena sola na daljavo. Dostopno na:

http://www.glasbena-sola.com

[3] Glasbena sola na daljavo, Nemcija. Dostopno na:

http://www.musikschule-zuhause.de

[4] Racunalniski program �VSLN�. Dostopno na:

http://www.sola-harmonike.si/demo/demo-vsln-program-za-ucenje-

diatonicne-harmonike.html

[5] Robert Goter. Dostopno na:

http://www.robertgoter.com/

[6] Racunalniski program �LTK�. Dostopno na:

https://sites.google.com/site/ltkharmonik/home

[7] Definicija obogatene resnicnosti. Dostopno na:

http://en.wikipedia.org/wiki/Augmented reality

[8] R. T. Azum, �A survey of augmented reality�, objavljeno v:�Teleope-

rators and Virtual Environments 6�, 1997, str. 2, str. 10-12

[9] Uporaba obogatene resnicnosti v nacrtovanju proizvodnje, pogl. 2.

Dostopno na:

75

Page 92: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

76 LITERATURA

http://www.intechopen.com/books/augmented-reality/using-

augmented-reality-to-cognitively-facilitate-product-assembly-process

[10] Uporaba obogatene resnicnosti v marketingu. Dostopno na:

http://weareorganizedchaos.com/index.php/2009/10/15/3-questions-

to-ask-yourself-before-using-augmented-reality-in-marketing-and-

advertising/

[11] Primer uporabe obogatene resnicnosti �ar.drone�. Dostopno na:

http://ardrone2.parrot.com/

[12] Mobilna aplikacija �Anatomy 4D�. Dostopno na:

http://4danatomy.com/

[13] Mobilna aplikacija �Musems Of London�. Dostopno na:

http://chief.uc.pt/blog/index.php/streetmuseum-a-successful-

partnership-between-technology-and-cultural-heritage/

[14] I. Barakonyi, D. Schmalstieg, �Augmented reality agents in the deve-

lopment pipeline of computer entertainment�, pogl. 6. Dostopno na:

http://barakonyi.net/papers/arpuppet icec05.pdf

[15] Aplikacija �Augment 3D�. Dostopno na:

http://augmentedev.com/#home

[16] O. Cakmakci, F. Berard, J. Coutaz, �An Augmented Reality Based Le-

arning Assistant for Electric Bass Guitar�, na konferenci:�10th Inter-

national Conference on Human Computer Interaction�, Kreta, (2003)

[17] D. Zhang, Y. Shen, S.K. Ong, �An Affordable Augmented Reality based

Rehabilitation System for Hand Motions�, na konferenci:�International

Conference on Cyberworlds�, Singapur, 2010

[18] Y. Motokawa, H. Saito, �Support System for Guitar Playing using Au-

gmented reality Display�, Yokohama, 2006

Page 93: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

LITERATURA 77

[19] Programska knjiznica ARToolKit. Dostopno na:

http://www.hitl.washington.edu/artoolkit/

[20] F. Liarokapis, �Augmented reality scenarios for guitar learning�, obja-

vljeno v:�EG UK Theory and Practice Of Computer Graphics�, Lon-

don, 2005.

[21] Orodje Xcode. Dostopno na:

https://developer.apple.com/technologies/tools/

[22] Orodje Instruments. Dostopno na:

https://developer.apple.com/technologies/tools/features.html

[23] Programski jezik Objective C. Dostopno na:

https://developer.apple.com/library/ios/#referencelibrary/GettingSt

arted/Learning Objective-C A Primer/

[24] Protokol MIDI. Dostopno na:

http://sl.wikipedia.org/wiki/MIDI

[25] Johnson, Joel. “The Master Key”: L. Frank Baum envisions augmented

reality glasses in 1901 Mote & Beam, 2012.

[26] Datoteka MIDI. Dostopno na:

http://en.wikipedia.org/wiki/MIDI#Standard MIDI files

[27] Detekcija s pomocjo iskanja barv. Dostopno na:

http://www.v3ga.net/processing/BlobDetection/

[28] Houghova krozna transformacija. Dostopno na:

http://www.cis.rit.edu/class/simg782/lectures/lecture 10/lec782 05 1

0.pdf

[29] Primer Houghove krozne transformacije v knjiznici OpenCV. Dostopno

na:

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/houghq circle

/hough circle.html#hough-circle

Page 94: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

78 LITERATURA

[30] Iskanje objekta v sliki s funkcijo �matchTemplate�. Dostopno na:

http://docs.opencv.org/doc/tutorials/imgproc/histograms/temp

late matching/template matching.html#template-matching

[31] Detekcija obrazov v knjiznici OpenCV. Dostopno na:

http://docs.opencv.org/doc/tutorials/objdetect/cascade classifier/casc

ade classifier.html#cascade-classifier

[32] Binarna slika. Dostopno na:

http://en.wikipedia.org/wiki/Binary image

[33] Funkcija Canny v knjiznici OpenCV. Dostopno na:

http://docs.opencv.org/modules/imgproc/doc/feature detection.html

?highlight=canny#cv.Canny

[34] Algoritem �Canny�. Dostopno na:

http://en.wikipedia.org/wiki/Canny edge detector

[35] Music Sequence referenca. Dostopno na:

http://developer.apple.com/library/mac/#documentation/AudioTool

box/Reference/MusicSequence Reference/Reference/reference.html

[36] Music Track referenca. Dostopno na:

http://developer.apple.com/library/mac/#documentation/AudioTool

box/Reference/MusicTrack Reference/Reference/reference.html#//ap

ple ref/doc/uid/TP40009332

[37] Music Event Iterator referenca.Dostopno na:

http://developer.apple.com/library/mac/#documentation/AudioTool

box/Reference/MusicEventIterator Reference/Reference/reference.

html#//apple ref/doc/uid/TP40009333

[38] Orodje Cubase 7.0. Dostopno na:

http://www.steinberg.net/en/products/cubase/start.html

Page 95: Aplikacija za u cenje igranja basov diatoni cne …eprints.fri.uni-lj.si/2091/1/Koren_D-1.pdfharmonika, OpenCV, detekcija oznake, ra cunalnki ski vid Abstract Learning to play a musical

LITERATURA 79

[39] Orodje AULab. Dostopno na:

http://www.apple.com/itunes/mastered-for-itunes/

[40] Igra AR Basketball. Dostopno na:

https://itunes.apple.com/us/app/arbasketball-augmented-

reality/id393333529

[41] D. L. Baggio, S. Emami, D. M. Escriva, K. Ievgen, N. Mahmood, J. Sa-

ragih, R. Shilkrot, �Mastering OpenCV with Practical Computer Vision

Projects�, pog. 2, Birmingham, 2012.

[42] OpenGL teksture. Dostopno na:

http://open.gl/textures

[43] Nitenje v Objective C. Dostopno na:

http://developer.apple.com/library/ios/#Documentation/Cocoa/Con

ptual/Multithreading/Introduction/Introduction.html

[44] Aplikacija Strasser harmonika. Dostopno na:

https://itunes.apple.com/us/app/strasser-harmonika/id474198229