Zapojte a spusťte modely strojového učení pro vizuální anomálie v architektuře AWS Serverless
Představte si rozsáhlou síť různých zařízení, o která je nutné se pravidelně starat, případně zajistit, aby nebyla nebezpečná pro okolí.
Jednou z možností je vysílat pracovníky na každé místo, aby zkontrolovali, zda je vše v pořádku. To je sice realizovatelné, ale také časově i finančně náročné. A pokud je infrastruktura rozlehlá, nemusíte ji stihnout zkontrolovat celou ani za rok.
Alternativním řešením je automatizovat celý proces a nechat úlohy provádět v cloudu. K tomu je potřeba udělat následující:
👉 Získat snímky zařízení rychlým způsobem. Stále to mohou provádět lidé, protože pořízení fotografie je mnohem rychlejší než kompletní manuální kontrola. Fotografie lze pořizovat z automobilů nebo pomocí dronů, což proces sběru snímků ještě zrychluje a automatizuje.
👉 Všechny získané snímky je následně potřeba odeslat na určené místo v cloudu.
👉 V cloudu je nutná automatizovaná úloha, která snímky zpracuje pomocí modelů strojového učení. Tyto modely jsou trénované k rozpoznávání poškození nebo anomálií zařízení.
👉 Výsledky analýzy musí být dostupné pro příslušné uživatele, aby bylo možné naplánovat opravy poškozených zařízení.
Podívejme se, jak lze detekovat anomálie na snímcích v cloudu AWS. Amazon nabízí několik připravených modelů strojového učení, které lze k tomuto účelu využít.
Jak vytvořit model pro detekci vizuálních anomálií
K vytvoření modelu pro detekci vizuálních anomálií je nutné provést několik kroků:
Krok 1: Přesně definujte problém, který chcete řešit, a typy anomálií, které chcete detekovat. To vám pomůže určit vhodnou testovací datovou sadu pro trénování modelu.
Krok 2: Shromážděte rozsáhlou datovou sadu snímků, které zobrazují normální i anomální stavy. Snímky označte, abyste specifikovali, které jsou normální a které obsahují anomálie.
Krok 3: Vyberte architekturu modelu, která je pro daný úkol vhodná. Můžete vybrat předtrénovaný model a upravit jej pro váš konkrétní případ, nebo vytvořit vlastní model od začátku.
Krok 4: Trénujte model s využitím připravené datové sady a zvoleného algoritmu. Můžete použít transfer learning a využít předtrénované modely, nebo trénovat model od nuly s použitím konvolučních neuronových sítí (CNN).
Jak trénovat model strojového učení
Zdroj: aws.amazon.com
Trénování modelů strojového učení AWS pro detekci vizuálních anomálií zahrnuje několik klíčových kroků.
#1. Sběr dat
Nejprve je nutné shromáždit a označit rozsáhlou datovou sadu snímků, která reprezentuje normální i anomální stavy. Čím větší datová sada, tím lépe a přesněji bude model trénovaný. Na druhou stranu to také vyžaduje více času věnovaného trénování.
Pro dobrý start se obvykle doporučuje mít v testovací sadě alespoň 1000 snímků.
#2. Příprava dat
Obrazová data je nejprve potřeba předzpracovat, aby je modely strojového učení mohly zpracovat. Předzpracování může zahrnovat různé úkony, například:
- Uspořádání vstupních snímků do samostatných podsložek, opravu metadat atd.
- Změnu velikosti snímků tak, aby splňovaly požadavky na rozlišení modelu.
- Rozdělení snímků na menší části pro efektivnější a paralelní zpracování.
#3. Výběr modelu
Nyní je třeba vybrat správný model pro danou úlohu. Můžete vybrat předtrénovaný model, nebo vytvořit vlastní model, který je vhodný pro detekci vizuálních anomálií.
#4. Vyhodnocení výsledků
Po zpracování datové sady modelem je třeba ověřit jeho výkonnost. Je také nutné zkontrolovat, zda jsou výsledky vyhovující. Například, že výsledky jsou správné u více než 99 % vstupních dat.
#5. Nasazení modelu
Pokud jste s výsledky a výkonností spokojeni, nasaďte model do prostředí účtu AWS, aby jej procesy a služby mohly začít používat.
#6. Sledování a zlepšování
Nechte model procházet různými testovacími úlohami a sadami obrazových dat a průběžně vyhodnocujte, zda jsou parametry pro správnou detekci stále na vyhovující úrovni.
Pokud tomu tak není, model přetrénujte pomocí nových datových sad, u kterých model poskytl nesprávné výsledky.
Modely strojového učení AWS
Nyní se podíváme na některé konkrétní modely, které můžete v cloudu Amazon využít.
AWS Rekognition
Zdroj: aws.amazon.com
Rekognition je univerzální služba pro analýzu obrazu a videa, kterou lze použít pro různé účely, jako je rozpoznávání obličeje, detekce objektů a rozpoznávání textu. Model Rekognition se nejčastěji používá pro prvotní generování detekčních výsledků k vytvoření datového jezera identifikovaných anomálií.
Poskytuje řadu předpřipravených modelů, které lze používat bez nutnosti trénování. Rekognition také poskytuje analýzu obrázků a videí v reálném čase s vysokou přesností a nízkou latencí.
Zde jsou některé typické případy použití, kdy je Rekognition dobrou volbou pro detekci anomálií:
- Obecný případ použití pro detekci anomálií v obrázcích nebo videích.
- Provádění detekce anomálií v reálném čase.
- Integrace modelu pro detekci anomálií se službami AWS, jako je Amazon S3, Amazon Kinesis nebo AWS Lambda.
A zde jsou konkrétní příklady anomálií, které můžete pomocí Rekognition zjistit:
- Anomálie ve tvářích, jako je detekce výrazů obličeje nebo emocí mimo normální rozsah.
- Chybějící nebo nesprávně umístěné objekty ve scéně.
- Nesprávně napsaná slova nebo neobvyklé vzorce textu.
- Neobvyklé světelné podmínky nebo neočekávané objekty ve scéně.
- Nevhodný nebo urážlivý obsah na obrázcích nebo videích.
- Náhlé změny v pohybu nebo neočekávané vzorce pohybu.
AWS Lookout for Vision
Zdroj: aws.amazon.com
Lookout for Vision je model, který je speciálně navržený pro detekci anomálií v průmyslových procesech, jako jsou výrobní linky. Obvykle vyžaduje vlastní předzpracování kódu a následné zpracování snímku nebo jeho výřezu, nejčastěji pomocí programovacího jazyka Python. Specializuje se především na řešení specifických problémů v obraze.
K vytvoření vlastního modelu pro detekci anomálií vyžaduje vlastní trénování na datové sadě normálních a anomálních snímků. Není určený pro zpracování v reálném čase, spíše pro dávkové zpracování snímků s důrazem na přesnost a preciznost.
Zde je několik typických případů použití, kdy je Lookout for Vision dobrou volbou pro detekci:
- Vady ve vyrobených produktech nebo identifikace poruch zařízení na výrobní lince.
- Zpracování velkých datových sad obrázků.
- Anomálie v průmyslovém procesu, které nejsou vyžadovány v reálném čase.
- Integrace anomálií s dalšími službami AWS, jako je Amazon S3 nebo AWS IoT.
A zde jsou konkrétní příklady anomálií, které můžete zjistit pomocí Lookout for Vision:
- Vady na výrobcích, jako jsou škrábance, promáčkliny nebo jiné nedokonalosti, které mohou ovlivnit kvalitu produktu.
- Selhání zařízení na výrobní lince, jako je detekce rozbitých nebo nefunkčních strojů, které mohou způsobit zpoždění nebo bezpečnostní rizika.
- Problémy kontroly kvality, jako je detekce výrobků, které nesplňují požadované specifikace.
- Bezpečnostní rizika na výrobní lince, jako je detekce předmětů nebo materiálů, které mohou představovat riziko pro pracovníky nebo zařízení.
- Anomálie ve výrobním procesu, jako je detekce neočekávaných změn v toku materiálů nebo produktů výrobní linkou.
AWS Sagemaker
Zdroj: aws.amazon.com
Sagemaker je plně spravovaná platforma pro vytváření, trénování a nasazení vlastních modelů strojového učení.
Jedná se o robustnější řešení, které umožňuje propojit několik vícekrokových procesů do jednoho řetězce úloh, které na sebe navazují, podobně jako to umí AWS Step Functions.
Protože Sagemaker používá pro své zpracování ad-hoc instance EC2, neexistuje žádný limit 15 minut na zpracování jedné úlohy, jako v případě funkcí AWS Lambda v AWS Step Functions.
Sagemaker také umožňuje automatické ladění modelu, což z něj dělá výbornou volbu. Model lze snadno nasadit do produkčního prostředí.
Zde jsou typické případy použití, kdy je SageMaker dobrou volbou pro detekci anomálií:
- Konkrétní případ použití, který nepokrývají předpřipravené modely, a je nutné vytvořit vlastní model přizpůsobený konkrétním potřebám.
- Zpracování velké datové sady obrázků nebo jiných dat. Předpřipravené modely vyžadují v takových případech předběžné zpracování, ale Sagemaker to zvládne i bez něj.
- Detekce anomálií v reálném čase.
- Integrace modelu s dalšími službami AWS, jako je Amazon S3, Amazon Kinesis nebo AWS Lambda.
A zde jsou příklady anomálií, které je Sagemaker schopen detekovat:
- Odhalování podvodů ve finančních transakcích, například neobvyklé vzorce výdajů nebo transakce mimo normální rozsah.
- Kybernetická bezpečnost v síťovém provozu, jako jsou neobvyklé vzorce přenosu dat nebo neočekávaná připojení k externím serverům.
- Lékařská diagnostika v lékařských snímcích, jako je detekce nádorů.
- Anomálie ve výkonu zařízení, jako je detekce změn vibrací nebo teploty.
- Kontrola kvality ve výrobních procesech, jako je zjišťování vad ve výrobcích nebo zjišťování odchylek od očekávaných norem kvality.
- Neobvyklé vzorce spotřeby energie.
Jak začlenit modely do architektury bez serveru

Trénovaný model strojového učení je cloudová služba, která nepoužívá žádné clusterové servery. Lze ji tak snadno začlenit do stávající architektury bez serveru.
Automatizace se provádí pomocí funkcí AWS Lambda, které jsou propojeny do vícestupňové úlohy v rámci služby AWS Step Functions.
Počáteční detekci je obvykle potřeba provést hned po shromáždění obrázků a jejich předběžném zpracování v bucketu S3. Zde se vygeneruje detekce základních anomálií na vstupních obrázcích a výsledky se uloží do datového jezera, například v databázi Athena.
V některých případech tato počáteční detekce nemusí být pro daný konkrétní případ použití dostačující. Může být nutná další, podrobnější detekce. Například počáteční (např. Rekognition) model může detekovat problém na zařízení, ale nemusí být možné spolehlivě určit, o jaký druh problému se jedná.
K tomu může být potřeba další model s jinými schopnostmi. V takovém případě je možné spustit druhý model (např. Lookout for Vision) na podmnožině obrázků, u kterých původní model identifikoval problém.
Je to také vhodný způsob, jak ušetřit náklady, protože není nutné spouštět druhý model na celé sadě obrázků. Spustí se pouze na podmnožině obrázků, u kterých se vyskytl problém.
Funkce AWS Lambda provádějí veškeré zpracování pomocí kódu Python nebo Javascript. Záleží na povaze procesů a na počtu funkcí AWS Lambda, které je potřeba zahrnout do toku. 15minutový limit pro maximální dobu trvání volání AWS Lambda určuje, kolik kroků takový proces může obsahovat.
Závěrečná slova
Práce s cloudovými modely strojového učení je velmi zajímavá. Z pohledu dovedností a technologií je nutné, aby tým měl široké spektrum schopností.
Tým musí rozumět trénování modelů, ať už se jedná o modely předpřipravené nebo vytvořené od začátku. K vyvážení spolehlivosti a výkonnosti výsledků je nutná znalost matematiky a algebry.
Dále jsou potřeba pokročilé dovednosti v kódování Python nebo Javascript, znalosti databází a SQL. Až bude veškerá práce s obsahem hotová, jsou potřeba dovednosti DevOps, aby bylo možné integraci do kanálu, který z toho udělá automatizovanou úlohu připravenou k nasazení a provedení.
Definování anomálií a trénování modelu je jedna věc. Zorganizovat funkční tým, který dokáže zpracovat výsledky modelů a ukládat data efektivním a automatizovaným způsobem tak, aby je poskytl koncovým uživatelům, je velká výzva.
Dále se můžete podívat na článek o rozpoznávání obličeje pro firmy.