Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje
description
Transcript of Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje
Sveučilište u ZagrebuFakultet strojarstva i brodogradnje
Primjena vizijskog sustava za klasifikaciju dijelova
Viktor Ucović
Zagreb, 2008.
Mentor:
Prof. dr. sc. Bojan Jerbić
Sadržaj
1. Uvod
2. Vizijski senzor DVT 515
3. Struktura vizijskog sustava
4. Programska podrška Intellect
5. Klasifikacija dijelova dobar/loš
6. Skriptni jezik
7. Rezultati klasifikacije
8. Zaključak
1. Uvod
• Vizijski sustavi primijenjeni su u modernim industrijskim pogonima, u sustavima kontrole kvalitete i kao senzori za prepoznavanje položaja i oblika elemenata (dijelova)
• U tehničkom smislu vizijski sustav možemo objasniti kao stroj koji je u mogućnosti prepoznati oblike dijelova, njihovu orijentaciju i strukturu, pri tome koristeći optički, odnosno vizijski senzor.
• Vizijski sustavi su se ozbiljno počeli proučavati sredinom 1970. godina
• Početkom 1980 godina, razvijali su se polako, uglavnom u akademskim zajednicama, ali usmjeren prema industrijskoj primjeni.
• Sredinom 1980. godina američka automobilska industrija je pokazala veliku zainteresiranost za vizijske sustave.
• Danas se vizijski sustavi široko primjenjuju u elektroničkoj, automobilskoj, prehrambenoj, farmaceutskoj, vojnoj industriji i medicini.
2. Vizijski senzor DVT 515
CMOS
CCD
Jačina svijetlosti
Vrijednost piksela
• CMOS manji dinamički odziv u odnosu na CCD• Prisutniji šum kod CMOS
2. Vizijski senzor DVT 515
• CCD prenosi naboj sa piksela na piksel i pretvara ga u napon na izlazu
3. Struktura Vizijskog sustava
Parametri sustava
1. Sistemski parametriNačin snimanja (Inspection Mode)
Pozadinske skripte (Background Script)
Okidanje slike (Trigger Source)
FOV Balance
Pojačanje (Sensor Gain)
2. Izvršni parametri
Ekspozicijsko vrijeme (Exposure Time)
Vrijeme digitalizacije (Digitizing Time)
3. Alatni parametri
Oblik alata
PreProcesing Operation
Prag (Threshold)
Rezultati (Vision Tool Result)
3. Struktura Vizijskog sustava
4. Programska podrška Intellect
4. Programska podrška Intellect
• Alatna traka Image (alati za upravljanje slikom, alati za zumiranje, alati za automatske postavke)
• Sistemska alatna traka (Network Explorer, aktiviranje okidača, pokretanje kontrole)
• Alatna traka Product (odabir produkta, aktiviranje svijetla, podešavanje vremena ekspozicije)
• Alatna traka Tool (upravljanje alatima)
4. Programska podrška Intellect
Emulator
• Edukacijska• Off-line Setup• Prezentacijska
4. Programska podrška Intellect
Paleta alata• Alati za obradu slike (Preprocessing)• Alati za pozicioniranje (Positioning)• Alati za prebrojavanje (Counting)• Alati za mjerenje (Measurement)• Alati za identifikaciju (Indetification)• Alati za čitanje (Readers)• Alati za pronalaženje nepravilnosti (Flaw
Detection)• Skriptni alati (DVT Scripts)• Specijalni alati
4. Programska podrška Intellect
Primjer alati za prebrojavanje na linijskom segmentu
4. Programska podrška Intellect
Primjer alati za prebrojavanje
4. Klasifikacija dijelova dobar/loš
5. Klasifikacija dijelova dobar/loš
Prepoznavanje uzorka (Pattern Match)
• Pronalazi i broji iste uzorke na slici
5. Klasifikacija dijelova dobar/loš
Prepoznavanje uzorka (Pattern Match)
5. Klasifikacija dijelova dobar/loš
Prepoznavanje uzorka (Pattern Match)
• Primjenjuje se kada nisu izraženi jasni rubovi oblika
• Koristan je za definiranje pozicije oblika
• Nepouzdan kada dijelovi dolaze u različitoj kutnoj orijentaciji
5. Klasifikacija dijelova dobar/loš
Prepoznavanje bridova oblika(Object Locate)
• Pronalazi i broji slične naučene oblike rubova ili segmente oblika na dijelu
5. Klasifikacija dijelova dobar/loš
Prepoznavanje bridova oblika(Object Locate)
5. Klasifikacija dijelova dobar/loš
Prepoznavanje bridova oblika(Object Locate)
• Primjena vizijskog senzora uporabom ovog alata nalazi primjenu:– Kod fleksibilnih dodavača
– Kontroli gibanja
– Robotici
– Pozicioniranja/referenciranja
6. Skriptni jezik
• Skripte proširuju mogućnosti alata• Nemaju unaprijed definiranu funkciju• Kreiraju se prema korisničkim potrebama• Dva tipa skripti:
– Pozadinske (Beckground Script)– Skripte prednjeg plana (Foreground Scripts)
Pozadinske skripte (Beckground Scripts)
• Kreiraju se za sistemsku razinu i nisu povezane sa kontrolnim alatima (izvršavaju se neovisno od njih).
• Tri načina za pokretanje skripte:– Pokretanje pri podizanju sustava (Run on power-up),– ručno pokretanje,– pokretanje signalom.
• Najčešći zadatak pozadinskih skripti je da promijene izvršne parametre: okidanje slike, uspostavu komunikacije sa eksternim uređajima.
6. Skriptni jezik
Skripte prednjeg plana (Foreground Scripts)
• Kreiraju se za izvršnu razinu i direktno su povezane sa specifičnom kontrolom.• Najčešći zadatak ovih skripti je pristup podacima iz kontrolnih alata i njihova
obrada (matematičke kalkulacije, pohranjivanje podataka,…).• One se izvode svaki puta kada izvršni alat koji ih sadrži analizira sliku.
Definiranje algoritma za klasifikaciju ležaja termoregulatora
• Potrebno je primjenom skriptnog jezika ispisati rezultate klasifikacije ležaja termoregulatora (broj dobrih, broj loših, suma dijelova).
• Algoritam za opisivanje klasifikacije:– pričekaj okidač– provjeri da li je dio prisutan– provjeri da li zadovoljava kriterij prolaznosti– pohrani rezultate i povećaj brojač– ispiši rezultate
6. Skriptni jezik
Dijagram toka
PROVJERI DA LIVRIJEDNOST REGISTRA
OGOVARA ZADANOJ
START
POSTAVI REGISTRENA POČETNUVRIJEDNOST
PROVJERI DA LI JE DIOPRISUTAN
PROVJERI DA LIZADOVOLJAVA KRITERIJ
PROLAZNOSTI
UPIŠI VRIJEDNOSTU REGISTR ZA
DOBAR DIO
UPIŠI VRIJEDNOSTU REGISTR ZA LOŠ
DIO
ISPISI VRIJEDNOSTIREGISTARA
DIO NIJE PRISUTAN
KRAJ
DANE
DA
DA
NE
NE
6. Skriptni jezik
Globalne varijable - registri
• Registri se ponašaju kao globalne varijable i služe za razmjenu podataka • Sustav ima 16 384, 8-bitnih registara
Primjer zapisa u registre• Podatak x tipa integer veličine 32 bita u registar 101• Podatak 0 tipa integer veličine 32 bita u registar 102
6. Skriptni jezik
Globalne varijable - registri
• Tipovi podataka
Tipovi podataka za pisanje/čitanje registra
Ime Opis DVT Registar Raspon
byte 8 – bit integer 1 0 do 255
short 16 – bit integer 2 -32E03 do 32E03
int 32 – bit integer 4 -2E09 do 2E09
long 64 – bit integer 8 -9E18 do 9E18
float 32 – bit floating point 4 1E-45 do 3E38
double 64 – bit floating point 8 5E-324 do 2E308
String 8 – bit / char+1 byte # chars + 1 N/A
6. Skriptni jezik
• int c, m, n, d, l, sum, B1;• String out1, out2, out3;• • c = Pattern_Match1.ObjectCount;• B1 = Blob_centra.Result;• sum = RegisterReadInteger(110) + RegisterReadInteger(130)+1;• RegisterWriteInteger(140 ,sum);•• if (sum == 100)• {• RegisterWriteInteger(110 ,0);• RegisterWriteInteger(130 ,0);• RegisterWriteInteger(140 ,0);• }• if (B1==0)• {•• if (c >=3)• {• m =1;• RegisterWriteInteger(100 ,m ); •• d = RegisterReadInteger(100) + RegisterReadInteger(110);• RegisterWriteInteger(110,d);• sleep (5000);
6. Skriptni jezik
• out1= " Broj dobrih dijelova = " +d + " Suma svih dijelova = " + sum;• this.String = out1;• }• else• { • n = 1; • RegisterWriteInteger(120 , n); • l= RegisterReadInteger(120)+RegisterReadInteger(130);• RegisterWriteInteger( 130,l ); • sleep (5000);•• out2= " Broj losih dijelova = " +l+ " Suma svih dijelova = " + sum;• this.String = out2;• }• }• else• {• out3= "Nema dijela";• this.String = out3;• }
7. Rezultati klasifikacije
8. Zaključak
• Metoda prepoznavanjem uzorka (Pattern Match) daje bolje rezultate prilikom klasifikacije dijelova (na ispitanim uzorcima, točnost 100%)
• Jednostavno i brzo postavljanje parametara• Metoda prepoznavanjem uzorka (Pattern Match), je kruta metoda (ne dopušta
fleksibilnost)• Metoda za prepoznavanje karakterističnih rubova oblika dijelova za klasifikaciju
ležaja termoregulatora, na ispitnim uzorcima radi 20% pogrešku
Pitanja?
Hvala na pažnji!