|
Introduktion
Dette kapitel er koncentreret om MachineVision-systemets softwaremæssige del, der gør billedprocesseringen
mulig.
Kapitlets formål er at give overblik over forskellige softwarestrategier samt at
beskrive de største softwareaktører og hyppigst anvendte programpakker på markedet.
Indhold:
MachineVision-software:
Når det erhvervede billede ligger i processeringsenhedens hukommelse, er næste trin at fortolke
informationen, som dette indeholder - jævnfør kapitel 7. Hvorledes billedprocesseringen foretages,
er i vid udstrækning et spørgsmål om, hvem udvikleren af systemet er - eksempelvis dedikerede
MachineVision-huse eller interne udviklere i traditionelle produktionsvirksomheder.
Typisk præges MachineVision-husenes løsninger, i høj grad, af kompleks og individuel tilpasning,
mens produktionsvirksomhedernes udviklere anvender mindre komplekse systemer som et led i en
automatiseringsproces, hvor lignende løsninger tidligere er udviklet.
De forskellige udviklere stiller differentierede krav til MachineVision-software, da der er tale
om forskellige måder at gribe opgaven an på. I nedenstående punktopstilling ses to forskellige
fremgangsmåder:
- Brug af biblioteker, der er udviklet i almene programmeringssprog.
- Brug af kommerciel software, hvortil der er knyttet en grafisk brugerflade.
MachineVision-huse
I kraft af at MachineVision er en relativt ung teknologi, som primært udspringer af fagområdet
ComputerVision, har mange udviklere en baggrund herindenfor. En central disciplin indenfor ComputerVision
er generering af billedprocesseringsalgoritmer, der udvikles specifikt til enkeltstående
opgaver.
Ingeniører, med baggrund indenfor ComputerVision, opbygger derfor ofte egne biblioteker
af softwarekode. Ved nye opgaver benyttes en del af det udviklede bibliotek, mens den resterende
del udgøres af opgavespecifik kode. På denne måde opnås, med tiden, et veletableret bibliotek, der
indeholder algoritmer til stort set alle MachineVision-applikationer.
Den umiddelbare fordel ved
denne fremgangsmåde er fleksibilitet i kraft af, at koden passer specifikt til applikationen, hvorved
robustheden øges. Ydermere haves fuldstændigt indblik i de udarbejdede algoritmer.
Den hastige udbredelse indenfor MachineVision, har imidlertid betydet, at prisen
på kommerciel software er faldende, ligesom disse programmer bliver stadig mere omfattende
og alsidige. Dette betyder, at førnævnte programtyper oplever en stigende konkurrence, og
MachineVision-huse som eksempelvis JLI vision A/S og ImageHouse A/S primært må satse på
opgaver, der besidder høj kompleksitet i relation til selve billedprocesseringsdelen.
Interne udviklere
Den ovenomtalte tilgang til billedprocessering er ikke gennemførlig for udviklere uden decideret
programmeringskendskab og algoritmeudvikling. Som følge af MachineVisions hastige udvikling har
industrien derfor efterspurgt procesorienterede softwareløsninger, der både er brugervenlige og lettilgængelige.
Dette har betydet, at adskillig grafisk programmeringssoftware er kommet på markedet,
som kun kræver programmering i form af drag-and-drop, så som; NI LabVIEW Vision Builder AI, DVT Intellect, DT Vision Foundry og Omron Vision Composer Net. Grafisk programmering gør
billedprocesseringen lettere tilgængelig, hvorved selv mindre produktionsvirksomheder, i princippet,
sættes i stand til at udvikle MachineVision-systemer fra bunden af.
Produktionsvirksomhedernes
prioritering af brugervenligheden ses endvidere i udbredelsen af SmartCamera-løsninger, som
eksempelvis DVT, hvor kamera og software købes som ét sammenhængende system.
Det umiddelbare problem med de kommercielle softwareløsninger er billedprocesseringens manglende
robusthed, der bunder i, at algoritmerne ikke er specificeret til opgaverne. De omtalte programmer
giver imidlertid alle mulighed for at skrive tilstødende kode i almene programmeringssprog,
hvilket bidrager til forøgelse af robustheden og alsidigheden. Problemet er dog stadig, at algoritmerne
sjældent programmeres helt fra bunden af, hvorfor manglende indsigt, under alle omstændigheder,
er fremherskende.
Parametre for kommerciel software:
Eftersom dette projekt er udarbejdet med fokus på MachineVision-systemer i et anvendelsesorienteret
perspektiv, vælges, anvendelse af kommerciel software
til udførelse af billedprocesseringen. Valg af softwarepakke afhænger af den givne applikation - i
særdeleshed forhold omkring processen. Det kan imidlertid være svært at foretage det rigtige valg,
idet der på det eksisterende marked findes et utal af softwareløsninger fra forskellige firmaer.
Påfølgende figur ses forskellige parametre, der bør overvejes, i relation til udvælgelse af kommerciel
software. Figuren opdeler parametrene i ufravigelige, som softwaren skal opfylde for at kunne
overvejes til brug i MachineVision-systemet, og fravigelige, som kan overvejes i henhold til at løse
opgaven hurtigere og mere effektivt.

Ufravigelige parametre
Den økonomisk ramme er omdrejningspunktet for gennemførelsen af ethvert MachineVision-projekt,
hvorfor denne er direkte bestemmende for valget af software. Prisen for
MachineVision-software varierer, alt efter specifikationerne, og det kan derfor være gunstigt at
undersøge, om billig software kan klare en enkeltstående opgave eller om flere komplekse løsninger
kræves, således investering i dyrere software retfærdiggøres.
Funktionaliteten af softwaren er en central parameter, som indledningsvis bør overvejes, når en softwareløsning skal vælges. Hertil kræves imidlertid indgående kendskab til den forventede
billedprocesseringsdel, hvorfor det er fordelagtigt at tage testbilleder, der tilsvarer de forventede
procesforhold.
Testbillederne kan efterfølgende processeres i et freeware billedprocesseringsprogram,
eksempelvis ImageJ, der indeholder en række standardiserede billedprocesseringsalgoritmer. På
baggrund heraf kan der opnås indblik i hvilke funktioner, der, som udgangspunkt, bør benyttes
samt om det overhovedet er muligt at udføre billedprocesseringen, under de givne procesforhold.
Hardwarekompatibilitet er softwarens evne til at kommunikere med tilstødende hardwarekomponenter.
Eksempelvis kræves kompatibilitet med framegrabber, PLC, robotter, kamera og/eller
processeringsenhed, hvilket betyder, at driversoftwaren genkendes af MachineVision-systemet, som
helhed, og derved giver adgang til dediceret styring af komponenterne.
Beregningshastigheden er den tid, det kræver at udføre billedprocesseringsalgoritmerne, hvilket
ofte er dimensioneret af produktionsprocessens hastighed. Beregningshastigheden bestemmes af
softwarekoden, og derfor kan marginale forskelle på kommercielle softwareløsninger være afgørende.
Softwareudbyderne specificerer typisk hastigheden, hvormed en pågældende algoritme afvikles,
under givne hardwareforhold, hvilket er den eneste reelle sammenligningsmulighed.
Fravigelige parametre
Mens de ufravigelige parametre skal opfyldes, kan der gås på kompromis med de fravigelige. Disse
har imidlertid indflydelse på MachineVision-systemets udviklingstid og økonomiske forhold, og er
derfor bestemmende for graden af projektets succes.
Brugervenligheden er en parameter, som er svær at definere og sammenligne, men den bør alligevel
prioriteres under valg af software. En ikke-brugervenlig software er tidskrævende at anvende, hvilket
er kritisk, eftersom udviklingstimer ofte er dyrere end både hard- og software.
Brugertilpasning giver mulighed for at udforme en brugerflade, der kun giver brugeren adgang til atændre en del af systemets funktioner - defineret af udvikleren. Dette er vigtigt, eftersom udvikleren
med indgående kendskab til systemet, sjældent selv anvender systemet i praksis.
Der findes to typer af support, som er vigtig at medtage i overvejelserne, når såvel software som
hardware anskaffes. Disse er henholdsvis; udviklingssupport og teknisk support.
Med udviklingssupport menes, at softwareproducenten tilbyder støtte og sparring under selve
systemudviklingen - specielt i henhold til håndtering af tilstødende udstyr. Teknisk support henviser til muligheden for at hente hjælp ved softwareproducenten, i form af veldokumenterede
hjælpefunktioner i softwaren eller via direkte kontakt med producenten.
Systemintegration refererer til softwarens brugbarhed i forhold til MachineVision-projektet, som
helhed. De to yderpunkter, i denne sammenhæng, er applikationsspecifik software og generelt
anvendelig software.
Applikationsspecifik henviser til, at programkoden er skrevet til en specifik
funktion, hvorved systemudvikleren blot skal konfigurere softwaren til de givne procesforhold. Denne
softwaretype benyttes udelukkende, når virksomheden skal have implementeret ét MachineVisionsystem
eller MachineVision-systemer af samme type.
Modsætningen hertil er generelt anvendelig software, der benyttes, når virksomheden regner med at gøre brug af MachineVision som en
gennemgående teknologi, og dermed indenfor flere produktionsprocesser. Softwaren skal derfor, i
sidstnævnte tilfælde, dække et bredt udsnit af billedprocesseringsalgoritmer og give mulighed for
forskellige brugerfladekonfigureringer.
Softwareudbydere og softwarepakker:
I dette afsnit følger en kortfattet gennemgang af, et udsnit af, tilgængelig kommerciel MachineVisionsoftware.
Formålet er at give et indblik i de forskellige pakkers umiddelbare fordele og ulemper.
Producent-uafhængige programpakker
Med producent-uafhængige programpakker menes, at der ikke kræves anvendelse af bestemte
platforme og/eller hardwarekomponenter. Kommercielt set udgøres programpakkerne, der kan
indordnes under denne kategori, af både drag-and-drop-programmer samt programmer, som kan
relateres til almen programmering - i eksempelvis sprogene C og Java.
I relation til førstnævnte type udgøres hovedaktørerne af National Instruments og Data Translation
- dette med henholdsvis programmerne; LabVIEW Vision Builder AI og Vision Foundry. Disse
programmer er udvidelser til de anerkendte dataopsamlings- og databehandlingsprogrammer; NI
LabVIEW og DT Measure Foundry, som allerede anvendes bredt indenfor industrien. LabVIEW
Vision Builder AI og DT Vision Foundry kan med fordel benyttes, hvis flere forskellige opsætninger
skal konstrueres, idet der er tale om alsidige og omfattende programmer. Begge programmer
giver mulighed for anvendelse af standardiserede og avancerede billedprocesseringsalgoritmer,
der sammensættes til scripts, hvorudfra der efterfølgende kan genereres en platformuafhængig
eksekverbar fil. Disse programmer er imidlertid relativt omkostningstunge og fuld forståelse er svær
at opnå, da der hovedsageligt er tale om prædefineret kode.
I relation til den andennævnte type er de mest populære programmer Dalse - Sapera Processing og
Sherlock - MVTools, der er opbygget af biblioteker, som indeholder standardiserede og avancerede
billedprocesseringsalgoritmer. Disse programmer kræver indgående programmeringskendskab, idet
der er tale om almen programmering i C++. Den umiddelbare fordel ved denne programtype er, at
optimale billedprocesseringsalgoritmer kan udvælges - primært relateret til eksekveringshastighed.
Desuden haves fuld forståelse for det udviklede program, da koden er skrevet fra bunden af.
Producent-afhængige programpakker
Med producentafhængige programpakker henvises til, at der kræves benyttelse af bestemte
hardwarekomponenter - eksempelvis; kamera, processeringsenhed, robot, etcetera. Kommercielt
set udgøres programpakkerne, der kan indordnes under denne kategori primært af drag-and-drop-programmer.
I det følgende fokuseres på tre forskellige typer, der kan relateres til dedikeret hardware,
i form af; processeringsenhed, robot og kamera.
Det grafiske programmeringsværktøj Omron Vision Composer Net kan relateres direkte til den
anvendte processeringsenhed, idet det udelukkende er kompatibelt med Omrons egne VisionControllers,
som er dedikerede billedopsamlings- og billedprocesseringsenheder. Dette program kan, med
fordel, vælges, hvis der anvendes tilstødende udstyr, som kræver PLC-styring, idet programmet kan
anvendes i direkte sammenhæng med PLC-styringsprogrammet Omron CX-programmer.
I henhold til programmer, der er relateret direkte til robot, kan nævnes Adept Sight/Adept HexSight,
som udelukkende er kompatibelt med Adepts egne robotter. Dette kan med fordel anvendes, hvis
der ønskes anvendelse af Adept-robotter - eksempelvis som følge af forudgående kendskab hertil.
Dette simplificerer samspillet med robotten og forenkler de påkrævede kalibreringsrutiner.
De kameraafhængige programmer er altid relateret til anvendelse af SmartCameras - et eksempel
herpå er DVT Intellect, som er udviklet af kameraproducenten Cognex. DVT Intellect indeholder
udelukkende en række basis billedprocesseringsalgoritmer, idet de kompatible kameraer har
begrænset processeringskraft. Derfor bør det udelukkende anvendes, hvis der ikke er tale om
anvendelse af beregningstunge applikationer.
Kilder:
Henrik Birk Salgs og kvalitetschef hos Vision-huset JLI vision A/S.
www.imagehouse.dk - image house a/s.
Thomas Baltzer Moeslund Lektor ved Institut for Medieteknologi og Ingeniørvidenskab. |