Linköpings Universitet. TNM034 - Avancerad Bildbehandling. Beathoven. emiax775. Emil Axelsson Anna Flisberg Karl Johan Krantz.

Relevanta dokument
Optical Music Recognition

Bildbehandling, del 1

Histogramberäkning på en liten bild

Bildmosaik. Bilddatabaser, TNM025. Anna Flisberg Linne a Mellblom. linme882. Linko pings Universitet

Ansiktsigenkänning med MATLAB

Ett enkelt OCR-system

TNM030 Tentasammanfattning (frågor) Nathalie Ek, Sammanfattning. TNM030 - Bildbehandling och bildanalys

Signaler, information & bilder, föreläsning 15

Histogram över kanter i bilder

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Fingerprint Matching

Bildförbättring i spatial domänen (kap. 3) Bildförbättring (enhancement) Spatial domän. Operatorer. Tröskling (threshold) Gråskale-transformationer

Projekt i bildanalys Trafikövervakning

TAIU07 Matematiska beräkningar med Matlab

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Bildbehandling En introduktion. Mediasignaler

Bildanalys. Segmentering. Föreläsning 7. Split and Merge. Region Growing

Grundritning Torpargrund

Checklista som kan anva ndas för att komma igång med DigiExam och allma nna rekommendationer fo r att lyckas med provtillfa llet.

Bildredigering i EPiServer & Gimp

Signaler, information & bilder, föreläsning 15

TEM Projekt Transformmetoder

Spektrala Transformer för Media

Begrepp:: Kort om Kryssprodukt

Spektrala Transformer för Media

TANA17 Matematiska beräkningar med Matlab

Mer om analytisk geometri

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll

Bildanalys för vägbeläggningstillämplingar

Generering av L-system fraktaler med Processing.js

Figur 2: Bild till uppgift 1 a) b) Figur 3: Bilder till uppgift 7 5

Bildbehandling i frekvensdomänen. Erik Vidholm

diverse egenskapspaletter

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

Bildbehandling i frekvensdomänen

Avancerad Bildbehandling Stitching av bilder

Grundredigering i Photoshop Elements. Innehåll. Lennart Elg Grundredigering i Elements Version 2, uppdaterad

Dokumenteringar av mätningar med TLC (Thermocrome liquid crystals)

Programmering för avläsning och avkodning av QR-koder i MATLAB

Digitalisera analoga bilder

TNM030 -Sammanfattning Nathalie Ek, Sammanfattning. TNM030 - Bildbehandling och bildanalys

Kamerans sensor. I kameran sitter bildsensorn som består av en rektangulär platta med miljontals små ljuskänsliga halvledare av CCD eller CMOS typ.

Övervakningssystem. -skillnader i bilder. Uppsala Universitet Signaler och System ht Lärare: Mathias Johansson

Att få in bilder i datorn

Snabbguide. ITP Whiteboard har 3 nivåer bas, medel och avancerad. Detta gör att det är enkelt att börja jobba med ITP Whiteboard.

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter.

Bildbehandling i spatialdomänen och frekvensdomänen

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Digitala bilder. Matris, pixel, pixeldjup, signal, brus, kontrast

Fönster och dörr. Kapitel 3 - Fönster och dörr... 3

Tentamen i kurs DM1574, Medieteknik, gk, , kl. 8-13, sal E Uppgifter i kursdelen Fotografi och bild.

Anvisningar för passfoto

Grundritning Torpargrund

Specifikation av kandidatexjobb

8 Binär bildbehandling

NU NÄR DU BEKANTAT DIG MED RAMARNAS EGENSKAPER OCH VET. hur man markerar och ändrar dem, är det dags att titta lite närmare på

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Varför musikteori? Toner - grunden inom musikteori

BILDBEHANDLINGSMETOD INNEFATTANDE BRUSREDUCERING I BILD MED LOKALT ADAPTIV FILTERKÄRNA

QosmioEngine För avancerad video

MUSIKMATEMATIK LÄRARHANDLEDNING

Laboration 4: Digitala bilder

1. Mätning av gammaspektra

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Grundredigering i Photoshop Elements

Kapitel 7 Skorsten, trappa och inredning... 3

Förbättrad Sprickdetektering

UPPGIFT 1 TVETYDIGA DATUM

2011 Studsvik AB PANORAMA-BILDTAGNING. Tony Björkman

x = som är resultatet av en omskrivning av ett ekvationssystemet som ursprungligen kunde ha varit 2x y+z = 3 2z y = 4 11x 3y = 5 Vi får y z

Kort introduktion till POV-Ray, del 1

Efterbehandlingsmeny. Miniatyrer. Tomma sidor. N-upp granskning Sortera sidor Skiljeblad Separatorkälla Häftning Initierar häftning

För ingenjörs- och distansstudenter Linjär Algebra ma014a ATM-Matematik Mikael Forsberg

Exempel på hur man kan bygga enkla former i Illustrator

Inledning. Kapitel Bakgrund. 1.2 Syfte

Matematik 92MA41 (15hp) Vladimir Tkatjev

Nr 5. Diagonalmått Avser mått mellan ytterhörn på bjälklag eller grundmur. Toleransen gäller samtliga diagonaler.

Snabbguide i storstil

Föreläsning 7: Klassificering, minsta kvadratproblem, SVD, forts.

Grundläggande logik och modellteori

Installation System T, System HATT VertiQ. Lösningar för väggabsorbenter med hög slagtålighet

F3C HELIKOPTER SPORT PROGRAM (Ny manöver 2 ersätter tidigare, fr.o.m. 2001)

Ikot steg 4. Grupp F5

Steg 1 Klipp ut de figurer du behöver! Steg 2 Bygg din rymdraket! Matematikuppgift 1

Tentaupplägg denna gång

KTH Tillämpad Fysik. Tentamen i Teknisk Fotografi, SK2380, , 9-13, FB53

Lösning till fråga 5 kappa-06

G(s) = 5s + 1 s(10s + 1)

Objective:: Linjärt beroende och oberoende version 1.0

Fotomontage Grönhult. 2 layouter. FaloVind

Flerdimensionella signaler och system

2. 1 L ä n g d, o m k r e t s o c h a r e a

M6x16 (Bild 6.1.) M8 (Bild 6.2.) M8x25

Diffraktion och interferens

Syftet med rutinen. Ansvarsfördelning. Flödesschema rutin för revisionshantering

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

MätKart Kvalitet i mätning med God mätsed

Kristian Pettersson Feb 2016

Transkript:

Linköpings Universitet TNM034 - Avancerad Bildbehandling Beathoven Emil Axelsson Anna Flisberg Karl Johan Krantz emiax775 annfl042 karkr654 15 december 2013

Sammanfattning Detta är en projektrapport som behandlar optisk musikigenkänning för kursen TNM034 - Avancerad Bildbehandling. Projektet är utfört i MATLAB. Översiktligt kan projektet ses som uppdelat i två steg. I det första steget försöker programmet åtgärda geometriska och fotometriska distorsioner samt illuminationsproblem som ofta uppkommer när bilden som analyseras är ett fotografi. Det andra steget är en analys av notsystemen för att hitta alla noter för att avgöra tonhöjd och notvärde. I slutändan matas en textsträng ut, som listar de noter som hittades.

Innehåll 1 Inledning 3 2 Metod 4 2.1 Utjämning av illumination........................................ 4 2.2 Korrigering av perspektiv........................................ 4 2.3 Kompensation för rotation........................................ 5 2.4 Lokalisering av notlinjer......................................... 5 2.4.1 Horisontell Projektion...................................... 5 2.4.2 Förfining av resultat....................................... 6 2.5 Avlägsning av notlinjer......................................... 6 2.6 Läsning av noter............................................. 7 2.6.1 Nothuvuden............................................ 7 2.6.2 Notskafft............................................. 7 2.6.3 Kombination........................................... 7 2.6.4 Balkar och flaggor........................................ 8 3 Resultat 9 3.1 Bildresultat................................................ 9 3.1.1 Scannerbilder........................................... 9 3.1.2 Kamerabilder........................................... 9 3.2 Textjämförelse.............................................. 9 3.2.1 Resultattabell........................................... 10 4 Diskussion 11 4.1 Förbehandling.............................................. 11 4.2 Förbättringar............................................... 11 4.2.1 Fotometrisk distorsion...................................... 11 4.2.2 Rörelseoskärpa.......................................... 11

Figurer 2.1 Orginalbild med ojämn illumination.................................. 4 2.2 Endast bakgrunden ur orginalbilden.................................. 4 2.3 Resultatbild efter ujämning av illumination.............................. 4 2.4 Projektioner............................................... 4 2.5 Referenspunkter och deras önskade position.............................. 5 2.6 Resultat efter perspektivkorrigering................................... 5 2.7 Horisontell projektion.......................................... 6 2.8 Före öppning............................................... 6 2.9 Efter öppning............................................... 6 2.10 Nothuvuden framplockade........................................ 7 2.11 Falska notskaft detekterade....................................... 7 2.12 Notskaft sammankopplade med nothuvuden.............................. 7 2.13 Områden där flaggor och balkar detekteras har markerats som rektanglar.............. 8 2.14 Projektion av en balk.......................................... 8 2.15 Projektion av två balkar......................................... 8 3.1 Orginalbild, scannad........................................... 9

Kapitel 1 Inledning Att optiskt läsa av innehållet i bilder och översätta informationen till ett format som går att bearbeta är mycket användbart. Musiknotationer är ett typiskt exempel på bilder där det kan vara intressant att få informationen till data som går att bearbeta på ett eller annat sätt, exempelvis för att spela upp musiken. Informationen i ett notblad består av diverse olika symboler som kan tas fram med hjälp av bildanalystekniker. Det svåra med att skapa användbar data över ett notblad, till skillnad från en vanlig text, är att det i notspråket finns symboler som i samband med andra symboler ger olika resultat. I ett notblad kan också flera symboler finnas på samma position, dessa symboler måste tas om hand var och en för sig för att datan ska bli korrekt. 3

Kapitel 2 Metod 2.1 Utja mning av illumination Fo r att tro sklingen av bilden ska fungera korrekt kra vs det att bilden har en ja mn illumination. Detta justeras genom att fo rst go ra en morfologisk o ppning med ett relativt stort cirkula rt strukturelement. O ppning a r erosion fo ljt av dilation och ger effekten att alla objekt som inte helt ta cks av strukturelementet tas bort. Kvar blir bakgrunden, se figur 2.2. Fo r att fa en ja mn belysning i bilden subtraheras sedan resultatet fra n den morfologiska operationen fra n orginalbilden. Figur 2.1: Orginalbild med oja mn illumination 2.2 Figur 2.2: Endast bakgrunden ur orginalbilden Figur 2.3: Resultatbild uja mning av illumination efter Korrigering av perspektiv Om bilden tagits med en kamera kommer den beho va ra tas ut fo r att fo renkla fo r efterfo ljande steg i processen. Fo r att go ra detta so ker programmet efter ho rnpunkter pa varje notsystem som kan anva ndas som referenspunkter. En grov separation av notsystemen go rs genom att projicera bilden horisontellt och leta efter dalar i projektionskurvan. De potentiella notsystem som hittas mellan dalarna projiceras var fo r sig vertikalt. Fo r att kvalificeras som notsystem beho ver projektionens bredd uppga till 90% av den bredaste projektionens bredd. Pa detta sett sorteras ba de notsystem som inte upptar hela sidans bredd, samt o vrig text bort, se figur 2.4. Figur 2.4: Projektioner 4

För att ytterligare minska sannolkheten att få med andra pixlar än de som verkligen ingår i notystemet exempelvis ackordanalyser, eller handskrivna kommentarer görs en lätt expansion följd av en ettikettering av sammanhängande områden. Inom varje vertikal avdelning som tidigare bestämts innehålla ett notsystem behålls endast det sammanhängande område som har störst area. För att hitta de pixlarna som utgör notsystemets fyra hörn genomförs därefter en projektion på fyra vektorer som var och en pekar ut mot hörnen. De fyra pixlelpositioner vars respektive projkektioner blir störst väljs ut som hörnpukter, röda punkter i figur 2.5. Figur 2.5: Referenspunkter och deras önskade position Figur 2.6: Resultat efter perspektivkorrigering När referenspunkterna valts ut används matlabs cp2tf orm-funktion för att hitta den bästa möjliga perspektivtransformation som tar punkterna från deras önskade position, gröna punkter i figur 2.5, till deras nuvarande. Genom att applicera en inverterad transform på bilden elimineras perspektivdistorsionen, se resultat i figur 2.6. 2.3 Kompensation för rotation Även om bilden som ska analyseras är inläst i en scanner och är fri från distortion från kamerans optik och perspektiv kommer den ibland att vara roterad på grund av att papperet inte lades in helt vinkelrätt i scannern. En bilds Houghtransform innehåller information om vilka linjer som finns i bilden. Eftersom de längsta linjerna sannolikt är notstreck kan man med stor säkerhet säga att den vinkel som dominerar i bildens Houghtransformen tillhör notstrecken. En negativ vridning av bilden med denna dominanta vinkel görs inför kommande steg i analysen, för att i fortsättningen försäkra att notstrecken är helt horisontella. 2.4 Lokalisering av notlinjer 2.4.1 Horisontell Projektion Första steget i sökningen är att göra en horisontell projektion av bilden, detta ger en antydan om vilka grupper som finns. För att få ett tydligare resultat görs även en horisontell projektion av bildens derivata i x-led. Denna projektion kommer ge stora utslag där det händer mycket i bilden och alltså ge låga utslag vid notlinjerna. Derivatans projektion subtraheras sedan från bildens projektion och på detta sätt fås ett diagram som visar toppar på de ställen där bilden innehåller notlinjer. Projektionen har också en annan fördel; även segmenterade linjer ger stort utslag, något som exempelvis en Hough-transform inte gör. Matlabfunktionen [peaks, locations] = f indpeaks(array) hjälper här genom att hitta lokala maximum för det horisontella histogrammet. Exempel av detta kan ses i figur 2.7. 5

Figur 2.7: Horisontell projektion 2.4.2 Förfining av resultat Även om viktningen gör stor nytta för att avlägsna falksa notstreck finns det viss risk att att det uppkommer toppar som inte motsvarar en notlinje. I kombination med data om toppar användes därför även information om topparnas höjd. Utöver detta gjordes även en viktning med hjälp av avståndet till närliggande toppar. En linjegrupp som har linjer med samma avstånd från varandra viktas positivt. Om två potentiella linjegrupper överlappar så används den vars viktning är störst. Detta kan hända om det förekommer många hjälpstreck för noter ovanför eller under det ordinarie notsystemet. 2.5 Avlägsning av notlinjer För vidare analys av bildens innehåll är det praktiskt om notstrecken avlägsnas så att andra element kan läsas ut utan störande bakgrund. Detta genomförs med hjälp av en morfologisk öppning av bilden med ett smalt strukturelement med höjden motsvarande ett halvt linjeavstånd. Experimentellt faststädldes att detta är ett relativt tillförlitligt sätt att behålla horisontella balkar från åttondels- och sextondelsnoter, samtidigt som det avlägsnar notlinjera försvinner. Figur 2.8: Före öppning Figur 2.9: Efter öppning 6

2.6 Läsning av noter 2.6.1 Nothuvuden Den valda metoden för att extrahera nothuvuden ur bilden är att använda ett cirkulärt strukturelement och matlabfunktionen imtophat(image, SE) två gånger. Första körningen av tophatfunktinoen kan lämna kvar oönskade delar av bilden i gråskala. Den andra körningen suddar ut de element och gör en tydligare skillnad mellan dessa två grupper. Detta leder till mer acceptabla resultat, där få andra former utöver nothuvuden tas med. Figur 2.10: Nothuvuden framplockade Nothuvudets masscentrums vertikala position jämförs med notlinjernas placering, varpå tonhöjden kan bestämmas. 2.6.2 Notskafft Detektion av notskaft sker genom att en morfologisk öppning sker med ett en pixel brett strukturelement med höjden 2 L, där L är medianen av linjeavståndet för en notlinjegrupp. Denna metod kan ge en hel del falska notskaft som är del av andra strukturer. Figur 2.11: Falska notskaft detekterade 2.6.3 Kombination Eftersom utmatningen från programmet enbart förväntas innehålla fjärdedels- och åttondelsnoter filtreras nothuvuden bort som inte befinner sig på tillräckligt kort avstånd från ett notskaft. En morfologisk tunning utförs på de pixlar som identifierats som notskaft, varpå en avståndstransform av denna bild tas fram. De nothuvuden som inte befinner sig inom tillräcklig närhet filtreras därefter bort. Även notskaft som befinner sig för långt från närmaste nothuvud filtreras bort. Ett annat krav som ställs är att det måste finnas ett nothuvud vid toppen eller botten av notskafftet. Detta minskar risken för att detektera falska noter, exempelvis vid den tjocka vertikala linjen som ofta avslutar ett helt musikstycke. Figur 2.12: Notskaft sammankopplade med nothuvuden 7

2.6.4 Balkar och flaggor För varje hittad not återstår att hitta en eller två eventuella balkar eller flaggor, som gör att noten blir en åttondel respektive sexondel. Genom att titta på om det finns ett nothuvud längst upp eller längst ner på skaftet går det att avgöra var man ska söka efter balkar eller flaggor. Dessa kan finnas på både höger eller vänster sida av notskaftet. Därför görs två lokala horisontella projektioner, i de områden som markerats i 2.13. Projektionerna genomsöks efter toppar. Det maximala antalet toppar som hittas i det vänstra eller högra området avgör notens värde. Figur 2.13: Områden där flaggor och balkar detekteras har markerats som rektanglar. Figur 2.14: Projektion av en balk Figur 2.15: Projektion av två balkar 8

Kapitel 3 Resultat 3.1 Bildresultat 3.1.1 Scannerbilder För de bilder som är scannade och alltså saknar fotometriska distortioner, ojämn illumination och oskärpa så blir resutltatet bra. Notläsningen blir då sällan sämre än 90% korrekt. De bilder som ger sämst resultat av de scannade är de där orginalbilderna har en ojämn kontrast. Detta medför problem i trösklingen vilket gör att vissa noter går förlorade. Från den scannade bilden i figur 3.1 fås strängen nedan, vilken är 100% korrekt. g3e3f3e3g2e3f3a2b2c3c3g3e3f3e3g2e3nf3a2b2c3c3e2g2g2f2a2a2d3d3g2e3c3nf3d3g3a2b2c3c3c3c Figur 3.1: Orginalbild, scannad 3.1.2 Kamerabilder Bilder som är tagna med kamera ger ett mer instabilt resultat. Att bilder har ojämn illumination kan programmet hantera däremot blir det problem vid perspektivdistortioner. Viss funktionalitet som hanterar perspektivdistortioner finns med det är bortkommenterat i inlämningen. Annan optisk geometrisk distorsion tas däremot inte om hand alls av programmet. 3.2 Textjämförelse För att få ett kvantiserbart mått på hur väl vår implementation approximerade noterna så använde vi oss av Levenshteinavstånd för att kunna se en bättre jämförelse mellan två strängar. Detta gav ett mer konkret mått på hur väl förändringar i olika delar av programmet påverkar den slutgiltiga strängen. 9

3.2.1 Resultattabell Resultatet för hur korrekt utskriften blev för varje bild finns nedan i tabell??. Som ses så får de scannade bildernan en mycket hög procentsats och detta är vi mycket nöjda med. För de fotograferade bilderna så är är det endast bild im1 och im3 som är utan perspektivdistorsion och därför är det endast dessa två som finns med i tabellen. Tabell 3.1: Resultattabell Bild Scannad Fotograferad im1 100% 93% im3 99% 96% im5 99% im6 93% im8 91% im9 91% im10 94% im13 89% 10

Kapitel 4 Diskussion 4.1 Förbehandling I den versionen av programmet som lämnats in tillsammans med rapporten är förbehandlingen helt avstängd. Den gör visserligen ett bra jobb med att räta upp perspektivdistorderade bilder, men är inte 100% tillförlitlig och riskerar därmed att försämra bilder som är fria från distorsion. Det går att slå på perspektivkorrektionen genom att avkommentera raden img = perspectivecorrection(img); i beathoven.m. 4.2 Förbättringar 4.2.1 Fotometrisk distorsion Ett problem som helt kvarstår i förbehandlingssteget är att justera för de icke-räta linjerna som uppstår då kameran placeras nära papperet. För att få bukt (!) med detta problem skulle det krävas att hitta fler referenspunkter än det fåtal som nu hittas i varje notsystems hörn. Ett naturligt sätt att göra detta vore att implementera en algoritm som tar fram den billigaste vägen från hörn till hörn, givet att det är billigt att gå längs med ett streck, medan det är dyrt att hoppa över svarta pixlar. På detta sätt skulle det gå att hitta fler punkter utmed notsystemens övre och undre kanter. 4.2.2 Rörelseoskärpa Rörelseoskärpa är något som kan ge stora problem för ett OMR-system, då bland annat linjer blir svåra att hitta och nothuvudens centroid blir förskjuten. Problemet kan separeras till två delar, att hitta en P SF (Point Spread Function) samt att göra en invers filtrering av bilden. En PSF är den filterkärna som beskriver den faltning som rörelseoskärpan approximeras till. Denna kan approximeras på olika sätt, men ingen metod som hittades hade tid att implementeras i ramarna för detta projekt. Med hjälp av kärnan skulle en invers filtering eller invers faltning utföras med matlabfunktionen deconvwnr, som använder ett Wienerfilter internt. Wienerfiltret använder brus för att minimera minsta kvadratfelet. Detta ger en mer stabil algoritm som ger mindre ringningseffekter än andra metoder. 11

Litteraturförteckning [1] A. Rebelo, G. Capela, Jaime S. Cardoso Optical recognition of music symbols. 2009. [2] David Bainbridge, Tim Bell The Challenge of Optical Music Recognition. 2001 12