Podstawy AI

Jak działa klasyfikacja obrazÃģw?

mm
Dodaj Unite.AI do preferowanych ÅšrÃģdeł w Google

Jak telefon moÅže określić, co jest na zdjęciu, po prostu wykonując jego fotografię? Jak strony internetowe społecznościowe automatycznie tagują ludzi na zdjęciach? To wszystko dzięki rozpoznawaniu i klasyfikacji obrazÃģw za pomocą sztucznej inteligencji.

Rozpoznawanie i klasyfikacja obrazÃģw to podstawa wielu najbardziej imponujących osiągnięć sztucznej inteligencji. Ale jak komputery uczą się wykrywać i klasyfikować obrazy? W tym artykule omÃģwimy ogÃģlne metody, ktÃģrych komputery uÅžywają do interpretowania i wykrywania obrazÃģw, a następnie przyjrzymy się niektÃģrym z najpopularniejszych metod klasyfikacji tych obrazÃģw.

Klasyfikacja na poziomie pikseli vs. klasyfikacja oparta na obiektach

Techniki klasyfikacji obrazÃģw moÅžna podzielić na dwie głÃģwne kategorie: klasyfikację opartą na pikselach i klasyfikację opartą na obiektach.

Piksele są podstawowymi jednostkami obrazu, a analiza pikseli jest podstawowym sposobem, w jaki wykonuje się klasyfikację obrazu. Jednak algorytmy klasyfikacji mogą uÅžywać tylko informacji spektralnej w poszczegÃģlnych pikselach, aby zaklasyfikować obraz, lub badać informację przestrzenną (piksele w pobliÅžu) wraz z informacją spektralną. Metody klasyfikacji opartej na pikselach wykorzystują tylko informację spektralną (natęŞenie piksela), podczas gdy metody klasyfikacji opartej na obiektach biorą pod uwagę zarÃģwno informację spektralną, jak i przestrzenną.

Istnieją rÃģÅžne techniki klasyfikacji stosowane w klasyfikacji opartej na pikselach. NaleŞą do nich minimalna odległość do średniej, maksymalna wiarygodność i minimalna odległość Mahalanobisa. Te metody wymagają, aby średnie i wariancje klas były znane, a wszystkie one działają, badając “odległość” między średnimi klas a pikselami docelowymi.

Metody klasyfikacji opartej na pikselach są ograniczone tym, Åže nie mogą wykorzystywać informacji z innych pobliskich pikseli. W przeciwieństwie do tego, metody klasyfikacji opartej na obiektach mogą uwzględniać inne piksele i dlatego wykorzystują rÃģwnieÅž informację przestrzenną do klasyfikacji obiektÃģw. NaleÅžy zauwaÅžyć, Åže “obiekt” odnosi się tylko do sąsiadujących obszarÃģw pikseli, a nie do tego, czy w tym obszarze pikseli znajduje się obiekt docelowy.

Przetwarzanie danych obrazu do wykrywania obiektÃģw

Najnowsze i najbardziej niezawodne systemy klasyfikacji obrazÃģw głÃģwnie wykorzystują schematy klasyfikacji na poziomie obiektÃģw, a do tych podejść dane obrazu muszą być przygotowane w określony sposÃģb. Obiekty/obszary muszą być wybrane i przetworzone.

Przed tym, jak obraz i obiekty/obszary w tym obrazie mogą być zaklasyfikowane, dane, ktÃģre tworzą ten obraz, muszą być zinterpretowane przez komputer. Obrazy muszą być przetworzone i przygotowane do wprowadzenia do algorytmu klasyfikacji, co jest robione za pomocą wykrywania obiektÃģw. Jest to krytyczny etap przygotowania danych i przygotowania obrazÃģw do trenowania klasyfikatora sztucznej inteligencji.

Wykrywanie obiektÃģw odbywa się za pomocą rÃģÅžnych metod i technik. Na początek, czy jest jeden obiekt zainteresowania, czy wiele obiektÃģw zainteresowania, wpływa na to, jak przetwarzanie obrazu jest obsługiwane. Jeśli jest tylko jeden obiekt zainteresowania, obraz przechodzi przez lokalizację obrazu. Piksele, ktÃģre tworzą obraz, mają wartości numeryczne, ktÃģre są interpretowane przez komputer i wykorzystywane do wyświetlania odpowiednich kolorÃģw i odcieni. Obiekt znany jako bounding box jest rysowany wokÃģł obiektu zainteresowania, co pomaga komputerowi zrozumieć, jaka część obrazu jest waÅžna i jakie wartości pikseli definiują obiekt. Jeśli w obrazie znajduje się wiele obiektÃģw zainteresowania, technika znana jako wykrywanie obiektÃģw jest wykorzystywana do zastosowania tych bounding boxÃģw do wszystkich obiektÃģw w obrazie.

Photo: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

Inną metodą przetwarzania jest segmentacja obrazu. Segmentacja obrazu działa, dzieląc cały obraz na segmenty na podstawie podobnych cech. RÃģÅžne obszary obrazu będą miały podobne wartości pikseli w porÃģwnaniu z innymi obszarami obrazu, więc te piksele są grupowane razem w maski obrazu, ktÃģre odpowiadają kształtowi i granicom odpowiednich obiektÃģw w obrazie. Segmentacja obrazu pomaga komputerowi izolować cechy obrazu, ktÃģre pomogą mu zaklasyfikować obiekt, podobnie jak bounding boxy, ale zapewniają znacznie bardziej dokładne, poziome etykiety pikseli.

Po zakończeniu wykrywania obiektÃģw lub segmentacji obrazu, etykiety są stosowane do obszarÃģw w question. Te etykiety są podawane, wraz z wartościami pikseli, ktÃģre tworzą obiekt, do algorytmÃģw sztucznej inteligencji, ktÃģre uczą się wzorcÃģw skojarzonych z rÃģÅžnymi etykietami.

Algorytmy uczenia maszynowego

Gdy dane zostały przygotowane i oznaczone, dane są wprowadzane do algorytmu uczenia maszynowego, ktÃģry trenuje na danych. PoniÅžej omÃģwimy niektÃģre z najczęstszych rodzajÃģw algorytmÃģw klasyfikacji obrazÃģw uczenia maszynowego.

K-Nearest Neighbors

K-Nearest Neighbors to algorytm klasyfikacji, ktÃģry baduje najbliÅžsze przykłady szkoleniowe i patrzy na ich etykiety, aby ustalić najbardziej prawdopodobną etykietę dla danego przykładu testowego. W przypadku klasyfikacji obrazÃģw za pomocą KNN wektory cech i etykiety obrazÃģw szkoleniowych są przechowywane, a tylko wektor cech jest wprowadzany do algorytmu podczas testowania. Wektory cech szkoleniowych i testowych są następnie porÃģwnywane ze sobą pod kątem podobieństwa.

Algorytmy klasyfikacji oparte na KNN są bardzo proste i radzą sobie z wieloma klasami bez problemu. Jednak KNN oblicza podobieństwo na podstawie wszystkich cech rÃģwno. Oznacza to, Åže moÅže być podatny na błędną klasyfikację, gdy jest podawany z obrazami, w ktÃģrych tylko podzbiÃģr cech jest waÅžny dla klasyfikacji obrazu.

Support Vector Machines

Support Vector Machines to metoda klasyfikacji, ktÃģra umieszcza punkty w przestrzeni i rysuje linie rozdzielające między punktami, umieszczając obiekty w rÃģÅžnych klasach, w zaleÅžności od tego, po ktÃģrej stronie płaszczyzny rozdzielającej punkty się znajdują. Support Vector Machines są w stanie wykonywać nieliniową klasyfikację za pomocą techniki znanej jako sztuczka jądra. ChociaÅž klasyfikatory SVM są często bardzo dokładne, znaczącą wadą klasyfikatorÃģw SVM jest to, Åže tendencja jest ograniczona zarÃģwno rozmiarem, jak i szybkością, a szybkość cierpi, gdy rozmiar wzrasta.

Wielowarstwowe Perceptrony (Sieci Neuronowe)

Wielowarstwowe perceptrony, znane rÃģwnieÅž jako modele sieci neuronowych, to algorytmy uczenia maszynowego inspirowane ludzkim mÃģzgiem. Wielowarstwowe perceptrony składają się z rÃģÅžnych warstw, ktÃģre są połączone ze sobą, podobnie jak neurony w ludzkim mÃģzgu są połączone ze sobą. Sieci neuronowe zakładają pewne relacje między wejściowymi cechami a klasami danych i te załoÅženia są dostosowywane w trakcie trenowania. Proste modele sieci neuronowych, takie jak wielowarstwowy perceptron, są w stanie uczyć się nieliniowych relacji, a w rezultacie mogą być znacznie bardziej dokładne niÅž inne modele. Jednak modele MLP cierpią z powodu pewnych problemÃģw, takich jak obecność niewypukłych funkcji straty.

Algorytmy głębokiego uczenia (CNN)

Photo: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Najczęściej stosowanym algorytmem klasyfikacji obrazÃģw w ostatnich czasach jest Sieć Neuronowa Wielowarstwowa (CNN). CNN to są wersje sieci neuronowych dostosowane do łączenia wielowarstwowych sieci neuronowych z warstwami specjalnymi, ktÃģre są w stanie wyodrębnić najwaÅžniejsze cechy obrazu. CNN mogą automatycznie odkrywać, generować i uczyć się cech obrazu. To znacznie zmniejsza potrzebę ręcznego oznaczania i segmentowania obrazÃģw w celu przygotowania ich do algorytmÃģw uczenia maszynowego. Mają one rÃģwnieÅž przewagę nad sieciami MLP, poniewaÅž mogą radzić sobie z niewypukłymi funkcjami straty.

Sieci Neuronowe Wielowarstwowe otrzymują swoją nazwę, poniewaÅž tworzą “sploty”. CNN działają, biorąc filtr i przesuwając go po obrazie. MoÅžna to wyobrazić sobie jako patrzenie na fragmenty krajobrazu przez ruchome okno, koncentrując się tylko na cechach, ktÃģre są widoczne przez okno w danym momencie. Filtr zawiera wartości numeryczne, ktÃģre są mnoÅžone przez wartości pikseli samego obrazu. Wynikiem jest nowy klatka, lub macierz, pełna liczb, ktÃģra reprezentuje oryginalny obraz. Ten proces jest powtarzany dla określonej liczby filtrÃģw, a następnie klatki są łączone w nowy obraz, ktÃģry jest nieco mniejszy i mniej złoÅžony niÅž oryginalny obraz. Technika znana jako pooling jest wykorzystywana do wybrania tylko najwaÅžniejszych wartości w obrazie, a celem jest, aby warstwy konwolucyjne ostatecznie wyodrębniły tylko najbardziej istotne części obrazu, ktÃģre pomogą sieci neuronowej rozpoznać obiekty w obrazie.

Sieci Neuronowe Wielowarstwowe składają się z dwÃģch rÃģÅžnych części. Warstwy konwolucyjne są tym, co wyodrębnia cechy obrazu i konwertuje je na format, ktÃģry warstwy neuronowe mogą zinterpretować i nauczyć się. Wczesne warstwy konwolucyjne są odpowiedzialne za wyodrębnianie najbardziej podstawowych elementÃģw obrazu, takich jak proste linie i granice. Środkowe warstwy konwolucyjne zaczynają przechwytywać bardziej złoÅžone kształty, takie jak proste krzywe i rogi. PÃģÅšniejsze, głębsze warstwy konwolucyjne wyodrębniają cechy wysokiego poziomu obrazu, ktÃģre są wprowadzane do części neuronowej CNN, i są tym, czego uczy się klasyfikator.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, Åže pomoÅže innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.