Wróć
Szukaj
Produkty
Artykuły
pl
ro en

Zastosowanie uczenia maszynowego w analizie obrazów w przemysłowych systemach wizyjnych.

calendar-icon
/
Zastosowanie uczenia maszynowego w analizie obrazów w przemysłowych systemach wizyjnych.

Zastosowanie uczenia maszynowego w analizie obrazów w przemysłowych systemach wizyjnych

Wprowadzenie

Przemysłowe systemy wizyjne to układy kamer i oprogramowania pozwalające maszynom „widzieć” i podejmować decyzje na podstawie obrazu. Wykorzystuje się je m.in. do kontroli jakości produktów, pomiarów wymiarów, identyfikacji części czy nawigacji robotów na liniach produkcyjnych. Tradycyjnie wiele takich systemów opierało się na algorytmach opisywanych ręcznie (regułach) – np. proste programy sprawdzające poziom napełnienia butelki lub wymiary elementu. Jednak wraz z rozwojem sztucznej inteligencji coraz większą rolę odgrywają metody uczenia maszynowego, w których to komputer „uczy się” rozpoznawania wzorców z danych, zamiast polegać wyłącznie na zaprogramowanych regułach. W ostatnich latach szczególnie głębokie sieci neuronowe (ang. deep learning) zrewolucjonizowały analizę obrazu – umożliwiają one automatyzację zadań, z którymi klasyczne podejścia sobie nie radziły. Poniżej wyjaśniamy kluczowe pojęcia (sztuczna inteligencja, uczenie maszynowe, sieci neuronowe, uczenie głębokie) w kontekście analizy obrazu oraz ich zastosowania w przemyśle, a także porównujemy wymagania sprzętowe i szybkość działania tych technik na urządzeniach lokalnych (bez wykorzystania chmury).

Sztuczna inteligencja a tradycyjne systemy wizyjne

Sztuczna inteligencja (SI) to najszersze pojęcie, obejmujące wszelkie techniki pozwalające maszynom naśladować ludzką inteligencję przy rozwiązywaniu złożonych zadań. Nie wszystkie metody SI uczą się z danych – klasyczne systemy AI często opierały się na logice opisywanej regułami przez ekspertów (tzw. systemy ekspertowe). W kontekście analizy obrazu, takim podejściem są tradycyjne systemy wizyjne oparte na regułach, gdzie inżynier programuje konkretne algorytmy przetwarzania obrazu: np. progowanie, dopasowanie kształtu, pomiar odległości między krawędziami itp. Tego typu systemy dobrze sprawdzają się w zadaniach, które można ściśle zdefiniować matematycznie – na przykład precyzyjne pomiary wymiarów, wykrywanie wysoko kontrastowych wad, identyfikacja wyrobu czy pozycjonowanie elementów.

Takie systemy działają deterministycznie i zwykle bardzo szybko – analiza pojedynczej klatki obrazu trwa dziesiątki milisekund na przemysłowym komputerze PC lub nawet wbudowanym procesorze kamery. Dzięki temu klasyczne wizja maszynowa potrafi kontrolować setki czy tysiące obiektów na minutę z pełnym pokryciem linii produkcyjnej. Zaletą podejścia opartego na regułach jest też przejrzystość działania – łatwo prześledzić, dlaczego system zaliczył dany obiekt jako wadliwy (wynika to z konkretnej reguły). Ograniczeniem natomiast jest brak elastyczności: gdy cechy obiektów lub warunki oświetleniowe ulegną zmianie, inżynier musi często ręcznie dostroić parametry algorytmu lub nawet opracować nowe reguły. Jeśli defekt lub cecha nie daje się opisać prostymi metrykami (np. drobne zarysowania o nieregularnych kształtach na powierzchni) albo wygląd produktu podlega dużym wahaniom (np. naturalne różnice między owocami), tradycyjne systemy wizyjne osiągają granice skuteczności. W takich sytuacjach sięga się po metody uczące się, które potrafią uogólniać wiedzę na podstawie przykładów.

Uczenie maszynowe (ML) w analizie obrazu

Uczenie maszynowe (Machine Learning, ML) jest podzbiorem sztucznej inteligencji, skupiającym się na algorytmach zdolnych do uczenia się na podstawie danych, zamiast być wyłącznie zaprogramowanymi regułami. W praktyce oznacza to, że program trenuje model na przykładach (np. obrazach), dostosowując wewnętrzne parametry, by coraz lepiej wykonywać dane zadanie – np. rozróżniać produkty dobre i wadliwe. W systemach wizyjnych uczenie maszynowe było wykorzystywane od lat, nawet jeśli nie zawsze nazywano je wprost “sztuczną inteligencją”. Przykładowo, popularne narzędzie dopasowywania wzorca (ang. pattern matching) uczy się na podstawie obrazu wzorcowego, jak wygląda prawidłowy obiekt, a następnie potrafi znajdować podobne obiekty w nowych obrazach – to również forma uczenia maszynowego polegająca na treningu klasyfikatora cech obrazu.

Jak to działa? Najpierw potrzebny jest zbiór danych treningowych – w przypadku wizji są to najczęściej obrazy obiektów opatrzone etykietami (np. które obrazy przedstawiają produkt dobry, a które wadliwy, lub jakie klasy obiektów się na nich znajdują). Następnie wybierany jest algorytm ML i trenowany za pomocą tych danych, co zwykle polega na optymalizacji pewnej funkcji błędu tak, by model poprawnie przewidywał etykiety obrazów. W tradycyjnym ML często konieczne jest wcześniejsze przetworzenie danych – zamiast podawać surowy obraz, inżynier wyodrębnia z niego istotne cechy (tzw. feature extraction), np. statystyki kolorów, teksturę, kształt obrysu. Tak przygotowane cechy (wektor cech) są dopiero wejściem do algorytmu uczącego się. Wymaga to wiedzy domenowej – ekspert musi wskazać, jakie cechy obrazu mogą być istotne do rozróżnienia klas. Na przykład przy klasyfikacji owoców prosty model ML może korzystać z cechy kolistości obiektu i powierzchni w pikselach, by odróżnić jabłka od gruszek. Innymi popularnymi algorytmami ML stosowanymi w analizie obrazów są m.in.:

  • k-NN (k najbliższych sąsiadów) – metoda klasyfikacji polegająca na przypisywaniu klasy na podstawie większości etykiet wśród k najbardziej podobnych (w przestrzeni cech) znanych przykładów; jest prosta, szybka i skuteczna m.in. przy rozpoznawaniu prostych wzorców i również stosowana w OCR.
  • Drzewa decyzyjne i lasy losowe – algorytmy tworzące model w formie drzewa warunków (lub wielu drzew), które na podstawie cech obrazu podejmują decyzje o klasyfikacji; sprawdzają się w mniej złożonych zadaniach, gdzie można wyodrębnić konkretne reguły decyzyjne czy przy analizie danych hiperspektralnych.
  • Płytkie sieci neuronowe (np. MLP) – modele inspirowane siecią neuronów, ale zawierające tylko jedną lub kilka warstw ukrytych; mogą uchwycić nieliniowe zależności w danych, jednak ustępują dokładnością głębokim sieciom neuronowym przy bardziej złożonych zadaniach.

Zalety tradycyjnego ML

W porównaniu do później omówionego deep learningu, klasyczne algorytmy ML zazwyczaj potrzebują mniej danych treningowych i dają się szybciej wytrenować. Często wystarczy kilkadziesiąt czy kilkaset obrazów, by skutecznie nauczyć model rozróżniania 2–3 klas prostych obiektów. Co więcej, modele te są zazwyczaj lżejsze obliczeniowo – trening trwa od sekund do minut, a nie dni. Ich działanie (inferencia) bywa możliwe nawet na słabszych procesorach bez sprzętowych akceleratorów, co ułatwia wdrożenie na typowych stanowiskach przemysłowych. W literaturze podkreśla się, że tradycyjne algorytmy ML mogą w wielu zadaniach wizji maszynowej być bardziej efektywne niż rozbudowane sieci neuronowe – zwłaszcza gdy problem jest dobrze zdefiniowany, a zmienność danych ograniczona. Dodatkowo wynik działania modeli ML bywa łatwiejszy do interpretacji (np. można prześledzić, która cecha zadecydowała o klasyfikacji), podczas gdy głębokie sieci neuronowe są często postrzegane jako “czarne skrzynki”.

Ograniczenia ML

Głównym wyzwaniem jest wspomniana potrzeba ekstrakcji cech – opracowanie odpowiedniego zestawu cech bywa czasochłonne i wymaga specjalistycznej wiedzy, a mimo to model może być wrażliwy na zmiany warunków (np. inne oświetlenie zmienia wartości cech). Modele ML zazwyczaj radzą sobie gorzej z bardzo złożonymi, nieuporządkowanymi obrazami, gdzie niełatwo ręcznie wskazać cechy odróżniające klasy. Gdy liczba możliwych wariacji obiektu jest duża (kształt, tekstura, ułożenie, tło itp.), wydajność płytkich modeli drastycznie spada – w takich sytuacjach lepsze są sieci neuronowe, które potrafią same nauczyć się złożonych reprezentacji danych.

Sztuczne sieci neuronowe

Sieci neuronowe to rodzina algorytmów uczenia maszynowego wzorowanych na strukturze biologicznego mózgu. Model sieci składa się z wielu prostych jednostek obliczeniowych – neuronów – zorganizowanych w warstwy, które przetwarzają sygnały wejściowe i przekazują wynik do kolejnych warstw. Każde połączenie między neuronami ma przypisaną wagę, która określa siłę wpływu sygnału; podczas uczenia sieci wagi te są modyfikowane, aby sieć dawała pożądane odpowiedzi. Sieci neuronowe mogą aproksymować skomplikowane zależności nieliniowe – już jedna warstwa ukryta pozwala modelowi uczyć się prostych nieliniowych wzorców, a dodawanie kolejnych warstw umożliwia reprezentowanie coraz bardziej abstrakcyjnych cech danych (np. w pierwszych warstwach sieć może wykrywać krawędzie na obrazie, w kolejnych – kombinacje krawędzi tworzące określone kształty, itd.).

W kontekście analizy obrazu sztuczne sieci neuronowe były stosowane już w XX wieku – klasycznym przykładem jest rozpoznawanie cyfr pisanych odręcznie. Już w latach 90. niewielkie sieci konwolucyjne potrafiły rozpoznawać kod pocztowy na kopercie z wysoką skutecznością, choć dysponowały ułamkiem mocy dzisiejszych modeli. Takie płytkie sieci (np. perceptron wielowarstwowy – MLP) zwykle zawierały 1–3 warstwy ukryte i niewielką liczbę neuronów. Były one mniej wymagające obliczeniowo od współczesnych głębokich sieci, przez co możliwe do trenowania i uruchamiania na ówczesnym sprzęcie, ale też mniej wydajne w zadaniach o dużej złożoności (np. rozpoznawanie tysięcy klas obiektów)a. Dla wielu prostych zastosowań przemysłowych MLP lub inne płytkie sieci nadal mogą być użyteczne – np. do analiz, gdzie sygnał da się opisać kilkoma istotnymi zmiennymi. Jednak prawdziwy przełom w widzeniu maszynowym nastąpił wraz z rozwojem głębokiego uczenia, czyli sieci neuronowych o wielu warstwach, które znacząco zwiększyły możliwości systemów wizyjnych.

Głębokie uczenie (Deep Learning)

Deep learning to podzbiór uczenia maszynowego, w którym wykorzystuje się głębokie (wielowarstwowe) sieci neuronowe do automatycznej analizy danych. Mówiąc najprościej, deep learning oznacza trenowanie sztucznych sieci neuronowych zawierających dużo więcej warstw ukrytych niż tradycyjne modele. O ile podstawowa sieć neuronowa może mieć jedną czy dwie warstwy ukryte, o tyle sieci głębokie mogą ich mieć dziesiątki, a nawet setki – dzięki czemu potrafią uczyć się bardziej złożonych reprezentacji danych. W kontekście obrazów najpopularniejszą architekturą są konwolucyjne sieci neuronowe (CNN), które są zaprojektowane specjalnie do przetwarzania danych obrazowych. CNN automatycznie ekstraktują cechy z obrazów przeglądając je filtrami (jądrami konwolucyjnymi) – pierwsze warstwy uczą się wykrywać proste wzory (krawędzie, tekstury), kolejne – bardziej złożone kształty czy obiekty. W efekcie głębokie sieci uczą się cech bez udziału człowieka, minimalizując potrzebę ręcznego definiowania feature’ów. To kluczowa różnica: sieć sama odkrywa, na co zwracać uwagę, optymalizując się do zadania, co czyni deep learning niezwykle skutecznym w zadaniach, gdzie nie wiemy z góry, jakie cechy są istotne.

Zastosowania deep learning w wizji maszynowej:

Głębokie uczenie otworzyło drogę do automatyzacji wielu zadań, które dotąd były trudne lub niemożliwe do zrealizowania za pomocą reguł czy płytkich modeli. W przemyśle wykorzystuje się je m.in. do:

  • Detekcji anomalii i wad – sieci uczą się rozpoznawać, czy dany obraz odstaje od wzorca (np. wykrycie zarysowania, skazy materiałowej czy błędu nadruku, nawet jeśli defekty mają różnorodne kształty).
  • Klasyfikacji obiektów na obrazach – np. rozpoznawanie rodzaju produktu, ocena jakości (dobry/zły), sortowanie wizualne towarów (jak rozdzielanie owoców według klasy jakości).
  • Detekcji i lokalizacji obiektów – wskazywanie, gdzie na obrazie znajduje się obiekt określonego typu (np. zliczanie elementów na taśmie, wykrywanie obecności wszystkich komponentów w zmontowanym module elektronicznym).
  • Segmentacji obrazu – dzielenia obrazu na obszary należące do określonych klas (np. segmentacja defektów od tła powierzchni, wydzielenie regionu zainteresowania do dalszej analizy).
  • Odczytywania tekstu (OCR) i rozpoznawania znaków – nowoczesne algorytmy Deep OCR potrafią odczytywać nawet trudne, zniekształcone, zmienne czy niskokontrastowe napisy na produkcie, gdzie tradycyjne OCR zawodzi.

Co istotne, deep learning często przewyższa człowieka w powtarzalnej kontroli wzrokowej – sieci są w stanie wykryć subtelne różnice niewidoczne dla oka i robią to z wysoką powtarzalnością, bez zmęczenia. Przykładowo, dla ludzkiego inspektora ocena każdej sztuki owocu pod kątem wszystkich możliwych wad jest żmudna i obarczona subiektywizmem; sieć neuronowa może nauczyć się akceptowalnego zakresu naturalnych wariacji (plamki, przebarwienia skórki itp.) i jednolicie stosować kryteria jakości.

Wymagania i wyzwania deep learning

Cena za tę skuteczność jest jednak wysoka. Modele deep learning z reguły wymagają ogromnych zbiorów danych treningowych oraz znacznej mocy obliczeniowej do nauki. Trening głębokiej sieci to iteracyjny proces optymalizacji tysięcy czy milionów parametrów – typowo potrzeba do tego setek lub tysięcy obrazów i wielogodzinnych obliczeń na wydajnych procesorach graficznych (GPU) lub tensorowych (TPU). Proces trenowania głębokiego modelu jest czasochłonny – często trwa wiele godzin, dni, a w skrajnych przypadkach tygodni. Już wytrenowany model można co prawda zoptymalizować pod inferencję (działanie) w czasie rzeczywistym, ale i tak dla bardziej złożonych sieci często potrzebne jest akcelerowane wykonanie (GPU, układy FPGA/ASIC, specjalne NPU) szczególnie, gdy chcemy przetwarzać kilkadziesiąt obrazów na sekundę.

Proces wykorzystanie głębokiego uczenia w systemach wizyjnych może uprościć wykorzystanie przemysłowych pakietów oprogramowania, dostarczających wstępnie sparametryzowanych modeli sieci pod konkretne zadania (np.: wykrywanie anomalii, lokalizacja obiektów, klasyfikacja obiektów) oraz narzędzia do przygotowania zbiorów uczących (w tym augmentacji obrazów dla zwiększenia poziomu abstrakcji przy niskolicznych zbiorach). Przykładem takiego pakietu jest Zebra Aurora Vision Deep Learning™, który znacząco skraca czas trenowania, redukuje wymaganą liczebność zbioru uczącego, zapewnia kompresję sieci i wydajny silnik inferencji. Oprogramowanie zapewnia ponadto gotowy, nie wymagający trenowania model do odczytu znaków (OCR).

Innym wyzwaniem jest wyjaśnialność – jak wspomniano, deep learning to często „czarna skrzynka”. Trudno zinterpretować, na jakiej podstawie sieć podjęła decyzję (np. wskazała defekt). W zastosowaniach przemysłowych, gdzie kluczowa jest wiarygodność i audytowalność systemu, może to rodzić pytania (choć istnieją metody XAI – wyjaśnialnej SI – starające się rzucić światło na działanie sieci). Mimo tych wad, korzyści z zastosowania deep learning w postaci skoku dokładności i możliwości są na tyle duże, że technologia ta stała się filarem nowoczesnych systemów wizyjnych w przemyśle.

Wymagana moc obliczeniowa i prędkość działania lokalnie (bez wykorzystania chmury)

Przetwarzanie lokalne (edge) odgrywa kluczową rolę w przemysłowych systemach wizyjnych, ponieważ wymagają one działania w czasie rzeczywistym i niezawodności niezależnej od połączenia internetowego. W aplikacjach takich jak kontrola na linii produkcyjnej liczy się każda milisekunda – decyzja (np. odrzucenie wadliwego produktu) musi zapaść natychmiast, dlatego obliczenia wykonywane są bezpośrednio na urządzeniu, zamiast wysyłać obraz do serwera w chmurze. Wyeliminowanie opóźnień sieciowych gwarantuje deterministyczny, niski czas reakcji, co jest krytyczne dla synchronizacji z szybko poruszającymi się taśmociągami czy robotami. Dodatkowym atutem działania lokalnego jest bezpieczeństwo – obrazy (nierzadko przedstawiające własność intelektualną firmy, np. nowe produkty) nie opuszczają fabryki, więc łatwiej spełnić wymagania ochrony danych i prywatności.

Klasyczne systemy wizyjne i proste modele ML zazwyczaj zadowalają się standardowym sprzętem: często wystarcza przemysłowy komputer klasy PC lub wbudowany procesor w inteligentnej kamerze, by osiągnąć wymaganą szybkość. Jak wspomniano, tradycyjne algorytmy oparte na regułach i prostsze modele uczące się potrzebują nieporównanie mniej mocy obliczeniowej niż głębokie sieci – ich zapotrzebowanie na CPU/GPU jest minimalne, a trening trwa krótko. Wiele bibliotek ML (np. Zebra Aurora Vision, OpenCV) działa wydajnie na procesorach CPU i nie wymaga specjalistycznego sprzętu ani usług w chmurze. Dzięki temu implementacja inspekcji opartej na ML (np. SVM klasyfikującego wady na podstawie kilku cech) może nie wymagać żadnych nakładów na infrastrukturę – modele te można uruchomić na typowych komputerach przemysłowych, zachowując przy tym przetwarzanie obrazu w czasie rzeczywistym (nawet kilkanaście milisekund na obraz).

Deep learning natomiast stawia większe wymagania. W fazie trenowania modelu konieczne jest użycie sprzętu akcelerowanego – procesory GPU są praktycznie standardem, jako że potrafią one równolegle przetwarzać tysiące operacji potrzebnych do uczenia sieci. Bez GPU nauka z dużych zbiorów danych trwałaby niewspółmiernie długo. Co więcej, nawet wnioskowanie (inference) głębokich sieci bywa zasobożerne – zwłaszcza gdy model jest rozbudowany i ma przetwarzać wiele klatek na sekundę. O ile pojedynczą predykcję można często uzyskać w ułamku sekundy na CPU, o tyle osiągnięcie np. 60 klatek/s przy dużej sieci CNN może wymagać akceleracji. Dlatego w praktyce wiele rozwiązań wykorzystuje lokalne GPU lub specjalistyczne kamery smart z wbudowanymi akceleratorami, które potrafią wykonywać sieci wizyjne bezpośrednio na strumieniu obrazu z kamery.

Podsumowując, uczenie maszynowe i deep learning można z powodzeniem zaimplementować na urządzeniach lokalnych, ale trzeba dobrać odpowiednią platformę sprzętową do wymagań aplikacji. Dla prostych zadań klasyfikacji wystarczy CPU, dla bardziej złożonych – GPU lub układ specjalizowany. Ważne jest także optymalizowanie modeli: w zastosowaniach edge często korzysta się z technik takich jak quantization czy pruning (redukcja rozmiaru sieci), by zmniejszyć obciążenie obliczeniowe kosztem minimalnej utraty dokładności. Celem jest osiągnięcie stabilnego czasu odpowiedzi systemu wizyjnego, który sprosta tempu produkcji.

Podsumowanie

Rozwiązania sztucznej inteligencji coraz śmielej wkraczają do przemysłowych systemów wizyjnych, podnosząc ich skuteczność i elastyczność. Sztuczna inteligencja stanowi ogólne pojęcie obejmujące zarówno tradycyjne algorytmy oparte na regułach, jak i nowoczesne podejścia uczące się. W ramach AI wyróżniamy uczenie maszynowe (ML) – czyli metody, w których model uczy się na podstawie danych. Klasyczne algorytmy ML, jak drzewa decyzyjne, SVM czy płytkie sieci neuronowe, już od lat usprawniają zadania wizji maszynowej, szczególnie tam, gdzie problem jest dobrze zdefiniowany i cechy dają się wyekstrahować ręcznie.

Sieci neuronowe to fundament większości współczesnych osiągnięć w AI – naśladują biologiczny mózg i potrafią uczyć się złożonych nieliniowych zależności. Gdy sieć neuronowa staje się bardzo głęboka, mówimy o głębokim uczeniu (deep learningu) – podejściu, które obecnie dominuje w zaawansowanej analizie obrazów. Deep learning umożliwił rozwiązanie problemów wcześniej nieosiągalnych: od niezawodnego wykrywania drobnych wad powierzchni, przez rozpoznawanie obiektów w skomplikowanych scenach, po interpretację obrazów medycznych czy sterowanie pojazdami autonomicznymi. Wybór metody zależy od konkretnego zadania: prostota vs. złożoność, interpretowalność vs. dokładność, wymagania danych i mocy obliczeniowej – to wszystko czynniki, które trzeba brać pod uwagę. Często najlepsze rezultaty daje połączenie podejść: np. klasyczny algorytm wizyjny precyzyjnie lokalizuje obszar zainteresowania, a sieć deep learning ocenia, czy znajduje się tam defekt. Niezależnie od metody, kluczowe jest, że współczesne systemy wizyjne mogą działać w czasie rzeczywistym na urządzeniach lokalnych, co zawdzięczamy zarówno postępowi hardware (szybkie procesory, akceleratory AI), jak i usprawnieniom w samych algorytmach. W efekcie przemysł otrzymał potężne narzędzia do automatyzacji kontroli jakości i procesów produkcyjnych, zwiększając wydajność i obniżając koszty przy jednoczesnym zapewnieniu wysokiej jakości produktów.