Počítačové vidění
Počítačové vidění (z anglického computer vision) je odvětví výpočetní techniky a vývoje softwaru zabývající se vytvářením zařízení schopných získávat informaci ze zachyceného obrazu. Může se jednat mimo jiné i o zpracování videa, obrazu z více zdrojů nebo dat z lékařských vyšetření.
Počítačové vidění se používá například v oblastech:
- ovládání procesů, například v autonomních vozidlech nebo průmyslových robotech,
- detekce jevů, například při sledování změn bezpečnostního kamerového záznamu,
- organizace informací, například při indexování databází obrázků nebo videí,
- modelování objektů nebo prostředí, například při analýze obrazů z medicínských zobrazovacích technik,
- interakce, například pro zpracování vstupu při interakci počítače se člověkem.
Počítačové vidění je blízké studiu biologického vidění. Oblast biologického vidění studuje a modeluje fyziologické procesy umožňující vizuální vjemy u lidí a jiných zvířat. Na druhou stranu počítačové vidění studuje a popisuje softwarově a hardwarově implementované procesy za umělými zrakovými systémy. Mezidisciplinární výměna mezi biologickým a počítačovým viděním přinesla nové poznatky do obou oborů.[zdroj?]
Počítačové vidění je v určitém směru opak počítačové grafiky. Zatímco počítačová grafika vytváří obrazová data z informací popisujících zachycené objekty, počítačové vidění je opačný proces. Vyskytuje se trend obě disciplíny kombinovat, jako například v systémech rozšířené reality (anglicky augmented reality).
Podobory počítačového vidění zahrnují rekonstrukci scény, detekci dějů, vyhledávání událostí ve videu, poznávaní objektů, učení, indexování, odhad pohybu a rekonstrukci obrazu.
Současný stav oboru
editovatPočítačové vidění je relativně nový obor. V počátcích výpočetní techniky bylo obtížné pracovat i s relativně malými sadami obrazových dat. Koncentrovanější práce v oboru se objevily až na konci sedmdesátých let. Počítačové vidění zahrnuje širokou oblast témat, která se často kříží s jinými disciplínami, tedy neexistuje všeobecná formulace "úlohy počítačového vidění". Neexistuje také žádná standardní formulace způsobu řešení obecných problému počítačového vidění. Existují však známé metody pro řešení omezených, dobře definovaných úloh počítačového vidění, které jsou často velice specifické pro danou úlohu a málokdy jsou zobecnitelné na širší spektrum použití. Mnoho takovýchto metod jsou stále ve stavu základního výzkumu, avšak stále více metod nachází svou cestu do komerčních produktů, kde často tvoří část celku řešícího komplexní úlohy (například v oblastech zobrazování v medicíně nebo při kontrole kvality a měření v průmyslu). Ve většině praktických aplikací počítačového vidění jsou počítače předem naprogramované člověkem na řešení specifické úlohy, avšak algoritmy zahrnující učení jsou stále častější.
Související obory
editovatAplikace umělé inteligence často řeší úlohy vyžadující autonomní plánování samostatných robotů operujících v reálném prostředí. Detailní porozumění tomuto prostředí umožňuje robotům řešení úloh. Informace o prostředí mohou být poskytovány systémem počítačového vidění, který se chová jako zrakový senzor a poskytuje vysokoúrovňové informace o prostředí a o stavu robota. Umělá inteligence a počítačové vidění sdílí témata jako detekce pravidelností a techniky učení. Počítačové vidění je tedy někdy vnímáno jako část oboru umělé inteligence nebo jako část informatiky obecně.
Fyzika je další obor blízký počítačovému vidění. Systémy počítačového vidění jsou závislé na senzorech, které detekují elektromagnetické záření, typicky ve formě viditelného nebo infračerveného světla. Procesy, kterými se světlo šíří a odráží od povrchů, jsou vysvětleny optikou. Sofistikované senzory obrazu dokonce vyžadují porozumění kvantové mechanice k poskytnutí kompletního porozumění procesu formování obrazu. Některé fyzikální úlohy, jako například pohyb v kapalinách, mohou být řešeny s pomocí počítačového vidění.
Třetí oblast, která hraje významnou roli, je neurobiologie, konkrétně výzkum přírodních zrakových systémů. V posledním století probíhaly rozsáhlé výzkumy očí, neuronů a mozkových struktur zpracovávajících vizuální stimuly lidí i jiných zvířat. Toto vedlo k hrubému, avšak komplikovanému popisu funkce "skutečných" zrakových systémů při řešení určitých úloh spjatých s viděním (např. Grossbergova neuronová síť či ART neuronová síť). Tyto výsledky vedly k vzniku podoboru počítačového vidění, který se zabývá vytvářením umělých systémů počítačového vidění, které napodobují funkci a chování biologických protějšků na různých úrovních složitosti. Některé z metod učení používané v oblasti počítačového vidění mají také původ v biologii.
Použití počítačového vidění
editovatJedno z nejčastějších použití počítačového vidění je zpracovávání obrazu v medicíně. Tato oblast je charakterizována získáváním informací z obrazových dat za účelem stanovení medicínské diagnózy pacienta. Obecně se obrazová data získávají z mikroskopu, RTG, angiografie, ultrazvukového vyšetření nebo tomografie. Příkladem informace získané z takovýchto obrazových dat může být detekce nádorů, arteriosklerózy nebo jiných maligních změn tkáně. Mohou se také získávat data o velikostech orgánů, toku krve atd. Tato oblast použití také podporuje výzkum v medicíně poskytováním nových informací, například o struktuře mozku nebo o kvalitě péče.
Druhou oblastí použití je průmysl, kde je často označována jako strojové vidění, kde jsou informace získávány za účelem podpory výrobního procesu. Jedním příkladem může být kontrola kvality, kde jsou detaily nebo finální produkty automaticky kontrolovány za účelem vyhledání defektů. Jiným příkladem je určování pozice a orientace drobných předmětů zdvihaných robotickou paží. Strojové vidění se také používá často v oblasti zemědělství k odstranění nežádoucích složek z materiálu, čemuž se někdy říká optické třídění.
Armádní použití jsou pravděpodobně jednou z největších oblastí použití počítačového vidění. Samozřejmým příkladem je detekce nepřátelských vojáků nebo vozidel a navádění raket. Pokročilé systémy navádění posílají raketu na oblast místo specifického cíle, a výběr konkrétního bodu dopadu se provádí okamžikem, kdy raketa vstoupí do oblasti, na základě získaných obrazových dat. Moderní armádní koncepty, jako například "bojové povědomí" (z angl. battlefield awareness), počítají s použitím různých senzorů, včetně obrazových, k dodání bohaté sady informací o bojišti, která se může použít k podpoře správných taktických rozhodnutí. V tomto případě by se používalo automatické zpracování dat k snížení složitosti a sloučení informací z různých senzorů k zlepšení spolehlivosti.
Jedno z novějších použití je navádění autonomních vozidel, včetně ponorek, pozemních vozidel (malých robotů s koly, aut nebo nákladních aut), vzdušných vozidel a bezpilotních letounů. Úroveň autonomnosti se pohybuje od plně autonomních vozidel (bezpilotních) do vozidel, kde systémy počítačového vidění pomáhají řidiči nebo pilotovi v různých situacích. Plně autonomní vozidla obvykle používají k navigaci počítačové vidění, tedy k určení pozice nebo vytvoření mapy prostředí a pro vyhledávání překážek. Může se také používat pro vyhledávání událostí závislých na úkolu, například při hašení lesních požárů bezpilotním letounem. Příkladem pomocných systémů jsou systémy varování před překážkami v autech a systémy pro autonomní přistání letadel. Někteří výrobci automobilů předvedli systémy pro autonomní řízení aut, avšak tato technologie stále nedosáhla úrovně, kdy by byla vhodná pro trh. Je mnoho příkladů armádního použití autonomních vozidel, od bezpilotních letounů pro průzkumné mise po navádění raket. Průzkum vesmíru také již používá autonomní vozidla, například Mars Exploration Rover NASA a ExoMars Rover ESA.
Jiné oblasti uplatnění zahrnují:
- podporu vizuálních efektů pro filmy, například sledování objektu na plátně,
- dohled nad objekty.
Typické úlohy počítačového vidění
editovatKaždá oblast použití popsaná výše zahrnuje množství úloh počítačového vidění – více či méně přesně definované úlohy zpracování nebo měření, které mohou být vyřešeny různými metodami. Níže jsou uvedeny příklady typických úloh počítačového vidění.
Poznávání
editovatKlasickým problémem počítačového vidění, zpracování obrazu a strojového vidění je určení, jestli daná data obsahují specifický objekt, vlastnost nebo činnost. Tato úloha může být většinou vyřešena robustně a bez potíže člověkem, ale stále není uspokojivě algoritmicky vyřešena pro obecný případ – libovolné objekty v libovolných situacích. Existující metody pro překonání tohoto problému jej přinejlepším mohou vyřešit pouze pro specifické případy, jako například jednoduché geometrické objekty (mnohostěny), lidské tváře, vytištěné nebo rukou psané znaky nebo vozidla, a v specifických podmínkách, většinou daných vhodným osvícením, pozadím a orientací objektu relativně k senzoru.
Literatura popisuje různé varianty poznávací úlohy:
- Poznání objektů: Jeden nebo několik předem specifikovaných nebo naučených objektů nebo jejich tříd mohou být zjištěny většinou společně s 2D pozicí v zachycených datech nebo 3D pozicí v prostoru reprezentovaném obrazem. Stačí ale například šum a algoritmy často selžou.[1]
- Identifikace: Je rozpoznán konkrétní kus objektu, například při identifikaci tváře nebo otisku prstu konkrétní osoby nebo konkrétního vozidla.
- Detekce: Obrazová data jsou prohledávána pro zjištění výskytu konkrétní podmínky. Jedná se například o detekci možných abnormálních buněk nebo tkání v analýze medicínských obrazů nebo detekci vozidla v systému vybíraní mýtného na dálnicích. Detekce založena na relativně jednoduchém a rychlém výpočtu se často používá jako heuristika k vyhledání menších částí obrazu, na které se poté použijí další možnosti počítačového vidění k určení korektní interpretace.
- Segmentace: Je klíčovým prvkem pro identifikaci a oddělení specifických oblastí z obrazu. Cílem je rozdělit obraz na diskrétní segmenty, což umožňuje počítačovým systémům lépe porozumět struktuře a obsahu scény.[2]
Existuje několik specializovaných úloh založených na rozpoznávání, jako například:
- Vyhledávání obrázků v závislosti na obsahu: vyhledávání všech obrazů z větší sady se specifickým obsahem. Obsah může být daný různě, například podobností s jiným obrázkem nebo pomocí vyhledávacích kritérií vyšší úrovně, například "najdi všechny obrazy s mnoha domy v zimě, které neobsahují auta".
- Určení pózy: odhad pozice nebo orientace specifického objektu relativně k senzoru. Příkladem aplikace této techniky může být asistence robotické paži v získávání věcí při pásové výrobě.
- OCR (z anglického optical character recognition, optická detekce znaků): určení znaků zaznamenaných na tištěném nebo psaném médiu pro uložení textu v lépe prohledávatelném formátu.
- ICR
Analýza pohybu
editovatRekonstrukce scény
editovatRekonstrukce scény se zaobírá určením přibližného počítačového 3D modelu z jednoho nebo (typicky) více obrazů zachycujících scénu. V nejjednodušším případě by tento model byl množinou 3D bodů. Více sofistikované metody dokáží vytvořit kompletní 3D model povrchu.
Rekonstrukce obrazu
editovatCílem rekonstrukce obrazu je odstranění nežádoucích jevů (šum senzoru, rozmazání atd.) z obrazů. Nejjednodušší možný přístup k odstranění šumu jsou různé tipy jednoduchých matematických filtrů jako low-pass filtr nebo medián. Více sofistikované metody modelují obraz na základě analýzy místních struktur, a na jeho základě odlišují signál od šumu. Použitím prvotní analýzy obrazových dat a vyhledání lokálních struktur, jako čar a hran, a následným ovládáním filtru na základě lokálních informací lze dosáhnout lepšího odstranění šumu s nižším poškozením signálu oproti plošnému použití filtrů.
Systémy počítačového vidění
editovatOrganizace systému počítačového vidění je vysoce závislá na použití. Některé systémy jsou samostatné aplikace, které řeší specifické úlohy měření nebo detekce, zatímco jiné jsou část většího systému, který například také obsahuje subsystémy pro pohyb, plánování, ukládání informací, rozhraní člověk-stroj atd. Konkrétní implementace systému počítačového vidění také záleží na tom, jestli je jeho funkce předem známa, nebo jestli je potřeba, aby byl systém učenlivý. Jsou však typické funkce, které se dají najít v mnoha systémech počítačového vidění.
- Zisk obrazu: Digitální obraz je získán z jednoho nebo více senzorů, které kromě fotografických zařízení citlivých na světlo zahrnují také senzory vzdálenosti, tomografická zařízení, radary, nadzvukové kamery atd. V závislosti na senzoru mohou být výsledná data 2D obraz, 3D objem nebo sekvence obrazů. Hodnoty pixelů typicky odpovídají intenzitě světla v jedné z oblastí spektra, ale mohou také odpovídat jiným fyzikálním veličinám, například hloubce, absorbanci nebo reflektanci zvukových nebo elektromagnetických vln.
- Pre-processing: Než může být použita metoda počítačového vidění na obrazová data, je většinou potřeba provést několik kroků k zabezpečení správnosti předpokladů. Jedná se například o:
- Zmenšení nebo zvětšení orazu
- Redukce šumu
- Vylepšení kontrastu
- Vybrání rysů: Rysy obrazu s různými úrovněmi komplexnosti jsou extrahovány z obrazových dat. Jedná se například o:
- Čáry a hrany
- Lokalizované "zájmové body" jako například kouty, bloby nebo jednotlivé body.
- Komplexnější rysy mohou být založeny na textuře, tvaru nebo pohybu.
- Detekce/segmentace: V jistém bodu zpracování dojde k rozhodnutí, které oblasti obrázku jsou relevantní pro další zpracování.
- Vysokoúrovňové zpracování: Tento krok má na vstupu typicky malé množství dat, například seznam bodů nebo oblast obrázku, ve které se předpokládá výskyt určitého objektu. Zbylé zpracování se stará například o:
- Zajištění, že data splňují požadavky založené na modelu a aplikaci
- Odhad parametrů závislých na použití, například orientace a velikosti objektu.
- Klasifikaci zjištěných objektů do kategorií.
Reference
editovatV tomto článku byl použit překlad textu z článku Computer vision na anglické Wikipedii.
- ↑ https://www.theregister.co.uk/2017/04/19/cloud_vision_api_defeated_by_noise/ - Google's cloudy image recognition is easily blinded, say boffins
- ↑ Článek, Strojové učení v počítačovém vidění: Druhy úloh a jejich využití. algomyst.cz [online]. [cit. 2023-11-29]. Dostupné online.
Externí odkazy
editovat- Obrázky, zvuky či videa k tématu počítačové vidění na Wikimedia Commons