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..
Wykrycie krawę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 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 konektora Zmierzymy 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 - Nieliniowa - Proste skalowanie - Odległość między krawędziami - Promień okręgu - 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)
Tworzenie interface u i komunikacja z panelem operatorskim Interface użytkownika
Komunikcja Wejścia / Wyjścia cyfrowe Komunikacja sieciowa Serwer FTP
Tryb testowy
Dziękuję za uwagę