Sodobni računalniški vid. Naloge in tehnologije računalniškega vida. Programiranje računalniškega vida na Pythonu

Kako naučiti računalnik razumeti, kaj je prikazano na sliki ali sliki? Zdi se nam preprosto, za računalnik pa je to samo matrika, ki jo sestavljajo ničle in enote, iz katerih potrebujete pomembne informacije.

Kaj je računalniški vid? To je sposobnost računalnika, da "vidi"

. Vizija je pomemben vir informacij za osebo, s katero po različnih podatkih prejmemo od 70 do 90% vseh informacij. In seveda, če želimo ustvariti pameten avto, moramo uresničiti enake spretnosti in računalnik.


Nalogo računalniškega vida je mogoče formulirati precej ohlapno. Kaj je "glej"? Razume se, da, kje se nahaja, samo gledaš. To je zaključek razlik v računalniškem vidu in človeškem vidu. Vizija za nas je vir znanja o svetu, pa tudi vir metričnih informacij - to je sposobnost razumevanja razdalj in velikosti.

Semantično jedro podobe

Če pogledamo sliko, jo lahko označimo z več značilnostmi, tako rekoč, z izvlečenjem semantičnih informacij.
Na primer, če pogledamo to fotografijo, lahko rečemo, da je na prostem. Kaj je to mesto, cestni promet. Kaj so avtomobili tukaj? Z nastavitvijo zgradbe in hieroglifov lahko ugibamo, da je to jugovzhodna Azija. Iz portreta Mao Zedonga razumemo, da je to Peking, in če bi kdo videl video oddajo ali odšel tja, bi lahko uganil, da je to znameniti trg Tiananmen. Kaj smolahko rečemo o sliki, glede na to? Lahko označimo predmete na sliki, recimo, da so ljudje tam, ograja je bližje. Tu so dežniki, tukaj je hiša, tukaj je krik. To so primeri razredov zelo pomembnih objektov, ki se trenutno iščejo.


Še vedno lahko izvlečemo nekatere lastnosti ali atribute predmetov. Tu lahko na primer ugotovimo, da to ni portret nekaterih navadnih Kitajcev, namreč Mao Zedonga. Z avtomobilom lahko ugotovite, da gre za premikajoči se objekt, in je togo, kar pomeni, da se med gibanjem ne deformira. O zastavah lahko rečemo, da se ti predmeti premikajo, vendar niso togi, neprestano deformirani. In tudi na prizorišču je veter, ki ga lahko določi zastava v razvoju, in celo lahko določite smer vetra, na primer, piha z leve proti desni.

Vrednost razdalj in dolžin v računalniškem vesolju

Metrične informacije v znanosti o računalniškem vidu so zelo pomembne. Vse vrste razdalj. Na primer, za roverja je to še posebej pomembno, ker so ekipe na Zemlji približno 20 minut in je odgovor enak. V skladu s tem je klic naprej in nazaj 40 minut. In če pripravimo načrt za gibanje zemeljskih skupin, moramo to upoštevati.
Uspešno integrirane tehnologije za računalniški vid v video igrah. Iz videa lahko zgradite tridimenzionalne modele objektov, ljudi in po uporabniških fotografijah lahko obnovite tridimenzionalne modele mest. In potem hodite z njim. Računalniški vid je precej širok prostor. Tesno je prepletena z drugimi znanostmi. Delno računalniški vidzajema območje obdelave slik in včasih izpostavlja področje strojnega vida, ki je zgodovinsko tako oblikovan.

Analiza, prepoznavanje slik - pot do ustvarjanja višje inteligence

Preučimo te pojme ločeno.
Obdelava slik je področje algoritmov z vhodnimi in izhodnimi slikami in z njim že nekaj delamo. Analiza slike je področje računalniškega vida, ki se osredotoča na delo z dvodimenzionalnimi slikami in iz njega sklepa. Prepoznavanje vzorcev je abstraktna matematična disciplina, ki prepozna podatke v obliki vektorjev. To je, na vhodu - vektor in imamo nekaj opraviti s tem. Kje je ta vektor, načeloma ne vemo veliko. Računalniški vid - to je bilo sprva rekonstrukcija strukture dvodimenzionalnih slik. Zdaj je to področje postalo širše in ga je mogoče na splošno razumeti kot odločanje o fizičnih objektih, ki temeljijo na podobi. To je problem umetne inteligence. Vzporedno z računalniškim vidom na popolnoma drugem področju, v geodeziji, je bila razvita fotogrametrija - merjenje razdalj med objekti v dvodimenzionalnih slikah.

Dela lahko "vidijo"

In zadnji je strojni vid. Pod strojnim vidom je vizija robotov. To je rešitev nekaterih proizvodnih nalog. Lahko rečemo, da je računalniški vid-ena velika znanost. Deloma združuje nekatere druge znanosti. In ko računalniški vid dobi posebno aplikacijo, postane strojni vid.
Področje računalniškega vida ima veliko praktičnih aplikacij. To jepovezane z avtomatizacijo proizvodnje. V podjetjih postane učinkoviteje nadomestiti ročno delo s strojem. Avto se ne utrudi, ne spi, ima nereden delovni čas, je pripravljena delati 365 dni v letu. Torej, z uporabo strojnega dela, lahko dobimo zagotovljen rezultat ob določenem času, kar je zelo zanimivo. Vse naloge za sisteme računalniškega vida imajo vizualno aplikacijo. In ni nič boljšega kot videti rezultat iz slike, samo v fazi izračunov.

Na pragu v svet umetne inteligence

Plus področja - težko je! Bistveni del možganov je odgovoren za vid, in verjame se, da če učimo računalnik "videti", to je, da v celoti uporabimo računalniški vid, je to ena od polnih nalog umetne inteligence. Če lahko rešimo problem na človeški ravni, bomo najverjetneje istočasno rešili problem II. Kaj je zelo dobro! Ali ne zelo dobro, če gledaš Terminator 2. Zakaj je vizija težka? Ker se slike istih predmetov lahko zelo razlikujejo glede na zunanje dejavnike. Glede na točke opazovanja so predmeti drugačni. Na primer, ena in ista slika je ustrelila iz različnih zornih kotov. In kar je najbolj zanimivo, slika je lahko eno oko, dve očesi ali eno in pol. In odvisno od konteksta (če je ta fotografija oseba v majici z vlečenim očesom), potem je lahko več kot dve očesi.

Računalnik še vedno ne razume, vendar že "vidi"

Še en dejavnik, ki ustvarja kompleksnost, je razsvetljava. Enak prizor z različno osvetlitvijo bo drugačen. Velikost predmetovlahko razlikujejo. In predmeti vseh razredov. Kako lahko rečemo o moškem, da je njegova višina 2 metra? Sploh ne. Višina osebe je lahko 2,3 m in 80 cm. Tako kot predmeti drugih tipov so kljub temu predmeti istega razreda.
Še posebej živi predmeti so podvrženi različnim deformacijam. Ljudje, športniki, živali. Poglejte fotografije tekalnih konjev, da bi ugotovili, kaj se zgodi z njihovimi grivami in repom preprosto nemogoče. In prekrivanje predmetov na sliki? Če poberete takšno sliko računalnika, bo tudi najmočnejši stroj težko sprejeti pravo odločitev.
Naslednji pogled je prikrit. Nekateri predmeti, živali so prikriti za okolje in zelo spretno. In iste lise in barve. Vendar jih vidimo, čeprav ne vedno od daleč. Drug problem je gibanje. Predmeti v gibanju doživljajo neverjetne deformacije. Mnogi objekti so zelo spremenljivi. Tukaj, na primer, na dveh fotografijah pod predmeti, kot je "fotelj".
In lahko sedite tam. Ampak za poučevanje avtomobila, da so takšne različne stvari oblike, barve, materiali, vse je predmet "fotelj" - je zelo težko. To je naloga. Vključevanje tehnik računalniškega vida je naučiti avto razumeti, analizirati in napovedati.

Vključitev računalniškega vida v različne platforme

V množicah je računalniški vid začel prodirati že leta 2001, ko so nastali prvi detektorji. Naredili smo dva avtorja: Violo, Jones. To je bil prvi hiter in precej zanesljiv algoritem, ki je pokazal moč tehnik strojnega učenja. Zdaj naRačunalniški vid je dokaj nova praktična uporaba - prepoznavanje osebe po obrazu.
Prepoznavanje osebe, kot je prikazano v filmih - v poljubnih kotih, z različnimi svetlobnimi pogoji - je nemogoče. Ampak, da bi rešili problem, lahko eden ali različni ljudje z različno osvetlitvijo ali v različnih položajih, podobno kot na fotografiji v potnem listu, z visoko stopnjo zaupanja. Zahteve za fotografije za potni list so v veliki meri posledica značilnosti odkrivanja obrazov. Na primer, če imate biometrični potni list, lahko na nekaterih sodobnih letališčih uporabite avtomatski sistem za nadzor potnih listov.

Nerešen problem računalniškega vida je sposobnost prepoznavanja poljubnega besedila

Morda je nekdo uporabil sistem za prepoznavanje besedila. Eden od njih je Fine Reader, zelo priljubljen sistem Runet. Obstaja veliko oblik, kjer morate izpolniti podatke, dobro so skenirane, informacije sistem zelo dobro prepoznajo. Toda s poljubnim besedilom na sliki je primer veliko slabši. Ta naloga ostaja nerešena.

Igre z udeležbo računalniškega vida, zajemanje gibanja

Ločeno veliko območje - je ustvarjanje tridimenzionalnih modelov in zajemanje gibanja (ki se zelo uspešno izvaja v računalniških igrah). Prvi program, računalniški vid uporablja, - sistem interakcije z računalnikom z uporabo gibov. Z njegovo ustanovitvijo je bilo veliko odprtosti. Sam algoritem je urejen precej preprosto, toda za njegovo namestitev je potrebno ustvariti generator umetnih slik ljudi, ki jih je treba dobitimilijonov slik. Superkompjuter z njihovo pomočjo je zaznal parametre algoritma, s katerim zdaj najbolje deluje. Tukaj je milijon slik in teden časa računanja superračunalnika, ki omogoča ustvarjanje algoritma, ki porabi 12% moči enega procesorja in omogoča zaznavanje osebe v realnem času. To je Microsoft Kinect (2010).
Iskanje slik po vsebini omogoča nalaganje fotografije v sistem in na podlagi rezultatov prikaže vse slike z enako vsebino in iz istega kota. Primeri računalniškega vida: zdaj se uporabljajo tridimenzionalni in dvodimenzionalni zemljevidi. Zemljevidi za avtomobilske navigatorje se redno posodabljajo glede na video snemalnike. Obstaja baza podatkov z milijardami fotografij z geomodeli. Z nalaganjem posnetka v to bazo podatkov lahko ugotovite, kje je bila izdelana in tudi pod kakšnim kotom. Seveda, pod pogojem, da je kraj zelo priljubljen, da so včasih turisti obiskali tam in naredili nekaj slik območja.

Deluje povsod

Robotika trenutno, povsod, brez nje. Zdaj so na voljo avtomobili s posebnimi kamerami, ki prepoznavajo pešce in prometne znake, ki vozniku posredujejo ukaze (to je v določenem smislu program računalniškega vida, ki pomaga voznikom). Obstajajo popolnoma avtomatizirani delovni avtomobili, vendar se ne morejo zanašati samo na video kamere, ne da bi uporabljali veliko dodatnih informacij.

Sodobna kamera je analogna kamera obscura

Govorimo o digitalni podobi. Sodobni digitalni fotoaparatiurejeno po principu kamere-obscurium. Samo namesto odprtine, skozi katero svetlobni žarek prodira in oblikuje konturo objekta na hrbtni strani kamere, imamo poseben optični sistem, imenovan leča. Njegov namen je zbrati velik žarek svetlobe in jo pretvoriti tako, da vsi žarki preidejo skozi eno virtualno točko, da bi dobili projekcijo in oblikovali slike na filmu ali matriki.
​​Sodobni digitalni fotoaparati (matrika) so sestavljeni iz ločenih elementov - slikovnih pik. Vsaka slikovna pika omogoča merjenje energije svetlobe, ki pade na to slikovno točko, in na izhodu izpiše eno samo številko. Zato v digitalnem fotoaparatu namesto niza meritev prejmemo svetlost svetlobe, ki je padla v ločena vidna polja. Zato pri povečevanju slike ne vidimo gladkih črt in jasnih obrisov ter mrežo naslikanih v različnih tonih kvadratov - slikovnih pik. Spodaj vidite prvo digitalno sliko na svetu.
Toda kaj na tej sliki manjka? Barva In kakšna je barva?

Psihološka percepcija barve

Barva je tisto, kar vidimo. Barva predmeta, enakega predmeta za moškega in mačke bo drugačna. Ker imamo (pri človeku) in živalih optični sistem - vidimo, je drugačen. Zato je barva psihološka lastnost naše vizije, ki se pojavi pri opazovanju predmetov in svetlobe. In ne fizične lastnosti predmeta in svetlobe. Barva je rezultat interakcije komponent svetlobe, prizora in našega vizualnega sistema.

Programiranje računalniškega vida na Pythonuz uporabo knjižnic

Če se odločite, da boste resno preučevali računalniški vid, se morate takoj pripraviti na številne težave, znanost ni najlažja in skriva številne pasti. Toda "Programiranje računalniškega vida na Pythonu" v avtorstvu Jana Erika Soleme je knjiga, v kateri se vse poučuje v čim bolj preprostem jeziku. Tu boste spoznali načine prepoznavanja različnih predmetov v 3D, se naučili delati s stereo slikami, virtualno resničnostjo in številnimi drugimi programi za računalniški vid. Knjiga ima veliko primerov v Pythonu. Ampak pojasnila so predstavljena, tako rekoč, posplošena, da ne bi preobremenili preveč znanstvenih in trdnih informacij. Delo je primerno za študente, samo za amaterje in navdušence. Prenesite to knjigo in druge računalniške vizije (pdf-format) lahko na spletu. Trenutno je odprta knjižnica algoritmov računalniškega vida, kakor tudi obdelava slik in numerični algoritmi OpenCV. Uporablja se v večini sodobnih programskih jezikov z odprto kodo. Ko govorimo o računalniškem vidu, Python uporablja kot programski jezik, ima tudi podporo te knjižnice, poleg tega pa se nenehno razvija in ima veliko skupnost. Microsoft ponuja svoje storitve Api, ki lahko učijo nevronske mreže za delo z ljudskimi podobami. Uporabi se lahko računalniški vid, ki ga Python uporablja kot programski jezik .

Sorodne publikacije