Tentamen 8D040 - Basis beeldverwerking 6 augustus 2008, 14.00-17.00 uur Vraag 1. (1.5 punten) Gegeven het binaire beeld Components (figuur 1). De componenten in dit beeld moeten automatisch gesegmenteerd worden met behulp van binaire morphologische operaties. Het resultaatbeeld moet een gelabeld beeld zijn, met de klassen: Weerstanden: 1 Keramische schijfcondensatoren: 2 Electrolytisce condensatoren: 3 Transistoren: 4 Vermogenstransistoren: 5 Hoe zou u dit aanpakken? Geef uw oplossing bij voorkeur weer in (pseudo) Mathematica / Matlab code. Figuur 1 1
Vraag 1 Kan je oplossen door naar de onderscheidende kenmerken van de verschillende componenten te kijken. Noem het originele beeld binair en noem het bijv. ORG. De powertransistoren hebben een gat. Van een skelet zonder eindpunten blijven alleen gesloten contouren over. Dat zijn de powertransitoren. Gebruik dat skelet als zaad om met behulp van een propagatie operatie de powertransistoren terug te krijgen. Sla dat beeld op, bijv. in RES1. EXOR RES1 met ORG om een beeld te krijgen van de componenten zonder powertransitoren. Noem dat beeld bijv. TMP1. Je kan in TMP de tweepoten van de driepoten onderscheiden door het beeld te skeleteren met behoud van eindpunten. Daarna kijk je met adequate hit-ormiss maskers of het skelet bifurcaties heeft. Dat zijn de driepoten (de gewone transistoren). Gebruik die branchpunten als zaad om met behulp van een propagatie operatie de transistoren terug te krijgen. Sla dat beeld op in bijv. RES2 EXOR het met het TMP1 om de een beeld te krijgen van de componenten zonder transitoren, sla dat op in bijv. TMP2. Dat is een beeld met alleen maar tweepoten. Weerstanden zijn lang en dun. Als je het beeld een paar keer erodeert (meer dan de helft van de dikte van de weerstand, zullen de weerstanden geheel verdwijnen. Sla dat beeld op in bijv. TMP3. Gebruik het geerodeerde beeld (TMP3) als zaad om de consensatoren en schijfcondesatoren terug te krijgen. Sla dat op in bijv. TMP3. EXOR TMP3 met TMP2 om de weerstanden te krijgen. Sla dat op in bijv. RES3. De schijfcondesatoren zijn iets dikker dan de electrolitische condesatoren. Dit gegeven kan je gebruiken om met het juiste aantal erosies deze twee van elkaar te onderscheiden. Zie boven. Sla de beelden op in bijv. RES 4 en RES5 Deze laatste procedure is een beetje kritisch. [Alternatief 1 is om een contour operatie te doen op TMP3 en daarna een skelet zonder eindpunten. Je krijgt dan twee typen gesloten contouren, een rond, de ander rechthoekig. Het onderscheidende kenmerk dat je hier gebruikt is dus de vorm. Met adequate hit-or-miss hoekdetectoren kan je dan de contouren met scherpe hoeken selecteren en die terug propageren om de electrolyten te vinden.] [Alternatief 2 is om een erosieslag te doen, waardoor de componenten hun pootjes kwijtraken. Dan een skelet met eindpunten. De schijfcondensatoren zullen tot een punt terug gebracht worden, de electrolyten tot een lijnstukje. Als de schijfcondesatoren niet helemaal rond zijn, dan zal het skelet niet tot een punt geskeleteerd worden maar ook tot een (mogelijk gekromd lijnstukje), maar het zal dan korter zijn dan dat van de electrolyten. Door het aantal pixels te tellen per lijnstukje kan je dan de twee types uit elkaar halen. Pixels tellen met behulp 2
van morphologische operaties door een slag van een skelet zonder eindpunten te doen en te kijken of je object verdwenen is. Het aantal skeletslagen dat je zo moet doen is een maat voor de lengte van het lijnstukje.] Postprocessing: Elk beeld RES1.. RES5 kan je labellen met een bepaalde grijswaarde of kleur. Bijv. RES1 = grijswaarde 50, 2 = 100, 3 = 150, 4 = 200, 5 = 250. Of RGB waarde (50, 50, 50), etc... Maak van elk binair beeld een grijswaarde beeld en ken hun een label toe. Tel alle beelden bij elkaar op tot 1 resultaat beeld. Vraag 2. (1.5 punten) We moeten een algoritme definiëren, dat in staat is om automatisch een bepaald type beelden te segmenteren. Gegeven is dat er slechts één voorgrondobject is, naast natuurlijk de achtergrond. We nemen willekeurig vier van dit soort beelden en genereren hun histogram. Die histogrammen zien er uit als in figuur 2. a. Figuur 2 Welke methode zou u gebruiken om deze beelden te segmenteren. Motiveer waarom u denkt dat deze methode goed zal werken. Wees zo specifiek mogelijk. In de histogrammen kunnen we zien dat er een verdeling is met twee objecten (pieken). Ze hebben overigens niet altijd dezelfde positie en ook niet dezelfde vorm in de verschillende histogrammen. Een drempeling lijkt een goede methode voor segmentatie, omdat de pieken goed te onderscheiden zijn, maar de te gebruiken drempel moet per beeld worden bepaald. Hiervoor is Otsu s methode uitermate geschikt. b. Geef stap voor stap aan hoe de methode toegepast zou moeten worden. Bereken een histogram P(b i ). For elke mogelijke drempelwaarde t 3
bereken de in-between standaard deviatie σ B (t) en de standaard deviatie van het hele histogram σ T (t). bereken de merit -functie als n(t) < n(t), dan T = t n(t) = σ2 B (t) σ 2 T (t) Einde For Hierbij geldt dat σ B (t) = w 0 (t)w 1 (t)(µ 0 (t) µ 1 (t)) 2 w 0 = t P(b i ) i=0 w 1 = 1 w 0 µ 0 (t) en µ 1 (t) zijn de gemiddelde waarden onder en boven de drempel t. Vraag 3. (1.5 punten) Om de resolutie van figuur 3(a) met een factor twaalf (12) te verkleinen nemen we elke 12 e pixel. Hierbij is de verwachting dat we een beeld krijgen dat er uitziet als figuur 3(b), welke het 12-voud verkleinde beeld in figuur 3(a) een aantal keren herhaald naast en boven zichzelf laat zien. Echter, we krijgen in werkelijkheid een beeld dat er uitziet als figuur 3(c), met duidelijke artefacten. a. Hoe heet het verschijnsel dat is opgetreden in figuur 3(c)? Aliasing b. 1. Wat zijn de karakteristieken van het Fourier domein van het figuur 3(c)? U kunt een benadering tekenen van de verschijning in het Fourier domein. 2. Leg uit waarom dit verschijnsel optreedt. 1. Het Fourier domein laat herhaalde kopieën zien van de wolk van centrale frequenties die het beeld representeren. Bovendien, vanwege het aliasing effect, zullen de herhaalde kopieën overlappen, waardoor de verschillende kopieën niet meer goed afzonderlijk te beschouwen zijn. 4
c. 2. Door het sub-samplen van het originele beeld in figuur 3(a), worden de herhaalde representaties in het Fourier domein naar elkaar toe geschoven. De afstand tussen de wolken in het Fourier domein is omgekeerd evenredig met de afstand van de sample-punten in het spatiële domein. 1. Wat kan men doen om dit verschijnsel te vermijden, en dientengevolge een beeld te verkrijgen dat meer lijkt op figuur 3(b)? 2. Wat zijn de karakteristieken van het Fourier domein van figuur 3(b)? 1. Men kan in het Fourier domein van het originele beeld daar waar de herhaalde representaties van het beeld elkaar gaan overlappen na sampling, deze representaties afsnijden. Alles buiten deze cut-offs, wordt dan in het Fourier domein op nul gesteld. Dit is het zogenaamde anti-aliasing filter. 2. De afgesneden herhaalde representaties zullen elkaar net gaan raken door het sub-samplen, maar niet meer overlappen. In de overlappende regio s zal dus de signaalsterkte minder worden. (a) (b) Figuur 3 (c) 5
Vraag 4. (1.5 punten) Gegeven het beeld hieronder (figuur 4). De waarden in het beeld representeren de lokale gradient magnitude van een ander beeld I. a. Figuur 4 Welk algoritme zou u gebruiken om het 8-connected pad te vinden tussen start en eind, dat tevens de randen ( edges ) in het oorspronkelijke beeld I volgt? Dijkstra s kortste pad algoritme. b. Leg uit hoe het algoritme stap voor stap werkt, en definieer/benoem de onderdelen die specifiek zijn voor het probleem dat we hier moeten oplossen. Beschouw de pixels als cellen. Definieer de links tussen de verschillende cellen. Definieer kosten voor elke cel, gerelateerd aan de gradient magnitude. Definieer kosten voor elke verbinding tussen naburig cellen, horizontaal, verticaal, en diagonaal. Definieer kosten 0 voor de cel die als start is aangemerkt, definieer voor alle andere cellen de kosten op oneindig. Herhaal Vanuit de cell met de laagste kosten, bereken de cumulatieve kosten om naar elk van de buren te gaan. Deze kosten zijn de kosten van 6
het huidige punt, plus de kosten van de verbinding tussen het huidige punt en de te bezoeken buur-cel, plus de kosten van die buur-cel. Als de gevonden kosten voor de onderzochte buur-cel lager zijn dat de reeds bekende kosten voor die cel, update de kosten en sla op via welke cel deze buur-cel dan bezocht moet worden, nl. de huidige cel. Bezoek bij elke iteratie steeds alle front-cellen en start daarbij met die front-cel die op dat moment de laagste kosten heeft. Aangekomen bij het eindpunt, en wanneer alle mogelijkheden zijn onderzocht, loop terug van het eindpunt via de opgeslagen links via welke men tot het eindpunt met de huidige laagste kosten in gekomen. Dit pad is het zogenaamde minimal cost path. Specifiek voor deze toepassing: c. Definieer een kostenfunctie die omgekeerd evenredig is met de gradient magnitude, oftewel, hoe groter de gradient magnitude, hoe lager de kosten moeten zijn. Definieer ook kosten voor de verbinding, en kijk daarbij ook in de diagonale richting, om een 8-connected pad mogelijk te maken. Hoe ziet het 8-connected pad eruit? Teken hoe het verkregen kan worden op bijgaande figuur 5. Zie figuur 5. Iedere kleur geeft een stap in de evaluatie van de kosten aan, en de bijbehorende cumulatieve kosten voor de betreffende cel, wanneer via de bebehorende link gereisd wordt. We hebben hier voor de horizontale en verticale links de kosten 1 gezet, en voor diagonale links de kosten 1.4 (= 2). De dikke witte lijn geeft het uiteindelijke 8-connected pad aan. 7
Vraag 5. (1.5 punten) Figuur 5 We hebben een 1D gesample-de functie, die er uitziet als in figuur 6. Figuur 6 We willen de waarden schatten van f(5, 7) en f(8, 6) in de originele functie. a. Gebruik twee verschillende interpolatiemethodes om de waarden van f(5, 7) en f(8, 6) te schatten. 8
Nearest neighbour interpolatie: f(5.7) = f(7) = 2.8 f(8.6) = f(7) = 2.8 Lineaire interpolatie Stel een vergelijking op voor de lijn die door de meetpunten bij x=0 en x=7 gaat: f(7) f(0) f(x) = f(0) + x = 2 + 0.8 7 0 7 x Stel een vergelijking op voor de lijn die door de meetpunten bij x=7 en x=14 gaat: f(14) f(7) f(x) = f(7) + (x 7) = 2.8 + 1 (x 7) 14 7 7 Dus: b. f(5.7) = 2 + 0.8 5.7 = 2.65 7 f(8.6) = 2.8 + 1 1.6 = 2.57 7 Als we gebruik zouden maken van interpolatie-kernels, hoe zouden deze er dan uitzien? En hoe kunnen deze worden toegepast? Nearest neighbour interpolatie: kernel heeft een blokvorm met als breedte de sampling afstand en als hoogte 1. Lineair interpolatie: kernel heeft de vorm van een driehoek of tent, met als maximale hoogte 1, en als breedte twee keer de sampling afstand. Deze kernels kunnen worden toegepast middels convolutie. c. Hoe gedragen deze kernels zich in het Fourier domein? De blokvormige kernel geeft een Sinc-vorm in het Fourier domein. De driehoekige kernel kan gedacht worden te zijn ontstaan via convolutie van een blok met een blok. Dat betekent dat die in het Fourier domein zou zijn ontstaan door de Fourier transformatie van een blok (i.e. een Sinc) te vermenigvuldigen met zichzelf, dus te kwadrateren. Dus: de driehoekige kernel gedraagt zich in het Fourier domein als een gekwadrateerde Sinc-functie. 9
Vraag 6. (1 punt) Voor de segmentatie van een celkern in een fluorescentiebeeld (figuur 7(a) links), gebruiken we de watershed -methode. Als eerste berekenen we de gradient magnitude van het beeld (figuur 7(a) midden) en vervolgens passen we het watershed -alogritme toe. Hierbij krijgen we te veel verschillende gesegmenteerde regio s (figuur 7(a) rechts). (a) a. (b) Figuur 7 Waarom levert deze methode te veel segmenten op? Omdat er veel locale minima in het beeld zitten, en dat is zo vanwege de ruis. b. Wat kan men doen aan de methode om deze beperking op te heffen, en de segmentatie te krijgen zoals te zien is in figuur 7(b)? Men kan ofwel markers gebruiken om aan te geven waar begonnen moet worden met flooden. Het aantal markers geeft dan aan hoeveel clusters er moeten 10
komen. Tweede optie is om als post-processing stap een hierarchische clustering uit te voeren, waarbij clusters die wat betreft clustercentra veel op elkaar lijken samengevoegd worden. Vraag 7. (1.5 punten) Hieronder in figuur 8(a) zie je een MR-beeld van een korte-as doorsnede van het linker ventrikel van het hart. De witte cirkels markeren de buiten- en binnenkant van de hartspier. Alvorens het beeld te acquireren is een speciale codering toegepast, genaamd SPAMM of tagging, die ervoor zorgt dat een lijnenpatroon verschijnt. Dit lijnenpatroon beweegt mee met het hart, omdat het een intrinsieke eigenschap van het hartweefsel is geworden, voor een beperkte duur. Dit wordt gebruikt om de beweging van het linker ventrikel beter te kunnen meten met beeldverwerking. In figuur 8(a) ziet u het patroon direct nadat het is aangebracht. Het heeft nog rechte lijnen, en is ook in de blood pool in het midden van het beeld te zien. Echter, na enige tijd verdwijnt het patroon uit de blood pool, omdat de magnetische codering gewoon weggespoeld wordt met het bloed (zie figuur 8(d)). Tevens vervaagt het patroon in de tijd door het verval van de magnetisatie (met tijd-constante T 1 ). Dit is een probleem voor de beeldverwerking, en daar willen we wat aan doen. Dat gebeurt in het Fourier domein. F = F 1 = (a) (b) (c) F = F 1 = (d) (e) (f) (g) Figuur 8 11
a. Beschrijf hoe de Fourier Transformatie (FT) van het beeld in figuur 8(a) eruit zal zien. Bedenk hierbij dat deze FT complex kan zijn. De Fourier transformatie van het beeld in figuur 8(a) zal een drietal pieken onder elkaar laten zien, ervan uitgaande dat het lijnenpatroon een sinusvormig profiel heeft. De centrale piek representeert de lage frequenties in figuur 8(a), en de twee pieken die symmetrisch boven en onder de centrale piek ligt representeren de frequentie(s) die in het lijnenpatroon voorkomt/voorkomen. De niet-centrale pieken zijn redelijk sterk aanwezig, omdat het lijnenpatroon zich in bijna het gehele beeld bevindt. Verder bestaat de Fourier transformatie hier uit een reëel deel en een imaginair deel. Beide zijn overigens even, omdat het originele (spatiële) beeld puur reëel is. b. Beschrijf hoe en waarom de FT van figuur 8(d) (dit is de figuur die in 8(e) moet staan) anders is, dan die van figuur 8(a). Als u geen antwoord op vraag (a) hierboven heeft gegeven, of er niet zeker van bent, gebruik dan figuur 8(g) als FT van figuur 8(a). Ga er dan van uit dat de figuur in 8(g) een representatie van zowel het reële als het imaginaire deel is. Negeer daarbij de witte cirkel om de meest rechtse piek. Omdat op een groot gedeelte van het beeld het lijnenpatroon is weggevaagd vanwege het bewegende bloed, zijn de pieken die het lijnenpatroon in het Fourier domein vertegenwoordigen een stuk zwakker. Daar waar eerst lijnen stonden, maar nu niet meer, zijn vooral lage frequenties voor de lijnen in de plaats gekomen. dit betekent dat de central piek (die lage frequenties vertegenwoordigt) sterker is geworden. Omdat de lijnen niet meer zo strak gedefinieerd zijn als in het eerste plaatje (de lijnen zijn hier en daar wat opgerekt en in elkaar gedrukt) komen nu ook frequenties rond de twee niet-centrale pieken voor. Deze pieken zijn dus wat breder geworden. c. Als stap in de bovengenoemde methode om met het vervagen van het patroon te kunnen omgaan, wordt in het Fourier domein een gebied gefilterd. Dit is het gebied binnen de witte cirkel in figuur 8(b) (of figuur 8(g)). Alles binnen de cirkel wordt behouden, en alles erbuiten wordt verwijderd, c.q. op nul gesteld. Hierna wordt via de inverse Fourier Transformatie het beeld teruggetransformeerd naar het spatiële domein. In figuur 8(c) (dit is een bewerking van het inverse Fourier getransformeerde beeld uit figuur 8(b), niet de inverse Fourier getransformeerde zelf!) is te zien dat zo het lijnenpatroon behouden is. Hoe is het resulterende beeld (figuur 8(f)) nu anders dan in figuur 8(a)? 12
Aangezien de centrale piek is verwijderd, kunnen er geen lage frequenties meer in het beeld voorkomen. Overal moet nu de frequenties van enig overgebleven piek gelden, dus nu staat door het hele beeld het lijnenpatroon, dat eerst alleen in het hart stond. Aangezien ook één van de twee niet-centrale pieken is verwijderd, is het beeld in het Fourier domein niet meer even. Dit betekent dat na de inverse Fourier transformatie, het resulterende beeld dus complex moet zijn, d.w.z. een reëel en een imaginair deel moet hebben. d. En hoe is het resulterende beeld nu anders dan in figuur 8(d)? Zie antwoord op vraag 7c. Er staan nu ook weer lijnen in de blood pool. e. Waarom wordt hier de meest rechtse piek behouden, en niet bijvoorbeeld de middelste of meest linkse piek, of meerdere pieken? De middelste piek representeert de lage frequenties en bevat dus geen informatie over de lijnen in het beeld, die nu juist essentieel zijn, zoals uitgelegd aan het begin van deze vraag. De meest linkse en rechtse piek in figuur 8(g), of de bovenste of onderste piek in figuur 8(e), zijn gelijkwaardig. Het maakt dus niet uit welke van de twee niet-centrale pieken wordt behouden, omdat het beeld in het Fourier domein even is. f. In de MR-scanner kan ook een zogenaamd grid-tagging -patroon worden aangelegd. Dan worden zowel lijnen in horizontale richting als in verticale richting aangelegd, en wel tegelijk. Een simulatie hiervan is te zien in figuur 9. Dit beeld is verkregen door een horizontaal tagging-beeld met een verticaal tagging-beeld te vermenigvuldigen. Hoe ziet de Fourier Transformatie van dit beeld eruit? Het beschrijven (en eventueel tekenen) van de absolute waarde van de FT is voldoende. Leg uit hoe u aan uw antwoord komt. 13
Figuur 9 Succes! Vermenigvuldiging in het spatiële domein is convolutie in het Fourier domein. De beelden in het spatiële domein zijn vermenigvuldigd, dus de Fourier transformaties van beide moeten geconvolueerd worden in het fourier domein. Dit betekent dat het beeld in figuur 8(b) moet worden geconvolueerd met een vergelijkbare figuur voor het plaatje met verticale lijnen; deze lijkt heel erg op figuur 8(g). Dit resulteert in het plaatje rechts in figuur 9 (let op: dit is alleen maar de absolute waarde van de Fourier transform). Het resulterende beeld is ook even, omdat het ingangsbeeld reëel is. 14