• Nie Znaleziono Wyników

6.3 Wyznaczenie krawędzi otworu

6.3.1 Przekroje obrazu

Na rysunku 6.10 przedstawiono przykładowe zdjęcia rozpoznawanych otworów. Poka-zane otwory mają kształt okrągły lub podłużny. Ponieważ wcześniej wykonana spoina może częściowo nachodzić na krawędź aktualnie analizowanego otworu (widoczne jest to na rysunkach 5.10a; 6.10; 6.13; 6.15; 6.19; 6.20 i wielu innych), prawidłowe wyznaczenie położenia krawędzi otworu a tym samym docelowej trajektorii palnika jest zadaniem nietrywialnym. Ponieważ część krawędzi otworu jest niewidoczna (np. z powodu zalania krawędzi otworu przez sąsiedni spaw lub zabrudzenia powierzchni sita) trajektoria pal-nika robota nie może być wyznaczana bezpośrednio na podstawie widocznej krawędzi otworu ale jest generowana na podstawie predefiniowanego wzorca otworu, dostępnego w postaci punktów, których rozmieszczenie odpowiada kształtowi spawanego otworu.

Wzorzec otworu dopasowywany jest do obrazu otrzymanego z kamery. W tym ce-lu ustalane jest położenie na obrazie punktów reprezentujących kształt analizowanego otworu. Punkty te zwane są dalej punktami krawędziowymi. W przypadku wystąpienia szczeliny między krawędzią sita a zewnętrzną krawędzią rurki, punkty krawędziowe le-żą na krawędzi sita. Wynika to stąd, że otwory w sicie spawane są za pomocą lasera i wiernie zachowują zdefiniowany kształt, rurka natomiast może być lekko zdeformowa-na3. Zmiana rozmiaru wzorca w osi x i y lokalnego układu wzorca otworu (wzdłuż i w poprzek dłuższej przekątnej wzorca) uwzględnia wpływ deformacji kształtu spawanego otworu, związany z nierównomiernym nagrzewaniem się sita w procesie spawania.

W celu wyznaczenia punktów krawędzi otworu, wyznaczany jest szkielet obiektu reprezentujący na obrazie położenie i orientację znalezionego otworu. Zgodnie z pod-rozdziałem 5.10.3, szkielet obiektu zdefiniowany jest za pomocą dwóch punktów PA(i) i PB(i). Dla otworów okrągłych odcinek redukowany jest do punktu (PA(i) = PB(i)).

Szkielet obiektu wykorzystywany jest do tworzenia obrazu pomocniczego JP(x, y),

3Na niektórych zdjęciach widać dużą szczelinę między krawędzią sita i rurki. Przy ręcznym mon-tażu rurek, czasem używa się młotka powodującego dodatkowe deformacje rurki. Dla pewnych typów wymienników ciepła, rurki są rozpęczniane, dzięki czemu ściśle przylegają do krawędzi sita przez co potrafią go częściowo zasłonić. Operacja ta jest niezbędna w przypadku spawania sit głowicą laserową (ze względu na bardzo małą średnicę wiązki laserowej). Na pewnym etapie produkcji wymienników cie-pła, w celu usunięcia odstających od sita rurek, stosowane jest szlifowane końcówek, powodujące drobne deformacje rurek jak również porysowanie sita, co znacząco utrudnia prawidłowe rozpoznawanie obrazu.

a) b) c)

d) e) f)

Rysunek 6.10: Przykładowe zdjęcia otworów w różnym stadium spawania sąsiednich otworów. a,b,c) otwory w kształcie koła; d,e,f) otwory w kształcie latawca.

składającego się z przekrojów obrazu otrzymanych na podstawie analizy obrazu orygi-nalnegoJ(x, y). Pod pojęciem przekroju obrazu, oznaczonego symbolem Wk, rozumiana jest jednowymiarowa tablica jasności pikseli, zawierająca odczytane wzdłuż pewnego odcinka, definiującego przekrój obrazu, wartości jasności pikseli obrazu oryginalnego J(x, y). Indeks k oznacza numer przekroju obrazu. Współrzędna x obrazu pomocniczego JP(x, y) jest równa numerowi przekroju (gdy x = k, wektor jasności pikseli Wk odpo-wiada k-tej pionowej linii obrazuJP(x, y)). Rozmiar tablicy jest równy długości odcinka (w pikselach) i wynosiNk, przy czym wszystkie przekroje obrazu mają tę samą długość N (Nk=N ). Na obraz pomocniczy składa się Np przekrojów, k∈ {0; 1; 2; . . . ; Np− 1}.

Rozmiar obrazu pomocniczegoJP(x, y) wynosi więc Np× N pikseli.

Z przekrojem obrazu związane jest położenie na obrazie oryginalnym punktu począt-kowego przekroju JPk = (JxPk,JyPk) oraz orientacji kątowej fk odcinka, na podstawie którego generowany jest przekrój obrazu. PunktJPkokreśla położenie na obrazie pierw-szego elementu wektora Wk. Znając położenie d punktu w k-tym przekroju obrazu, oraz

JPk i fk, możemy wyznaczyć położenie punktu na obrazie oryginalnymJP = (Jx,Jy):

Jx =JxPk + d· cos(fk)

Jy =JyPk + d· sin(fk). (6.8) Dla uproszczenia zapisu przyjmijmy, że dla każdego przekroju obrazu określona jest funkcja Pk(·) przeliczająca położenie punktu z jednowymiarowego układu współrzęd-nych przekroju obrazu na dwuwymiarowy układ współrzędwspółrzęd-nych obrazu J

Pk:R → R2

(Jx,Jy)= Pk(d) =(JxPk + d· cos(fk),JyPk + d· sin(fk)). (6.9)

Utworzenie k-tego przekroju obrazu odbywa się w ten sposób, że najpierw wyznacza-ne jest położenie początku przekrojuJPk, jego orientacja fkoraz długośćNka następnie

w celu wyznaczenia wartości kolejnych elementów tablicy Wkodczytywana jest jasność pikseli obrazu oryginalnego z kolejnych punktów, których współrzędne wyznaczane są na podstawie wzoru (6.8) - Wk(d) =J(JP ), gdzieJP = Pk(d) i d = 0, . . . ,Nk− 1. Możliwe jest pobieranie z obrazu oryginalnego jasności pikseli leżących najbliżej wyznaczonych współrzędnych punktów lub wyznaczanie jasności pikseli przekroju na podstawie linio-wej interpolacji jasności sąsiednich punktów. Zgodnie z powyższym zapisem, przekrój obrazu będący tablicą jasności pikseli obrazu, zdefiniowany jest następująco:

Wk(d) =J (Pk(d)) ; d = 0, . . . ,Nk− 1. (6.10) Wzór określający jasność pikseli obrazu pomocniczegoJP(x, y), składającego się z prze-krojów obrazu Wk, przyjmuje postać:

JP(x, y) = Wx(Nk− 1 − y) = J (Px(Nk− 1 − y)) . (6.11) Odwrócenie współrzędnych y na obrazie pomocniczym względem współrzędnej d prze-kroju (pierwszemu elementowi tablicy przeprze-kroju odpowiada górna wartość współrzędnej y obrazu pomocniczego) zostało wprowadzone w celu zwiększenia czytelności obrazu pomocniczego (na dole obrazu pomocniczego znajdują się piksele odpowiadające po-czątkowi przekroju obrazu). Przyjęta orientacja obrazu pomocniczego nie ma wpływu na niezawodność algorytmów przetwarzania obrazu.

Generowanie obrazu pomocniczego, składającego się z poszczególnych przekrojów obrazu przedstawiono na rysunku 6.11. W przypadku rysunku 6.11a, znalezione punkty krawędziowe wyróżniono kolorem czerwonym. Na rysunkach 6.11c i 6.11d pokazane są obrazy pomocnicze JP(x, y). Tak jak poprzednio, znalezione punkty krawędzi otworu (dla pierwszej i drugiej krawędzi - wnętrze rurki oraz krawędź sita) wyróżniono kolorem czerwonym. Czerwone pionowe linie, oznaczone symbolem Wk, przedstawiają wybrane przekroje obrazu, pokazane w postaci wykresów na rysunkach 6.11e i 6.11f. Wartości funkcji odpowiadają jasności pikseli obrazu pomocniczego (k-tego przekroju) (wartość od 0− 255), oś y oznacza położenie punktów wzdłuż przekroju obrazu (długość w pikselach). Za pomocą pionowej czarnej linii oznaczono położenie wyznaczonego punktu krawędziowego w prezentowanym przekroju obrazu.

Dla otworów okrągłych, poszczególne przekroje rozpoczynają się w geometrycznym środku otworu i rozchodzą się pod różnymi kątami równomiernie pokrywając przestrzeń wokół punktu startowego. Odległość kątowa pomiędzy poszczególnymi przekrojami uza-leżniona jest od liczby przekrojów (rozmiar obrazu pomocniczego JP(x, y) w osi x).

W przypadku otworów podłużnych, takie rozwiązanie nie jest najlepsze, ponieważ otrzy-muje się nierównomierny rozkład przestrzenny znalezionych punktów krawędziowych (wzdłuż krawędzi otworu). Jednocześnie położenie krawędzi otworu na poszczególnych przekrojach obrazu zmienia się w bardzo szerokim zakresie.

Dla przykładu, jeżeli dla otworu przedstawionego na rysunku 6.11b zostanie wygene-rowany obraz pomocniczyJP(x, y) na podstawie przekrojów obrazu przedstawionych na rysunku 6.11a, otrzymamy większą gęstość punktów krawędziowych w pobliżu krawędzi otworu leżących bliżej środka otworu niż w pobliżu krawędzi najbardziej oddalonych od jego środka. Nie jest to korzystne z punktu widzenia dopasowywania wzorca otworu do znalezionych punktów. Lepszym rozwiązaniem jest utworzenie obrazu pomocnicze-go JP(x, y) z przekrojów rozpoczynających się na odcinku łączącym punkty PA(i), PB(i), tworzącym szkielet otworu. Jak pokazano na rysunku 6.11b, część generowanych prze-krojów obrazu jest prostopadła do odcinka na całej jego długości zaś pozostała część rozchodzi się promieniście z obu jego końców. Dobierając odpowiednio odległości mię-dzy poszczególnymi przekrojami w obrębie odcinka i odległości kątowe na jego końcach, oraz uwzględniając szacowaną grubość otworu, możemy sprawić, że odległości pomię-dzy kolejnymi znalezionymi punktami krawędziowymi otworu będą zbliżone do siebie (równomierny rozkład punktów wzdłuż krawędzi otworu).

a) b)

c) d)

e) f)

Wk(y)

y

Wk(y)

y Wk

Wk Wk

Wk

Rysunek 6.11: Przekroje obrazu. a,b) obrazy oryginalne wraz z liniami reprezentującymi przekroje obrazu; c,d) obrazy pomocnicze otworów, pionowe linie oznaczają przedsta-wione poniżej przekroje obrazu; e,f) przekroje obrazu przedstaprzedsta-wione w postaci wykresu funkcji jasności pikseli, pionowe linie pokazują położenie punktu krawędzi otworu.

Uzyskanie właściwego rozkładu punktów krawędziowych jest bardzo istotne dla pra-widłowego dopasowania wzorca otworu do znalezionych punktów. Doświadczenie uzy-skane podczas wdrażania systemu wizyjnego pokazuje, że najlepsze efekty uzyskuje się, gdy gęstość linii (przy krawędzi otworu) wychodzących z końca odcinka reprezentujące-go otwór jest nieco większa od gęstości linii rozpoczynających się na dłureprezentujące-gości odcinka.

Na rysunku 6.11b rozkład przestrzenny przekrojów obrazu spełnia powyższe wytyczne.

Wykonanie przekrojów obrazu na podstawie szkieletu obiektu daje bardzo dobre rezultaty. Dla otworów podłużnych, pokazanych na rysunku 6.13, położenie krawędzi otworu odpowiada mniej więcej stałej współrzędnej y na obrazie pomocniczymJP(x, y) (krawędzie są równo oddalone od punktów startowych JPk) dzięki czemu tworzy ona na obrazie poziomą linię. Sytuacja taka pokazana jest na rysunku 6.13c, który powstał na podstawie przekrojów wychodzących z odcinka przedstawionego na obrazie 6.13a.

a) b)

Rysunek 6.12: Otwór nie został prawidłowo rozpoznany z powodu obecności w jego pobliżu innego, już pospawanego otworu. a) obraz oryginalny; b) wynik progowania obrazu - nie znaleziono otworu;

Gdy w pobliżu analizowanego otworu znajduje się pospawany otwór lub specyficzne zabrudzenie sita, w wyniku błędnego progowania obrazu może dojść do zlania się ob-razów dwóch otworów. Z sytuacją taką mamy do czynienia na rysunku 6.12. Badany otwór nie zostanie wówczas prawidłowo rozpoznany. Połączone obiekty można oddzielić zmieniając wartości parametrów lokalnego progowania obrazu (αB i αJ). Wynik wła-ściwego progowania obrazu widoczny jest na rysunku 6.13b. W powyższym przykładzie obraz otworu jest powiększony przez sąsiednią spoinę, przez co środek ciężkości otworu oraz jego orientacja wyznaczone są z niewielkim błędem. Szkielet otworu posiada koniec wychodzący poza wnętrze rurki (na rysunku 6.13b oznaczony za pomocą niebieskiego okręgu), w wyniku czego część przekrojów obrazu rozpoczyna się nie wewnątrz rurki a w przestrzeni między wewnętrzną krawędzią rurki i krawędzią sita, dając w efekcie nie-właściwy obraz pomocniczyJP(x, y), oznaczony na rysunku 6.13g niebieskim okręgiem.

Do prawidłowego wyznaczenia położenia punktów krawędziowych otworu nie jest konieczne aby na rysunku pomocniczymJP(x, y) krawędzie otworu były zorientowane poziomo, choć z pewnością jest to aspekt znacznie ułatwiający ich prawidłowe wykrycie i rozpoznanie. W celu uniknięcia występowania sytuacji przedstawionej na rysunku 6.13g, przekroje obrazu generuje się na podstawie odcinka PA PB powstałego z odcinka PA(i) PB(i) po niewielkim skróceniu jego długości. Współrzędne punktów PA = (xA, yA) i PB = (xB, yB) wyznaczane są z następujących wzorów:

xA = x(i)+ 0.5· 0.9(D(i)max− Dmin(i) )cos(θ(i)), yA = y(i)+ 0.5· 0.9(D(i)max− D(i)min)sin(θ(i)), xB = x(i)− 0.5 · 0.9(D(i)max− Dmin(i) )cos(θ(i)), xB = y(i)− 0.5 · 0.9(Dmax(i) − D(i)min)sin(θ(i)).

(6.12)

Na rysunkach 6.13f i 6.13h przedstawiono obrazy pomocnicze utworzone z przekro-jów obrazu otrzymanych dla skróconego odcinka PA(i) PB(i). Na rysunku 6.13f niebieski-mi okręganiebieski-mi zaznaczono zniebieski-miany położenia krawędzi otworu w stosunku do położenia krawędzi otworu widzianej na obrazie 6.13e. Powstałe przesunięcie nie przeszkadza w prawidłowym wyznaczeniu położenia punktów krawędzi otworu. W przypadku obrazu 6.13h, skrócenie długości odcinka PA(i)PB(i)powoduje, że pierwsza krawędź (wnętrze rur-ki) widoczna jest na wszystkich przekrojach obrazu. Druga krawędź otworu (szukana krawędź sita) jest mniej zaburzona w stosunku do krawędzi widocznej na obrazie 6.13g, przez co jest ona dużo łatwiejsza do wykrycia. W pobliżu spoiny sąsiedniego otworu

a) b)

c) d)

e)

f)

g)

h)

Rysunek 6.13: Wpływ długości odcinka reprezentującego otwór na otrzymany obraz pomocniczy otrzymany z przekrojów obrazu. a,b) oryginalna długość odcinka PA(i),PB(i); c,d) skrócona długość odcinka, odcinek PA,PB e,g) obrazy pomocnicze odpowiadające przypadkom a i b; f,h) obrazy pomocnicze odpowiadające przypadkom c i d.

widoczne jest to w położeniu kolorowych (czerwonych i fioletowych) kropek reprezen-tujących znalezione punkty krawędziowe otworu.

Powyższy przykład pokazuje, że prawidłowe wyznaczenie przybliżonego położenia i orientacji otworu na obrazie ma wpływ na jakość otrzymywanych obrazów pomocni-czych JP(x, y), na podstawie których wyznaczane jest położenie punktów krawędzio-wych otworu. W celu zwiększenia niezawodności procedury wstępnej lokalizacji otworu posłużono się metodą dopasowania wzorca strukturalnego.