Språkidentifiering Bildanalys, projekt 3 hp
|
|
- Jakob Engström
- för 7 år sedan
- Visningar:
Transkript
1 Språkidentifiering Bildanalys, projekt 3 hp Pia Haage, Sophia Holmström Handledare: Karl Åström
2 Språkidentifiering Bildanalys, projekt 3 hp Innehåll Inledning... 2 Metod... 2 Utförande... 2 Frågeställningar... 2 Arbetsgång... 3 Problem under arbetsgången... 7 Sammanfattning... 7 Bilaga Matlabkod... 8 lang_seg.m... 8 segment.m... 9 harris.m features.m train_classify.m huvudprogram.m benchmark.m my_classify.m
3 Inledning Målet med projektet är att kunna klassificera olika texter efter det språk de är skrivna på. Vi kommer att utgå från sex stycken språk där vissa är inom samma språkfamilj. Vi har tänkt utveckla och använda oss av en metod där vi klassificerar texter genom att titta på histogram över utklippta textrutors klustertillhörigheter. Detta är inte en för oss känd metod och ett delsyfte i projektet är därför att undersöka om metoden kan vara lämplig för just språkklassificering. Vi kommer att använda algoritmen K-means för att klustra segment av bilden vilka vi tar fram genom en hörndetektor. Vi kommer att använda oss av beräkningsprogrammet Matlab för skapandet och utvärderingen av metoden. Metod En kortfattad punktlista över metoden vi använde oss av ses nedan. 1. Inläsning av inlärningsbilder till klassificeraren 2. Hittar 180 signifikanta hörnor i varje bild m.h.a. Harris hörndetektor. 3. Klipper ut n n rutor kring de signifikanta hörnen i varje bild, där n är den valda storleken på rutan, och kolonnstaplar dessa rutor i vektorer. 4. Lagrar vektorerna i en matris. 5. Klustrar rutorna till 100 kluster m.h.a. K-means. 6. Tar för varje språk fram ett histogram över klustertillhörigheten för rutorna i språkets textbild. 7. Lagrar histogrammen i en matris. 8. Tränar en klassificerare för användning av klassificeringsmetoden Nearest neighbour. 9. Läser in bilder för utvärdering och skapar histogramvektorer m.h.a. Harris och histogram. 10. Klassificerar bilderna m.h.a. Nearest neighbour och våra inlärningsbilders histogram. 11. Kör Benchmark för utvärdering av programmet. Utförande Frågeställningar Vid projektets start uppkom några frågeställningar som var tvungna att besvaras innan vi kunde börja. Dessa definierar och ramar in projektet och visar också på vad som är varierbart i metoden och kan modifieras för en eventuell förbättring. Vilka språk ska programmet kunna identifiera? Arabiska, engelska, finska, ryska, svenska och tyska. Vilken hörndetektor ska vi använda? Harris hörndetektor. Hur stora rutor ska klippas ut runt de signifikanta hörnen? 7 7 rutor. 2
4 Hur många olika kluster ska vi använda och hur många iterationer ska vi köra i K-means? 100 kluster och 50 iterationer. Vilken klassificeringsmetod ska vi använda? Nearest neighbour. Arbetsgång Vi började med att ta fram sex stycken lika stora bilder (1100 px 400 px) på de valda språken som skulle användas för att träna klassificeraren. Några språk var markant olika t.ex. arabiska och svenska och några språk var relativt lika t.ex. tyska och engelska. Detta för att testa hur väl metoden skulle fungera. Vi valde inte fler språk p.g.a. projektets storlek. En av inlärningsbilderna ses i figur 1. Figur 1 - Inlärningsbild för arabiska. Utifrån dessa inlärningsbilder skulle vårt program alltså kunna identifiera andra textbilder. Bilderna vi använde oss av skapade vi genom att ta screenshots av texter vi fann på Internet. Texterna vi hittade bearbetade vi först i Word för att normera teckenstorlek (14 pt) och typsnitt (Times New Roman). Detta är en av begränsningarna med vårt program, men också en förutsättning för att kunna göra en bra utvärdering av metoden. Utan normerade texter hade det varit svårt att dra slutsatser om varför metoden skulle fungera eller ej. Som hörndetektor valdes Harris hörndetektor som vi hämtade från Matlabs scriptsamling på Internet, Denna modifierades något för att passa in i vårt program. 180 signifikanta hörnpunkter valdes för att vi ansåg detta var en lagom mängd punkter med hänsyn till bildstorleken. Hörnpunkter för en av språkbilderna ses i figur 2. 3
5 Figur 2 - Visar de signifikanta hörnen för en del av en inlärningsbild. Hörnen är inramade i gråa rutor. Hörnpunkterna representerades som koordinater i en vektor. Runt dessa punkter togs sedan 7 7-rutor ut och kolonnstaplades i vektorer. Meningen med rutorna är att olika språk ska ha olika signifikanta rutor. Ett exempel på en ruta ses i figur 3. Figur 3 - En utklippt 7 7-ruta. Alla rutvektorer för samtliga språk lagrades sedan i en matris, se figur 4. Figur 4 - Matris med kolonnstaplade rutor för alla språk 4
6 Vi ville nu klustra alla rutor m.h.a. K-means. Vi använde Matlabs inbyggda script för K-means. 100 klustercentra valdes för att rutor från samma bokstav idealt skulle hamna i samma kluster. Det gjordes även 50 iterationer av K-means för att minimera det lokala minimumet. Klustercentrumen för det bästa resultatet sparades. Histogram skapades sedan utifrån inlärningsbilderna. Histogrammen bestod av en vektor där t.ex. plats 1 representerar hur många rutor i ett visst språk som tillhör kluster 1. En principskiss för detta visas i figur 5. Figur 5 - Principskiss för skapandet av histogrammen. Ett histogram skapades för varje språk. Dessa ses i figur 6. Figur 6 - Histogram för varje inlärningsbild. I figur 6 ser man att t.ex. arabiska skiljer sig mycket från de latinska språken vilket borde göra arabiska lätt att identifiera. 5
7 Vi tränade sedan en klassificerare utifrån våra inlärningsbilders histogram. Det skapades en matris T utifrån matrisen X med alla histogram, d.v.s. featurevektorerna, och vektorn Y med siffror motsvarande de olika språken, se figur 7. Figur 7 - Träning av klassificeraren. Klassificeraren skulle använda sig av metoden Nearest neighbour, d.v.s. den jämför andra bilders histogram med matrisen med inlärningsbildernas featurevektorer. Vi testade nu vår metod med några olika bilder, även bilder med varierande storlek och typsnitt. Med samma metod som ovan skapade vi histogram som sedan klassificerades. I klassificeringen märkte vi att arabiska var lätt att identifiera medan de latinska språken ofta förväxlades. Detta var förväntat då arabiska har ett helt annat alfabet och de latinska språken är ganska lika varandra. Vi gjorde även en utvärdering (benchmark) på systemet, där hitrate innebär antal rätt klassificerade bilder genom totalt antal klassificerade bilder. Vi skickade här in två bilder från varje språk, totalt 12 bilder, som var normerade på samma sätt som inlärningsbilderna. Resultatet från utvärderingen ses i figur 8. Figur 8 - Hitrate blev cirka 67% för våra testbilder. Man kan dock ej dra så stora slutsatser av vårt resultat då vi hade få testbilder. Vi provade även att ändra rutstorleken för att se hur detta påverkade hitrate. Resultatet ses i tabell 1. Tabell 1 - Hitrate för olika rutstorlek. Rutstorlek Hitrate % % % 6
8 P.g.a. tidsbrist hann vi inte testa andra parametervariationer, men om tid funnits hade vi utvärderat följande: Antalet klustercentra Antalet signifikanta hörn Annan klassificeringsmetod Vi hade även velat titta på andra språk och utöka antalet testbilder. Problem under arbetsgången Det största problemet var att hitta textbilder över olika språk som alla hade samma typsnitt och storlek. Detta löste vi genom att kopiera texter från Internet till Word och där välja typsnitt och teckenstorlek. Vi hade även problem med K-means då det i varje iteration skapades tomma kluster. Vi använde då en inställning i K-means som skapade ett nytt kluster utifrån en av punkterna. Sammanfattning Vi har testat en metod för språkklassifikation som baseras på utklipp av textbilden runt signifikanta punkter. Dessa jämfördes med kluster från inlästa bilders textutklipp för att bestämma textens språk. Det är svårt att avgöra om metoden skulle fungera då det inte fanns tillräckligt med tid att testa den fullt ut. Den skulle eventuellt kunna användas för att identifiera olika språkgrupper då vår metod är bra på att identifiera språk med olika alfabet och skrivsätt. För identifiering inom en speciell språkgrupp tror vi att en annan metod bör användas, t.ex. OCR. 7
9 Bilaga Matlabkod lang_seg.m % Segmentera olika språkbilder och lagra i en matris (49,1080). Varje % kolumn är en kolonnstaplad 7*7 bild runt ett detekterat hörn. datadir = '../projektbilder/jpg'; rutarea = 49; allsegment = zeros(rutarea,(180*6)); bilder = {'a_learn','e_learn','f_learn','r_learn','s_learn','t_learn'}; k = 0; for i = 1:length(bilder) file = char(bilder(i)); fnamebild = [datadir filesep file '.jpg']; bild = imread(fnamebild); frame = rgb2gray(bild); utsegment = segment(frame); for j = 1:180 allsegment(:,k+j) = utsegment{j}; k = k+180; % Klustring av segmenten mha k-means: allsegment = allsegment'; IDX=0; C=0; min_sumd=inf; for i=1:50 [IDX2,C2,sumd2] = kmeans(allsegment,100,'emptyaction','singleton','display','final','replicat es',1); if sum(sumd2)<min_sumd min_sumd = sum(sumd2); IDX = IDX2; C = C2; save C C; save IDX IDX; save min_sumd min_sumd; % Skapar featurevektorer genom att göra ett histogram. X = zeros(6,100); for i = 1:6 8
10 file = char(bilder(i)); fnamebild = [datadir filesep file '.jpg']; bild = imread(fnamebild); frame = rgb2gray(bild); X(i,:) = features(frame,c); %Returnerar histogram Y = [1;2;3;4;5;6]; %Vilket språk X tillhör. 1=Arabiska, 2=Engelska, 3=Finska, 4=Ryska, 5=Svenska, 6=Tyska. T = train_classify(x,y); save T T; figure(2) subplot(2,3,1); plot(x(1,:)); title('arabiska'); subplot(2,3,2); plot(x(2,:)); title('engelska'); subplot(2,3,3); plot(x(3,:)); title('finska'); subplot(2,3,4); plot(x(4,:)); title('ryska'); subplot(2,3,5); plot(x(5,:)); title('svenska'); subplot(2,3,6); plot(x(6,:)); title('tyska'); segment.m function utsegment = segment(frame) [m,n] = size(frame); % Gör bilden svartvit for i = 1:m for j = 1:n if frame(i,j) > 180 frame(i,j) = 255; else frame(i,j) = 0; save frame frame PIP=Harris(frame); utsegment = cell(1,180); rutarea = 49; for i = 1:180 %Tar ut de 180 första punkterna för att garantera samma vektor längd. ruta = zeros(rutarea,1); index = 1; while index < rutarea + 1 for col = (PIP(i,2)-3):(PIP(i,2)+3) for row = (PIP(i,1)-3):(PIP(i,1)+3) ruta(index)=frame(row,col); index = index + 1; utsegment{i} = ruta; 9
11 harris.m % Harris detector % The code calculates % the Harris Feature Points(FP) % % When u execute the code, the test image file opened % and u have to select by the mouse the region where u % want to find the Harris points, % then the code will print out and display the feature % points in the selected region. % You can select the number of FPs by changing the variables % max_n & min_n % A. Ganoun function PIP=Harris(Imag) load frame; Imag = frame; I =double(frame); %**************************** % imshow(frame); % k = waitforbuttonpress; % point1 = get(gca,'currentpoint'); %button down detected % rectregion = rbbox; %%%return figure units % point2 = get(gca,'currentpoint');%%%%button up detected % point1 = point1(1,1:2); %%% extract col/row min and maxs % point2 = point2(1,1:2); % lowerleft = min(point1, point2); % upperright = max(point1, point2); % ymin = round(lowerleft(1)); %%% arrondissement aux nombrs les plus proches % ymax = round(upperright(1)); % xmin = round(lowerleft(2)); % xmax = round(upperright(2)); %*********************************** % Aj=6; [m,n] = size(frame); cmin=1; cmax=m; rmin=1; rmax=n; min_n=180;max_n=200; %%%%%%%%%%%%%%Intrest Points %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sigma=2; Thrshold=20; r=6; disp=1; dx = [-1 0 1; ; ]; % The Mask dy = dx'; %%%%%% Ix = conv2(i(cmin:cmax,rmin:rmax), dx, 'same'); Iy = conv2(i(cmin:cmax,rmin:rmax), dy, 'same'); g = fspecial('gaussian',max(1,fix(6*sigma)), sigma); %%%%%% Gaussien Filter %%%%% Ix2 = conv2(ix.^2, g, 'same'); Iy2 = conv2(iy.^2, g, 'same'); 10
12 Ixy = conv2(ix.*iy, g,'same'); %%%%%%%%%%%%%% k = 0.04; R11 = (Ix2.*Iy2 - Ixy.^2) - k*(ix2 + Iy2).^2; R11=(1000/max(max(R11)))*R11; R=R11; ma=max(max(r)); sze = 2*r+1; MX = ordfilt2(r,sze^2,ones(sze)); R11 = (R==MX)&(R>Thrshold); count=sum(sum(r11(5:size(r11,1)-5,5:size(r11,2)-5))); loop=0; while (((count<min_n) (count>max_n))&(loop<30)) if count>max_n Thrshold=Thrshold*1.5; elseif count < min_n Thrshold=Thrshold*0.5; R11 = (R==MX)&(R>Thrshold); count=sum(sum(r11(5:size(r11,1)-5,5:size(r11,2)-5))); loop=loop+1; 5); R=R*0; R(5:size(R11,1)-5,5:size(R11,2)-5)=R11(5:size(R11,1)-5,5:size(R11,2)- [r1,c1] = find(r); PIP=[r1+cmin,c1+rmin];%% IP %keyboard; %%%%%%%%%%%%%%%%%%%% Display Size_PI=size(PIP,1); for r=1: Size_PI I(PIP(r,1)-2:PIP(r,1)+2,PIP(r,2)-2)=200; I(PIP(r,1)-2:PIP(r,1)+2,PIP(r,2)+2)=200; I(PIP(r,1)-2,PIP(r,2)-2:PIP(r,2)+2)=200; I(PIP(r,1)+2,PIP(r,2)-2:PIP(r,2)+2)=200; % imshow(uint8(i)) features.m function histo = features(im,centra); %Skickar med bild och klustercentra utsegment = segment(im); %Cell 1,180 med vektorer m längd 49,1 histo = zeros(1,100); 11
13 for i = 1:180 mindist = Inf; k = 0; for j = 1:100 if sum(abs(utsegment{i}'-centra(j,:))) < mindist klustercenter utsegment ligger närmast mindist = sum(abs(utsegment{i}'-centra(j,:))); k = j; histo(k) = histo(k) + 1; %Fyller ut histogrammet %Kollar vilket train_classify.m function T = train_classify(x,y) T = [X,Y]; huvudprogram.m datadir = '../projektbilder/jpg/test/'; myclassify = 'my_classify'; % Ange namnet på din ocr-rutin. load T; hitrate=benchmark(myclassify,datadir,t); disp(['using method ' myclassify ' on dataset ' datadir ' I obtained a hitrate of ' num2str(hitrate) '.']); benchmark.m function hitrate=benchmark(my_classify,datadir,t); thispath = pwd; eval(['cd ' datadir]); nbr_correct = 0; nbr_char = 0; a = dir; for ii=1:length(a); [path,name,ext,ver] = fileparts(a(ii).name); if strcmp(ext,'.jpg'), % Hittat en bild fname = name; fid = fopen([fname '.txt'],'r'); facit = fgetl(fid); fclose(fid); im = imread([fname ext]); 12
14 eval(['cd ' thispath]); guess = feval(my_classify,im,t); eval(['cd ' datadir]); thisres = guess(1:length(facit))==facit; nbr_correct = nbr_correct+sum(thisres); nbr_char = nbr_char + length(facit);,, hitrate = nbr_correct/nbr_char; cd(thispath); my_classify.m function my_classify=my_classify(im,t); rutarea = 49; allsegment = zeros(rutarea,180); % k = 0; utsegment = segment(im); for j = 1:180 allsegment(:,j) = utsegment{j}; % k = k+180; X_classify = zeros(1,100); load C; %Klustercentra X_classify(1,:) = features(im,c); %Returnerar histogram my_classify = classify(t,x_classify(1,:)); 13
Image processing of protein chips for diagnosis of prostate cancer
Image processing of protein chips for diagnosis of prostate cancer in cooperation with the Department of Electrical Measurements Lund Institute of Technology Emma Fägerlind π03, p03ef@student.lth.se Marianne
Beräkningsverktyg HT07
Beräkningsverktyg HT07 Föreläsning 1, Kapitel 1 6 1.Introduktion till MATLAB 2.Tal och matematiska funktioner 3.Datatyper och variabler 4.Vektorer och matriser 5.Grafik och plottar 6.Programmering Introduktion
MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Språkigenkänning. en tillämpning av OCR system och klassificering. Projekt i Bildanalys. Anna Lindholm Eskil Jönsson
Språkigenkänning en tillämpning av OCR system och klassificering Projekt i Bildanalys Anna Lindholm Introduktion Syftet med projektet är att undersöka möjligheterna att känna igen vilket språk en text
TSBB14 Laboration: Intro till Matlab 1D
TSBB14 Laboration: Intro till Matlab 1D Utvecklad av Maria Magnusson med mycket hjälp av Lasse Alfredssons material i kursen Introduktionskurs i Matlab, TSKS08 Avdelningen för Datorseende, Institutionen
Du skall naturligtvis visa körexempel med output där det behövs i din rapport!
och databprogrammering Christilinda Göstson - PL/SQL, paket och ref cursor Du skall naturligtvis visa körexempel med output där det behövs i din rapport! OBS! Denna labb redovis i labbrapport via mail
MMA132: Laboration 1 Introduktion till MATLAB
MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer
Programmeringsuppgift Game of Life
CTH/GU STUDIO TMV06a - 0/0 Matematiska vetenskaper Programmeringsuppgift Game of Life Analys och Linär Algebra, del A, K/Kf/Bt Inledning En cellulär automat är en dynamisk metod som beskriver hur komplicerade
Föreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.
Matematik Chalmers tekniska högskola 2014-08-27 kl. 08:30-12:30 Tentamen MVE355, Programmering och numeriska beräkningar med matlab. Ansvarig: Katarina Blom, tel 772 10 97. Plats: L Inga hjälpmedel. Kalkylator
Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder
Medicinska Bilder, TSBB3 Lab: Mätvärden på Medicinska Bilder Maria Magnusson, 22 Senaste updatering: september 25 Avdelningen för Datorseende, Institutionen för Systemteknik Linköpings Universitet Introduktion
Bänkvåg LCW-6S Manual/Förenklat handhavande User Manual LCW-6S www.liden-weighing.se Knappfunktioner: ON/OFF Sätter på och stänger av vågen. UNIT Skiftar vägningsenhet ZERO/TARE Nollställer vågen Tarerar
Textsträngar från/till skärm eller fil
Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,
Introduktion till MATLAB, med utgångspunkt från Ada
Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras
Poisson Point Processes. Edvin Listo Zec Maja Fahlén
Poisson Point Processes Edvin Listo Zec Maja Fahlén 2013 05 19 1 Innehåll 1 Introduktion 3 2 Inhomogena poisson-punktprocesser 3 3 Analys av riktig data 5 2 1 Introduktion I det här arbetet komer vi att
Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Lösningsförslag Tentamen i Beräkningsvetenskap I, 5. hp, 14-6-4 Kursmål (förkortade), hur de täcks i uppgifterna och maximalt
Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00. English Version
Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00 Examinator/Examiner: Xiangfeng Yang (Tel: 070 2234765) a. You are permitted to bring: a calculator; formel -och tabellsamling i matematisk statistik
Matriser och vektorer i Matlab
CTH/GU LABORATION 2 TMV157-2014/2015 Matematiska vetenskaper Matriser och vektorer i Matlab 1 Inledning Först skall vi se lite på matriser, vilket är den grundläggande datatypen i Matlab, sedan skall vi
Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder
Medicinska Bilder, TSBB3 Lab3: Mätvärden på Medicinska Bilder Maria Magnusson, Avdelningen för Datorseende Institutionen för Systemteknik Linköpings Universitet Introduktion I denna laboration ska vi göra
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Datorlektion 4. Funktioner 1 Egna Funktioner Uppgift 1.1 En funktion f(x) ges av uttrycket 0, x 0, f(x)= sin(x), 0 < x π 2, 1, x > π 2 a) Skriv en Matlab funktion
Karlstads Universitet, Datavetenskap 1
DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 229 PHP Hypertext Preprocessor Scriptspråk på serversidan Innebär att webbservern översätter php-scripten innan sidan skickas till webbläsaren,
Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.
Matematisk Modellering
Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk
Lösningar till tentamen i EIT070 Datorteknik
Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad
Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?
Numeriska metoder, grundkurs II Övning 1 för I2 Dagens program Övningsgrupp 1 Johannes Hjorth hjorth@nada.kth.se Rum 163:006, Roslagstullsbacken 35 08-790 69 00 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1240/numi07
Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder
Medicinska Bilder, TSBB3 Lab: Mätvärden på Medicinska Bilder Maria Magnusson, 22 Senaste updatering: september 27 Avdelningen för Datorseende, Institutionen för Systemteknik Linköpings Universitet Introduktion
Ett enkelt OCR-system
P r o j e k t i B i l d a n a l y s Ett enkelt OCR-system av Anders Fredriksson F98 Fredrik Rosqvist F98 Handledare: Magnus Oskarsson Lunds Tekniska Högskola 2001-11-29 - Sida 1 - 1.Inledning Många människor
Matriser och linjära ekvationssystem
Linjär algebra, AT3 211/212 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni redan vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader
Digitala Projekt(EITF40) - Larm
Digitala Projekt(EITF40) - Larm Handledare: Bertil Lindvall Erik Oredsson, I-09 Sara Sellin, I-09 2012-05-08 1. SAMMANFATTNING I denna rapport presenteras vårt projekt att bygga ett huslarm från grunden
Användarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
En introduktion till MatLab
Chalmers tekniska högskola En introduktion till MatLab Gustafsson Gabriel gabgus@student.chalmers.se Johansson Việt Simon simoj@student.chalmers.se Författare: Norell Pontus npontus@student.chalmers.se
Uppgifter teknik HT17 (uppdaterad v. 40)
Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det
Sanningar om programmering
Grundläggande programmering stefan@it.uu.se Sanningar om programmering Ett MATLAB-program är ett antal MATLABkommandon samlade i en m-fil. Att utveckla och skriva program kallas att programmera. Att skriva
5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass
EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet
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.
Kontrolluppgifter 1 Gör en funktion som anropas med där är den siffra i som står på plats 10 k Funktionen skall fungera även för negativa Glöm inte dokumentationen! Kontrollera genom att skriva!"#$ &%
Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)
Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2
Introduktion till MATLAB
29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna
Saker du ska kunna Föreläsning 13 & 14
Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering
Föreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Datorlektion 6. Text och filer 1 Textsträngar Uppgift 1.1 Skapa en sträng som innehåller texten: kommer du snart?. Använd length för att kontrollera hur många
Sanningar om programmering
Block 3: Programmering, del 1 Beräkningsvetenskap I Sanningar om programmering n Ett program är ett antal kommandon och särskilda strukturer lagrade i en eller flera filer n Att utveckla och skriva program
Datorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI
Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB
Arrayer (vektorer) Murach s: kap 8 2013-01-15 1 Elektronikcentrum i Svängsta AB Arrayer Arrayer (vektorer) Ofta i ett program har vi flera variabler av samma datatyp som är relaterade till varandra. Exempel
Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI
TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 8-12, 20 Mars, 2015 Provkod: TEN1 Hjälpmedel:
Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for
Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har
Att lösa Sudoku. Metoden Solve (börjar nedtill på sid 3)
Att lösa Sudoku Problem av matematisk natur kan ofta snabbt lösas med dator och lite programmering. Därför har sällan matematiska pussel som Sudoku lockat att lösa för hand, men jag har länge tänkt att
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 3. Avbrott och Funktioner 1 Repetionssatsen while Uppgift 1.1 Skriv ett program som skriver ut det minsta tal av formen 3 n som är större än 5000.
Instruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,
ATT RITA GRAFER MED KOMMANDOT "PLOT"
MATLAB, D-plot ATT RITA GRAFER MED KOMMANDOT "PLOT" Syntax: Vi börjar med det enklaste plot-kommandot i matlab,,där x är en vektor x- värden och y en vektor med LIKA MÅNGA motsvarande y-värden. Anta att
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned char num;
#include #include #include unsigned char num; int count = 0; // antal i lokalen char larmtriggered = 0; //om larmet är utlöst char larmactivated = 0; //om larmet
Beräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss
Simulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2018 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D TSEA51 Digitalteknik Y TSEA52 Digitalteknik
BE MATLAB. (Matrix Laboratory) matlab.ico. för SIGNALER SYSTEM
BE 00-0-0 MATLAB (Matrix Laboratory) matlab.ico för SIGNALER & SYSTEM . Grunder >> /3 >> MATLAB-prompt ans = 0.6667 >> /3; Ingen utskrift a=[ 9 ]; Vektor, längd 5 >> a Alltså radvektor a = 9 >> at=a';
MMA132: Laboration 1 & 2 Introduktion till MATLAB
MMA132: Laboration 1 & 2 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med
Konvexa höljet Laboration 6 GruDat, DD1344
Konvexa höljet Laboration 6 GruDat, DD1344 Örjan Ekeberg 10 december 2008 Målsättning Denna laboration ska ge dig övning i att implementera en algoritm utgående från en beskrivning av algoritmen. Du ska
Instruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik ANL/TB SANNOLIKHETSTEORI I, HT07. Instruktion för laboration 1 De skrifliga laborationsrapporterna skall vara skrivna så att
Exempelsamling Assemblerprogrammering
Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start
Du kan söka hjälp efter innehåll eller efter namn
Du kan söka hjälp efter innehåll eller efter namn Skalärer x = 2 y = 1.234 pi, inf Ex: Skriver du >> x+100*pi Så blir svaret ans = 316.1593 (observera decimalpunkt.) Vektorer v = [1 2 3 4] radvektor u
Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer
Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma
Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI
TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 14-18, 14:e Mars, 2017 Provkod: TEN1 Hjälpmedel:
Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. För att lösa uppgifterna
Kort om programmering i Matlab
CTH/GU 25/26 Matematiska vetenskaper Kort om programmering i Matlab Inledning Redan första tillfället gjorde ni ett litet program. Ni skrev ett script eller en skriptfil som beräknade summan 5 i 2 = 2
KALKYLATOR LABORATION4. Laborationens syfte
LABORATION4 KALKYLATOR Laborationens syfte I denna laboration ska en enkel kalkylator konstrueras med hjälp av VHDL och utvecklingsverktyget Vivado från Xilinx. Hårdvaran realiseras på det redan bekanta
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. Starta Matlab genom att
Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:
TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.
Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk
Support Manual HoistLocatel Electronic Locks
Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing
Mer om geometriska transformationer
CTH/GU LABORATION 4 TMV141-1/13 Matematiska vetenskaper 1 Inledning Mer om geometriska transformationer Vi fortsätter med geometriska transformationer och ser på ortogonal (vinkelrät) projektion samt spegling.
Uppgift 1. Minimeringsproblemet löses med en Monte Carlo algoritm:
Uppgift 1 Minimeringsproblemet löses med en Monte Carlo algoritm: 1) initiera elementen i vektorn s slummässigt med +/-1 2) räkna ut värdefunktionen (ekvationen given i uppgiften) 3) starta iteration 4)
Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.
Grundläggande programmering 4 stefan@it.uu.se - Huvudprogram och underprogram - Egna funktioner - Olika typer av fel - Lite om effektiv programmering Exempel att testa Programmen för några vardagsproblem
Transformationer i R 2 och R 3
Linjär algebra, I / Matematiska vetenskaper Inledning Transformationer i R och R 3 Vi skall se på några geometriska transformationer; rotation, skalning, translation och projektion. Rotation och skalning
Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26
TAIU07 Föreläsning 2 Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26 Matriselement och Index För att manipulera
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett
Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Datorlektion 3. Repetitionssatser och Programmering 1 Introduktion Denna övning syftar till att träna programmering med repetitionssatser och villkorssatser. Undvik
Praktisk vägledning för analys av kvalitetsfaktor Kontinuitet
Praktisk vägledning för analys av kvalitetsfaktor Kontinuitet Innehållsförteckning Metodbeskrivning för användning av bedömningsgrunderna för Förekomst av artificiella vandringshinder för vattendragvattenförekomster
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag
Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2009-04-15 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär
LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I
LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I Vt 2002 Mål: Lära sig: Filhantering Stränghantering Vektorer Funktioner Programstruktur Tid: Läroboken: 6 timmars handledd laborationstid. Beräknad klar
Matematisk Modellering. Redovisning projekt 2. Redovisning projekt 3. Matlabtenta. Matlabtenta. Matlabtenta. Matlabtenta. Föreläsning 4.
Matematisk Modellering Föreläsning 4 Kalle Åström Kursadministration (redovisning projekt 2, projekt 3) Matlab (funktioner som inargument till funktioner) LaTeX (tabell, figur, listor, m m) Matlab (mer
Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006
Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Detta lösningsförslag är skrivet i stor hast, så det är möjligt att det innehåller en del slarvfel jag ber i så fall om ursäkt för
-Projekt- FMA170- Bildanalys
-Projekt- FMA170- Bildanalys Karl Berggren, 820503-2454 d02kb@student.lth.se Andreas Helgegren, 811119-2715 d02ah@student.lth.se Handledare: Håkan Ardö hakan@debian.org 30 november 2007 1 Projektide Undertexter
Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:
(22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Linjär algebra med tillämpningar, lab 1
Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel
732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public
Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering
KTH Matematik Tentamen del 2 SF1511, 2018-03-16, kl 8.00-11.00, Numeriska metoder och grundläggande programmering Del 2, Max 50p + bonuspoäng (max 4p). Rättas ast om del 1 är godkänd. Betygsgränser inkl
Matematisk Modellering
Matematisk Modellering Föreläsning 1 Magnus Oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/34 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk
Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv
Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Programmering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,