Sveuilite u Zagrebu Fakultet strojarstva i brodogradnje Primjena
Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje Primjena vizijskog sustava za klasifikaciju dijelova Mentor: Prof. dr. sc. Bojan Jerbić Viktor Ucović Zagreb, 2008.
Sadržaj 1. 2. 3. 4. 5. 6. 7. 8. Uvod Vizijski senzor DVT 515 Struktura vizijskog sustava Programska podrška Intellect Klasifikacija dijelova dobar/loš Skriptni jezik Rezultati klasifikacije 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 Vrijednost piksela CCD CMOS Jačina svijetlosti • • 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
3. Struktura Vizijskog sustava Parametri sustava 1. Sistemski parametri Nač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 Pre. Procesing Operation Prag (Threshold) Rezultati (Vision Tool Result)
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
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 za pisanje/čitanje registra Ime Opis DVT Registar Raspon byte 8 – bit integer 1 0 do 255 short 16 – bit integer 2 -32 E 03 do 32 E 03 int 32 – bit integer 4 -2 E 09 do 2 E 09 long 64 – bit integer 8 -9 E 18 do 9 E 18 float 32 – bit floating point 4 1 E-45 do 3 E 38 double 64 – bit floating point 8 5 E-324 do 2 E 308 String 8 – bit / char+1 byte # chars + 1 N/A
6. • • • • • • • Skriptni jezik int c, m, n, d, l, sum, B 1; String out 1, out 2, out 3; c = Pattern_Match 1. Object. Count; B 1 = Blob_centra. Result; sum = Register. Read. Integer(110) + Register. Read. Integer(130)+1; Register. Write. Integer(140 , sum); if (sum == 100) { Register. Write. Integer(110 , 0); Register. Write. Integer(130 , 0); Register. Write. Integer(140 , 0); } if (B 1==0) { if (c >=3) { m =1; Register. Write. Integer(100 , m ); d = Register. Read. Integer(100) + Register. Read. Integer(110); Register. Write. Integer(110, d); sleep (5000);
6. • • • • • Skriptni jezik out 1= " Broj dobrih dijelova = " +d + " Suma svih dijelova = " + sum; this. String = out 1; } else { n = 1; Register. Write. Integer(120 , n); l= Register. Read. Integer(120)+Register. Read. Integer(130); Register. Write. Integer( 130, l ); sleep (5000); out 2= " Broj losih dijelova = " +l+ " Suma svih dijelova = " + sum; this. String = out 2; } } else { out 3= "Nema dijela"; this. String = out 3; }
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!
- Slides: 30