|
Introduktion
I det følgende fokuseres på billedprocessering, som udgør en central del af MachineVisionteknologien.
Formålet er at give overblik over den digitale billedprocesserings muligheder
og begrænsninger, blandt andet via gennemgang af udvalgte og hyppigt anvendte algoritmer.
Gennemgangen af billedprocesseringsfeltet, i denne rapport, indeholder en bevidst afvejning mellem
teori og praksis. Det anvendelsesorienterede aspekt er dominerende i dette kapitel, blandt andet via
fremvisning af eksempler på udførte billedprocesseringsoperationer.
Indhold:
Indledning:
Traditionelt set har billedprocessering været tilknyttet fagområdet ComputerVision, men i og med
der stilles stigende krav til industrielt anvendelige MachineVision-systemer, udgør dette, i dag, en
væsentlig og fast forankret del af MachineVision. Det er derfor nødvendigt at udviklere, og til dels
brugere, som minimum, kender til de basale teknikker, som ligger til grund for billedprocesseringen.
Som følge heraf har dette område stor betydning for forståelsen af MachineVision-systemets egentlige
performance og dermed endelige funktionsdygtighed og robusthed.
Elektronisk udstyr kan ikke se og opfatte på samme måde som mennesker, hvorfor afbildningssystemer
ikke er ækvivalente til den menneskelige opfattelsesevne. Mens mennesker tager udgangspunkt
i antagelser og kan stole på slutninger, kan elektronisk udstyr udelukkende opfatte ved hjælp af
undersøgelse og behandling af individuelle pixels i digitale billeder, og herudfra drage konklusioner
med assistance fra vidensdatabaser, featureudtrækninger og lignende aspekter.
Opgaver
Arbejdet med (digitale) billeder - billedprocessering - opdeles typisk i to grupper af to trin, hvilket
ses i nedenstående punktopstilling:
- Billedsimplificering; præprocessering og segmentering
- Billedanalyse; featureudtrækning og fortolkning
Billedsimplificering
Billedsimplificering handler om at gøre billedet mindre komplekst, således hurtigere processering
kan foretages efterfølgende. Præprocesseringen dækker over transformation af inputbilledet til
et billede, der, på en eller anden måde, er simplere - dette via anvendelse af punkt- og/eller
naboskabsoperationer.
Segmenteringen opdeler billedet, således hvert
billedsegment kun indeholder et enkelt objekt eller en enkelt feature.
Billedanalyse
Billedanalyse omhandler fortolkning af billedets indhold, således brugbar viden opnås. Featureudtrækningen
giver information omkring selve billedet - det vil sige dets objekter og/eller
features. Fortolkning dækker, i denne sammenhæng, over, at det ud fra featureudtrækningen er
muligt at bestemme MachineVision-systemets umiddelbare output - eksempelvis om et emne er
acceptabelt eller defekt.

Punktoperationer:
Fundamentet for punktoperationer er, at kun én pixel i inputbilledet har en effekt på outputbilledet -
som vist på nedenstående figur. Dette betyder, at billedprocesseringen foretages én pixel ad gangen, uafhængigt
af alle andre pixels.

Punktoperationer omhandler overordnet anvendelse af forskellige verføringsfunktioner, der transformerer
et eller flere inputbilleder til ét resulterende outputbillede. Punktoperationer kan være
monobaserede, hvilket betyder, at et enkelt billede modificeres, eller de kan være binære, betydende,
at to billeder kombineres. Umiddelbart synes punktoperationer simple, men de udgør en effektfuld
klasse af billedprocesseringsalgoritmer, hvis de kombineres, og således anvendes i succession.
De primære billedprocesseringsteknikker, der kan indordnes under punktoperationer, er:
- Billedaritmetik (addition, subtraktion, multiplikation, division, etcetera).
- Grey level mapping (forbedring af gråtoneskalaen).
- Histogramprocessering (eksempelvis strækning og segmentering).
Billedaritmetik
I og med digitale billeder er opbygget af numeriske værdier, kan der udføres aritmetiske operationer
herpå, hvilket foregår pixelvist. Aritmetiske operationer klassificeres som binære, idet to inputbilleder
anvendes til at skabe et resulterende outputbillede. De aritmetiske operationer kan samlet
udtrykkes på følgende måde:
Ox,y = I1x,y <operation> I2x,y
, hvor O er det resulterende outputbillede, I1 og I2 er inputbilleder, mens <operation> er et udtryk
for den aritmetiske operation, der udføres mellem I1 og I2.
Over- og/eller underflow
Overflow er et udtryk for, at en given pixelværdi overstiger det tilgængelige intensitetsinterval, mens
underflow dækker over, at en pixelværdi ligger under intervallet. Er der eksempelvis tale om addition
af to 8-bit-billeder, der besidder pixelværdier indenfor intervallet [0 ; 255], kan det forekomme, at
pixelsummen nogle steder bliver større end 255, hvilket resulterer i overflow. Tilsvarende kan der
opstå underflow, hvis to 8-bit-billeder subtraheres, og resultatet heraf bliver mindre end nul.
Problemer med over- og underflow løses typisk via anvendelse af et midlertidigt billede, der besidder
pixelværdier som floats, tilsvarende 32 bits. Dette sikrer, at stort set alle pixelværdier kan lagres.
Førnævnte udføres på følgende måde for et 8-bit-billede:
- Skriv beregningsresultaterne til det midlertidige billede
- Skalér det midlertidige billede til 8-bit-intervallet, og indskriv dette til resultatbilledet
Baggrundssubtraktion
En typisk anvendelse af de aritmetiske operationer, i henhold til MachineVision-applikationer, er
den såkaldte baggrundssubtraktion, der kan udtrykkes på følgende måde:
Billede indeholdende objekt − Baggrundsbillede = Objekt
Ovenstående udtryk kan gøres mere robust, hvis der anvendes gennemsnitsbetragtninger af flere
baggrundsbilleder, idet der således opnås et mere konsistent billede af den tilstedeværende støj. Et
eksempel herpå ses på følgende figur.

Måling af støj
Et andet eksempel på praktisk anvendelse af billedaritmetiske operationer er måling af støj i en
MachineVision-opsætning. Ved at trække to billeder af den samme scene, på forskellige tidspunkter,
fra hinanden, opnås et udtryk for den støj, der er tilstede, altså:
Inputbillede 1 − Inputbillede 2 = Støj
Ovenstående udtryk bidrager til, at det er muligt at bestemme naturen af den tilstedeværende støj
- et eksempel herpå ses på nedenstående figur.

Grey level mapping
Grey level mapping anvendes til forbedring af et billedes gråtoneskala - dette via ændring af dets
intensitet og/eller kontrast. I det følgende gennemgås operationerne, der ligger til grund herfor.
Opslagstabeller (LUT’s)
Den mest effektfulde monobaserede punktoperation udgøres af den numeriske transformation, der
anvendes til mange forskellige formål. Den numeriske transformation kendes på dens karakteristiske
datastruktur, der typisk implementeres ved hjælp af en opslagstabel, som i realiteten tilsvarer et
almindeligt sildeben. Operationen beskrives ved hjælp af følgende udtryk:
Ox,y = LUT(Ix,y)
Intensitet
Intensiteten er et udtryk for et billedes lysforhold. Måden hvorpå intensiteten ændres, er ved hjælp
af udtrykket:
Ox,y = Ix,y + b
Ovenstående udtryk viser, at der til hver inputpixel lægges konstanten b, hvilket har følgende
betydning:
Hvis b>0 ⇒ lysere billede Hvis b<0 ⇒ mørkere billede
Kontrast
Et billedes kontrast er et udtryk for, hvor mange detaljer, der kan ses. Måden hvorpå kontrasten
ændres, er ved hjælp af udtrykket:
Ox,y = a · Ix,y
Dette betyder, at hver inputpixel ganges med konstanten a, der har følgende betydning for det
resulterende billede:
Hvis a>1 ⇒ mere kontrast Hvis a<1 ⇒ mindre kontrast
Sammensætning af intensitet og kontrast
Hvis intensiteten og kontrasten kombineres, fås følgende udtryk, der tilsvarer en ret linje:
Ox,y = a · Ix,y + b
Denne formel er afbilledet på figur følgende figur, hvor y-aksen tilsvarer outputbilledet og x-aksen svarer til
inputbilledet. Mappingen mellem in- og outputbillede på figur 7.5 tilsvarer identiteten, hvilket vil
sige, at output er lig input, altså; a=1 og b=0. For at spare tid opskrives mappingen typisk i en
opslagstabel, hvilket ses til højre på figuren.

Eksempler på forskellige kontrast- og intensitetsændringer, for et udvalgt billede, ses på figuren nedenfor.
Under de fremviste billeder, er de tilhørende overføringsfunktioner mellem in- og outputbillede
opstillet - dette set i forhold til det korrekte billede.

Histogramprocessering
Et histogram opfattes, i denne sammenhæng, som en diskret funktion, der indeholder information
omkring et digitalt billedes intensitet og kontrast, hvorfor dette kan anvendes til at uddrage væsentlig
billedinformation. Typisk anvendes tolkning af histogrammet til at fastsætte en hensigtsmæssig
thresholdværdi, således en tilfredsstillende binarisering opnås.
Som udgangspunkt forefindes fire
forskellige histogramtyper, der repræsenterer forskellige typer af billeder - jævnfør følgende figur.

Histogramtyper
Et gråtone-histogram er defineret som frekvensen for, at en given gråtoneværdi optræder i billedet.
Hvis n udtrykker det totale antal pixels og ni angiver antallet af pixels, som har gråtoneværdien i,
så er gråtone-histogrammet en diskret funktion, der besidder værdierne:
hi =
ni/n
Histogramstrækning
Forbedring af et billedes kontrast er ofte fornuftigt, idet det er svært at kende forskel på
gråtoneværdier, der ligger tæt på hinanden7. Der er derfor en god idé at sprede gråtoneværdierne
ud over et større område, hvilket kaldes histogramstrækning. Princippet herfor ses på figuren nedenfor.

Algoritmen for histogramstrækning kan udtrykkes på følgende måde, for et 8-bit-billede:
- Find maksimum (den største gråtone-pixelværdi)
- Find minimum (den mindste gråtone-pixelværdi)
- Skift værdier, således minimum bliver nul (træk minimumsværdien fra alle pixels)
- Skalér værdier, således maksimum er 255 og skriv dette videre til outputbilledet (normalisering)
Segmentering
Segmentering går ud på at finde en passende thresholdværdi, således information (forgrund) kan
adskilles fra støj (baggrund). Segmentering inddrager både grey level mapping og histogramprocessering,
hvorfor der er tale om et væsentligt billedprocesseringsredskab.
Hovedformålet med de fleste MachineVision-systemer8 er at sammensætte og implementere hardwarekomponenterne
således, at der opnås et billede, som besidder et bimodalt histogram - jævnfør følgende
figur. Herved simplificeres den efterfølgende billedprocessering markant.

Segmenteringsalgoritmerne, der adskiller forgrund fra baggrund, kan udtrykkes på følgende måde:
- Hvis I(x,y)>TH; sættes O(x,y)=1, ellers sættes O(x,y)=0
- Hvis I(x,y)<TH, sættes O(x,y)=1, ellers sættes O(x,y)=0
Resultatet heraf bliver et binariseret outputbillede, hvor objektpixels=1 og støjpixels=0. Herved
opnås, at forgrunden bliver hvid, mens baggrunden bliver sort.

Hvis der er tale om en robust MachineVision-opsætning, hardwaremæssigt set, er det muligt at
opnå et tilnærmelsesvis statisk histogram, hvilket betyder, at en fast thresholdværdi kan benyttes.
I praksis er et histogram imidlertid aldrig statisk, som følge af udefrakommende støj. Derfor er det
hensigtsmæssigt at udvikle algoritmer, der automatisk kan finde en passende thresholdværdi, selvom
omgivelserne ændres. Det er derfor fordelagtigt, at hardwarekomponenterne bidrager til opnåelse af
et bimodalt histogram, idet de nødvendige algoritmer og programkoder således forenkles.
Naboskabsoperationer:
Naboskabsoperationer differentieres fra punktoperationer ved, at flere pixels i inputbilledet har en
effekt på outputtet. Det gråskalerede område i inputbilledet på nedenstående figur illustrerer
et eksempel på en såkaldt kerne, der udgør det fundamentale indenfor naboskabsoperationer.

Kernerne, der anvendes indenfor for naboskabsoperationer, opdeles typisk efter pixelsammenhænge,
hvoraf de mest anvendte er henholdsvis 4 og 8 - figuren nedenfor.

Den valgte pixelsammenhæng har betydning for, hvorledes billedet processeres. Blandt andet
har det afgørende betydning for udførelse af den hyppigt anvendte BLOB-analyse og dennes
sammenhængende komponentanalyse. Derfor bør pixelsammenhængen vælges
med omhu i forhold til den givne applikation.
Foldning
Udgangspunktet for de væsentligste algoritmer indenfor naboskabsoperationer udgøres af foldning/
korrelation, der kan udføres i både 1D og 2D. At folde betyder at rulle
noget sammen, hvilket, indenfor digital billedprocessering, henviser til, at et lokalt pixelområde rulles
sammen på forskellig vis for at opnå et ønsket resultat. Foldning besidder vidtrækkende muligheder,
både i forhold til standardoperationer og brugerdefinerede operationer, hvilket følgende gennemgang
viser.
Den generelle foldningsligning kan udtrykkes på følgende måde:

Et eksempel på en todimensionel foldningsoperation er fremvist grafisk
på følgende figur.
Det væsentlige element i foldningsoperationen udgøres af foldningskernen, der er vist som M, bestående af de individuelle kerneelementer mi,j . Foldningskernen er et array af skalaer, der både har en horisontal og vertikal udbredelse. Hvert element i foldningskernen multipliceres
med den modsatstående pixelværdi i naboskabet af inputbilledet, P, der består af elementerne
Px,y. Resultatet af disse multiplikationer lægges sammen, hvorefter denne summation divideres med
summationen af kerneværdierne. Resultatet af førnævnte bliver en pixel(værdi), Cx,y, i det foldede
outputbillede, C.

Foldning kræver stor beregningskraft. For at beregne en pixel i outputbilledet for en kerne med
størrelsen m x n kræves; (m x n) multiplikationer, ((m x n) - 1) additioner og en enkelt division.
Udførelse af foldning mellem en 3x3-kerne og et 1024 x 1024 farvebillede kræver således; 27 millioner
multiplikationer, 24 millioner additioner og 3 millioner divisioner.
En forståelse for foldningsprincippet giver mulighed for udvikling af kerner, der besidder specialtilpassede egenskaber, og dermed vidtrækkende muligheder i relation til billedprocessering. Foldning
anvendes, blandt andet, indenfor følgende hovedområder:
- Forskellige former for detektering
- Forskellige former for filtrering
Processering
Foldning illustrerer det tætte forhold, der foreligger mellem billedprocessering og generel signalprocessering
- jævnfør nedenstående figur. Indenfor generel signalprocessering er frekvensen et udtryk for
hvor hurtigt og ofte et signals periode gennemløbes. Indenfor digital billedprocessering udtrykker
frekvensen intensitetsændringer langs indlagte koordinatretninger.

Billederne på figuren fremviser forskellige bevægelsesmønstre for pixels, der oplever intensitetsændringer
i sinusmønstre. De tilhørende grafer viser korresponderende pixelværdier langs indlagte
horisontale og/eller vertikale linjer gennem billederne. a) viser et billede med lav frekvens, idet intensitetsændringen fra én pixel til den næste er
lav. Dette ses desuden på den tilhørende graf, da sinusbølgen er langstrakt.
Figur b) fremviser
et billede med høj frekvens, da intensitetsændringen mellem tilstødende pixels langs en horisontal
linje er større, end ved billede a). Den tilhørende graf indikerer desuden den højere frekvens.
c) viser et billede, der har en lav frekvenskomponent i den horisontale retning, men en
høj frekvenskomponent i den vertikale retning. Tolkning af og forståelse for frekvenskomponenterne
danner grundlag for mange anvendelige billedprocesseringsalgoritmer, der alle tager udgangspunkt
i foldningsoperationen.
Gængse digitale signalprocesseringsteknikker kan anvendes på billeder for at remhæve eller nedtone
karakteristiske frekvenser, og dermed features. Dette udføres, blandt andet, ved hjælp af foldning
med forskellige kerner - alt efter hvilket resultat, der ønskes. Typiske anvendte applikationer heraf,
indenfor MachineVision, er:
- Kantdetekteringsfiltre
- Udglatningsfiltre
- Højpasfiltre
Kantdetekteringsfiltre
Kanter kan betragtes som sammenhængende pixels, der ligger ved overgangen mellem to områder,
og som således tilsvarer lokale intensitetsændringer - jævnfør følgende figur.
I og med kanter karakteriserer grænser, er de af fundamental vigtighed i henhold til udførelse af
digital billedprocessering, idet de således udtrykker væsentlig billedinformation. Desuden er kanter
features, hvilket gør dem relativt uafhængige af lyssætningen, hvorfor detektering heraf kan bidrage
til opnåelse af robuste MachineVision-systemer.

Kantdetekteringsfiltre er meget anvendte indenfor MachineVision, idet de producerer abstrakte
billeder, hvilket betyder, at mindre data skal behandles. Desuden danner kantdetektering grundlag
og mulighed for foretagelse af nøjagtige målinger. En typisk kantdetekteringsalgoritme udgøres af
følgende tre trin:
- Støjreduktion
- Kantfremhævning
- Kantlokalisering
Der forefindes en række standardiserede kantdetekteringsfiltre, der alle besidder fordele og ulemper,
hvorfor den givne applikation er bestemmende for, hvilket filter der bør anvendes. Størstedelen
af kantdetekteringsalgoritmerne kan grupperes indenfor to kategorier; Gradient og Laplacian.
Gradient-metoden finder kanter ved at beregne ekstrema for billedets første-ordens afledede, mens
Laplacian-metoden søger efter nul-gennemgange, zero-crossings, for den anden-ordens afledede.
I det følgende fokuseres på fire forskellige kantdetekteringsfiltre; Prewitt og Sobel, Laplacian
samt Canny, som udgør de hyppigst anvendte indenfor MachineVision.
Prewitt og Sobel
Prewitt- og Sobel-filtrene er baseret på gradientmetoden, hvorfor fundamentet herfor er beregning af
de første-ordens afledede, der udtrykker hældningen af billedlandskabet. Gradienten, ∇f, af et billede
f(x,y) på lokation (x,y) defineres som vektoren, der peger i retning af den maksimale ændringsrate
for f ved koordinatsættet (x,y), altså:


Prewitt- og Sobel-filtrene anvender, som standard, to 3x3 foldningskerner; en, der estimerer
gradienten i x-retningen, Gx, og en anden, som approksimerer gradienten i y-retningen, Gy, hvilket
giver en retningsuafhængig effekt.

Beregningen af gradienten, også kaldet kantstyrken, kræver, at de direktionelle komponenter
sammensættes. En typisk anvendt fremgangsmåde er derfor, at approksimere gradienten med dens
absolutte værdier, altså:
∇f ≈ |Gx| + |Gy|
Prewitt- og Sobel-filtrene er meget anvendte i praksis, idet de er relativt lette at implementere og
samtidig er beregningseffektive. Sobel-filtret anvendes oftest, da det er mindre modtageligt overfor
støj. En ulempe ved begge filtre er imidlertid, at de producerer bredde kanter,
hvilket er uhensigtsmæssigt, hvis der er tale om krævende måleopgaver.
Laplacian
Et andet kantdetekteringsfilter, der kan relateres til MachineVision, er det såkaldte Laplacian-filter,
hvor et eksempel på en 3x3-kerne ses på følgende figur. Denne foldningskerne er retningsuafhængig og
anvendes til at approksimere den anden-ordens afledede. Laplacian-filtret er meget følsomt overfor
støj, da der er tale om bestemmelse af andens-ordens afledede, men er støjniveauet lavt, er Laplacianfiltret
i stand til at finde de tilstedeværende kanters midtpunkter ved hjælp af nul-gennemgange.

Laplacian-filtret har nære relationer til højpas-filtret, hvilket indikerer, at
kantdetekteringsfiltre leder efter høje intensiteter i et billede.
Canny
Canny-filtret er, alment kendt, som det optimale kantdetekteringsfilter, hvorfor der er tale om
en algoritmemæssig forbedring i forhold til de andre kantdetekteringsfiltre. Da der er tale om et
optimalt kantdetekteringsfilter, producerer Canny-filtret meget tynde kanter - af én pixels størrelse. Dette er fordelagtigt i relation til MachineVision-applikationer, hvor der stilles
høje krav til målingsnøjagtigheden.
Kortfattet kan Canny-filtrets fremgangs- og virkemåde beskrives på følgende måde;
- Foretagelse af udtværing af billedet, hvorved støjen reduceres
- Bestemmelse af billedgradienter - fremhævning af områder med høje retningsbestemte afledte.
- Udførelse af non-maximal suppression.
- Reducering af de resterende pixels ved hjælp af en hystereseoperation.
Ud fra ovenstående opnås detektering af kanter af én pixels udbredelse. De umiddelbare ulemper
ved Canny-filtret er, at de er komplekse at implementere og samtidig er meget beregningstunge.
Derfor anvendes de kun, hvis der er tale om krævende opgaver.
Sammenligning
Eksempler på de forskellige kantdetekteringsalgoritmers kantproduktioner ses på nedenstående figur. Herudfra
er det muligt at foretage en direkte sammenligning mellem filtertypernes umiddelbare resultater.
Imidlertid skal andre faktorer, så som; beregningshastighed, støjfaktorer og implementeringsform,
medtages i overvejelserne, når et kantdetekteringsfilter vælges til en given applikation.

Udglatningsfiltre
Udglatningsfiltrene udgør et præprocesseringsværktøj, der primært anvendes til at fjerne støj.
Udglatningsgraden afhænger af kernestørrelsen; jo større kerne, des mere udglatning. I det følgende
gennemgås et eksempel på et udglatningsfilter, i form af lavpas-filtret, kortfattet.
Lavpas-filter
Som allerede nævnt kan digitale billeder opfattes som signaler, der besidder påviselige frekvenser.
På billeder, der fremviser en lys forgrund på en mørk baggrund, udgør overgangene mellem
for- og baggrund høje frekvenser, idet pixelværdierne oplever hurtige/markante ændringer her. I
modsætning hertil gælder, at langsomme farveændringer over store områder resulterer i lavfrekvente
billeder. Gængse digitale signalprocesseringsteknikker kan anvendes på billeder for at fremhæve eller
nedtone karakteristiske frekvenser, og dermed features. Dette udføres ved hjælp af foldning med
forskellige kerner - alt efter applikationen. Et eksempel herpå er det såkaldte lavpas-filter, hvoraf
det simpleste udgøres af middel-filtret, idet alle koefficienterne i dennes foldningskerne har samme
værdi.
I og med hvert kerneelement, i middel-filtret, har samme værdi, tillægges alle pixels i inputnaboskabet
samme vægt i forhold til den foldede resultantpixel. Altså er den resulterende outputpixel
gennemsnittet af de tilstødende inputpixels - deraf navnet middel-filter. Benævnelsen lavpas henviser
til, at de lavfrekvente områder forbliver uændrede, mens pixelmidlingen indenfor højfrekvente
områder har tendens til at eliminere de hurtige intensitetsændringer. Det vil sige, at de lave
frekvensændringer tillades passage, mens de høje frekvenser afvises. Dette betyder, at et lavpasfilter
har den effekt, at det er med til at fjerne støj fra billedet - primært såkaldt salt-og-pebber-støj
- idet denne støjtype tilsvarer koncentrerede høje frekvenser. Denne måde at fjerne støj på anvendes
imidlertid sjældent, idet billedet mister sine skarpe kantdefinitioner.
Median-filter
En hyppigere anvendt måde at fjerne støj på, i praksis, er ved hjælp af medianfiltret. Dette er
et såkaldt rangordensfilter, der således ikke er baseret på foldning, men der er alligevel tale om
en naboskabsoperation. Rangordensfiltrene modificerer deres operationer løbende, hvorfor der er
tale om ikke-lineære filtre. Måden hvorpå disse filtre virker, er, at de enkelte pixels i naboskabet
rangordnes efter deres intensitetsværdier - jævnfør figuren nedenfor. På denne måde opnås statistisk information, hvorudfra det endelige output kan vælges.
Medianfiltret erstatter, som navnet angiver, værdien af en pixel med medianen af gråtoneværdierne
for dens naboskab.

Medianfiltre er populære, idet de er effektive i forhold til eliminering af bestemte støjtyper; primært
højfrekvent og salt-og-peber. Medianfiltret giver bedre resultater end lavpas-filtrene - eksempelvis
middel-filtret - idet udtværingen minimeres, hvorved kanterne forbliver skarpe.
Højpasfiltre
Et andet filter, der kan anvendes til at fremhæve eller nedtone karakteristiske frekvenser, er højpasfiltret.
Dette består af en kerne med en høj midterværdi, i forhold til de andre kerneværdier, hvilket
betyder, at den korresponderende inputpixel bidrager markant mere til outputtet, end de tilstødende
inputpixels i naboskabet. Dette resulterer i, at billedets høje frekvenser, eller
kanter, fremhæves, mens de lavere frekvenser forsvinder. Den visuelle effekt heraf er, at billedet
kommer til at fremstå mere skarpt. Uheldigvis, er denne filtreringstype typisk voldsom, hvorfor det
er svært at opnå hensigtsmæssige resultater i praksis.
Morfologiske operationer
En anden type af naboskabsoperationer udgøres af de morfologiske operationer18, der, i modsætning
til de andre gennemgåede, ikke er baseret på foldning. De morfologiske operationer udgør metoder
til beskrivelse og manipulation af billedobjekters form og struktur, hvis der er tale om binariserede
billeder. Morfologi er hyppigt anvendte indenfor MachineVision, men en række forbehold skal tages,
når de benyttes, idet der er tale om direkte formændringer af billedets objekter
Som tidligere beskrevet foretages ofte segmentering af billeder, således væsentlige objekter og/eller
features kan isoleres. Segmenteringsresultaterne indeholder, imidlertid ofte, uhensigtsmæssigt meget
støj samt objekter, der har undergået formændringer. Derfor er det tit nødvendigt, at modificere
formen af de segmenterede objekter, hvilket udgør udgangspunktet for den matematiske morfologi.
Basisoperationer
De to basisoperationer, indenfor matematisk morfologi, udgøres af dilation og erosion. Begge
operationer nødvendiggør benyttelse af et digital inputbillede og et strukturelement, hvorfor
der er tale om naboskabsoperationer. Erosion og dilation fungerer ved at translatere strukturelementer
til forskellige punkter i inputbilledet, og undersøge skæringerne mellem de translaterede
kernekoordinater og inputbilledets koordinater. Morfologiske operationer tager
ofte udgangspunkt i strukturelementets midtpunkt, som opfanger, hvor der er intensitetsforskelle
i billedet. Dette svarer til, at strukturelementets midtpunkt køres rundt langs de pågældende objekters kanter.
Indenfor MachineVision anvendes erosion primært til fjernelse af støj og isolering af objekter,
mens dilation hovedsageligt benyttes til fyldning af huller og samling af kanter. Eftersom erosion
og dilation begge ændrer billedobjekternes form, er de ikke hensigtsmæssige at anvende indenfor
krævende måleapplikationer.
Erosion tilsvarer en formindskelse af billedets forskellige objekter, som vist på følgende figur a),
mens Dilation medfører udvidelser heraf c).

Yderligere morfologiske operationer
Ud over de rene erosions- og dilationsoperationer forefindes kombinationer og afarter heraf, der
ligeledes indordnes under den matematiske morfologi. Eksempler herpå, der kan relateres til
MachineVision, er operationerne; close, open og outlining. Disse gennemgås kortfattet i det følgende,
med udgangspunkt i et konkret eksempel, der omhandler kontrol af printkort, som vist på nedenstående figur.

Close
Et konkret eksempel på anvendelse af en close-operation ses på figur c) - dette i forbindelse med kontrol af printbanerne og loddesamlingerne på et printkort. Hvis printbanerne og/eller
loddesamlingerne placeres for tæt på hinanden finder kortslutninger sted, hvorfor kontrol af disse
afstande er essentielle. I dette eksempel tilsvarer den tilladelige fysiske afstand mellem førnævnte
komponenter 5 pixels. Det vil sige; hvis der anvendes to successive dilationsoperationer, vil
printbaner og/eller loddesamlinger, der er længere væk fra hinanden end 4 pixels ikke sammensmelte.
Derimod vil objekter, der er placeret tættere på hinanden end den minimale afstand smelte sammen.
Hvis der efterfølgende anvendes to erosions-operationer på det opnåede dilaterede billede, vil alle
områder, som til at starte med var placeret på for tæt hinanden, efterlade et detekterbart mønster.
Slutteligt fratrækkes det resulterende billede fra det originale, hvorved problemområder fremhæves,
som angivet ved pilen på figur c).
Open
Et konkret eksempel på anvendelse af en open-operation ses på figur d). På det fremviste
printkort skal printbanerne, mindst, have en bredde på tre pixels. Dette kan kontrolleres ved
udførelse af en open-operation. Først eroderes billedet en enkelt gang, hvorved der kan detekteres
printbaner, som er to pixels eller mindre i bredden. Herefter foretages en enkelt dilation. Herved
opnås følgende; hvis et objekt i billedet er for tyndt, slettes de af eroderingsoperationen, hvorved
de ikke genskabes ved den efterfølgende dilationsoperation. På denne måde detekteres printbaner,
som har en mindre bredde end 3 pixels. Resultatbilledet, med et potentielt brudområde ses på figur
d).
Outlining
Outlining er et udtryk for udførelse af en eller flere erosions- eller dilationsoperationer, der
efterfølgende trækkes fra eller lægges til originalbilledet. Herved opnås et resulterende billede,
som fremviser pixeltynde konturer af billedets forskellige objekter. Det vil sige, at der er tale om
en anden måde at finde kanter på, end de allerede gennemgåede kantdetekteringsfiltre. Hvis der
arbejdes med binariserede billeder, er det hensigtsmæssigt at anvende morfologiske operationer,
frem for foldningsbaserede, idet de er mere beregningseffektive. Ydermere producerer outlining et
bedre billede, da operationen er mindre modtagelig overfor støj. Resultatet af en outline-operation,
der fremhæver loddesamlingerne og printbanerne, ses på figur b).
Blob-analyse:
Udgangspunkt
I dette afsnit fokuseres på de konceptuelle aspekter, der tilhører billedprocesseringsværktøjet
BLOB-analyse, der kan relateres til hovedområderne; segmentering, featureudtrækning og fortolkning. Kortfattet kan BLOB’s defineres som sammenhængende pixels i et billede, der
alle har samme logiske tilstand. Pixels, der tilhører en BLOB er i forgrundstilstand (1), mens alle
andre pixels er i baggrundstilstand (0). Selve BLOB-analysen går ud på at segmentere BLOB’s,
hvorved information omkring billedets interessante objekter opnås. Formålet er således at finde de
pixels, der hører til billedets enkelte objekter.
Anvendelse
BLOB-analysen består af en serie af billedprocesseringsalgoritmer og analysefunktioner, som
producerer information omkring BLOB’s i et billede. Som udgangspunkt kan BLOB-analyse
anvendes til at detektere og analysere enhver todimensionel form i et billede. Denne kan således
anvendes til at detektere sammenhængende områder eller pixelgrupperinger i et billede, og
efterfølgende udføre målinger på disse.
BLOB-analyse anvendes typisk, hvis beregningstiden er kritisk, idet uinteressante billedområder
relativt simpelt kan elimineres, hvorved kun de interessante elementer, som skal anvendes i den videre
analyse, står tilbage. Ud fra BLOB-analysen kan udtrækkes statistisk information omkring billedets
segmenterede objekter - eksempelvis i form af; størrelse, perimeter, antal, tilstedeværelse/fravær
samt lokation/orientering - dette benævnes featureudtrækning. Formålet med at udtrække features
er, at der herudfra kan genereres skalaer, der kan anvendes til eksempelvis klassifikation.
Således
gås fra egentlig billedprocessering til udførelse af matematiske operationer.
Konceptuel virkemåde
Et typisk BLOB-analyse-værktøj skanner et billede, med begyndelse i øverste venstre hjørne og
anvendelse af en rekursiv algoritme, hvorved alle billedets BLOB’s detekteres. Herudfra genereres
en rapport, der indeholder detaljer omkring de detekterede BLOB’s.
Et essentielt aspekt i relation til BLOB-analyse er dets anvendelse af sammenhængende komponentanalyse.
Den sammenhængende komponentanalyse udføres ved, at der køres en kerne, med
en given pixelsammenhæng, over billedet - typisk med startpunkt i øverste vestre hjørne. Via anvendelse af steppebrands-princippet, "the grassfire concept", udføres en rekursiv
algoritme, der detekterer alle billedets BLOB’s. På nedenstående figur ses forskellige pixelsammenhænges betydning for BLOB-uddragelsen, og
dermed de segmenterede billedobjekter samt mulige featureudtrækninger.

Eksempel
I det følgende gennemgås et praktisk eksempel på anvendelse af BLOB-analyse - blandt andet
i form af benyttelse af sammenhængende komponentanalyse - jævnfør nedenstående figur. Først foretages
støjreduktion og binarisering af det erhvervede billede. Herefter fjernes uinteressante BLOB’s, ud
fra størrelseskriterier, samt BLOB’s, der rører billedrammen. Slutteligt foretages segmentering af
billedets BLOB’s, hvorudfra interessante features kan udtrækkes, hvilket danner udgangspunkt for
egentlig klassifikation.

Kilder:
http://www.wikipedia.org/ - wikipedia; the free encyclopedia.
Howard E. Burdick. Digital Imaging - theory and applications. McGraw-Hill, 1st edition, 1997.
Rafael C. Gonzalez and Richard E. Woods. Digital Image Processing. Prentice Hall, 2nd edition,
2002.
Thomas Baltzer Moeslund. Powerpointslides fra kurset "MachineVision", 6. semester på VTlinjen.
Thomas Baltzer Moeslund Lektor ved Institut for Medieteknologi og Ingeniørvidenskab.
Alexander Hornberg. Handbook of Machine Vision. Wiley-WCH, 1st edition, 2006.
Nationalinstruments-vejledning - LabVIEW Vision Builder AI. |