Piotr

A project manager with a penchant for solving all of his problems using mathematical equations.

18 October 2018

SVM – Machine learning w służbie analizy obrazu

postMainImage

Machine learning to dziedzina sztucznej inteligencji, z którą coraz częściej spotykamy się podczas korzystania z aplikacji mobilnych. Dzięki wykorzystaniu zaawansowanych algorytmów można tworzyć niebanalne produkty cyfrowe oparte na przetwarzaniu i analizie danych - w tym także obrazu i wideo. Jak to możliwe?

Wykorzystanie machine learning do analizy obrazu

Analiza obrazu to rozpoznanie i klasyfikacja znajdujących się na obrazie elementów. Choć człowiek jest w stanie z łatwością nazwać poszczególne elementy obrazu, dla maszyn są one jedynie zbiorem pikseli. Czy możliwa jest zatem inteligentna analiza obrazu przez urządzenia mobilne? Dzięki wykorzystaniu zaawansowanych algorytmów - i owszem. Tym razem przyjrzymy się jednak temu, jak można wykorzystać uczenie maszynowe i “nauczyć” maszynę rozpoznawania obiektów na obrazie.

Naszemu zespołowi zadaliśmy pytanie w jaki sposób, analizując obraz, odróżnić jabłko od banana. Ci, którzy mieli już do czynienia z analizą obrazu, od razu rozpoczęli wywody związane z sieciami neuronowymi. Pozostali natomiast, wskazali na parametryzację, czyli wyodrębnienie cech obiektów. Zdecydowaliśmy się pójść tym tropem i wykorzystać do tego SVM.

Czym jest SVM i do czego może przydać się w analizie obrazu?

SVM (Support Vector Machine) to abstrakcyjny koncept maszyny będącej klasyfikatorem. Nauka takiego modelu, czyli zasilenie go treścią (a właściwie charakterystykami obiektu), prowadzi do wyznaczenia hiperpłaszczyzny rozdzielającej obiekty należące do dwóch klas (czyli jabłko i „nie jabłko”). Przy takiej separacji ważny jest maksymalny margines, który pozwoli na jednoznaczne odróżnienie elementów.

Przykład maksymalnego marginesu:

Przykład trudnych do rozdzielenia obiektów:

A co oprócz jabłek i bananów możemy klasyfikować? Bardzo wiele. Za przykład posłuży nam tworzona w KISS digital aplikacja mobilna iChallenge, która pełni funkcję elektronicznego sędziego liniowego i rozstrzyga piłki sporne. Aplikacja ta uruchamiana jest na smartfonie, stabilnie zamontowanym na statywie. Dzięki temu analizowany z kamery obraz pozbawiony jest drgań, co daje dobrą bazę do automatycznej analizy obrazu.

Przykład rozpoznania i klasyfikacji obiektów przez SVM

Choć działanie iChallenge jest dużo bardziej skomplikowane i nie opiera się tylko na SVM, przykład tej aplikacji pozwoli nam zobrazować zadania stawiane przed takim modelem. Mianowicie - na każdej z klatek wideo musimy odnaleźć piłkę tenisową, by nakreślić finalnie jej trajektorię lotu. Wstępna analiza obrazu typuje obiekty, które mogą być piłką tenisową - ale równie dobrze mogą być to żółte czapki z daszkiem, żółte opaski na ramię, czy inne fragmenty ubioru tenisisty. Jeśli jednak nasz model SVM jest poprawnie nauczony i potrafi stwierdzić, czy obiekt ma odpowiedni kształt (okrągły), odpowiedni kolor (kombinacja żółci i zieleni), a także rozkład tego koloru (piłka nie ma jednolitego koloru) - to obiekty będące piłką zostaną poprawnie zidentyfikowane. W praktyce oznacza to klasyfikację piłek do zbioru “zielonych punktów” z pierwszego wykresu, podczas gdy wszystkie inne elementy znajdą się w obszarze zbioru “czerwonych punktów”.

Zbiory te tworzone są przed operacją klasyfikacji obiektów. Często zleca się to zadanie testerowi, który manualnie oznacza każdy wycinek obrazu (w naszym przypadku tagując go flagą „piłka” lub „inny obiekt”). Zbiór danych uczących musi być spory i różnorodny na tyle, by pokryć maksymalnie duży obszar znanych nam przypadków wystąpienia obiektu - czyli wycinków obrazu, na których znajduje się pożądany obiekt. Nauczony w ten sposób model SVM po wdrożeniu pozwala aplikacji rozpoznawać dany element obrazu w czasie rzeczywistym.

iChallenge stanowi doskonały przykład zaawansowanej analizy obrazu przez aplikację mobilną. Analogiczny model SVM możemy z powodzeniem wykorzystać do rozpoznawania i klasyfikacji również innych obiektów na obrazie, w zależności od naszych potrzeb. Choć samodzielna budowa takiego modelu jest nieopłacalna, dostępnych jest wiele gotowych narzędzi i bibliotek, które ułatwiają to zadanie. Warto także skorzystać z pomocy specjalistów - porozmawiaj z nami, jeśli chcesz stworzyć aplikację mobilną opartą na analizie obrazu lub uczeniu maszynowym.

Piotr

A project manager with a penchant for solving all of his problems using mathematical equations. His analytical mind constantly makes him draw formulas and charts on a whiteboard.