Podstawy AI
Jak dziaÅa klasyfikacja obrazÃģw?
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.












