Technologia deep learning na dobre zadomowiła się w naszych smartfonach w aplikacjach rozpoznawania mowy, odczytu tekstu czy identyfikacji twarzy. Na tym jej możliwości zastosowania się jednak nie kończą: coraz częściej pojawiają się pomysły wykorzystania modeli głębokiego uczenia w najróżniejszych dziedzinach nauki i rozwiązaniach przemysłowych: od diagnostyki medycznej, przez autonomiczne pojazdy, po analizę trendów w ekonomii i podejmowanie krytycznych biznesowych decyzji. Ta sama technologia przechodzi obecnie do zaawansowanych praktyk produkcyjnych w kontroli jakości i innych, opartych na osądzie wizyjnych zastosowaniach.
W najprostszym ujęciu problemu, technologia deep learning umożliwia maszynom robienie tego, co ludziom przychodzi naturalnie: uczenia się na przykładzie. Wielowarstwowe, „głębokie” sieci neuronowe naśladują w swoim działaniu sieci neuronowe w ludzkim mózgu. Daje to zupełnie nowe możliwości analizy obrazów i na ich podstawie podejmowania trafnych, inteligentnych i uzasadnionych decyzji.
W automatyce przemysłowej, modele oparte o metody głębokiego uczenia mogą precyzyjnie i powtarzalnie rozwiązywać aplikacje, dotychczas zbyt trudne do zaprogramowania i utrzymania stabilności działania przy użyciu klasycznych systemów wizyjnych.
Algorytmy deep learning pozwalają na rozróżnianie niedopuszczalnych defektów, jednocześnie zachowując tolerancję naturalnych różnic w złożonych wzorcach. Dodanie nowych referencji kontrolowanych elementów nie wymaga już całkowitej zmiany podejścia do aplikacji, a jedynie dostosowania jej przez przyuczenie nowych przykładów.
Innowacyjna technologia deep learning łączy w sobie specyfikę i elastyczność ludzkiej kontroli wzrokowej, z niezawodnością, konsekwencją i szybkością systemu komputerowego. Jest idealnym rozwiązaniem w aplikacjach kontroli defektów na niejednolitych powierzchniach, klasyfikacji różnych referencji produktów, sprawdzaniu kompletności montażu oraz w wymagających aplikacjach odczytu tekstu.
W swej istocie technologia deep learning to sposób nauki za pomocą systemów obliczeniowych, nazywanych sieciami neuronowymi, wzorowany na zachowaniu neuronów w ludzkim mózgu, dzięki któremu komputery uczą się wykonywać określone zadania.
Sieć składa się ze zbioru neuronów, które są połączone z losową liczbą innych neuronów. Proces tworzenia połączeń między neuronami w sieci neuronowej nazywany jest treningiem.
Gdy dane przechodzą przez kolejne warstwy sieci neuronowej, system trenuje i udoskonala swoje dane wyjściowe, aby zbliżyć się do otrzymania oczekiwanych rezultatów do których jest konfigurowany. Na przykład w środowisku produkcyjnym, sieci neuronowe mogą być wykorzystywane do automatyzacji procesów kontrolnych poprzez wykrywanie złożonych defektów lub identyfikowanie innych nieprawidłowości produktu, których jest zbyt wiele, są niepowtarzalne lub niedostatecznie kontrastowe, aby móc zastosować tradycyjne podejście oparte na regułach określanych przez programistę.
Rozważmy przykład, w którym firma produkująca części samochodowe potrzebuje sprawdzić czy finalny komponent jest pozbawiony rys. Nie ma sposobu, aby określić, gdzie dokładnie potencjalna rysa może wystąpić, co więcej rysy mogą być głębokie lub płytkie, długie lub krótkie, cieńsze bądź szersze, a powierzchnia, na jakiej występują nie jest jednorodna.
Algorytmy stają się trudne do zaprogramowania wraz ze wzrostem liczby wyjątków i bibliotek defektów. Innymi słowy, w pewnym momencie niektóre aplikacje potrzebne do automatyzacji fabryki nie będą skutecznie realizowane przez wizję maszynową opartą na regułach.
Tradycyjne systemy wizyjne działają niezawodnie w przypadku powtarzalnie produkowanych części, o wyraźnych różnicach pomiędzy sztukami dobrymi i o podobnie wyglądających defektach, co powoduje że są doskonałym wyborem w następujących aplikacjach:
Deep learning jest szczególnie przydatny w pozostałych sytuacjach, takich jak:
Chociaż wizja maszynowa oparta na głębokim uczeniu zdaje się obiecywać pomyślną realizację wielu dotychczas nierozwiązywalnych aplikacji fabrycznych (co faktycznie jest prawdą), to do swojego efektywnego działania potrzebuje spełnienia kilku kluczowych aspektów.
Na początku każdego projektu implementacji systemu wizyjnego, także tego, wykorzystującego technologię deep learning, należy stworzyć realne oczekiwania względem jego działania. Umiejętne wykorzystanie sieci neuronowych pozwala na osiągnięcie imponujących rezultatów, ale głębokie uczenie nie jest magicznym panaceum na każdy możliwy problem kontroli jakości.
Aby algorytmy w programie zadziałały w oczekiwany przez nas sposób musimy zadbać o jakość rejestrowanych obrazów, poprzez odpowiedni dobór optyki i oświetlenia oraz ich optymalne ustawienie. Co prawda, sieci neuronowe są mniej wrażliwe na zmienne warunki świetlne niż standardowa wizja maszynowa, ale nie zwalnia to nas z konieczności uzyskania obrazu na którym kontrola będzie możliwa. Szczególnie w przypadku najtrudniejszych aplikacji, te elementy mogą przesądzić o sukcesie projektu.
Nie zapominajmy także że powodzenie aplikacji opartej o sieci neuronowe zależy także od wiedzy i doświadczenia inżyniera aplikacyjnego, który ją prowadzi. Technologia deep learning, w odróżnieniu od edge learning’u polega na zbudowaniu i wytrenowaniu sieci neuronowych od podstaw, do czego konieczna jest wiedza na temat parametrów uczenia i przetwarzania obrazu, wprowadzania perturbacji czy interpretowania otrzymanych wyników.
Jedną z najważniejszych kwestii, jeśli chodzi o tworzenie aplikacji inspekcyjnych opartych na głębokim uczeniu, jest proces trenowania sieci neuronowych aplikacji. Sieci mają tendencję do doskonalenia się wraz ze wzrostem ilości danych wykorzystywanych podczas nauki. Dobrze wyszkolona aplikacja oparta na głębokim uczeniu wymaga kompleksowego i obszernego zestawu obrazów szkoleniowych, które reprezentują zakres wad i/lub dopuszczalnych odmian części, aby dobrze działać w produkcji. Już potwierdzenie wykonalności aplikacji wiąże się z koniecznością zarejestrowania niemałego zestawu zdjęć.
Dane wyjściowe aplikacji wyuczonej na zbyt małej liczbie obrazów mogą być zupełnie losowe. Obrazy te muszą być również pozyskiwane w warunkach oświetlenia produkcyjnego i prezentacji części. Ma to zasadnicze znaczenie dla powodzenia każdego projektu głębokiego uczenia.
To powoduje że czas przygotowania się do implementacji systemu opartego o sieci neuronowe wydłuża się o przygotowanie dużej liczby reprezentatywnych obrazów, stanowiących zestaw treningowy oraz testowy. Jest to problematyczne zwłaszcza przy próbie pozyskania obrazów z określonymi defektami, jeśli te występują bardzo sporadycznie.
Aplikacja w trybie Runtime może być uruchomiona zarówno na komputerze przemysłowym jak i na kamerze inteligentnej, jednak samo uczenie sieci neuronowych wymaga dużych mocy obliczeniowych procesora graficznego.
Identyfikacja defektów jest prawdopodobnie najczęściej wykorzystywanym narzędziem wizyjnym z zakresu głębokiego uczenia sieci neuronowych w środowisku produkcyjnym. Deep learning pomaga poradzić sobie z wykrywaniem wad fabrycznych różnego typu, z ich niewielkim kontrastem, różną wielkością, kształtem i rozmieszczeniem, niepowtarzalnym wyglądem detali, niejednorodnym lub wzorzystym tłem.
Wykrywanie defektów i anomalii możemy zrealizować za pomocą dwóch trybów pracy: nadzorowanego i nienadzorowanego.
W wersji nadzorowanej nacisk kładzie się na nauczenie sieci, tego jak wyglądają defekty na podstawie dostarczenia zestawu obrazów, które te defekty posiadają i na których, owe defekty zostały oznaczone.
Ponadto, narzędzie uczy się również tych fragmentów obrazów, które defektów nie zawierają. Dzięki temu narzędzie może również zbudować model prawidłowego wyglądu poprawnych części. Z tego powodu bardzo istotną wytyczną dotyczącą etykietowania obrazów jest to, aby każdy defekt na obrazie został precyzyjnie zaznaczony. W przeciwnym razie fragmenty obrazu z nieoznaczonymi defektami są podawane sieci jako prawidłowe. Tryb nadzorowany jest nakierowany na konkretne wady, zatem system należy wyuczyć na obrazach przedstawiających wszystkie możliwe typy defektów.
Tryb nadzorowany uczy się jedynie na podstawie tego, jak wygląda dobra część, uwzględniając przy tym jej wszelkie dopuszczalne wariancje. Następnie, w czasie przetwarzania obrazu w trybie Runtime, narzędzie wykryje wszelkie anomalie w wyuczonym wyglądzie obiektu i zwróci stopień odchylenia wyglądu kontrolowanej części od normy oraz zadecyduje na jego podstawie czy produkt jest prawidłowy czy nieprawidłowy.
Deep learning można wykorzystać do lokalizowania określonych komponentów, co może pomóc w aplikacjach typu pick-and-place do naprowadzania robota, aby ten prawidłowo pobrał komponent. Sieci neuronowe pomogą między innymi w sytuacjach, gdy strona A i B detalu wyglądają podobnie, a ich właściwe odróżnienie jest istotne. Kolejnym przykładem zastosowania jest finalna kontrola montażu bądź obecności i/ lub ułożenia produktów podczas pakowania, zwłaszcza jeśli występują dodatkowe trudności, jak ich dowolne ułożenie czy zapakowanie w folię.
Klasyfikacja całych obiektów lub ich częściowych obszarów wsparta technologią głębokiego uczenia może okazać się przydatna w aplikacjach polegających na wykrywaniu różnych referencji produktów.
Klasyfikacja sortuje również produkty i komponenty na podstawie wspólnych cech, takich jak kolor, tekstura, rozmiar, materiał wykonania, opakowanie czy nawet rodzaj wady. Wykorzystanie sieci neuronowych pozwoli uzyskać większą tolerancję dla naturalnych odchyleń w odcieniach, kształtach lub wymiarach detali w zależności od potrzeb każdej z klas.
Technologia głębokiego uczenia w funkcjonalności optycznego rozpoznawania znaków znajduje zastosowanie przede wszystkim w rozszyfrowywaniu znaków o niskiej powtarzalności wykonania, o różnej czcionce lub wielkości, niewyraźnych, zniekształconych, przekrzywionych, o obniżonym kontraście, z ubytkami lub na niejednorodnym, mylącym tle.
Narzędzie odczytujące tekst uczy się wyglądu każdego znaku z osobna, wśród tych stanowiących bazę obrazów dostarczonych przez użytkownika. Na podstawie dostarczenia wielu wariancji wyglądu znaku, narzędzie potrafi uwzględnić wysoki stopień zmienności tekstu w aplikacji zaimplementowanej w środowisku produkcyjnym.
Autor: Agata Lemańczyk