23
Programowanie systemów wizyjnych Cognex Podstawowe pojęcia oraz środowisko Spreadsheet

Programowanie systemów wizyjnych Cognex · Programowanie w spreadsheet – program szkoleniowy Zadanie polega na wykryciu wszystkich defektów wzoru wygrawerowanego na stalowych

Embed Size (px)

Citation preview

Programowanie systemów wizyjnych Cognex

Podstawowe pojęcia oraz środowisko Spreadsheet

Plan szkolenia:

1. Wstęp

2. Optyka i oświetlenie

3. Wprowadzenie do programowania systemów wizyjnych

4. Programowanie w spreadsheet

1. Połączenie z kamerą i rejestrowanie obrazu

2. Podstawowe narzędzia wizyjne:

1. Wzorzec i lokalizacja detalu

2. Histogram

3. Krawędzie

4. Blobs’y

5. Filtry

3. Narzędzia geometryczne i pomiarowe

4. Kalibracja

5. ID i OCR

6. Tworzenie intereface’u i komunikacja z panelem operatorskim

7. Wejścia / wyjścia cyfrowe

8. Komunikacja

9. Tryb testowy

Wstęp

System wizyjny – układ współpracujących urządzeń elektronicznych, którego funkcją jest

analiza wizyjna otoczenia. System składa się z urządzenia do rejestrowania i przetwarzania

danych (kamera), źródła światła (oświetlacz) oraz urządzenia analizującego (procesor).

Czujnik wizyjny – Zintegrowany w jednej obudowie układ kamera, procesor i oświetlacz charakteryzujący się stosunkowo małą rozdzielczością kamery i niewielką mocą obliczeniową procesora. Stosowany do prostych zadań kontrolnych.

Kamera inteligentna – Zintegrowany układ kamery z procesorem (bez oświetlenia) o większej rozdzielczości i możliwościach operacyjnych. Układ o szerokim i zróżnicowanym zastosowaniu.

Układ kamera – komputer (PC based) – system złożony z kamery współpracującej z oddzielnym komputerem klasy PC. Pozwala na dobór dowolnej kamery oraz wykorzystanie specjalistycznych narzędzi wizyjnych dopasowanych do zastosowania.

Narzędzia wizyjne – Algorytmy matematyczne służące do analizy (kontroli, pomiaru) obrazów cyfrowych.

Optyka i oświetlenie

System wizyjny nie jest w stanie analizować cech detalu niewidocznych na zdjęciu dlatego o sukcesie aplikacji w głównej mierze decyduje zestawienie stanowiska, a dopiero później stosowane algorytmy i wiedza programisty.

Podstawy projektowania stanowiska:

- Odległość robocza, pole widzenia, ogniskowa obiektywu: Te trzy parametry są ściśle powiązane. Jeśli znamy 2 z nich trzeci będzie wartością wynikową.

- Podstawowe parametry obrazu:

- Rozdzielczość

- Kontrast

- Ostrość i głębia ostrości

- Dystorsje i wpływ perspektywy

- Czym się kierować przy doborze oświetlenia:

- Połysk powierzchni

- Struktura przestrzenna detalu

- Kolor powierzchni

- Wpływ światła zewnętrznego

Wprowadzenie do programowania systemów wizyjnych

Typowy program wykorzystywany przez system wizyjny składa się z następujących części:

- Zarejestrowanie obrazu

- Lokalizacja badanego detalu i jego cech charakterystycznych

- Inspekcja narzędziami wizyjnymi

- Analiza wyników i ocena końcowa

- Komunikacja z urządzeniami zewnętrznymi

- Wizualizacja wyników

Programowanie w spreadsheet – program szkoleniowy

Zadanie polega na wykryciu wszystkich defektów wzoru wygrawerowanego na stalowych płytkach. Należy także zaprojektować widok panelu operatorskiego do wizualizacji wyników inspekcji.

OK NOK

Akwizycja obrazu

Do zarejestrowania odpowiedniego obrazu, oprócz prawidłowego zestawienia stanowiska, konieczne jest określenie parametrów funkcji „AcquireImage” w komórce A0 arkusza kalkulacyjnego. Podstawowe parametry to:

- Czas ekspozycji

- Moc oświetlenia (w przypadku oświetlenia wbudowanego czujników wizyjnych)

- Tryb wyzwalania (np. zewnętrznym sygnałem cyfrowym, tryb manualny, tryb ciągły)

- Opóźnienie (w stosunku do sygnału wyzwalającego)

- Parametry kamer specjalnego zastosowania (np. kamera liniowa)

Lokalizacja i pozycjonowanie detalu

W celu lokalizacji obiektu oraz kompensacja zmian jego położenia można stosować różnie narzędzia wizyjne. Najczęściej jednak wykorzystuje się do tego wzorzec.

Jeżeli to konieczne można wyznaczyć położenie precyzyjniej, np. lokalizując dwie przeciwległe śruby.Środki okręgów posłużą jako początek i koniec odcinka, którego położenie kątowe wykorzystamy do pozycjonowania innych narzędzi..

Narzędzie wykrywania krawędzi wykorzystamy do zliczenia białych pasków w środkowej części płytki. Zastosujemy też proste narzędzia logiczne w celu określenia kryteriów poprawności wyniku

Wykrycie krawędzi

Wykrycie krawędzi

Kontrola średnicy i owalności gniazd z pinami–Do pomiaru samego promienia okręgów 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.

Wykrycie i zliczanie „plam” – blobs’ów

Do lokalizacji pinów w złączach wykorzystamy narzędzie ExtractBlobs (parametr Number to Sort powinien być co najmniej 8). 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.

Wykrycie i zliczanie „plam” – blobs’ów

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. W celu poprawnego spozycjonowania narzędzia ScaleImage na przekrzywionym gnieździe musimy dodatkowo wykorzystać wykrywanie krawędzi. Dolna krawędź gniazda będzie referencją (fixture) dla funkcji ScaleImage

Korzystając z dodatkowych funkcji z zakładki VisionDataAccess (GetHigh i GetWide) mierzymy wysokość i szerokość blobsów.

Wykorzystanie histogramu

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

Wykorzystamy funkcję zliczania pikseli o jasności z określonego zakresu do sprawdzenia wypełnienia otworów „Out 0” – „Out 2”.

Wykorzystanie histogramu

Narzędzie zliczania pikseli o określonej jasności wykorzystamy też do sprawdzenia obecności 4 narożnych śrub. Dodatkowo w tym celu stworzymy złożony obszar inspekcji.

Zastosowanie filtrów

Filtry software’owe są wykorzystują operacje matematyczne działające na pikselach lub ich grupach.

Filtry działające na pojedynczych pikselach:

- Nie powodują rozmycia obrazu

- Najczęściej wykorzystywane do poprawy kontrastu

- Przykłady: binaryzacja, strech, invert

Filtry działające grupach sąsiednich pikseli

- Powodują rozmycie obrazu

- Różnorodne zastosowania, np. uwypuklenie krawędzi, filtrowanie szumów, rozszerzenie ciemnych lub jasnych obszarów obrazu

- Przykłady: dylatacja, erozja, edge magnitude

Narzędzia geometryczne i pomiarowe

Pomiar pozycji kątowej konektoraZmierzymy przekrzywienie zlokalizowanej wcześniej krawędzi gniazda względem dolnej krawędzi płytki.Wykorzystamy w tym celu wykrywanie krawędzi oraz funkcję pomiarową LineToLine

Narzędzia geometryczne i pomiarowe

Pomiar kąta –Przy wahaniach mierzonego kąta większych niż 10° wyznaczamy dwa punkty (np. za pomocą narzędzia FindLine). Szerokość ROI dla każdego z punktów powinna wynosić 1 piksel, wówczas narzędzie zwróci nam jeden punkt, który później posłuży do wyznaczenia linii. Narzędziem LineFromNPoints wyznaczamy linię pomocniczą i mierzymy jej kąt podobnie jak poprzednio.

Kalibrcja

Kalibracja –Czynności mające na celu przetworzenie wartości wskazań przyrządu pomiarowego na wielkość mierzonąRodzaje kalibracji:

- Liniowa

- Proste skalowanie

- Odległość między krawędziami

- Promień okręgu

- Nieliniowa

- 9 punktowa (często stosowna w robotyce)

- Na siatce kalibracyjnej

ID i OCR

Odczyt kodu datamatrix

Podstawowe elementy kodu DM: - L-pattern- Clocking pattern- Obszar danych

Minimalna rozdzielczość kodów do odczytu

- DM: 4 PPM (piksel per module)- 1D: 1,25

Odczyt napisu (OCR)

Krytyczne parametry odczytu OCR:

- Segmentacja- Nauczone czcionki (minimalna ilość wystarczająca

do odczytu wszystkich znaków)- Rozdzielczość (min. Szerokość linii: ok.4px)- Poprawność nadruku

Funkcja OCR powinna być analizowana i optymalizowana na dużej partii próbek (kilka tysięcy)

Interface użytkownika

Tworzenie interface’u i komunikacja z panelem operatorskim

Komunikcja

Wejścia / Wyjścia cyfrowe Komunikacja sieciowa

Serwer FTP

Tryb testowy

Dziękuję za uwagę