Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM...

16
Podstawy programowanie systemów wizyjnych InSight firmy Cognex Środowisku InSight Explorer / Spreadshee

Transcript of Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM...

Page 1: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

Podstawy programowanie

systemów wizyjnych InSight

firmy Cognex

Środowisku InSight Explorer / Spreadshee

Page 2: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

Opis zadania:

Wykrycie umownych różnic pomiędzy wzorcową płytką testową i płytkami zawierającymi „umowne” defekty.

OK NOK

Page 3: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

Opis zadania:

1) Kompensacja zmiany położenia obiektu (lokalizacja obiektu – lokalizacja wzorca)

2) Histogram - Kontrola obecności i wielkości otworów

3) Blobs - Zliczanie obiektów

4) Find Line, Find Circle - Pomiar głębokości wycięcia

5) FindSegment - Pomiar szerokości szczeliny

6) FindCircleMinMax - Kontrola średnicy i owalności

7) Narzędzia pomiarowe - Pomiar kąt

8) Czytanie kodu Datamatrix

9) OCR

10) Interfejs operatora

11) Komunikacja – na przykładzie ProfiNet

Page 4: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

Korzystając z narzędzia „Pat Max” zlokalizuj obiekt (wstępna lokalizacja)

Jeżeli to konieczne to do precyzyjniejszego wyznaczenia położenie kątowego lokalizujemy dwa przeciwległe otwory. Środki otworów posłużą jako początek i koniec odcinka, którego położenie kątowe wyznaczamy. Do lokalizacji otworów możemy wykorzystać jedną z kilku opcji. Np. Wzorzec, Blobs bądź znajdź okrąg. W naszym zadaniu zastosujemy FindPatterns (znajdź wzorzec).

1) Kompensacja zmiany położenia obiektu (lokalizacja obiektu – lokalizacja wzorca)

Page 5: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

2) Histogram - Kontrola obecności i wielkości otworów

Histogram obrazu cyfrowego jest funkcją przyporządkowującą każdemu stopniowi skali jasności (0-255) ilość zliczonych pikseli obrazu o takiej

jasności.

Narzędziem wykorzystywanym do badania histogramu w zdefiniowanym regionie jest ExtractHistogram

Najważniejsze parametry wyjściowe:

•HistContrast: Oblicza kontrast w zdefiniowanym regionie.

•HistCount: Oblicza ilość pikseli w zdefiniowanym regionie których jasność mieści się określonym przedziale

•HistHead: Określa najmniejszej wartości skali szarości powyżej której ilość zliczonych pikseli jest nie zerowa

•HistMax: Określa wartości skali szarości, dla której ilość zliczonych pikseli jest największa

•HistMean: Wylicza średnia wartość skali szarości

•HistMin: Określa wartości skali szarości, dla której ilość zliczonych pikseli jest najmniejsza

•HistTail: Określa największą wartości skali szarości poniżej której ilość zliczonych pikseli jest nie zerowa

•HistThresh: Oblicza optymalny próg binarny.

Page 6: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

2) Histogram - Kontrola obecności i wielkości otworów

Zdefiniowanym analizowanym regionem będzie okrąg. Podłącz w ExtractHistogram / External Region komórkę, w której umieściłeś EditCircle dla każdego z ośmiu otworów.

Określamy zakres skali szarości dla otworu.

Zakres Ilości zliczonych pikseli funkcją HistCount gdy otwór jest „OK”

Ilość zliczonych pikseli, których jasność mieści się w zdefiniowanym zakresie

Page 7: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

3) Blobs - Zliczanie obiektów

Funkcja ExtractBlobs umożliwia wyodrębnienie obszarów w formie Plam w zdefiniowanym regionie "analiza łączności" .

Podczas „analizy łączności” piksele w zdefiniowanym regionie dzielone są na dwie kategorie – Plama lub Tło bazując na

określonym progu w skali szarości (0-255). Wszystkie piksele poniżej progu traktowane są jako czarne a powyżej jako

białe.

Dalej piksele o podobnych wartościach są grupowane na podstawie ich koloru (poziomu jasności) i czy stykają się z

sąsiadującymi pikselami.

Po analizie obrazu nastąpi podzielenie na grupy stykających się pikseli będące blobsami i na piksele będące tłem. Dla

określonego blobsa możemy określić szereg jego cech takich jak współrzędne (Row i Col) obszar, obwód bądź wydłużenie.

Przykłady blobsów

Page 8: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

3) Blobs - Zliczanie obiektów

Do lokalizacji obiektów wykorzystamy narzędzie ExtractBlobs (Number to Sort proszę podać conajmniej 10)

Dalej z zakładki Vision Data Acces wybieramy funkcję GetNFound odwołując się do komórki, w której znajduje się narzędzie ExtractBlobs.

Page 9: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

Jeżeli musimy wyznaczyć również wysokość i szerokość każdego z elementów to należy spowodować aby kontrolowany obszar był właściwie zorientowany. Do tego celu można posłużyć się filtrem ScaleImage. Korzystając z dodatkowych funkcji z zakładki VisionDataAccess (GetHigh i GetWide) mierzymy wysokość i szerokość Blobsów.)

Page 10: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

4) Find Line, Find Circle - Pomiar głębokości wycięcia

Wyznaczamy środek najmniejszego okręgu a następnie krawędź w miejscu położenia wycięcia. Dalej mierzymy odległość od środka okręgu do wyznaczonego odcinka.

Środek odcinka możemy wyznaczyć korzystając z następujących funkcji: Mean(Row0,Row1) Mean(Col0,Col1)

Najpopularniejsze funkcje geometryczne / pomiarowe

Page 11: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

5) FindSegment - Pomiar szerokości szczeliny

Jednym z najprostszych rozwiązań do pomiaru odległości pomiędzy krawędziami tak jak w naszym przykładzie jest zastosowanie narzędzia FindSegment:

Page 12: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

6) FindCircleMinMax - Kontrola średnicy i owalności

Do pomiaru samego promienia okręgu możemy użyć narzędzia FindCircle, jednak aby wyznaczyć punkt znajdujący się najdalej i najbliżej środka okręgu posłużymy się funkcją FindCircleMinMax. Innym parametrem, który możemy wykorzystać do określenia jak bardzo okrąg jest odkształcony jest odchylenie standardowe (Sdev). „0” to idealny okrąg.

Page 13: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

7) Narzędzia pomiarowe - Pomiar kąt

Przy większych kątach niż 10 st wyznaczamy dwa punkty (np. za pomocą narzędzia FindLine). Szerokość ROI dla każdego z punktów powinna wynosić 1 pkseli wówczas narzędzie zwróci nam jeden punkt. W naszym przypadku musimy wyznaczyć dwa odcinki czyli cztery punkty.

Page 14: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

8) Czytanie kodu Datamatrix

9) OCR

Page 15: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

10) Interfejs użytkownika

Custom View – Przełączenie w tryb wizualizacji. Custom View Setting – konfiguracja trybu wizualizacji (wybór obszaru arkusza służącego za interfejs operatora)

Page 16: Bez tytułu slajdu...Bez tytułu slajdu Author Sylwester Chomiak Created Date 11/28/2017 11:44:38 PM ...

11) Komunikacja

Obsługa we / wy dyskretnych Bufor wejściowy i wyjściowy Komedy powodujące odebranie i wysłanie buforów