výhonek Jak funguje klasifikace obrázků? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Jak funguje klasifikace obrázků?

mm
aktualizováno on

Jak může váš telefon určit, co je objekt, pouhým vyfotografováním? Jak weby sociálních sítí automaticky označují lidi na fotkách? Toho je dosaženo pomocí rozpoznávání a klasifikace obrazu pomocí umělé inteligence.

Rozpoznávání a klasifikace obrázků je to, co umožňuje mnoho z nejpůsobivějších úspěchů umělé inteligence. Jak se však počítače naučí detekovat a klasifikovat obrázky? V tomto článku se budeme zabývat obecnými metodami, které počítače používají k interpretaci a detekci obrázků, a poté se podíváme na některé z nejpopulárnějších metod klasifikace těchto obrázků.

Pixel-Level vs. Object-Based Classification

Techniky klasifikace obrázků lze především rozdělit do dvou různých kategorií: klasifikace na základě pixelů a klasifikaci na základě objektů.

Pixely jsou základní jednotky obrázku a analýza pixelů je primární způsob klasifikace obrázků. Klasifikační algoritmy však mohou pro klasifikaci obrazu používat buď pouze spektrální informace v jednotlivých pixelech, nebo zkoumat prostorové informace (blízké pixely) spolu se spektrální informací. Metody klasifikace založené na pixelech využívají pouze spektrální informace (intenzitu pixelu), zatímco metody klasifikace založené na objektech berou v úvahu jak spektrální informace pixelu, tak prostorové informace.

Pro klasifikaci založenou na pixelech se používají různé klasifikační techniky. Patří mezi ně minimální vzdálenost ke střední hodnotě, maximální pravděpodobnost a minimální vzdálenost Mahalanobis. Tyto metody vyžadují, aby byly známy průměry a odchylky tříd, a všechny fungují na základě zkoumání „vzdálenosti“ mezi průměrem třídy a cílovými pixely.

Metody klasifikace založené na pixelech jsou omezeny tím, že nemohou používat informace z jiných blízkých pixelů. Naproti tomu metody klasifikace založené na objektech mohou zahrnovat jiné pixely, a proto také využívají prostorové informace ke klasifikaci položek. Všimněte si, že „objekt“ se vztahuje pouze na souvislé oblasti pixelů a nikoli na to, zda v této oblasti pixelů existuje cílový objekt či nikoli.

Předzpracování obrazových dat pro detekci objektů

Nejnovější a spolehlivé systémy klasifikace obrázků primárně používají klasifikační schémata na úrovni objektů a pro tyto přístupy musí být obrazová data připravena specifickým způsobem. Objekty/oblasti je třeba vybrat a předem zpracovat.

Než lze snímek a objekty/oblasti v tomto snímku klasifikovat, musí být data, která tento snímek obsahuje, interpretována počítačem. Snímky je třeba předem zpracovat a připravit pro vstup do klasifikačního algoritmu, a to prostřednictvím detekce objektů. Toto je kritická část přípravy dat a přípravy obrázků pro trénování klasifikátoru strojového učení.

Detekce objektů se provádí pomocí různé metody a techniky. Za prvé, to, zda existuje více objektů zájmu nebo jeden objekt zájmu, má vliv na způsob zpracování předzpracování obrazu. Pokud existuje pouze jeden objekt zájmu, obraz prochází lokalizací obrazu. Pixely, které tvoří obraz, mají číselné hodnoty, které počítač interpretuje a používá k zobrazení správných barev a odstínů. Objekt známý jako ohraničující rámeček je nakreslen kolem objektu zájmu, což pomáhá počítači zjistit, která část obrázku je důležitá a jaké hodnoty pixelů definují objekt. Pokud je na obrázku více objektů zájmu, použije se technika zvaná detekce objektů k aplikaci těchto ohraničujících rámečků na všechny objekty v obrázku.

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

Další metodou předzpracování je segmentace obrazu. Funkce segmentace obrazu spočívá v rozdělení celého obrazu na segmenty na základě podobných vlastností. Různé oblasti obrázku budou mít podobné hodnoty pixelů ve srovnání s jinými oblastmi obrázku, takže tyto pixely jsou seskupeny do obrazových masek, které odpovídají tvaru a hranicím relevantních objektů v obrázku. Segmentace obrazu pomáhá počítači izolovat vlastnosti obrazu, které mu pomohou klasifikovat objekt, podobně jako to dělají ohraničující rámečky, ale poskytují mnohem přesnější popisky na úrovni pixelů.

Po dokončení detekce objektu nebo segmentace obrazu jsou na příslušné oblasti aplikovány štítky. Tyto štítky jsou spolu s hodnotami pixelů tvořících objekt přiváděny do algoritmů strojového učení, které se naučí vzory spojené s různými štítky.

Algoritmy strojového učení

Jakmile jsou data připravena a označena, jsou data vložena do algoritmu strojového učení, který je trénuje. Probereme některé z nejběžnějších druhů strojového učení algoritmy klasifikace obrazu

K-Nejbližší sousedé

K-Nearest Neighbors je klasifikační algoritmus, který zkoumá nejbližší tréninkové příklady a dívá se na jejich štítky, aby zjistil nejpravděpodobnější štítek pro daný testovací příklad. Pokud jde o klasifikaci obrázků pomocí KNN, ukládají se příznakové vektory a popisky cvičných obrázků a během testování se do algoritmu předává pouze příznakový vektor. Vektory trénovacích a testovacích funkcí jsou pak vzájemně porovnány pro podobnost.

Klasifikační algoritmy založené na KNN jsou extrémně jednoduché a poměrně snadno si poradí s více třídami. KNN však počítá podobnost na základě všech vlastností stejně. To znamená, že může být náchylný k chybné klasifikaci, je-li poskytnut se snímky, kde je pro klasifikaci snímku důležitá pouze podmnožina znaků.

Podporujte vektorové stroje

Support Vector Machines je klasifikační metoda, která umísťuje body do prostoru a poté mezi body kreslí dělicí čáry, umisťuje objekty do různých tříd podle toho, na kterou stranu dělicí roviny body spadají. Podporné vektorové stroje jsou schopny provádět nelineární klasifikaci pomocí techniky známé jako kernel trik. Zatímco klasifikátory SVM jsou často velmi přesné, podstatnou nevýhodou klasifikátorů SVM je, že mají tendenci být omezeny jak velikostí, tak rychlostí, přičemž s rostoucí velikostí rychlost trpí.

Vícevrstvé perceptrony (neuronové sítě)

Vícevrstvé perceptrony, nazývané také modely neuronových sítí, jsou algoritmy strojového učení inspirované lidským mozkem. Vícevrstvé perceptrony se skládají z různých vrstev, které jsou navzájem spojeny, podobně jako jsou propojeny neurony v lidském mozku. Neuronové sítě vytvářejí předpoklady o tom, jak vstupní funkce souvisí s třídami dat, a tyto předpoklady jsou v průběhu školení upravovány. Jednoduché modely neuronových sítí, jako je vícevrstvý perceptron, jsou schopné učit se nelineární vztahy a v důsledku toho mohou být mnohem přesnější než jiné modely. Modely MLP však trpí některými významnými problémy, jako je přítomnost nekonvexních ztrátových funkcí.

Algoritmy hlubokého učení (CNN)

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

Nejběžněji používaným algoritmem klasifikace obrázků v poslední době je konvoluční neuronová síť (CNN). CNN jsou přizpůsobené verze neuronových sítí, které kombinují vícevrstvé neuronové sítě se specializovanými vrstvami, které jsou schopny extrahovat vlastnosti nejdůležitější a relevantní pro klasifikaci objektu. CNN mohou automaticky objevovat, generovat a učit se funkce obrázků. To výrazně snižuje potřebu ručně označovat a segmentovat obrázky, aby byly připraveny pro algoritmy strojového učení. Mají také výhodu oproti sítím MLP, protože si dokážou poradit s nekonvexními ztrátovými funkcemi.

Konvoluční neuronové sítě získaly svůj název podle skutečnosti, že vytvářejí „konvoluce“. CNN fungují tak, že vezmou filtr a posunou ho přes obrázek. Můžete si to představit jako prohlížení částí krajiny přes pohyblivé okno, přičemž se soustředíte pouze na prvky, které jsou v daném okamžiku oknem viditelné. Filtr obsahuje číselné hodnoty, které jsou vynásobeny hodnotami samotných pixelů. Výsledkem je nový snímek nebo matice plná čísel, která představují původní obrázek. Tento proces se opakuje pro zvolený počet filtrů a poté se snímky spojí do nového snímku, který je o něco menší a méně složitý než původní snímek. Technika zvaná sdružování se používá k výběru pouze nejdůležitějších hodnot v rámci obrázku a cílem je, aby konvoluční vrstvy nakonec extrahovaly jen ty nejvýraznější části obrázku, které pomohou neuronové síti rozpoznat objekty na obrázku.

Konvoluční neuronové sítě se skládají ze dvou různých částí. Konvoluční vrstvy jsou to, co extrahuje vlastnosti obrazu a převádí je do formátu, který vrstvy neuronové sítě mohou interpretovat a učit se z něj. Rané konvoluční vrstvy jsou zodpovědné za extrakci nejzákladnějších prvků obrazu, jako jsou jednoduché linie a hranice. Střední konvoluční vrstvy začnou zachycovat složitější tvary, jako jsou jednoduché křivky a rohy. Pozdější, hlubší konvoluční vrstvy extrahují rysy vysoké úrovně obrazu, které jsou předávány do části neuronové sítě CNN a jsou tím, co se klasifikátor učí.

Blogerka a programátorka se specializací v Strojové učení a Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.