Moderné počítačové videnie. Úlohy a technológie počítačového videnia. Programovanie počítačovej vízie na Pythone

Ako učiť počítač, aby pochopil, čo sa zobrazuje na obrázku alebo na obrázku? Zdá sa nám to jednoduché, ale pre počítač je to len matica zložená z núl a jednotiek, z ktorých potrebujete získať dôležité informácie.

Čo je počítačová vízia? To je schopnosť počítača "vidieť".

Vízia je dôležitým zdrojom informácií pre osobu, s ktorou podľa rôznych údajov získame 70 až 90% všetkých informácií. A samozrejme, ak chceme vytvoriť inteligentné vozidlo, musíme si uvedomiť rovnaké zručnosti a počítač.


Úloha počítačového videnia môže byť formulovaná pomerne nejednoznačne. Čo je "vidieť"? Rozumie sa, že tam, kde sa nachádza, len hľadáte. Toto je záver rozdielov v počítačovom videní a ľudskom zraku. Vízia pre nás je zdrojom vedomostí o svete, ako aj zdrojom metrických informácií - teda schopnosťou porozumieť vzdialenostiam a veľkostiam.

Sémantické jadro obrazu

Pri pohľade na obrázok ho môžeme charakterizovať mnohými funkciami, aby sme tak povedali, extrahovaním sémantických informácií.
Napríklad pri pohľade na túto fotografiu môžeme povedať, že je vonku. Čo je toto mesto, pouličná premávka. Aké sú tu autá? Konfiguráciou budovy a hieroglyfmi môžeme odhadnúť, že ide o juhovýchodnú Áziu. Z portrétu Maa Zedonga chápeme, že je to Peking, a ak niekto videl video alebo sa tam dostal, mohol by odhadnúť, že je to slávne Námestie Tiananmen. Čo smemôžeme povedať o obrázku, berúc do úvahy? Môžeme zvýrazniť objekty v obraze, povedzme, že tam sú ľudia, plot je bližší. Tu sú dáždniky, tu je dom, tu je výkrik. Toto sú príklady tried veľmi dôležitých objektov, ktoré sa momentálne hľadajú.


Môžeme stále získať niektoré vlastnosti alebo atribúty objektov. Napríklad tu môžeme zistiť, že toto nie je portrét niektorých obyčajných Číňanov, menovite Mao Čed-čú. Vozom môžete určiť, že ide o pohyblivý predmet a je tuhý, to znamená, že počas pohybu sa nedeformuje. O vlajkách môžeme povedať, že tieto objekty sa pohybujú, ale nie sú tuhé, neustále deformované. A tiež na scéne je vietor, môže byť určený rozvíjajúcou sa vlajkou a dokonca môžete určiť smer vetra, napríklad to fúka zľava doprava.

Hodnota vzdialeností a dĺžok v počítačovom vesmíre

Metrické informácie vo vedách počítačového videnia sú veľmi dôležité. Je to všetko najmenšie. Napríklad pre rovera to je obzvlášť dôležité, pretože tímy z Zeme sú asi 20 minút a odpoveď je rovnaká. V dôsledku toho je volanie tam a späť 40 minút. A ak vypracujeme plán pre pohyb tímov Zeme, musíme to vziať do úvahy.
Úspešne integrované technológie počítačového videnia vo videohrách. Z videa môžete vytvoriť trojrozmerné modely objektov, ľudí a po fotografiách používateľov je možné obnoviť trojrozmerné modely miest. A potom choďte s ním. Počítačové videnie je pomerne široká oblasť. Je úzko prepojená s rôznymi inými vedami. Čiastočne počítačové videniezachycuje oblasť spracovania obrazu a niekedy vyzdvihuje oblasť strojového videnia, historicky vytvorenú.

Analýza, rozpoznanie obrazov - cesta k vytvoreniu vyššej inteligencie

Pozrime sa na tieto koncepty zvlášť.
Spracovanie obrazu je oblasťou algoritmov so vstupnými a výstupnými obrázkami a už s tým robíme niečo. Analýza obrazu je oblasť počítačového vízie, ktorá sa zameriava na prácu s dvojrozmernými obrazmi a vyvodzuje z nej závery. Rozpoznanie vzoru je abstraktná matematická disciplína, ktorá rozpoznáva údaje vo forme vektorov. To znamená, že pri vstupe - vektor a máme s tým niečo spoločné. Kde tento vektor v podstate nevieme. Počítačové videnie - to bolo spočiatku rekonštrukcia štruktúry dvojrozmerných obrazov. Teraz sa táto oblasť stala širšou a môže byť interpretovaná vo všeobecnosti ako rozhodovanie o fyzických objektoch, založené na obrázku. To je problém umelej inteligencie. Súčasne s počítačovým pohľadom v úplne inej oblasti, v geodézii, bola vyvinutá fotogrammetria - meranie vzdialeností medzi objektmi v dvojrozmerných obrazoch.

Práce môžu "vidieť"

A posledné je strojné videnie. Pod strojovým pohľadom je vízia robotov. To znamená riešenie niektorých výrobných úloh. Dá sa povedať, že počítačová vízia-je jedna veľká veda. Spája niektoré iné vedy čiastočne. A keď počítačové vízie získajú špecifickú aplikáciu, stane sa strojovou víziou.
Pole počítačového videnia má veľa praktických aplikácií. Je tospojené s automatizáciou výroby. V podnikoch sa stáva efektívnejšie nahradiť manuálnu prácu strojom. Vozidlo nie je unavené, nespí, má nepravidelný harmonogram práce, je pripravená pracovať 365 dní v roku. Takže pomocou strojárskej práce môžeme získať zaručený výsledok v určitom čase, a to 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 obrazu, len vo fáze výpočtov.

Na prahu do sveta umelej inteligencie

Plus oblasti - je to ťažké! Podstatná časť mozgu je zodpovedná za víziu a verí sa, že ak človek učí počítač "vidieť", to znamená plne uplatňovať počítačové videnie, potom je to jeden z plných úloh umelej inteligencie. Ak môžeme vyriešiť problém na ľudskej úrovni, s najväčšou pravdepodobnosťou zároveň vyriešime problém II. Čo je veľmi dobré! Alebo nie veľmi dobre, ak sa pozeráš na Terminator 2. Prečo je zrak ťažké? Pretože obrazy tých istých objektov sa môžu veľmi líšiť v závislosti od vonkajších faktorov. V závislosti od pozorovacích bodov objekty vyzerajú rozdielne. Napríklad jedna a tá istá postava je natočená z rôznych uhlov. A čo je najzaujímavejšie, postava môže byť jedno oko, dva oči alebo jeden a pol. A v závislosti na kontexte (ak je táto fotografia osoba v tričku s oko), potom môže byť viac ako dve oči.

Počítač stále nerozumie, ale už "vidí".

Ďalším faktorom, ktorý vytvára zložitosť, je osvetlenie. Jedna a tá istá scéna s rôznym osvetlením bude vyzerať inak. Veľkosť objektovsa môže líšiť. A predmety všetkých tried. No ako možno povedať o mužovi, že jeho výška je 2 metre? Vôbec nie. Výška osoby môže byť 2,3 až 80 cm. Rovnako ako objekty iných typov sú to však predmety tej istej triedy.
Obzvlášť živé objekty podliehajú rôznym deformáciám. Vlasy ľudí, športovcov, zvieratá. Pozrite sa na fotky bežiacich koní a zistite, čo sa stane s ich hrivou a chvostom, je jednoducho nemožné. A prekrývajúce sa objekty v obraze? Ak vyberiete takýto obrázok počítača, potom bude dokonca aj najsilnejší stroj ťažké urobiť správne rozhodnutie.
Nasledujúci názor je prekážkou. Niektoré predmety, zvieratá sú maskované do životného prostredia a celkom šikovne. A rovnaké miesta a farby. Ale napriek tomu ich vidíme, hoci nie vždy z diaľky. Ďalším problémom je pohyb. Objekty v pohybe majú neuveriteľné deformácie. Veľa objektov je veľmi variabilné. Napríklad na dvoch fotografiách pod objekty ako "kreslo".
A môžete tam sedieť. Ale naučiť auto, že takéto odlišné veci sú tvary, farby, materiály, všetko je objekt "kreslo" - je to veľmi ťažké. Toto je úloha. Integrácia techník počítačového videnia je naučiť auto pochopiť, analyzovať a predpovedať.

Integrácia počítačového videnia do rôznych platforiem

V masách počítačová vízia začala preniknúť v roku 2001, kedy boli vytvorené prvé detektory. Robili sme dvoch autorov: Viola, Jones. Bol to prvý rýchly a dosť spoľahlivý algoritmus, ktorý demonštroval silu strojových učebných techník. Teraz na adresePočítačová vízia je pomerne nová praktická aplikácia - rozpoznanie osoby tvárou.
Ale rozpoznanie osoby, ako je vidieť vo filmoch - v ľubovoľných uhloch, s rôznymi svetelnými podmienkami - je nemožné. Ale na vyriešenie problému môže jeden alebo viacerí ľudia s rozdielnym osvetlením alebo v rôznych podobách, podobne ako na fotografii v pase, s vysokým stupňom dôvery. Požiadavky na pasové fotografie sú do značnej miery spôsobené funkciou algoritmov detekcie tváre. Napríklad, ak máte biometrický pas, potom na niektorých moderných letiskách môžete použiť automatický systém kontroly pasov.

Nevyriešený problém počítačového videnia je schopnosť rozpoznať ľubovoľný text

Možno, že niekto použil systém na rozpoznávanie textu. Jedným z nich je Fine Reader, veľmi populárny systém Runet. Existuje mnoho foriem, kde musíte vyplniť údaje, sú dobre skenované, informácie sú veľmi dobre rozpoznané systémom. Ale s ľubovoľným textom na obrázku je prípad oveľa horší. Táto úloha zostáva nevyriešená.

Hry s účasťou počítačovej vízie, zachytenie pohybu

Samostatná veľká oblasť - je vytvorenie trojrozmerných modelov a zachytenie pohybu (čo sa celkom úspešne realizuje v počítačových hrách). Prvý program, počítačové videnie používa, - systém interakcie s počítačom pomocou gest. Svojím vznikom bolo veľa otvorenosti. Algoritmus sám je usporiadaný jednoducho, ale pre jeho inštaláciu je potrebné vytvoriť generátor umelých obrázkov ľudí, ktorí sa dostanúmiliónov obrázkov. Superpočítač s pomocou pomohol zdvihnúť parametre algoritmu, pomocou ktorého teraz pracuje najlepšie. To je milión fotografií a počítanie času superpočítač týždeň pomohli vytvoriť algoritmus, ktorý používa 12% kapacity CPU a umožňuje jeden vnímať ľudské držanie tela v reálnom čase. Toto je Microsoft Kinect (2010).
Image Search vám umožní sťahovať obsah na fotografiu, a výsledky to bude dávať všetky zábery s rovnakým obsahom a z rovnakého uhla. Príklady počítačovej vízie: teraz sa používajú trojrozmerné a dvojrozmerné mapy. Mapy pre navigátory automobilov sú pravidelne aktualizované podľa videorekordérov. K dispozícii je databáza s miliardami fotografií s geomodelmi. Odovzdaním snímky do tejto databázy môžete určiť, kde bola vytvorená, a dokonca z akého uhla. Samozrejme, za predpokladu, že miesto je veľmi populárne, tam narazili turistov a urobili nejaké fotky tejto oblasti.

Pracuje všade

Robotika v súčasnosti, všade, bez nej. Teraz tam sú automobily, čo je špeciálna kamera, ktorá rozoznáva dopravné značky a chodci vysielajú povely vodiča (napríklad zmysel pre počítačový program pre pomoc motoristom). A tam je plne automatizovaná robotická vozidla, ale nemôžu spoliehať na systém kamier bez použitia veľkého množstva ďalších informácií.

Moderná kamera je analóg kamery obscura

Poďme sa baviť o digitálnom obrázku. Moderné digitálne fotoaparátyusporiadané podľa princípu camera-obscurium. Len miesto otvoru, cez ktorý preniká lúč svetla, a navrhuje obrys objektu na zadnej strane kamery, máme špeciálny optický systém nazývaný objektív. Jeho účelom je zhromaždiť veľký lúč svetla a previesť ho tak, aby všetky lúče prechádzali cez jeden virtuálny bod, aby získali premietanie a vytvorili obrazy na filme alebo matrici.
​​Moderné digitálne fotoaparáty (matice) pozostávajú zo samostatných prvkov - pixelov. Každý pixel vám umožňuje merať celkovú energiu svetla, ktorá klesá na tento pixel a na výstupe vystupovať jedno číslo. Preto v digitálnom fotoaparáte dostávame namiesto množiny meraní jasu svetla, ktoré padlo do samostatných pixlových počítačových zorných polí. Preto pri zväčšovaní obrazu nevidíme žiadne hladké čiary a jasné obrysy a mriežku maľovanú v rôznych tónoch štvorcov - pixelov. Nižšie vidíte prvý digitálny obrázok na svete.
Ale čo chýba v tomto obrázku? Farbu. A aká je farba?

Psychologické vnímanie farby

Farba je to, čo vidíme. Farba objektu, jeden a ten istý objekt pre muža a mačku bude iná. Keďže my (u ľudí) a zvieratá máme optický systém - pohľad, je to iné. Preto je farba psychologickou vlastnosťou našej vízie, ktorá vzniká pri pozorovaní objektov a svetla. A 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čovej vízie na Pythone sPoužitie knižníc

Ak sa rozhodnete vysporiadať s štúdium počítačového videnia, mal by okamžite pripraviť celý rad problémov, nie je to najjednoduchšie veda a skrýva rad úskalí. Ale "Programovanie počítačovej vízie na Pythone" v autorstve Jána Erika Solema je kniha, v ktorej je všetko vyučované v čo najjednoduchšom jazyku. Tu sa dozviete viac o metódach rozpoznávania rôznych objektov v 3D, naučiť sa pracovať so stereo obrazmi, virtuálnou realitou a mnohými ďalšími programami počítačového videnia. Kniha má veľa príkladov v Pythone. Ale vysvetlenia sú prezentované tak, aby sa zovšeobecnili, aby nedošlo k preťaženiu príliš veľa vedeckých a tvrdých informácií. Práca je vhodná pre študentov, len pre amatérov a nadšencov. Stiahnite si túto knihu a inú počítačovú víziu (formát PDF) môžete online. V súčasnosti existuje otvorená knižnica algoritmov počítačového videnia, ako aj spracovanie obrazu a numerické algoritmy OpenCV. Implementuje sa vo väčšine moderných programovacích jazykov s otvoreným zdrojovým kódom. Keď už hovoríme o počítačovej vízii, program Python používa ako programovací jazyk, má tiež podporu tejto knižnice, navyše sa neustále vyvíja a má veľkú komunitu. Spoločnosť Microsoft poskytuje služby Api, ktoré môžu učiť neurónové siete pracovať s obrázkami ľudí. Je možné použiť počítačové videnie, ktoré Python používa ako programovací jazyk .

Súvisiace publikácie