luk vindue [X]

Billedprocessering

 

 

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:

  1. Skriv beregningsresultaterne til det midlertidige billede
  2. 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:

  1. Find maksimum (den største gråtone-pixelværdi)
  2. Find minimum (den mindste gråtone-pixelværdi)
  3. Skift værdier, således minimum bliver nul (træk minimumsværdien fra alle pixels)
  4. 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;

  1. Foretagelse af udtværing af billedet, hvorved støjen reduceres
  2. Bestemmelse af billedgradienter - fremhævning af områder med høje retningsbestemte afledte.
  3. Udførelse af non-maximal suppression.
  4. 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.

 
                           All rights reserved - MachineVision.dk©
luk vindue [X]