UNIVERSITETET I OSLO Det

advertisement
UNIVERSITETET I OSLO
Det matematisk-naturvitskaplege fakultet
Eksamen i
IN 106 Introduksjon til signal- og bilethandsaming
Eksamensdag:
Onsdag 30. mai - fredag 1. juni 2001
Tid for eksamen:
30. mai 2001 kl 09:00 1. juni 2001 kl 16.00
Oppgåvesettet er på 7 sider.
Vedlegg:
Ingen
Tillatne hjelpemiddel:
Kontroller at oppgåvesettet er komplett før
du tek til å svare på spørsmåla.
Deler av denne eksamensoppgåva skal gjerast ved å nytte program i XITE, spesielt
xshow, og ved å nytte MATLAB sine program. Det vert tilrådd at arbeidet med å
svare på oppgåva vert gjort ved Institutt for informatikk (I), der både maskin- og
programvare er lagt til rette for å løyse dei oppgåvene som er gitt. I eksamensperioden
vil ekspedisjonen ved I kunne formidle kontakt til dei kursansvarlege. Send ikkje mail
til ein lærar. Bakerst i oppgåvesettet nn du eit lite bibliotek med nyttige MATLABfunksjonar. Når du arbeider med lydsignal, skal du bruke høyretelefon.
Resultata skal presenterast i ein skriftleg rapport der teori, utskrifter og gurar laga
i MATLAB og bilder frå xshow vert vist. Det er ein fordel om rapporten er laga med
ein eigna tekstbehandlar, men delar som er teknisk vanskelege å produsere kan vere
handtegna. Svaret på oppgåva skal leverast i form av ei utskrift på papir, om ikkje
anna er spesikt avtalt på førehand. Det er berre den innleverte rapporten som vert
bedømt, ikkje heimesider, programmer, resultat-ler eller anna som det måtte visast
til i rapporten.
Svaret på eksamensoppgåva skal leverast
i 2 like eksemplar til ekspedisjonen
til I
innan den gitte fristen, om ikkje utsetjing er gitt av studieadministrasjonen på førehand.
Eit tilfeldig utval av studentane vil i tillegg kome opp til muntleg eksamen, som vert
halden fredag 22. juni 2001. Om sensor og faglærarar ut frå ein førebels gjennomgang
av dei skriftlege svara nn det naudsynt å klare opp nokre tvilstilfelle, vil desse og bli
kalla inn til muntleg eksamen 22. juni. Varsel om muntleg eksamen vert gitt fredag 15.
juni 2001. Den muntlege eksaminasjonen vil fyrst og framst dreie seg om punkter i det
innleverte skriftlege arbeidet.
Svaret på oppgåva skal difor vera eit sjølvstendig arbeid!
(Framhald på side 2.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Oppgåve 1
Side 2
Filtrering
Vi skal sjå på biletet
/hom/in106/img/blod.ti (og blod.img på XITE-format), som er
eit elektronmikroskopbilete. Du skal jobbe på ei rad i biletet. Dataene frå den utvalte
raden skal du sjå på som eit ein-dimensjonalt signal. Kva for ein rad du skal jobbe med,
avheng av din fødselsdato.
Skriv vi fødselsdatoen din på forma dd.mm.åå, skal du sjå på to rader gitt ved
x=40+dd og x=50+dd. (Vi ser på to rader fordi det kan vere tilfeldige utslag i
enkeltrader. Du lyt sjå på begge radene, men i svaret du leverer inn treng du berre vise
plott for ei av de to radene.)
a)
Lag eit plott av dataene i den utvalte raden. Forklar kva du ser i 1D samanlikna
med biletet i 2D.
b)
Gitt eit lter med impulsrespons
h = [0.0156 0.0938 0.2344 0.3125 0.234 0.0938 0.0156]
Plott absoluttverdien til frekvensresponsen til lteret og forklar kva slags lter
dette er.
c)
Filtrer signalet vha. funksjonen
rlt i MATLAB (tilgjengeleg i dsprst toolbox)
og vis eit plott av originalen og det ltrerte signalet i same plott. Du skal velje
ein del av signalet av lengde t.d. 200 som du plotter. Du vel sjøl startpunktet for
delsegmentet. Korleis er det ltrerte signalet samanligna med originalen?
d)
Korleis kan du lage ei ikkje-kausal utgåve av det ltrerte signalet vha.
rlt-
funksjonen? Lag ein ikke-kausal versjon av det ltrerte signalet og plott resultatet
saman med originalen for same delsegment som over.
e)
Tenk deg at du har ein hardware-implementasjon av eit FIR-lter med lterlengde
3,
FILT3(x,h3) der
h3 = [a b c],
dvs. du har berre eit lter av lengde 3. Korleis kan du bruke dette til å
implementere lteret med impulsrespons gitt i
1a)?
f ) Segmentering av signalet.
Biletet
blod.ti
er eit elektronmikroskopbilete av blod. Dei lyse objekta er
blodplater og raude blodlekamar. Ei rad i biletet kan sjåast på som eit signal med
nokre interessante objekt (dei høge pikselverdiene). Tenk deg at vi er interessert i
å nne kantene eller overgangane mellom objekta (høge verdier) og bakgrunnen.
Du skal prøve å nne dei sterkaste kontrastane i signalet, dvs. overgangane frå
objekt til bakgrunn. Legg fram ein framgangsmåte for å gjere dette. Kombiner
gjerne eire enkle operasjonar i ein liten algoritme og test denne i MATLAB.
Plott originalen og resultatet ditt.
(Framhald på side 3.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Oppgåve 2
Analyse av eit talesignal
Du skal i denne oppgåva arbeide med lydlen
a)
Side 3
Les inn lydlen
female.wav
/hom/in106/img/female.wav.
vha. funksjonen
wavread.
Bruk funksjonen
soundsc
til å høyre på signalet (Husk høyretelefonar!) Sjå MATLAB-verktøykassa for
anbefaling om korleis du speler lyd.
b)
Lag eit plott av spektrogrammet til signalet. Forklar kva spektrogrammet viser
samanlikna med lyden du høyrer.
c) Eekten av samplingsfrekvens.
Så lenge vi jobber i MATLAB kan vi berre studere diskrete signal. Vi kan ikkje
studere overgangen fra kontinuerleg til diskret signal (og tilbake til kontinuerleg
att), men du skal no studere eekten av å resample eit diskret signal ned til lågare
samplingsrate.
Lag ein MATLAB-funksjon
signal2 = downsamp(signal1,n)
signal1. Dersom
signal2 innehalde N/n sampler (i heiltalsverdi).
som plukkar ut berre kvart n-te sampel frå det originale signalet
signal1 inneheld N
sampler, skal
Bruk funksjonen til å resample lydsignalet slik at samplingsraten halveres fyrst
ein gong og så ytterlegare ein gong. Bruk til dømes funksjonen
subplot til å vise
det originale lydsignalet og dei resampla signala i same plott.
Det er mogeleg å høyre på det resampla signalet, med det krevs ikkje at
du skal gjere det no. Dersom du vil høyre på det resampla signalet, skal du
IKKJE bruke MATLABs funksjonar
sound eller soundsc, dei handterer ikkje ulik
samplingsfrekvens slik som manualen seier. Du må istaden lagre signalet som ein
.wav-l og spele det av frå andre program (enten frå PC eller ved å leggje det på
WEB slik som du gjorde i Obligatorisk oppgåve 2).
d)
Plott spektrogrammet for dei resampla signala og drøft kva dei viser samanlikna
med originalsignalet.
e) Rekonstruksjon av det resampla signalet.
I MATLAB lar det seg ikkje gjere å konvertere det diskrete signalet til eit
kontinuerleg signal, men du skal nå prøve å rekonstruere eit signal med same
samplingsrate som originalen frå dei resampla signala. Prøv å rekonstruere
dei resampla signala med ulike val av interpolasjonsfunksjon med hjelp av
tilgjengelege MATLAB-funksjonar. Plott dei rekonstruerte signala saman med
originalen.
Når du har rekonstruert det resampla signalet til same samplingsrate som
originalen, kan du høyre på signalet vha. soundsc i MATLAB. Korleis har
resamplinga og ulike val av interpolasjonsfunksjonar påverka korleis lydsignalet
høyrast ut?
(Framhald på side 4.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Oppgåve 3
Anta at vi har eit
Side 4
Bilete og histogram
512 × 512
bilete med 256 steg i gråtoneskalaen. Biletet inneheld
i utgangspunktet berre ein bakgrunn med ein klar trend, slik at intensiteten er
jamnt aukande frå venstre til høgre kant av biletet. Anta at vi skriv din fødselsdato
som ddmmyyyy, og lar bakgrunnsintensiteten auke frå 100+dd ved venstre kant til
100+dd+63 ved høgre kant av biletet.
a)
Forklar og skissér korleis histogrammet og det normaliserte histogrammet for eit
slikt bilete ser ut.
b)
Anta no at ein mørk tekst vert lagt oppå denne bakgrunnen. Tekst-pikslane
dekkjer 1/4 av biletet, og kvart tekst-piksel har ein gråtone som er
L gråtonetrinn
lågare enn den lokale bakgrunnen.
Kva for ein verdi
L0
må vi ha for
L for at det skal vere mogeleg å terskle resultat-
biletet heilt feilfritt med ein global terskel?
c)
Skissér det normaliserte histogrammet for
L ≤ L0 ,
og for
L > L0 .
Regn ut og indikér på den siste skissa kor terskelen må plasserast for at færrast
mogeleg pikslar skal bli feil-klassiserte ved tersklinga.
d)
Korleis ser histogrammet ut om vi adderer gaussisk støy med middelverdi = 0
og en gitt varians til både tekst og bakgrunn?
e)
Vi har bestemt oss for å terskle biletet og deretter medianltrere resultatet. Men
vi er usikre på kva for ein terskel som er best. Difor terskler vi biletet med
alle mogelege tersklar, median-ltrerer kvart av dei binære bileta og summerer
resultata. Diskuter om dette er lurt.
(Framhald på side 5.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Oppgåve 4
Entropi-terskling
Anta at vi har gitt eit bilete med
histogram
Side 5
p(i), i ∈ [0, G − 1].
G
steg i gråtoneskalaen, og med eit normalisert
Vi har sett at 1. ordens entropi
H=−
X
pi log(pi )
i
er eit uttrykk for informasjonsinnhald i enkelt-piksel. Anta at vi regner ut entropien
separat for dei delane av histogrammet som er under og over terskelverdien
"
t
X
p(i)
p(i)
log
H1 (t) = −
P1 (t)
i=0 P1 (t)
"
G−1
X
p(i)
p(i)
log
H2 (t) = −
P2 (t)
i=t+1 P2 (t)
a)
#
,
P1 (t) =
t
X
t
p(i)
i=0
#
,
P2 (t) =
G−1
X
p(i)
i=t+1
Regn ut og plott funksjonen
A(t) = H1 (t) + H2 (t)
for biletet
/hom/in106/img/lite-blod.ti (eller lite-blod.img i XITE sitt format),
og terskle biletet med den gråtoneverdien der
A(t)
har sitt maksimum.
Gjer greie for eventuelle atterhald du må ta.
Vil histogramutjamning påverke plasseringa av terskelen eller korleis det binære
biletet ser ut?
b)
Regn ut og plott funksjonen
B(t) = min{H1 (t), H2 (t)}
Gjev maksimal-verdien av
c)
Vis korleis utrekninga av
Oppgåve 5
a)
B(t)
H1 (t)
ein betre terskel?
og
H2 (t)
kan eektiviserast.
Kompresjon og koding
Implementer ein algoritme i MATLAB som gjer run-length transformen radvis eller kolonne-vis i resultat-biletet frå ein av tersklingane frå oppgåva ovanfor.
Anta at du tek til i øvre venstre hjørne, og at fyrste piksel på toppen av ei ny
kolonne fylgjer direkte etter siste piksel i førre kolonne (fyrste piksel i ei ny rad
fylgjer rett etter siste piksel i førre rad).
b)
Regn ut det gjennomsnittlege talet på bytes per piksel etter radvis eller kolonnevis
transform.
c)
Forklar kort korleis du ville implementere Humann-koding av sekvensen av
laupelengder frå det binære biletet.
d)
Korleis vil du regne ut talet på bits per piksel etter Humann-koding av
laupelengdene?
(Framhald på side 6.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Oppgåve 6
a)
Side 6
Konvolusjon
Lag ein gradient-operator som kan estimere gradient-komponenten
i eit digitalt bilete med konvolusjonen (symbolet
∗
gx , i x-retning
tyder her konvolusjon)
[1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 − 1]
og ein tilsvarande operator for å nne gradient-komponenten i y-retning,
gy .
Gradientkomponentane skal vera positive for kantar der intensiteten aukar frå
venstre mot høgre og nedanfrå og oppover i biletet. Vis korleis ltermaskene vert
for de to operatorane.
b)
Spelar det nokon rolle kva for rekkefylgje konvolusjonane i utrykket ovanfor vert
utført i? Forklar kort.
c)
Korleis kan du enkelt utvide operatorane ovanfor til å bli
d)
Gitt to sammansette konvolusjons-operatorar:
1:
q
gx2 + gy2,
der
gx
5×5
eller
7 × 7?
vert funnen med operatoren
[1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 − 1]
og
gy
vert funnen med operatoren
[1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 1] ∗ [1 1] ∗ [−1 1]T
2:
hx + hy ,
der
hx
vert funnen med operatoren
[1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 − 1] ∗ [1 1]T ∗ [1 1] ∗ [1 1]T ∗ [1 − 1]
og
hy
vert funnen med operatoren
[1 1]T ∗ [1 1] ∗ [1 1] ∗ [−1 1]T ∗ [1 1]T ∗ [1 1] ∗ [1 1] ∗ [−1 1]T
Kva for to vanlege bilethandsamingsoperatorar svarer dette til?
Diskuter generelle føremuner og ulemper ved den praktiske bruken av dei to
operatorane.
e)
Vis korleis du kan sette sammen element frå operatorane ovanfor til ein
7×7
LoG-operator, og at denne ltreringa kan sjåast på som dieransen mellom to
lavpass-ltreringar.
Lukke til!
(Framhald på side 7.)
Eksamen i IN 106, Onsdag 30. mai - fredag 1. juni 2001
Side 7
MATLAB toolbox
Here is a small set of useful hints and functions in MATLAB.
Printing a gure: choose 'Print' on the gure menue. Choose 'Print to le' and print
it using the IFI print programme if direct printing does not work. If the gure is in
color and you do not have access to a color printer, you can print in greylevels on a
regular printer. You can then describe what you saw on the screen compared to the
paper print of the gure.
Several curves on the same plot:
plot(x1);
hold;
plot(x2); % x1 and x2 will now appear in the same plot
Use hold one more time to release the plot such that your next plot is on a new gure.
plot(x1(201:400)); Plot only parts of a signal
Read and display a ti image:
r=imread('bilde.ti');
imshow(r);
bi2ti and ti2bi.
rlt (available from the
Conversion between TIFF and XITE image format: use
Filtering: you are recommended to use the function
dsprst
toolbox).
Local operations in 1D in MATLAB can be performed by:
x2 = nllter(x,[3 1], 'max'); See MATLAB documentation or help for the function nllter.
Frequency response: use the function
freqz(h,1,zz);
Given two set of index values
t1=[1:1:100] and t2=[1:5:100]
If signalinn is dened for indexes t2, you can interpolate by
nyttsignal = interp1(t2,signalinn,t1,method);
Try help interp1 to see dierent options for method.
Plot of two signals dened for dierent indexes t1 and t2:
plot(t1,signal1);
plot(t2,signal2);
Reading sound les on .wav format:
[mysound,fs,nbits] =wavread('/hom/in106/myle.wav');
To play sound from MATLAB, we recommend that you use a SOLARIS workstation
at IFI. If you use a dierent type of computer, you must make sure that you know
how to play the sound. On a SOLARIS workstation, start the program
gaintool
from
the unix prompt. Choose the option jack and plug in your headphones in the correct
plug at the back of the computer.
are correctly attached.
soundsc(mysound); should now work if the earphones
Download