Przemysłowe systemy wizyjne
Jednym z kluczowych zastosowań IPC w nowoczesnym przemyśle jest obsługa wizji maszynowej. Temat przemysłowych systemów wizyjnych jest złożony zarówno na poziomie architektury sprzętowej rozwiązania, jak i również samego planowania procesu. W tym materiale omówimy wszystkie najważniejsze kwestie techniczne związane z widzeniem maszynowym, przedstawimy najpopularniejsze zastosowania oraz zaprezentujemy opcje konfiguracji sprzętowych komputerów do przetwarzania obrazu.
Czym jest Machine Vision?
Podstawą każdego procesu korzystającego z logiki binarnej są dane wejściowe. W automatyce przemysłowej przywykliśmy, że dane wejściowe do urządzenia sterującego są generowane poprzez czujniki. W zależności od ich przeznaczania, są one analogowe bądź cyfrowe. Inaczej jest w przypadku obrazu z kamery.
Tutaj naszym sygnałem wejściowym jest przechwycony obraz - może być zarówno w postaci wczytanego pojedynczego zdjęcia lub streamu video. Możemy zatem traktować to rozwiązanie jako kolejny czujnik w naszym układzie, który generuje dużą ilość nieobrobionych danych wsadowych dla naszego układu sterowania. Nie możemy jednoznacznie sklasyfikować jednak natury tego "sygnału", przed zaimplementowaniem systemu analizy obrazu.
Samo przechwycenie obrazu nie jest jednak wystarczające - kluczowym elementem jest tutaj analiza uzyskanego obrazu, tak aby z zapisu pikseli uzyskać wartościowe dla nas parametry. Żeby osiągnąć ten cel, system wizyjny musi składać się części Hardwarowej oraz Softwarowej.
Połączenie oprogramowania i jednostek obliczeniowych z fizycznymi komponentami optycznymi pozwala dopasować system wizyjny konkretne do naszego zastosowania.
Machine Vision a Computer Vision
W różnych publikacjach możemy spotkać się z dwoma terminami Machine Vision (MV) oraz Computer Vision - nie są to określania do końca tożsame, pomimo że dzielą wiele wspólnych cech. O ile zagadnienia szeroko pojętych systemów Computer Vision (CV) spotkamy dziś w praktycznie każdej branży.
Systemy CV już na dobre zagościły w branżach takich jak marketing, sprzedaż oraz medycyna. Aby uzmysłowić jaką role odgrywa obecnie CV w naszym życiu, posłużę się dwoma konkretnymi przykładami implementacji.
Pinterest to popularny serwis społecznościowy, gdzie główną treścią są zdjęcia. Na tym portalu możemy w łatwy sposób poszukiwać inspiracji w zakresie np. wystrojów wnętrz. Wpisując konkretne frazy w wewnętrznej wyszukiwarce otrzymujemy setki lub tysiące pasujących zdjęć. Wyszukiwanie odbywa się na podstawie wykrywania i tagowania odpowiednich elementów. Po wybraniu interesującego nas obiektu, np. szafki nocnej, system wyszukuje dostępne do kupienia produkty, które odpowiadają naszym preferencjom.
Nie mniej istotne jest wykorzystanie CV w medycynie. Modele Machine Learning potrafią skutecznie i szybko analizować złożone elementy obrazów radiologicznych, a następnie wskazywać lekarzom niepokojące zmiany.
Natomiast określenie MV odnosi się konkretnie do zastosowań rozpoznawania analizy wizyjnej w warunkach przemysłowych - nie tylko zakładach produkcyjnych, ale również "w terenie". Specyfika pracy w takich warunkach wymusza zastosowanie innych komponentów oraz technologii. Krytycznym wymagania to powtarzalność oraz odporność na niekorzystny wpływ środowiska.
Kluczowe elementy w przemysłowych systemach wizyjnych
Jak wspominałem wcześniej, w kompleksowych systemach wizyjnych musi zachodzić synergia między oprogramowaniem i jednostką obliczeniową a urządzeniami optycznymi. Dlatego na system wizyjny najczęściej składa się setup: oświetlenie, kamera, komputer przemysłowy.
Z pozoru najprostsze do zaimplementowania jest oświetlenie - dużo kamer ma wbudowane oświetlenie dostosowane swoją barwą i intensywnością do układu optycznego w który jest wyposażony. Ciężko tutaj uogólnić kwestię, ponieważ wpływają na to warunki środowiskowe, typ realizowanego zadania i właściwości optyczne wykonywanego detalu. Najczęściej oświetlenie dobiera się po zmontowaniu aplikacji, a następnie dostraja kamery w celu uzyskania optymalnego efektu.
Następnym elementem jest kamera. Obecnie na rynku mamy wiele dostępnych typów rozwiązań sensorów optycznych. Zacznijmy od podziału ze względu na metodę działania kamery:
-
Klasyczne sensory wizyjne - Zasadę ich działania możemy porównać do kamery internetowej w komputerze PC. Przekazuje ona zbierany obraz do jednostki obliczeniowej, który następnie jest tam poddawany analizie przy wykorzystaniu dostępnych zasobów. Bardzo często producent dostarcza odpowiednie oprogramowanie z gotowymi szablonami algorytmów do wykrywania, zliczenia i oceny jakości elementów.
-
Kamery inteligentne - w uproszczeniu możemy nazwać to rozwiązanie hybrydą kamery oraz mini komputera w jednej obudowie. Takie urządzenie wyposażone jest w dedykowany układ z mikroprocesorem, dzięki czemu jest w stanie wykonywać obliczenia on-board. Architektura takich układów jest dostosowana do pracy z algorytmami Deep Learning, dzięki czemu dobrze radzi radzi sobie w zadaniach typu rozpoznawanie obiektów, sprawdzanie geometrii detalu oraz identyfikacji błędów produktu. Urządzenia takie świetnie sprawdzają się w sytuacji gdy kamera nie jest częścią większego systemu, a steruje bezpośrednio jedną maszyną - np. ramieniem robota.
Kolejnym ważnym aspektem różniącym kamery jest typ mapowania obrazu. Na rynku mamy dostępne kamery 2D oraz 3D.
Kamery 2D wykorzystywane w przemyśle nie różnią się zbytnio od komercyjnych rozwiązań pod względem zasady działania, jednak są odpowiednio przystosowanie konstrukcyjne do trudnych warunków pracy 24 godzin na dobę w niesprzyjającym środowisku.
Kamery 3D stosowane w aplikacjach przemysłowych możemy jeszcze podzielić na dwa typy:
-
Range Camera - W niektórych publikacjach możemy spotkać się z terminem 2,5D. Ten rodzaj kamery działa na zasadzie tworzenia obrazu 2D z możliwością określenia odległości punktów od elementu pomiarowego kamery. Sam element pomiarowy wykorzystuje zazwyczaj dalmierz laserowy.
-
Stereo Camera - Dzięki zastosowaniu dwóch (lub większej ilości) obiektywów kamera ta symuluje antropomorficzny sposób postrzegania głębi obrazu. Takie kamery pozwalają na tworzenie chmury punktów (każdy z pozycją opisaną w trzech płaszczyznach) w zakresie pola widzenia. Takie rozwiązanie pozwala na tworzenie obrazu w wysokiej rozdzielczości. Stworzony w tym procesie model geometryczny detalu pozwala na jeszcze dokładniejsze pomiary wizyjne.
Przedstawiony wyżej podział odnosi się jednie do kluczowych różnic w budowie czujnika optycznego. W rzeczywistości proces dobrania odpowiedniej kamery jest nieco bardziej złożony. Zależnie od naszej aplikacji, musimy wybrać między innymi typ migawki, wielkość matrycy czy rodzaj obiektywu.
Ostatnim elementem systemów wizyjnych jest jednostka obliczeniowa. Może to być komputer przemysłowy, sterownik PLC, sterownik robota - wszystko zależy od tego jaką kamerę wykorzystamy do jak wymagającego zadania.
Rola oprogramowania w Machine Vision
Kluczowym elementem kompleksowych systemów jest niepodważalnie software. Jego podstawą funkcją jest możliwość wyeliminowania dużej części niedoskonałości komponentów sprzętowych systemów wizyjnych - np. nieskorygowana dystorsja obiektywu (tzn. fisheye), wpływająca na reprezentacje wizualną kształtu obiektów. Realizuje się to za pomocą kalibracji urządzeń lub różnych funkcji (zmiana kontrastu, sztuczne wyostrzanie bądź wypłaszczenie mających za zadanie zwiększyć możliwości systemu.
Drugim ważnym aspektem oprogramowania dostarczanego przez producenta jest umożliwienie szybkiego modyfikowania gotowych szablonów, przeznaczonych do realizacji typowych zadań w przemyśle. Idealnym rozwiązaniem jest gdy możemy tworzyć niezawodne algorytmy w systemie No-Code, bezpośrednio wewnątrz oprogramowania narzędziowego.
Ostatnią mile widzianą funkcją jest umożliwienie komunikacji systemu z zewnętrznymi usługami, np. za pomocą dedykowanych bibliotek, API bądź całym SDK. Jest to krytyczny wymóg w przypadku gdy chcemy wykorzystać nasz sprzęt z zewnętrznymi systemami Artificial Intelligence, Deep Learning bądź usługami Cloud.
Najpopularniejsze zastosowania systemów wizyjnych
Czujniki wizyjne stosowanie są już w wielu miejscach. Przyjrzyjmy się kilku najpopularniejszym implementacjom Machine Vision:
-
Bin Picking - jeden z najpopularniejszych problemów w robotyce. Robot za pomocą kamer umieszczonych na swoim stanowisku jest w stanie zidentyfikować i pochwycić przedmiot o zadanych parametrach (kształt, rozmiar, kolor). Z racji dużego zainteresowania tą aplikacją, wielu producentów oferuje gotowe oprogramowanie wpierające wiele typów kamer, pozwalające na stworzenie aplikacji w dedykowanym interfejsie graficznym oraz działającym lokalnie lub w chmurze.
-
Kontroli jakości - systemy komputerowe mają przewagę w kwestii utrzymania skupienia nad człowiekiem - dzięki temu doskonale sprawdzają się w zadaniach polegających na stałej obserwacji obiektów. Z pomocą przychodzi nam automatyczna analiza. Wykorzystując czujniki wizyjne o odpowiednio wysokiej rozdzielczości, rozpoznanie małego defektu w detalu nie stanowi żadnego problemu.
-
OCR - Optyczne rozpoznawanie znaków - prawdopodobnie najpopularniejszy obszar stosowania systemów wizyjnych. Te algorytmy wykorzystywane są w praktycznie w każdym obszarze przemysłu.
-
Pomiary optyczne - obecnie jedna z najbardziej aktywnie rozwijających się gałęzi systemów wizyjnych. Specjalny czujnik wizyjny (np. kamery monochromatyczne) pozwalają na dokładne oraz bezkontaktowe pomiary różnych wartości geometrycznych. W wielu przypadkach te cechy sprawiają że systemy wizyjne to najlepsze rozwiązanie jakie możemy zastosować, szczególnie gdy mierzone produkty są delikatne lub niepozycjonowane.
-
Ruch autonomiczny - zastosowanie gdzie system wizyjny jest wręcz wymagany. Automatyczna analiza wizyjna otoczenia jest niezbędna do zapewnienie bezpieczeństwa poruszającego się robota lub pojazdu.
Jaki wybrać komputer do przemysłowych systemów wizyjnych?
Poruszyliśmy już temat komponentów z jakich składają się systemy wizyjne oraz przedstawiliśmy kilka najpopularniejsze zastosowań. Pozostał nam wybór typu komputera przemysłowego do naszej aplikacji wizyjnej. W pierwszej kolejności skupimy się na branży w jakiej działamy.
Branża produkcyjna
W przypadku systemów wizyjnych pracujących w warunkach przemysłu produkcyjnego kluczowa jest szybkość z jaką wykonujemy operacje. Jako przykład kontrolę jakości w produkcji wielkoseryjnej. W tego typu aplikacjach, detale (lub finalne produkty) poddawane są kontroli podczas transportu na taśmociągu. Im szybciej system wizyjny przetwarza dane, tym większe jest możliwe tępo produkcji.
Do osiągnięcia tego celu nie wystarczy szybki procesor i dużo pamięci RAM. Aby sprostać wymaganiom tępa współczesnej produkcji, nasz komputer potrzebuje dodatkowego oprzyrządowania.
Warto poszukać komputera oferującego możliwość bezpośredniego podłączenia wyzwalacza migawki, oświetlenia oraz enkodera kwadraturowego (wykorzystywanego do odczytu pozycji taśmociągu) do dedykowanego O/I działających w czasie rzeczywistym (Real Time I/O). W celu osiągnięcia naprawdę dużej szybkości działania danej aplikacji, poza złączami potrzebujemy układu z mikrokontrolerem, zdolnym do zarządzania pracą systemu w takim tępie.
Przykładami takich rozwiązań są układy NuMCU (Micro Chip Unit) lub DITO (deterministyczny wyzwalacz) pozwalające na zmniejszenie opóźnienia pomiędzy wykryciem obiektu a wyzwoleniem migawki kamery.
Transport
Grupa komputerów które możemy zastosować w transporcie jest znacznie zawężona poprzez wymóg posiadania między innymi certyfikatu EN50155, popularnie określne jako "norma kolejowa". W dużym skrócie Zapisy zawarte w tym dokumencie koncentrują się na zapewnieniu jak największej niezawodności sprzętu i oprogramowania w wymagającym środowisku pracy (wstrząsy, wibracje, wilgotność oraz duże wachania temperatury).
Drugą istotną kwestią jest samo przeznaczenie systemu wizyjnego. Najczęściej stosowane rozwiązania polegają na nadzorze pojazdu, miejsca poruszania się pojazdu oraz identyfikacji zagrożeń. Przy takich założeniach pojawia się kilka wyzwań: zmienne warunki pogodowe wpływające na oświetlenie i trudne do przewidzenia zachowanie kierowców. Aby to zniwelować, musimy wykorzystać stosunkowo zaawansowane oprogramowanie, często wykorzystujące elementy AI oraz DeepLearnig.
Biorąc to pod uwagę, musimy wybrać komputer certyfikowany do zastosowań w transporcie, oraz posiadający możliwość instalacji karty graficznej.
Robotyka, działania R&D
Ciekawą propozycją do zaawansowanej robotyki oraz różnorodnych działań R&D są komputery oparte na architekturze Nvidia Jetson. Trzy główne zalety tego rozwiązania to: wydajność, energooszczędność oraz dostępność różnorodnego oprogramowania. Dwa pierwsze wymienione przeze mnie punkty wynikają z architektury układu SoC (System on Chip) tego układu, który był projektowany konkretnie do zastosowań CV oraz AI, czyli rozwiązania typu kamery inteligentne lub smart czujniki optyczne .
Nie mniej istotna jest również kwestia dostępnego oprogramowania na tę platformę. Producent dostarcza nam wiele rozwiązań w postaci SDK. Należy tutaj wspomnieć o dużej społeczności programistów i projektantów oprogramowania, pracującej na tym sprzęcie, którzy stworzyli obszerne opracowania, przykłady i sposoby na optymalizacje pracy układu Jetson.
Do rozpoczęcia pracy wystarczy nam płytka deweloperska Jetson Nano. Należy jednak pamiętać, że taka płytka nie sprawdzi się w przemyśle, służy bardziej do rozwoju tworzonego systemu wizyjnego w warunkach laboratoryjnych.
Jeżeli nie ogranicza nas energia elektryczna i rozmiary, możemy wybrać klasyczną kartę GPU (w konfiguracji pojedynczej lub podwójnej) . W zależności od indywidualnych potrzeb, biorąc pod uwagę preferencje użytkownika oraz wykorzystywane biblioteki/SDK, możemy wybrać układy RTX, Quadro bądź Tesla. System złożony z takich podzespołów zapewnia dużą wydajność i skuteczność działania w aplikacjach o znaczeniu krytycznym (system bezpieczeństwa, kontrola jakości produkcji) w niesprzyjających warunkach (słabe światło, duża liczba obiektów znajdujących się w polu widzenia).
Podsumowanie
W tym artykule wyjaśniliśmy najczęstsze kwestie związane z przemysłowymi systemami wizyjnymi. W kolejnych materiałach z tej serii omówimy dokładniej wykorzystanie MV w konkretnych branżach.