peň Ako funguje klasifikácia obrázkov? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Ako funguje klasifikácia obrázkov?

mm
Aktualizované on

Ako môže váš telefón určiť, čo je objekt, len tak, že ho odfotíte? Ako webové stránky sociálnych médií automaticky označujú ľudí na fotografiách? Dosahuje sa to rozpoznávaním a klasifikáciou obrazu pomocou AI.

Rozpoznanie a klasifikácia obrázkov je to, čo umožňuje mnohé z najpôsobivejších úspechov umelej inteligencie. Ako sa však počítače učia rozpoznávať a klasifikovať obrázky? V tomto článku sa budeme zaoberať všeobecnými metódami, ktoré počítače používajú na interpretáciu a detekciu obrázkov, a potom sa pozrieme na niektoré z najpopulárnejších metód klasifikácie týchto obrázkov.

Pixel-level vs. Object-Based Classification

Techniky klasifikácie obrázkov možno rozdeliť do dvoch rôznych kategórií: klasifikácia založená na pixeloch a klasifikácia na základe objektov.

Pixely sú základné jednotky obrázka a analýza pixelov je primárnym spôsobom klasifikácie obrázkov. Algoritmy klasifikácie však môžu na klasifikáciu obrazu použiť iba spektrálne informácie v rámci jednotlivých pixelov alebo preskúmať priestorové informácie (pixely v blízkosti) spolu so spektrálnymi informáciami. Metódy klasifikácie založené na pixeloch využívajú iba spektrálne informácie (intenzitu pixelu), zatiaľ čo metódy klasifikácie založené na objektoch zohľadňujú spektrálne informácie pixelov aj priestorové informácie.

Na klasifikáciu založenú na pixeloch sa používajú rôzne klasifikačné techniky. Tieto zahŕňajú minimálnu vzdialenosť k priemeru, maximálnu pravdepodobnosť a minimálnu vzdialenosť Mahalanobis. Tieto metódy vyžadujú, aby boli známe priemery a odchýlky tried a všetky fungujú tak, že skúmajú „vzdialenosť“ medzi priemerom triedy a cieľovými pixelmi.

Metódy klasifikácie založené na pixeloch sú obmedzené skutočnosťou, že nemôžu používať informácie z iných blízkych pixelov. Naproti tomu metódy klasifikácie založené na objektoch môžu zahŕňať iné pixely, a preto na klasifikáciu položiek používajú aj priestorové informácie. Všimnite si, že „objekt“ sa vzťahuje iba na súvislé oblasti pixelov a nie na to, či sa v tejto oblasti pixelov nachádza cieľový objekt alebo nie.

Predspracovanie obrazových údajov na detekciu objektov

Najnovšie a najspoľahlivejšie systémy klasifikácie obrázkov primárne využívajú schémy klasifikácie na úrovni objektov a pre tieto prístupy musia byť údaje obrázkov pripravené špecifickými spôsobmi. Objekty/regióny je potrebné vybrať a vopred spracovať.

Pred klasifikáciou obrázka a objektov/oblastí v rámci tohto obrázka musí počítač interpretovať údaje, ktoré tento obrázok obsahujú. Snímky je potrebné vopred spracovať a pripraviť na vstup do klasifikačného algoritmu, a to prostredníctvom detekcie objektov. Toto je kritická časť prípravy údajov a prípravy obrázkov na trénovanie klasifikátora strojového učenia.

Detekcia objektov sa vykonáva pomocou rôznych metód a techník. Po prvé, to, či existuje alebo nie je viacero objektov záujmu alebo jeden objekt záujmu, má vplyv na spôsob spracovania obrazu. Ak existuje len jeden objekt záujmu, obraz prechádza lokalizáciou obrazu. Pixely, ktoré tvoria obrázok, majú číselné hodnoty, ktoré počítač interpretuje a používa na zobrazenie správnych farieb a odtieňov. Okolo predmetu záujmu je nakreslený objekt známy ako ohraničujúci rámček, ktorý počítaču pomáha zistiť, ktorá časť obrázka je dôležitá a aké hodnoty pixelov definujú objekt. Ak sa na obrázku nachádza viacero objektov záujmu, použije sa technika nazývaná detekcia objektov na aplikovanie týchto ohraničujúcich polí na všetky objekty v rámci obrázka.

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

Ďalšou metódou predspracovania je segmentácia obrazu. Segmentácia obrazu funguje tak, že rozdelí celý obraz na segmenty na základe podobných vlastností. Rôzne oblasti obrázka budú mať podobné hodnoty pixelov v porovnaní s inými oblasťami obrázka, takže tieto pixely sú zoskupené do obrazových masiek, ktoré zodpovedajú tvaru a hraniciam relevantných objektov v rámci obrázka. Segmentácia obrázka pomáha počítaču izolovať vlastnosti obrázka, ktoré mu pomôžu klasifikovať objekt, podobne ako to robia ohraničujúce rámčeky, ale poskytujú oveľa presnejšie štítky na úrovni pixelov.

Po dokončení detekcie objektu alebo segmentácie obrazu sa na príslušné oblasti aplikujú štítky. Tieto štítky sa privádzajú spolu s hodnotami pixelov tvoriacich objekt do algoritmov strojového učenia, ktoré sa naučia vzory spojené s rôznymi štítkami.

Algoritmy strojového učenia

Keď sú údaje pripravené a označené, údaje sa vložia do algoritmu strojového učenia, ktorý na nich trénuje. Pokryjeme niektoré z najbežnejších druhov strojového učenia algoritmy klasifikácie obrázkov nižšie.

K-Najbližší susedia

K-Nearest Neighbors je klasifikačný algoritmus, ktorý skúma najbližšie tréningové príklady a pozerá sa na ich označenia, aby zistil najpravdepodobnejšie označenie pre daný testovací príklad. Pokiaľ ide o klasifikáciu obrázkov pomocou KNN, uložia sa vektory a označenia cvičných obrázkov a do algoritmu sa počas testovania odovzdá iba vektor vlastností. Vektory trénovacích a testovacích funkcií sa potom navzájom porovnávajú kvôli podobnosti.

Klasifikačné algoritmy založené na KNN sú mimoriadne jednoduché a pomerne ľahko si poradia s viacerými triedami. KNN však vypočítava podobnosť na základe všetkých funkcií rovnako. To znamená, že môže byť náchylný na nesprávnu klasifikáciu, keď je poskytnutý s obrázkami, kde je pre klasifikáciu obrázka dôležitá iba podskupina znakov.

Podpora vektorové stroje

Podporné vektorové stroje sú klasifikačnou metódou, ktorá umiestňuje body do priestoru a potom kreslí deliace čiary medzi bodmi, pričom objekty umiestňuje do rôznych tried v závislosti od toho, na ktorú stranu deliacej roviny body dopadajú. Podporné vektorové stroje sú schopné vykonávať nelineárnu klasifikáciu pomocou techniky známej ako kernel trik. Zatiaľ čo klasifikátory SVM sú často veľmi presné, podstatnou nevýhodou klasifikátorov SVM je, že majú tendenciu byť obmedzené veľkosťou aj rýchlosťou, pričom rýchlosť utrpí, keď sa veľkosť zväčší.

Viacvrstvové perceptróny (neurónové siete)

Viacvrstvové perceptróny, tiež nazývané modely neurónových sietí, sú algoritmy strojového učenia inšpirované ľudským mozgom. Viacvrstvové perceptróny sa skladajú z rôznych vrstiev, ktoré sú navzájom spojené, podobne ako sú spojené neuróny v ľudskom mozgu. Neurónové siete vytvárajú predpoklady o tom, ako vstupné funkcie súvisia s triedami údajov a tieto predpoklady sa upravujú v priebehu tréningu. Jednoduché modely neurónových sietí, ako je viacvrstvový perceptrón, sú schopné učiť sa nelineárne vzťahy a v dôsledku toho môžu byť oveľa presnejšie ako iné modely. Modely MLP však trpia niektorými významnými problémami, ako je prítomnosť nekonvexných stratových funkcií.

Algoritmy hlbokého učenia (CNN)

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

Najbežnejšie používaným algoritmom klasifikácie obrázkov v poslednej dobe je konvolučná neurónová sieť (CNN). CNN sú prispôsobené verzie neurónových sietí, ktoré kombinujú viacvrstvové neurónové siete so špecializovanými vrstvami, ktoré sú schopné extrahovať vlastnosti najdôležitejšie a relevantné pre klasifikáciu objektu. CNN môžu automaticky objavovať, generovať a učiť sa funkcie obrázkov. To výrazne znižuje potrebu manuálneho označovania a segmentovania obrázkov, aby sa pripravili na algoritmy strojového učenia. Majú tiež výhodu oproti sieťam MLP, pretože si dokážu poradiť s nekonvexnými stratami.

Konvolučné neurónové siete dostali svoj názov podľa toho, že vytvárajú „konvolúcie“. CNN fungujú tak, že zoberiete filter a posuniete ho cez obrázok. Môžete si to predstaviť ako prezeranie častí krajiny cez pohyblivé okno, pričom sa sústredíte len na prvky, ktoré sú cez okno kedykoľvek viditeľné. Filter obsahuje číselné hodnoty, ktoré sú vynásobené hodnotami samotných pixelov. Výsledkom je nový rám alebo matica plná čísel, ktoré predstavujú pôvodný obrázok. Tento proces sa opakuje pre zvolený počet filtrov a potom sa snímky spoja do nového obrázka, ktorý je o niečo menší a menej zložitý ako pôvodný obrázok. Technika nazývaná pooling sa používa na výber len najdôležitejších hodnôt v rámci obrázku a cieľom je, aby konvolučné vrstvy nakoniec extrahovali len tie najvýraznejšie časti obrázku, ktoré pomôžu neurónovej sieti rozpoznať objekty na obrázku.

Konvolučné neurónové siete sa skladajú z dvoch rôznych častí. Konvolučné vrstvy sú to, čo extrahuje vlastnosti obrazu a konvertuje ich do formátu, ktorý môžu vrstvy neurónovej siete interpretovať a učiť sa z neho. Skoré konvolučné vrstvy sú zodpovedné za extrakciu najzákladnejších prvkov obrazu, ako sú jednoduché čiary a hranice. Stredné konvolučné vrstvy začínajú zachytávať zložitejšie tvary, ako sú jednoduché krivky a rohy. Neskoršie, hlbšie konvolučné vrstvy extrahujú vysokoúrovňové vlastnosti obrazu, ktoré sa prenášajú do časti neurónovej siete CNN a sú to, čo sa klasifikátor učí.

Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.