300 likes | 595 Views
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. Uvod Vizijski senzor DVT 515 Struktura vizijskog sustava Programska podrška Intellect
E N D
Sveučilište u ZagrebuFakultet strojarstva i brodogradnje Primjena vizijskog sustava za klasifikaciju dijelova Mentor: Prof. dr. sc. Bojan Jerbić Viktor Ucović Zagreb, 2008.
Sadržaj • Uvod • Vizijski senzor DVT 515 • Struktura vizijskog sustava • Programska podrška Intellect • Klasifikacija dijelova dobar/loš • Skriptni jezik • Rezultati klasifikacije • Zaključak
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.
Vizijski senzor DVT 515 Vrijednost piksela CCD CMOS Jačina svijetlosti • CMOS manji dinamički odziv u odnosu na CCD • Prisutniji šum kod CMOS
Vizijski senzor DVT 515 • CCD prenosi naboj sa piksela na piksel i pretvara ga u napon na izlazu
Struktura Vizijskog sustava Parametri sustava • Sistemski parametri Način snimanja (Inspection Mode) Pozadinske skripte (Background Script) Okidanje slike (Trigger Source) FOV Balance Pojačanje (Sensor Gain) • Izvršni parametri Ekspozicijsko vrijeme (Exposure Time) Vrijeme digitalizacije (Digitizing Time) • Alatni parametri Oblik alata PreProcesing Operation Prag (Threshold) Rezultati (Vision Tool Result)
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)
Programska podrška Intellect Emulator • Edukacijska • Off-line Setup • Prezentacijska
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
Programska podrška Intellect Primjer alati za prebrojavanje na linijskom segmentu
Programska podrška Intellect Primjer alati za prebrojavanje
Klasifikacija dijelova dobar/loš Prepoznavanje uzorka (Pattern Match) • Pronalazi i broji iste uzorke na slici
Klasifikacija dijelova dobar/loš Prepoznavanje uzorka (Pattern Match)
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
Klasifikacija dijelova dobar/loš Prepoznavanje bridova oblika(Object Locate) • Pronalazi i broji slične naučene oblike rubova ili segmente oblika na dijelu
Klasifikacija dijelova dobar/loš Prepoznavanje bridova oblika(Object Locate)
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
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.
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
Skriptni jezik Dijagram toka
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
Skriptni jezik Globalne varijable - registri • Tipovi podataka
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);
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; • }
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!