Post on 19-Jul-2020
Podstawy programowanie
systemów wizyjnych InSight
firmy Cognex
Środowisku InSight Explorer / Spreadshee
Opis zadania:
Wykrycie umownych różnic pomiędzy wzorcową płytką testową i płytkami zawierającymi „umowne” defekty.
OK NOK
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
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)
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.
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
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
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.
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.)
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
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:
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.
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.
8) Czytanie kodu Datamatrix
9) OCR
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)
11) Komunikacja
Obsługa we / wy dyskretnych Bufor wejściowy i wyjściowy Komedy powodujące odebranie i wysłanie buforów