O aplicaţie tipică de vedere robotică – Gauging

by donpedro

Articolul explică, prin prezentarea unui exemplu concret de măsură, doi termeni importanţi din ştirea anterioară. Este vorba vizualizarea robotică şi de mediul de
dezvoltare pentru aceasta, respectiv software-ul IMAQ Vision Builder

Termenul de “gauging” (calibrare, determinarea gabaritului) se referă la măsurarea unor distanţe critice între pixelii imaginilor. Pe baza acestei măsurători, obiectele inspectate pot fi împărţite în mai multe clase de dimensiuni sau gabarite. Astfel, programele de vizualizare pot inspecta automat componente electrice sau electronice, precum conectoare şi terminale

Software-ul de vizualizare poate măsura rapid şi în mod consistent anumite caracteristici ale unei componente, pentru a decide dacă îndeplineşte sau nu specificaţiile de toleranţă. Aplicaţiile de calibrare folosesc tehnici de vizualizare cum ar fi detectarea marginilor şi unelte de calibrare pentru a măsura cât mai corect distanţele. Măsurătorile de “gauging” pot fi făcute prin prelevare, off-line, folosind un eşantion din producţie, sau pot fi făcute în timp real, on-line, chiar în timpul procesului de producţie.
Componente electronice pasive precum conectoare, comutatoare şi relee au dimensiuni mici, un cost relativ redus şi se produc în cantităţi foarte mari. Inspecţia vizuală făcută de un operator uman este plictisitoare şi consumă mult timp. Sistemele de vedere robotică pot măsura rapid şi consecvent anumite caracteristici ale componentei şi pot genera rapoarte cu rezultatele. Din raport se poate stabili imediat dacă respectiva piesă îndeplineşte sau nu specificaţiile.

Figura 1

Verificările de conformitate constau din măsurarea unor distanţe critice – precum lungimi, diametre, unghiuri şi număr de elemente – pentru a stabili dacă produsul a fost fabricat corect. Dacă distanţa sau numărul calibrat nu se încadrează în limitele de toleranţă, componenta sau piesa nu îndeplineşte specificaţiile, deci trebuie respinsă. Inspecţia vizuală de conformitate se foloseşte adesea la verificarea asamblărilor mecanice, la inspecţia capsulelor componentelor electronice, a containerelor, a recipientelor, şi a conectoarelor electrice. Însă pentru o implementare eficientă a aplicaţiilor de procesare a imaginii nu este suficient echipamentul, este esenţial pachetul de software de aplicaţii şi experienţa în folosirea acestuia.
IMAQ Vision Builder rezolvă tocmai aceste două probleme, oferind o variantă “constructor de aplicaţii” a unui software de prelucrare a imaginilor performant, interactiv. El simplifică demonstrarea şi evaluarea aplicaţiilor de procesare a imaginilor şi reduce timpii de dezvoltare, atât pentru integratorii de sisteme de vizualizare cât şi pentru proiectanţii utilizatorii finali.
Pentru proiectanţii de sisteme de viziune robotică ce trebuie să pună la punct aplicaţii ştiinţifice sau industriale de procesare a imaginilor, IMAQ Vision Builder este un software de vizualizare ce accelerează sarcinile de dezvoltare a programelor pentru cei ce dezvoltă LabVIEW, LabWindows/CVI, şi ActiveX. Spre deosebire de alte programe de vizualizare, produsul firmei National Instruments generează la ieşire un script, o “reţetă” a funcţiilor de procesare a imaginii folosite, ceea ce ajută pe utilizatori să pună la punct aplicaţiile în mediul lor de dezvoltare preferat.
Un exemplu constă din analiza imaginilor de jumperi, pentru a vedea dacă aceştia corespund specificaţiilor fizice.
Deşi jumperii se folosesc în echipamentele electronice şi tehnică de calcul (plăci de bază, plăci inserabile, unităţi de harddisk, etc.), metodele folosite pentru CTC-ul vizual se pot aplica la o gamă largă de repere mecanice cu profil bidimensional. Într-adevăr, profilul unui jumper este plat, relativ simplu, şi prezintă un contrast ridicat, astfel că aplicaţia de inspecţie vizuală este uşor de implementat, se poate folosi foarte bine ca exemplu didactic. În figura 1 se prezintă măsurătorile şi valorile acceptabile pentru fiecare din aceste dimensiuni critice.

Desigur, valorile sunt date în unităţi de imagine, în pixeli, şi nu în unităţi fizice precum milimetri sau fracţiuni de inchi, care sunt mai puţin relevante în cazul de faţă.
Trebuie să măsuraţi distanţele dintre elementele caracteristice ale jumperului şi să determinaţi dacă aceste măsurători se încadrează în gama de toleranţă.
Înainte de a putea calcula măsurătorile, trebuie să detectaţi muchiile pe baza cărora veţi face măsurătorile. Funcţia depistează muchiile de-a lungul unei linii pe care o trasaţi cu instrumentul de liniat din paleta Tools.
1. Selectaţi din Gray Scale » Edge Detector.
2. Selectaţi apoi Simple Edge Tool. Instrumentul “simplu” de detectare a muchiilor este foarte eficient pentru imagini cu contrast puternic între fundal şi obiectul de verificat, aşa cum este cazul pentru jumperi (figura 2).
3. Selectaţi toate muchiile, “All Edges”, astfel ca IMAQ Vision Builder să găsească şi să eticheteze orice muchie de-a lungul liniilor pe care le trasaţi.
4. Selectaţi Absolute Value. Folosirea valorilor absolute înseamnă că folosiţi valorile pixelilor pentru a specifica nivelul pragului, spre deosebire de Relative Value, când pragul ar trebui specificat sub formă de procent.
5. Stabiliţi nivelul de prag la 128. Acest nivel este diferenţa dintre valorile pixelilor care vă aşteptaţi să constituie o muchie în imagine. De acum, detecţia automată va considera un prag mai mare sau egal cu 128 drept o muchie. În cazul de faţă, contrastul fiind foarte puternic, nivelul de prag nu este critic.
6. Trasaţi o linie orizontală de-a curmezişul jumperului, la jumătatea înălţimii, pentru a găsi muchiile ce definesc distanţa 1. IMAQ Vision Builder marchează marginile 1 şi 2 şi le numerotează.
Similar se trasează liniile pentru măsurarea celorlalte distanţe caracteristice (figura 3).
Pentru a calcula distanţele 6 şi 7, trebuie să izolaţi gaura jumperului şi să-i aflaţi centrul. Izolarea găurii înseamnă modificarea imaginii jumperului, dar mai este nevoie de imaginea iniţială, pentru măsurători. Trebuie deci păstrată o copie a imaginii originale într-o memorie tampon, cu comanda Image » Image Buffer. Imaginea se salvează cu comanda Push şi se reia cu Pop.
Acum se lucrează în continuare pe imagine, se află centrul. Pentru a găsi punctul central al găurii, trebuie să izolaţi gaura şi apoi să faceţi o detectare de cerc.
1. Selectaţi Binary » Threshold. Acest tip de prag alege pixelii pe baza valorii nivelului de gri şi îi face albi. Toţi pixelii care au rămas neselectaţi vor fi înnegriţi.
2. Selectaţi Auto Threshold: Clustering. Se aplică un algoritm de stabilire automată a pragului, iar pentru imaginea de faţă, gama de prag calculată este între 135 şi 255. Această gamă selectează obiectele şi le face albe, transformându-le în pete (blob).
3. Printr-un click pe OK, efectuaţi transformarea, adăugaţi pragul la scenariul de procesare şi închideţi fereastra Threshold. Imaginea constă acum din două pete albe, se pot identifica părţile individuale prin colorare.
4. Selectaţi Binary » Adv. Morphology.
5. Selectaţi Label objects. Atunci când etichetaţi obiectele, fiecărei pete i se atribuie o altă culoare, pentru o identificare rapidă pe ecran. În cazul nostru, sunt doar două obiecte, iar gaura jumperului va fi colorată în verde. Desigur, marcarea automată cu culori este deosebit de utilă pentru imaginile ce conţin multe obiecte, care nu sunt clar separate unele de altele (figura 4).
Pentru a izola gaura, care este pata verde, trebuie să eliminăm zona roşie. Observaţi că zona roşie atinge marginea imaginii, în timp ce zona verde se află în centru. Putem deci folosi o funcţie care să îndepărteze toate obiectele ce ating marginea imaginii.
6. Din lista de funcţii Morphology, selectaţi Remove border objects, pentru a îndepărta zona roşie. Avem acum pe ecran doar imaginea găurii centrale a jumperului.

Detectarea cercului
Funcţia “circle detection” găseşte centrul unei particule rotunde din imagine. Dacă particula nu este circulară, s-ar putea ca funcţia să nu depisteze centrul exact. În cazul de faţă, nu ne trebuie centrul precis al obiectului, ci căutăm să găsim centrul unui obiect care este simetric după axa orizontală. Pentru a găsi centrul găurii, selectaţi din Binary » Circle Detection. IMAQ Vision Builder găseşte centrul petei albe şi afişează coordonatele sale în tabelul cu rezultate de sub fereastra imaginii (figura 5).
Pentru măsurători, avem nevoie de imaginea nemodificată. Trebuie să parcurgem următoarele etape pentru a restabili imaginea iniţială, ca să putem vedea amplasarea muchiilor pe imaginea jumperului:
1) Selectaţi Image » Image Buffer.
2) Selectaţi imaginea dorită din lista fişierelor prezente în memoria de imagini.
3) Selectaţi Pop Image pentru a reface imaginea.
4) Faceţi click pe Apply şi imaginea iniţială va apare în fereastra de procesare (figura 6).

Efectuarea măsurătorilor
După ce am găsit toate muchiile necesare şi punctul central al găurii, putem calcula măsurătorile cu funcţia Caliper.
Caliper este o unealtă ce foloseşte punctele marcate pe imagine pentru a calcula măsurătorile, cum ar fi distanţele, unghiurile, centrul unui segment sau suprafaţa, în funcţie de numărul de puncte pe care le-aţi selectat pe imagine (aceste puncte marcate sunt rezultatul procesărilor anterioare, cum ar fi detectarea muchiilor).
Pentru a face măsurătorile:
1) Selectaţi din meniul Gray Scale»Caliper.
2) Faceţi click pe punctele 1 şi 2 pentru a face prima măsurătoare, distanţa 1, care specifică lăţimea întregii imagini a jumperului, ş.a.m.d. Valoarea distanţelor apare în tabelul Results, de sub fereastra principală imaginii.
Se procedează similar pentru celelalte distanţe critice şi pentru unghiul găurii. Valorile măsurate se adună în continuare în tabelul Results (figura 7).

Analiza unui grup de imagini folosind Batch Processing
În aplicaţiile de viziune robotică, analiza imaginilor nu se face pas cu pas, ci în mod automat, prin procesarea pe loturi. Se rulează fişierul de script ce a fost înregistrat, pentru a prelucra întregul lot de imagini ale jumperelor şi a genera un fişier text ce conţine toate datele măsurătorilor.
Rezultatele pot fi salvate într-un singur fişier de date, sau în mai multe. Rezultatele pentru prima imagine, Jumper1.bmp, apar sub forma următoare:
Program FilesNational Instruments IMAQ Vision Builder Images Jumpers Jumper1. bmp
05/23/99 3:17:16 PM
Distance (1, 2) Dist = 204.79
Distance (3, 4) Dist = 35.19
Distance (8, 9) Dist = 28.81
Distance (11, 12) Dist = 14.52
Angle (14, 17, 15, 18) Angle = 311.8O
Distance (13, 19) Dist = 99.44
Distance (19, 16) Dist = 104.52
Ulterior, datele trebuie analizate. Se poate folosi programul de calcul tabelar Excel versiunea 97 sau mai recentă pentru a efectua o analiză rapidă a rezultatelor obţinute. Se deschide fişierul de rezultate jumpers.txt în Excel, pentru a obţine o listă sinoptică cu măsurătorile efectuate. Coloana Ranges listează gamele de valori acceptabile pentru măsurători, iar celelalte coloane (de la stânga la dreapta, jumperii 1, 2, … 6) valorile reale stabile pe imagini. Remarcaţi că primul jumper, Jumper1, este singura piesă care îndeplineşte specificaţiile!
În tabel, valorile îngroşate arată care din măsurători au fost în afara specificaţiilor, deci au determinat respingerea jumperului respectiv.

Ing. Cristian Malide

Listingul unui script generat de Vision Builder

Figura 2

Figura 3

Figura 4

Figura 5

Figura 6

Figura 7

Figura 8

IMAQ Vision Builder 1.0
List of functions generated :
30 aprilie 2001 10:06

STEP #1 Edge Detector : First & Last Edge
IMAQ Vision VI IMAQ ROIProfile
IMAQ Vision palette Inspection Tools> ROI and Alignement Tools

Parameters:
Cluster “ROI Descriptor” 2 elements
Array “Global Rectangle”
Long (I32) [7,92,238,93]
Array “Contours”
Cluster 3 elements
Enum Long (U32) “ID” External (0)
Enum Long (U32) “Type” Line (2)
Array “Coordinates”
Long (I32) [7,92,237,92]

IMAQ Vision VI IMAQ Simple Edge
IMAQ Vision palette Inspection Tools> Caliper tools
Parameters:
Unsigned Word (U16) “Process” 1
Cluster “Threshold Parameters” 3 elements
Unsigned Long (U32) “Level Type” 0
Long (I32) “Threshold Level” 131
Long (I32) “Hysteresis” 2
Boolean “Sub-Pixel Accuracy” True

STEP #2 Caliper
IMAQ Vision VI PointDistances, Get Angles or Get Circle
IMAQ Vision palette Inspection Tools> Caliper Tools
STEP #3 Edge Detector : First & Last Edge
IMAQ Vision VI IMAQ ROIProfile
IMAQ Vision palette Inspection Tools> ROI and Alignement Tools
Parameters:
Cluster “ROI Descriptor” 2 elements
Array “Global Rectangle”
Long (I32) [4,206,237,207]
Array “Contours”
Cluster 3 elements
Enum Long (U32) “ID” External (0)
Enum Long (U32) “Type” Line (2)
Array “Coordinates”
Long (I32) [4,206,236,206]

IMAQ Vision VI IMAQ Simple Edge
IMAQ Vision palette Inspection Tools> Caliper tools
Parameters:
Unsigned Word (U16) “Process” 1
Cluster “Threshold Parameters” 3 elements
Unsigned Long (U32) “Level Type” 0
Long (I32) “Threshold Level” 99
Long (I32) “Hysteresis” 2
Boolean “Sub-Pixel Accuracy” True

STEP #4 Caliper
IMAQ Vision VI PointDistances, Get Angles or Get Circle
IMAQ Vision palette Inspection Tools> Caliper Tools
STEP #5 Edge Detector : First Edge
IMAQ Vision VI IMAQ ROIProfile
IMAQ Vision palette Inspection Tools> ROI and Alignement Tools
Parameters:
Cluster “ROI Descriptor” 2 elements
Array “Global Rectangle”
Long (I32) [92,39,192,40]
Array “Contours”
Cluster 3 elements
Enum Long (U32) “ID” External (0)
Enum Long (U32) “Type” Line (2)
Array “Coordinates”
Long (I32) [191,39,92,39]

IMAQ Vision VI IMAQ Simple Edge
IMAQ Vision palette Inspection Tools> Caliper tools
Parameters:
Unsigned Word (U16) “Process” 0
Cluster “Threshold Parameters” 3 elements
Unsigned Long (U32) “Level Type” 0
Long (I32) “Threshold Level” 138
Long (I32) “Hysteresis” 2
Boolean “Sub-Pixel Accuracy” True

STEP #6 Edge Detector : First Edge
IMAQ Vision VI IMAQ ROIProfile
IMAQ Vision palette Inspection Tools> ROI and Alignement Tools
Parameters:
Cluster “ROI Descriptor” 2 elements
Array “Global Rectangle”
Long (I32) [123,16,186,18]
Array “Contours”
Cluster 3 elements
Enum Long (U32) “ID” External (0)
Enum Long (U32) “Type” Line (2)
Array “Coordinates”
Long (I32) [185,16,123,17]

IMAQ Vision VI IMAQ Simple Edge
IMAQ Vision palette Inspection Tools> Caliper tools
Parameters:
Unsigned Word (U16) “Process” 0
Cluster “Threshold Parameters” 3 elements
Unsigned Long (U32) “Level Type” 0
Long (I32) “Threshold Level” 142
Long (I32) “Hysteresis” 2
Boolean “Sub-Pixel Accuracy” True

STEP #7 Caliper
IMAQ Vision VI PointDistances, Get Angles or Get Circle
IMAQ Vision palette Inspection Tools> Caliper Tools
STEP #8 Edge Detector : First Edge
IMAQ Vision VI IMAQ ROIProfile
IMAQ Vision palette Inspection Tools> ROI and Alignement Tools
Parameters:
Cluster “ROI Descriptor” 2 elements
Array “Global Rectangle”
Long (I32) [121,80,122,236]
Array “Contours”
Cluster 3 elements
Enum Long (U32) “ID” External (0)
Enum Long (U32) “Type” Line (2)
Array “Coordinates”
Long (I32) [121,235,121,80]

IMAQ Vision VI IMAQ Simple Edge
IMAQ Vision palette Inspection Tools> Caliper tools
Parameters:
Unsigned Word (U16) “Process” 0
Cluster “Threshold Parameters” 3 elements
Unsigned Long (U32) “Level Type” 0
Long (I32) “Threshold Level” 81
Long (I32) “Hysteresis” 2
Boolean “Sub-Pixel Accuracy” True

S-ar putea să vă placă și