Suvremeni računalni vid. Zadaci i tehnologije računalnog vida. Programiranje računalnog vida na Pythonu

Kako naučiti računalo da razumije što je prikazano na slici ili slici? Čini nam se jednostavnim, ali za računalo to je samo matrica sastavljena od nula i jedinica iz kojih treba dobiti važne informacije.

Što je računalni vid? To je sposobnost računala da "vidi"

Vizija je važan izvor informacija za osobu, s kojom primamo, prema različitim podacima, od 70 do 90% svih informacija. I, naravno, ako želimo stvoriti pametan automobil, moramo ostvariti iste vještine i računalo.


Zadatak računalnog vida može se formulirati prilično neodređeno. Što je "vidjeti"? Podrazumijeva se da gdje se nalazi, samo gleda. To je zaključak o razlikama u računalnom vidu i ljudskom vidu. Vizija za nas je izvor znanja o svijetu, kao i izvor metričkih informacija - to jest, sposobnost razumijevanja udaljenosti i veličine.

Semantička jezgra slike

Gledajući sliku, možemo je okarakterizirati nizom značajki, da tako kažemo, izdvajanjem semantičkih informacija.
Na primjer, gledajući ovu fotografiju, možemo reći da je ona vani. Što je to grad, ulični promet. Što su automobili ovdje? Konfiguriranjem zgrade i hijeroglifa možemo pretpostaviti da je to jugoistočna Azija. Iz portreta Mao Zedonga shvaćamo da je to Peking, i da je netko vidio video emisiju ili otišao tamo, mogao bi pogoditi da je ovo poznati trg Tiananmen. Ono što jesmomožemo li reći o slici, s obzirom na to? Možemo istaknuti objekte na slici, recimo, tamo gdje su ljudi, ograda je bliža. Ovdje su kišobrani, ovdje je kuća, ovdje je krik. Ovo su primjeri klasa vrlo važnih objekata koji se trenutno pretražuju.


Još uvijek možemo izdvojiti neke značajke ili atribute objekata. Na primjer, ovdje možemo utvrditi da to nije portret nekih običnih kineskih, naime Mao Zedonga. Automobilom se može odrediti da se radi o pokretnom objektu, a to je kruto, tj. Tijekom kretanja se ne deformira. O zastave možemo reći da su ti objekti, oni se kreću, ali nisu kruti, stalno deformirani. A na sceni je i vjetar, može se odrediti zastavom u razvoju, pa čak i vi možete odrediti smjer vjetra, na primjer, puše s lijeva na desno.

Vrijednost udaljenosti i duljine u računalnom svemiru

Metrička informacija u znanosti o računalnom vidu vrlo je važna. To su sve vrste udaljenosti. Na primjer, za rovera, to je posebno važno, jer su ekipe sa Zemlje oko 20 minuta i odgovor je isti. Prema tome, poziv natrag i naprijed je 40 minuta. Ako izradimo plan kretanja zemaljskih timova, onda to moramo uzeti u obzir.
Uspješno integrirane tehnologije računalnog vida u videoigrama. Iz videozapisa možete graditi trodimenzionalne modele objekata, ljudi, a nakon korisničkih fotografija mogu se obnoviti trodimenzionalni modeli gradova. I onda hoda s njim. Računalni vidje prilično široko područje. Usko je isprepletena s raznim drugim znanostima. Djelomično računalni vidobuhvaća područje obrade slike i ponekad ističe područje strojnog vida, povijesno tako oblikovanog.

Analiza, prepoznavanje slika - put do stvaranja više inteligencije

Ispitajmo ove pojmove odvojeno.
Obrada slike je područje algoritama s ulaznim i izlaznim slikama, a već radimo nešto s njom. Analiza slike je područje računalnog vida koje se fokusira na rad s dvodimenzionalnim slikama i iz toga izvodi zaključke. Prepoznavanje uzoraka je apstraktna matematička disciplina koja prepoznaje podatke u obliku vektora. To jest, na ulazu - vektor i imamo nešto s tim. Gdje ovaj vektor, mi ne znamo mnogo u načelu. Računalni vid - u početku je to bila rekonstrukcija strukture dvodimenzionalnih slika. Sada je ovo područje postalo šire i može se općenito tumačiti kao odlučivanje o fizičkim objektima, na temelju slike. To je problem umjetne inteligencije. Paralelno s računalnim vidom u sasvim drugom području, u geodeziji, razvijena je fotogrametrija - mjerenje udaljenosti između objekata u dvodimenzionalnim slikama.

Radovi mogu "vidjeti"

I posljednja je strojna vizija. Pod vizijom stroja je vizija robota. To jest, rješenje nekih proizvodnih zadataka. Može se reći da je računalni vid-jedna velika znanost. Ona djelomično spaja i neke druge znanosti. A kada računalni vid dobije određenu primjenu, ona postaje strojna vizija.
Područje računalnog vida ima mnogo praktičnih primjena. Jestepovezane s automatizacijom proizvodnje. U poduzećima postaje učinkovitije zamijeniti ručni rad strojem. Automobil se ne umara, ne spava, ima nepravilan raspored rada, spremna je raditi 365 dana u godini. Dakle, korištenjem strojarskog rada, možemo dobiti zajamčeni rezultat u određeno vrijeme, a to je vrlo zanimljivo. Svi zadaci za sustave računalnog vida imaju vizualnu primjenu. I ne postoji ništa bolje od gledanja rezultata s slike, samo u fazi izračuna.

Na pragu u svijet umjetne inteligencije

Plus područja - teško je! Bitan dio mozga odgovoran je za viziju, a vjeruje se da, ako netko podučava računalo "vidjeti", to jest, u potpunosti primjenjivati ​​računalni vid, onda je to jedan od punih zadataka umjetne inteligencije. Ako možemo riješiti problem na ljudskoj razini, najvjerojatnije ćemo istovremeno riješiti problem II. Što je vrlo dobro! Ili ne baš dobro ako gledate Terminator 2. Zašto je vizija teška? Jer slike istih objekata mogu uvelike varirati ovisno o vanjskim čimbenicima. Ovisno o točkama promatranja, objekti izgledaju drugačije. Na primjer, jedna i ista figura pucala je iz različitih kutova. A što je najzanimljivije, brojka može biti jedno oko, dvije oči ili jedna i pol. I ovisno o kontekstu (ako je ova fotografija osoba u majici s nacrtanim okom), onda može biti više od dva oka.

Računalo još uvijek ne razumije, ali već "vidi"

Još jedan čimbenik koji stvara složenost je rasvjeta. Jedna scena s različitim osvjetljenjem će izgledati drugačije. Veličina objekatamože varirati. I objekti bilo koje klase. Pa kako se može reći za čovjeka koji mu je visina 2 metra? Uopće ne. Visina osobe može biti i 2,3 m i 80 cm. Kao i drugi tipovi objekata, oni su ipak objekti iste klase.
Posebno živi objekti podvrgnuti su različitim deformacijama. Kosa ljudi, sportaši, životinje. Pogledajte fotografije trčanje konja, kako bi se utvrdilo što se događa s njihovim griva i rep je jednostavno nemoguće. I preklapanje objekata na slici? Ako pokupite takvu sliku računala, tada će i najmoćniji stroj biti teško donijeti pravu odluku.
Sljedeći pogled je maska. Neki predmeti, životinje su maskirani za okoliš, i vrlo vješto. I iste točke i boje. Ali ipak ih vidimo, iako ne uvijek izdaleka. Drugi problem je pokret. Objekti u pokretu doživljavaju nevjerojatne deformacije. Mnogi objekti su vrlo promjenjivi. Ovdje, na primjer, na dvije fotografije ispod objekata kao što su "fotelja".
I možete sjediti tamo. No, naučiti automobil da takve različite stvari su oblici, boje, materijali, sve je objekt "fotelja" - to je vrlo teško. To je zadatak. Integriranje tehnika računalnog vida je naučiti automobil da razumije, analizira i predvidi.

Integracija računalnog vida u različite platforme

U masama je računalni vid počeo prodirati još 2001. kada su stvoreni prvi detektori. Napravili smo dva autora: Violu, Jonesa. Bio je to prvi brz i prilično pouzdan algoritam koji je demonstrirao snagu tehnika strojnog učenja. Sada naRačunalni vid je prilično nova praktična primjena - prepoznavanje osobe po licu.
Ali prepoznavanje osobe, kao što je prikazano u filmovima - u proizvoljnim kutovima, s različitim uvjetima osvjetljenja - nije moguće. No, da bi se riješio problem, jedan ili različiti ljudi s različitim osvjetljenjem ili u različitim pozama, slično, kao na fotografiji u putovnici, može s visokim stupnjem povjerenja. Zahtjevi za fotografije za putovnicu uglavnom su posljedica značajki algoritama za prepoznavanje lica. Primjerice, ako imate biometrijsku putovnicu, tada u nekim modernim zračnim lukama možete koristiti sustav automatske kontrole putovnica. Nerešeni problem računalnog vida je sposobnost prepoznavanja proizvoljnog teksta
Možda je netko koristio sustav za prepoznavanje teksta. Jedan od njih je Fine Reader, vrlo popularan Runet sustav. Postoje mnogi oblici u kojima morate ispuniti podatke, dobro su skenirani, sustav dobro prepoznaje informacije. Ali s proizvoljnim tekstom na slici, slučaj je mnogo gori. Ovaj zadatak ostaje neriješen.

Igre uz sudjelovanje računalnog vida, hvatanje pokreta

Zasebno veliko područje - je stvaranje trodimenzionalnih modela i hvatanje gibanja (što je prilično uspješno implementirano u računalne igre). Prvi program, računalni vid koristi, - sustav interakcije s računalom pomoću gesta. Njegovim stvaranjem bilo je mnogo otvorenosti. Sam algoritam je uređen vrlo jednostavno, ali za njegovu instalaciju potrebno je stvoriti generator umjetnih slika ljudi koje treba dobitimilijuna slika. Superkompjuter je uz njihovu pomoć uočio parametre algoritma, po kojima sada najbolje radi. Evo milijun slika i tjedno računanja vremena superkompjutera omogućuju stvaranje algoritma koji troši 12% snage jednog procesora i omogućuje vam da percipirate pozu osobe u stvarnom vremenu. Ovo je Microsoft Kinect (2010).
Pronalaženje slika po sadržaju omogućuje vam slanje fotografije u sustav, a na temelju rezultata prikazat će se sve slike s istim sadržajem i izrađene iz istog kuta. Primjeri računalnog vida: sada se koriste trodimenzionalne i dvodimenzionalne karte. Karte za auto-navigatore redovito se ažuriraju prema videorekorderima. Postoji baza podataka s milijardama fotografija s geomodelima. Prenosom snimke u ovu bazu podataka možete odrediti gdje je napravljena pa čak i pod kojim kutom. Naravno, pod uvjetom da je mjesto vrlo popularno, da su u jednom trenutku turisti tamo posjetili i napravili neke fotografije tog područja.

Robotika danas djeluje svugdje, svugdje, bez nje. Sada postoje automobili koji imaju posebne kamere koje prepoznaju pješake i prometne znakove kako bi prenijeli naredbe vozaču (to je, u nekom smislu, program za računalni vid koji pomaže vozačima). Tu su i potpuno automatizirani radni automobili, ali se ne mogu osloniti isključivo na video kamere bez upotrebe mnogo dodatnih informacija.

Moderna kamera je analogna kamera obscura

Razgovarajmo o digitalnoj slici. Moderni digitalni fotoaparatiraspoređenih po principu kamera-zamagljivanje. Samo umjesto otvora kroz koji svjetlosni snop prodire i oblikuje konturu objekta na stražnjoj strani fotoaparata, imamo poseban optički sustav koji se naziva leća. Njegova je svrha skupiti veliku svjetlosnu zraku i pretvoriti je tako da svi snopovi prolaze kroz jednu virtualnu točku kako bi dobili projekciju i oblikovali slike na filmu ili matrici.
​​Moderni digitalni fotoaparati (matrice) sastoje se od odvojenih elemenata - piksela. Svaki piksel omogućuje mjerenje energije svjetlosti koja pada na ovaj piksel ukupno, i ispisuje jedan broj na izlazu. Stoga u digitalnoj kameri primamo umjesto niza mjerenja svjetlinu koja je pala u zasebna vidna polja piksela - računala. Stoga, pri povećanju slike, ne vidimo glatke crte i jasne konture, i mrežu naslikanih u različitim tonovima kvadrata - piksela. Ispod možete vidjeti prvu digitalnu sliku na svijetu.
Ali što nedostaje u ovoj slici? Boji. I koja je boja?

Psihološka percepcija boje

Boja je ono što vidimo. Boja objekta, jedan i isti objekt za čovjeka i mačku bit će različiti. Budući da mi (kod ljudi) i životinje imamo optički sustav - vid, on je drugačiji. Dakle, boja je psihološko svojstvo naše vizije koja nastaje promatranjem objekata i svjetla. I ne fizička svojstva objekta i svjetla. Boja je rezultat interakcije komponenti svjetla, scene i našeg vizualnog sustava.

Programiranje računalnog vida na PythonuKoristeći knjižnice

Ako se ozbiljno bavite proučavanjem računalnog vida, trebali biste se odmah pripremiti za niz poteškoća, znanost nije najlakša i skriva brojne zamke. No, "Programiranje računalne vizije na Pythonu" u autorstvu Jana Erika Soleme je knjiga u kojoj se sve podučava na što jednostavnijem jeziku. Ovdje ćete se upoznati s metodama prepoznavanja različitih objekata u 3D, naučiti kako raditi sa stereo slikama, virtualnom stvarnošću i mnogim drugim programima računalnog vida. Knjiga ima mnogo primjera u Pythonu. No, objašnjenja su prikazana, da tako kažemo, uopćena, kako ne bi preopteretili previše znanstvenih i tvrdih informacija. Rad je pogodan za studente, samo za amatere i entuzijaste. Preuzmi ovu knjigu i drugi računalni vid (pdf-format) može biti online. Trenutno postoji otvorena knjižnica algoritama računalnog vida, kao i obrada slika i numerički algoritmi OpenCV-a. Implementiran je u većini suvremenih programskih jezika, s otvorenim izvornim kodom. Govoreći o računalnom vidu, Python koristi kao programski jezik, također ima podršku ove knjižnice, a osim toga, stalno se razvija i ima veliku zajednicu. Microsoft nudi Api-usluge koje mogu podučavati neuronske mreže za rad s slikama ljudi. Moguće je upotrijebiti Pythonov računalni vid kao programski jezik .

Povezane publikacije