Metodyka rozpoznawania obrazów

Dzisiaj postaram się określić jak będzie wyglądała procedura rozpoznawania obrazów moim projekcie Flover. Będzie składać się z paru głównych etapów, które są bardzo powszechne w tej dziedzinie i cały czas udoskonalane. Nie ukrywam, że będę mocno posiłkował się pracą M. Nilsback, która raportuje jedne z najlepszych wyników rozpoznawania rodzajów kwiatów spośród wymienionych w moim opisie projektu. Wynajdywanie nowych algorytmów w tej tematyce nie jest głównym założeniem projektu, więc czemu miałbym wyważać otwarte drzwi. W miarę zgłębiania konkretnych metod być może przyjdzie czas na ich udoskonalenia czy modyfikacje, co oczywiście chętnie tu przedstawię 🙂

Podstawowymi składowymi procesu będzie:

  1. Segmentacja
  2. Ekstrakcja cech
  3. Klasyfikacja

metodyka rozpoznawania obrazów
Źródło: http://www.robots.ox.ac.uk/~vgg/publications/2009/Nilsback09/nilsback09.pdf

    1. Segmentacja

Ten etap można właściwie określić jako wydzielanie obiektu, który nas interesuje od tła lub od innych obiektów. Jest to bardzo powszechny problem, zwłaszcza na początku procedury rozpoznawania obrazu. Większość z metod wymaga aktywnego uczestnictwa użytkownika w celu wstępnego określenia jaki obiekt chcemy wydzielić. Np. w metodzie "Magic Wand" użytkownik wyznacza regiony w środku obiektu a algorytm po skonstruowaniu histogramu pobranych kolorów odrzuca kolory, które występowały w nim rzadko. W "Intelligent Scissors" lub "Bayes Matte" musimy również mniej więcej określić krawędzie obiektu. Algorytm znajduje w zaznaczonym przez nas regionie właściwe krawędzie (moment największej różnicy w kolorze poszczególnych pikseli) i oddziela nimi obiekt od tła. Jednak największą popularnością ostatnio cieszy się metoda GrabCut, która robi bardzo duże wrażenie, gdyż potrafi oddzielić tło nawet wtedy, gdy jego tekstura i kolorystyka jest podobna do obiektu. Wymaga wstępnego określenia położenia obiektu poprzez wyznaczenie prostokątu, w którym znajduje się obiekt. Jednak większość kwiatów będzie się znacznie różnić kolorystycznie od tła, więc będzie można przyjąć, że szukany region pokrywa cały obszar obrazu. Metodę GrabCut postaram się niedługo zaimplementować i oczywiście opisać w następnych postach. Poniżej próbka możliwości niektórych metod segmentacji.
metodyka rozpoznawania obrazów
Źródło: https://cvg.ethz.ch/teaching/cvl/2012/grabcut-siggraph04.pdf

    1. Ekstrakcja cech

Gdy zajmujemy się już tylko naszym pożądanym obiektem mamy do dyspozycji kolejne algorytmy wyszukujące np. krawędzie, rogi obiektu, geometrię, rozkład kolorów, kształt, teksturę. Takie cechy mogą uformować wektor, który będzie po prostu opisywał nam obiekt w postaci liczb. Taka reprezentacja będzie jak najbardziej czytelna dla klasyfikatora, który w następnym etapie zdecyduje o przynależności do danej grupy.

    1. Klasyfikacja

Mając zestaw par: "wektor cech obiektu - nazwa gatunku kwiatu" należy uruchomić klasyfikator, który rozdziela w optymalny sposób wielowymiarową przestrzeń cech hiperpłaszczyznami. Aby przygotować klasyfikator do działania trzeba go uprzednio "wytrenować/nauczyć" na zbiorze danych. Po treningu, gdy przestrzeń będzie podzielona, klasyfikator może błyskawicznie odpowiedzieć w jakim "koszyku" znajduje się nowy obiekt, który poddajemy rozpoznaniu. Z bardziej znanych metod można wyróżnić Support Vector Machines, AdaBoost czy np. sieci neuronowe.

Bardzo ważnym elementem jest przygotowanie zbioru nauczającego. Będzie to zestaw obrazów, który zawiera po kilka-kilkadziesiąt przykładowych zdjęć kwiatów danego typu. Na szczęście takie zbiory są publicznie dostępne, więc na początku z nich skorzystam. Świetnie by było, aby za jakiś czas użytkownik miał możliwość aktywnego uczestnictwa w aktualizowaniu takiej bazy danych poprzez wgrywanie nowych zdjęć. Klasyfikator, poprzez cykliczny proces nauki, adaptowałby się zatem do nowych warunków i byłby zdolny rozpoznawać nowe, wprowadzane gatunki kwiatów.

Related Posts

Share Facebooktwitterreddit

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *