Software
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
- Parametre for kommerciel software
- Softwareudbydere og sofwarepakker
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:
ftersom 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.
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.


Google
Facebook
Twitter
Del.icoi.us
Blogger
Rain Concert 

