Ako naučiť počítač porozumieť tomu, na čom je znázornenéobrázok alebo fotografia? Zdá sa nám to jednoduché, ale pre počítač je to iba matica núl a jednotiek, z ktorej musíte vyťažiť dôležité informácie.
Čo je to počítačové videnie? Toto je schopnosť počítača „vidieť“
Vízia je dôležitým zdrojom informácií preosoba, s pomocou ktorej dostávame podľa rôznych zdrojov 70 až 90% všetkých informácií. A samozrejme, ak chceme vytvoriť inteligentné auto, musíme rovnaké zručnosti implementovať do počítača.
Úlohou počítačového videnia môže byťje formulovaný dosť vágne. Čo je „vidieť“? Má to pochopiť, čo sa kde nachádza, iba pohľadom. To je rozdiel medzi počítačovým videním a ľudským zrakom. Vízia pre nás je zdrojom poznatkov o svete a zdrojom metrických informácií - teda schopnosti porozumieť vzdialenostiam a veľkostiam.
Sémantické jadro obrazu
Pri pohľade na obrázok ho môžeme charakterizovať podľa množstva funkcií, takpovediac extrahujeme sémantické informácie.
Napríklad pri pohľade na túto fotografiu môžemepovedzme, že je to vonku. Že toto je mesto, doprava. Že sú tu autá. Z konfigurácie budovy a z hieroglyfov môžeme hádať, že ide o juhovýchodnú Áziu. Podľa portrétu Maa Ce-tunga chápeme, že ide o Peking, a ak niekto videl videozáznamy alebo tam bol sám, bude môcť hádať, že ide o slávne námestie Nebeského pokoja.
Čo ešte môžeme povedať o obrázku pohľadom naju? Môžeme zvýrazniť objekty na obrázku, povedzme, že sú tam ľudia, tu bližšie - plot. Tu sú dáždniky, tu je budova, tu sú plagáty. Toto sú príklady veľmi dôležitých tried objektov, ktoré sa momentálne hľadajú.
Môžeme tiež extrahovať niektoré vlastnosti alebo atribúty objektov. Napríklad tu môžeme zistiť, že nejde o portrét niektorých obyčajných Číňanov, konkrétne Mao Ce-tunga.
Podľa auta môžete zistiť, o čo idepohybujúci sa objekt a je tuhý, to znamená, že sa počas pohybu nedeformuje. O vlajkách môžeme povedať, že ide o objekty, aj sa pohybujú, ale nie sú tuhé, neustále sa deformujú. A tiež je na scéne vietor, dá sa to určiť mávajúcou vlajkou a môžete dokonca určiť smer vetra, napríklad fúka zľava doprava.
Hodnota vzdialeností a dĺžok v počítačovom videní
Metrické informácie sú vo vede o počítačovom videní veľmi dôležité. Sú to všelijaké vzdialenosti.Napríklad to je zvlášť dôležité pre rover, pretože príkazy zo Zeme trvajú asi 20 minút a odpoveď je rovnaká. Preto je spiatočné spojenie 40 minút. A ak zostavíme plán pohybu podľa príkazov Zeme, potom to musíme brať do úvahy.
Úspešná technológia počítačového videniaintegrované do videohier. Z videa môžete zostaviť trojrozmerné modely objektov, ľudí a z fotografií používateľov môžete obnoviť trojrozmerné modely miest. A potom kráčajte popri nich.
Počítačové videnie Je dosť široká oblasť. Je úzko prepojený s rôznymi inými vedami. Čiastočné počítačové videnie zachytáva oblasť spracovania obrazu a niekedy zvýrazňuje oblasť strojového videnia, historicky sa tak stalo.
Analýza, rozpoznávanie vzorov - spôsob, ako vytvoriť vyššiu myseľ
Poďme si tieto pojmy rozobrať osobitne.
Spracovanie obrazu je oblasťou algoritmov, v ktorých je vstupom a výstupom obraz, a už s tým niečo robíme.
Analýza obrazu je oblasť počítačového videnia, ktorá sa zameriava na prácu s dvojrozmerným obrazom a vyvodzuje z nej závery.
Rozpoznávanie vzorov je abstraktnématematická disciplína, ktorá rozpoznáva údaje ako vektory. To znamená, že na vstupe je vektor a musíme s tým niečo urobiť. Odkiaľ tento vektor pochádza, nie je pre nás také dôležité vedieť.
Počítačové videnie bolo pôvodnerekonštrukcia konštrukcie z dvojrozmerných obrazov. Teraz sa táto oblasť rozšírila a dá sa všeobecne interpretovať ako rozhodovanie o fyzických objektoch na základe obrázku. To znamená, že toto je úloha umelej inteligencie.
Paralelne s počítačovým videním sa v úplne inom poli, v geodézii, vyvinula fotogrametria - to je meranie vzdialeností medzi objektmi pomocou dvojrozmerných obrazov.
Roboti môžu „vidieť“
A tým posledným je strojové videnie. Strojové videnie označuje víziu robotov. Teda riešenie niektorých výrobných problémov. Môžeme povedať, že počítačové videnie - toto je jedna veľká veda. Čiastočne kombinuje niektoré ďalšie vedy. A keď počítačové videnie dostane konkrétnu aplikáciu, premení sa na strojové videnie.
Pole počítačového videnia má hmotnosťpraktické aplikácie. Je spojená s automatizáciou výroby. V podnikoch je čoraz efektívnejšie nahradiť manuálnu prácu strojovou prácou. Stroj sa neunaví, nespí, má nepravidelný pracovný čas, je pripravený pracovať 365 dní v roku. Takže pomocou strojovej práce môžeme v určitom čase získať zaručený výsledok, čo je celkom zaujímavé. Všetky úlohy pre systémy počítačového videnia majú vizuálnu aplikáciu. A nie je nič lepšie, ako vidieť výsledok priamo z obrázku, iba v štádiu výpočtov.
Na prahu do sveta umelej inteligencie
Navyše oblasť je ťažká!Za videnie je zodpovedná významná časť mozgu a predpokladá sa, že ak počítač naučíte „vidieť“, teda plne aplikovať počítačové videnie, potom je to jedna z úplných úloh umelej inteligencie. Ak dokážeme vyriešiť problém na ľudskej úrovni, s najväčšou pravdepodobnosťou vyriešime problém AI súčasne. Čo je veľmi dobré! Alebo nie veľmi dobré, ak sledujete Terminátor 2.
Prečo je videnie ťažké? Pretože obraz rovnakých objektov sa môže veľmi líšiť v závislosti od vonkajších faktorov. Objekty vyzerajú odlišne v závislosti od pozorovacích bodov.
Napríklad jedna a tá istá postava prevzatá z rôznychuhly. A čo je najzaujímavejšie, postava môže mať jedno oko, dve oči alebo jeden a pol. A podľa kontextu (ak ide o fotografiu človeka v tričku s nakreslenými očami), potom môžu byť oči viac ako dve.
Počítač zatiaľ nerozumie, ale už „vidí“
Ďalším faktorom, ktorý spôsobuje ťažkosti, jeosvetlenie. Rovnaká scéna s rôznym osvetlením bude vyzerať inak. Veľkosť predmetov sa môže líšiť. Navyše predmety akejkoľvek triedy. Ako môžete o človeku povedať, že jeho výška je 2 metre? V žiadnom prípade. Výška osoby môže byť 2,3 m a 80 cm. Rovnako ako objekty iných typov, aj tak ide o objekty rovnakej triedy.
Najviac prechádzajú najmä živé objektyrôzne deformácie. Vlasy ľudí, športovcov, zvierat. Pozrite sa na obrázky bežiacich koní, je nemožné určiť, čo sa deje s ich hrivou a chvostom. A čo prekrývanie objektov na obrázku? Ak taký obrázok vložíte do počítača, potom aj ten najsilnejší stroj bude ťažké nájsť správne riešenie.
Ďalším typom je prestrojenie.Niektoré predmety, zvieratá sa maskujú ako prostredie, a to celkom šikovne. A škvrny sú rovnaké a farby. Napriek tomu ich vidíme, aj keď nie vždy zďaleka.
Ďalším problémom je pohyb. Predmety v pohybe prechádzajú nepredstaviteľnými deformáciami.
Mnoho objektov je veľmi variabilných. Tu sú napríklad na dvoch fotografiách nižšie objekty typu „kreslo“.
A na tomto môžete sedieť.Ale naučiť auto, že také rôzne veci v tvare, farbe, materiáli sú všetko predmetom „stoličky“ - je to veľmi ťažké. Toto je úloha. Integrovať metódy počítačového videnia znamená naučiť stroj rozumieť, analyzovať a predpokladať.
Integrácia počítačového videnia do rôznych platforiem
Počítačové videnie začalo prenikať rovnomerne medzi masyv roku 2001, kedy boli vytvorené prvé detektory tváre. Urobili to dvaja autori: Viola, Jones. Bol to prvý rýchly a primerane robustný algoritmus, ktorý demonštroval silu strojového učenia.
Teraz má počítačové videnie celkom novú praktickú aplikáciu - rozpoznávanie ľudskej tváre.
Ale spoznať človeka, ako je to znázornené vfilmy - v ľubovoľných uhloch, s rôznymi svetelnými podmienkami - to je nemožné. Ale na vyriešenie problému, či už ide o jedného alebo rôznych ľudí s rôznym osvetlením alebo na rôznych pozíciách, podobne ako na fotografii v pase, môžete s vysokou mierou dôvery.
Požiadavky na cestovné fotografie sú do veľkej miery spôsobené zvláštnosťou algoritmov rozpoznávania tváre.
Napríklad ak máte biometrický pas, potom na niektorých moderných letiskách môžete použiť automatický pasový kontrolný systém.
Nevyriešeným problémom počítačového videnia je schopnosť rozpoznávať ľubovoľný text
Niekto možno použil tento systémOCR. Jedným z nich je Fine Reader, čo je veľmi populárny systém na Runete. Existuje veľa formulárov, kde musíte vyplniť údaje, sú perfektne naskenované, informácie systém rozpozná veľmi dobre. Ale s voľným textom na obrázku je situácia oveľa horšia. Táto úloha stále nie je vyriešená.
Hry zahŕňajúce počítačové videnie, snímanie pohybu
Samostatnou veľkou oblasťou je tvorba3D modely a snímanie pohybu (čo sa celkom úspešne implementuje do počítačových hier). Prvý program, ktorý využíva počítačové videnie, je systém pre interakciu s počítačom pomocou gest. Počas jeho vzniku bolo objavených veľa vecí.
Samotný algoritmus je celkom jednoduchý, ale na toprispôsobenie potrebné na vytvorenie generátora umelých obrazov ľudí, aby sa získalo milión obrázkov. Superpočítač ich použil na výber parametrov algoritmu, podľa ktorých teraz funguje najlepším spôsobom.
To je milión obrázkov a týždeň počítaniasuperpočítačový čas umožnil vytvoriť algoritmus, ktorý spotrebuje 12% energie jedného procesora a umožňuje vám vnímať polohu človeka v reálnom čase. Jedná sa o systém Microsoft Kinect (2010).
Vyhľadávanie obrázkov podľa obsahu vám umožní nahrať fotografiu do systému a vo výsledku vráti všetky obrázky s rovnakým obsahom a urobené z rovnakého uhla.
Príklady počítačového videnia: Teraz sa s ním vytvárajú 3D a 2D mapy. Mapy pre automobilové navigátory sa pravidelne aktualizujú podľa údajov z rekordérov.
Existuje databáza s miliardami fotografií zgeotagy. Po nahraní obrázka do tejto databázy môžete určiť, kde bol urobený, a dokonca aj z akého uhla. Prirodzene, za predpokladu, že je toto miesto veľmi populárne, že ho niekedy navštívili turisti a urobili z tejto oblasti množstvo fotografií.
Roboty sú všade
Robotika je dnes všade bez nejv žiadnom prípade. Teraz existujú autá, v ktorých sú špeciálne kamery, ktoré rozpoznávajú chodcov a dopravné značky, aby mohli vodičovi posielať príkazy (v určitom zmysle počítačový program pre víziu, ktorý pomáha automobilovému nadšencovi). Existujú aj plne automatizované robotické vozidlá, ktoré sa však nemôžu spoliehať iba na systém videokamery bez použitia množstva ďalších informácií.
Moderný fotoaparát je analógom dierkovej komory
Poďme k digitálnemu zobrazovaniu.Moderné digitálne fotoaparáty sú skonštruované ako dierková komora. Iba namiesto otvoru, cez ktorý preniká lúč svetla a premieta obrys predmetu na zadnú stenu fotoaparátu, máme špeciálny optický systém, ktorý sa nazýva šošovka. Jeho úlohou je zhromaždiť veľký lúč svetla a transformovať ho takým spôsobom, aby všetky lúče prešli jedným virtuálnym bodom, aby získali projekciu a vytvorili obraz na filme alebo matrici.
Moderné digitálne fotoaparáty (matice)pozostávajú z jednotlivých prvkov - pixelov. Každý pixel vám umožňuje merať energiu svetla, ktorá na tento pixel celkovo dopadá, a na výstup vydať jedno číslo. Preto v digitálnom fotoaparáte namiesto obrazu dostávame súbor meraní jasu svetla, ktoré spadlo do samostatného pixelu - zorné polia počítača. Preto keď je obrázok zväčšený, nevidíme plynulé čiary a jasné obrysy, ale mriežku štvorcov namaľovaných rôznymi tónmi - pixlami.
Nižšie je uvedený prvý digitálny obraz na svete.
Čo však na tomto obrázku chýba? Farba. Čo je to farba?
Psychologické vnímanie farby
Farba je to, čo vidíme.Farba predmetu, rovnakého predmetu pre osobu a mačku, bude iná. Keďže my (ľudia) a zvieratá máme odlišný optický systém - videnie. Preto je farba psychologickou vlastnosťou nášho videnia, ktorá vzniká pri pozorovaní predmetov a svetla. Nie fyzická vlastnosť objektu a svetla. Farba je výsledkom interakcie zložiek svetla, scény a nášho vizuálneho systému.
Programovanie počítačového videnia v Pythone s knižnicami
Ak sa rozhodnete vážne študovaťpočítačové videnie, stojí za to sa okamžite pripraviť na množstvo ťažkostí, táto veda nie je najjednoduchšia a skrýva v sebe množstvo úskalí. Ale „Programovanie počítačového videnia v Pythone“ od Iana Erika Solema je kniha, ktorá dáva všetko najjednoduchším možným spôsobom. Tu sa zoznámite s metódami rozpoznávania rôznych objektov v 3D, naučíte sa pracovať so stereofónnymi obrazmi, virtuálnou realitou a mnohými ďalšími aplikáciami počítačového videnia. V knihe je v Pythone dosť príkladov. Vysvetlenia sú ale prezentované takpovediac zovšeobecnene, aby nepreťažovali príliš vedecké a zložité informácie. Dielo je vhodné pre študentov, len pre amatérov a nadšencov. Túto knihu a ďalšie informácie o počítačovom videní (formát pdf) si môžete stiahnuť na internete.
Momentálne je tu otvorená knižnicaalgoritmy počítačového videnia, ako aj spracovanie obrazu a numerické algoritmy OpenCV. Je implementovaný vo väčšine moderných programovacích jazykov a je otvoreným zdrojom. Pokiaľ hovoríme o počítačovom videní, pričom ako programovací jazyk používame Python, potom má aj podporu tejto knižnice, navyše sa neustále vyvíja a má veľkú komunitu.
Spoločnosť Microsoft poskytuje svojeSlužby API, ktoré dokážu trénovať neurónové siete v práci s obrázkami tváre. Je tiež možné použiť počítačové videnie, pričom ako programovací jazyk sa používa Python.