Računalni vid
Računalni vid je područje umjetne inteligencije koje se bavi prepoznavanjem dvodimenzionalnih i/ili trodimenzionalnih predmeta – na primjer, ljudskog lica. Bez razvijenog računalnog vida robot se ne može snalaziti u prostoru, što znači da može biti potencijalno opasan u slučaju ljudske prisutnosti u istom području.
Računalni vid je područje koje obuhvaća metode za stjecanje, obrade, analiziranja i razumijevanja slike i, općenito, više dimenzionalnih podataka iz realnog svijeta u cilju dobivanja numeričkih ili simboličkih informacija. Razlog razvoja ovog područja je mogućnost elektroničke percepcije ljudskog vida i digitalnog razumijevanja slike. Razumijevanje fotografija može biti viđeno kao odvajanje simboličke informacije iz slikovnih podataka koristeći modele napravljene uz pomoć geometrije, fizike, statistike i teorije učenja. Računalni vid također je opisan kao pothvat za automatizaciju i integraciju širokog spektra procesa i prezentaciju vizualne percepcije. Područje primjene seže od industrijskih sustava za strojni vid, na primjer, pregledavanje boca na proizvodnoj liniji, do istraživanja umjetne inteligencije i računala ili robota koji mogu shvatiti stvarni svijet oko njih. Računalni i strojni vida se značajno preklapaju. Računalni vid obuhvaća temeljne tehnologije za automatsku analizu slike koja se koristi u mnogim područjima. Strojni vid se obično odnosi na proces kombiniranja automatizirane analize slike s drugim metodama i tehnologijama kako bi osigurala automatizirana inspekcija i robotizacija u industrijskim primjenama.
Kao znanstvena disciplina, računalni vid se bavi teorijom iza umjetnih sustava koji dohvaćaju informacije iz slika. Slikovni podaci mogu poprimiti mnoge oblike, kao što su video sekvence, poglede iz više kamera, ili više dimenzionalne podatke iz medicinskih skenera.
Kao tehnološka disciplina, računalni vid nastoji primijeniti svoju teoriju i modele za izgradnju računalnog vida.
Područja umjetne inteligencije koriste autonomno planiranje ili razmatranje robotskih sustava za navigaciju u prostoru. Detaljno razumijevanje tih sredina je potrebno za navigaciju kroz njih. Informacije o okolišu mogu se osigurati sustavom za računalni vid, koji djeluje u obliku senzora za vid i pruža visoke razine informacija o okolišu i robotu. Umjetna inteligencija i računalni vid dijele zajedničke teme kao što su prepoznavanje uzoraka i tehnike učenja. Slijedom toga, računalni vid ponekad se vidi kao dio područja umjetne inteligencije ili općenito dijelom računalne znanosti. Fizika poluvodiča je drugo područje koje je usko povezano s računalnim vidom. Većina sustava računalnog vida se oslanja na senzore za detektiranje elektromagnetskog zračenja koje je obično u obliku vidljive ili infracrvene svjetlosti. Senzori su napravljeni primjenom kvantne fizike. Proces interakcije svijetla s površinom je objašnjen pomoću fizike. Fizika objašnjava ponašanje optike koji su osnovni dio većine sustava. Sofisticirani senzori slike čak zahtijevaju kvantnu mehaniku za potpuno razumijevanje procesa stvaranja slike. Također, razni mjerni problemi u fizici mogu se riješiti pomoću računalnog vida, primjerice pokreti u fluidima.
Treće polje koje igra važnu ulogu je neurobiologija, posebno proučavanje biološkog vidnog sustava. Tijekom prošlog stoljeća, izvršena su opsežna istraživanja o očima, neuronima, i strukturama mozga posvećenih obradi vidnih podražaja kod ljudi i životinja. To je dovelo do razumijevanja kako "realni" vidni sustav djeluje u cilju rješavanja određenih zadataka. Ovi rezultati doveli su do podpolja unutar računalnog vida, kojem su umjetni sustavi dizajnirani da oponašaju obradu i ponašanje biološkog sustava na različitim razinama složenosti. Također, neke od metoda učenja razvijenih u sklopu računalnog vida (npr. neuronskih mreža na temelju fotografija, analize značajki i klasifikacija) imaju svoju pozadinu u biologiji.
Još jedno polje povezano s računalnim vidom je obrada signala. Mnoge metode za obradu signala s jednom promjenjivom mogu se prirodno proširiti na obradu signala s dvije ili više promjenjivih u računalnom vidu. Međutim, zbog specifičnosti slike postoji mnogo metoda razvijenih u sklopu računalnog vida koji nemaju alternativnu metodu obrade signala jedne varijable. Zajedno s višedimenzionalnosti signala, ovo definira potpolje u obradi signala kao dio računalnog vida. Osim navedenih pogleda na računalni vid, mnogi od povezanih istraživačkih tema također mogu biti proučavani s matematičkog stajališta. Na primjer, mnoge metode računalnog vida se temelje na statistici, optimizaciji ili geometriji. Konačno, značajan dio polja je posvećen izvedbi računalnog vida, kako se postojeće metode mogu ostvariti raznim kombinacijama softvera i hardvera, ili kako se ove metode mogu mijenjati da bi se dobila brzina obrade bez gubitka performansi. Polja usko vezana za računalni vid su obrada slika, analiza slike i strojni vid. Postoje značajna preklapanja u rangu tehnika i primjena. To podrazumijeva da su osnovne tehnike koje se koriste i razvijaju u tim područjima više ili manje jednake, nešto što se može protumačiti kao da postoji samo jedno polje s različitim imenima. S druge strane, neophodno je istraživačkim skupinama, znanstvenim časopisima i tvrtkama da se predstave kao pripadnici jednog od tih polja i, stoga su definirane razne karakteristike koje razlikuju jedno polje od ostalih.
Računalni vid se fokusira na obradu i analizu 2D slike, kako pretvoriti jednu sliku u drugu, primjerice, s odredenim operacijama nad pikselima kao što su poboljšanje kontrasta, lokalne operacije, izdvajanje rubova ili uklanjanje šuma, ili geometrijske transformacije kao što je rotacija slike. Ova svojstva podrazumijevaju da obrada i analiza slike ne zahtijevaju pretpostavke oko tumačenja sadržaja slike. Računalni vid uključuje 3D analizu iz 2D slike. Analiza 3D scene prikazane iz jedne ili više slika, na primjer, kako konstruirati 3D scenu iz jedne ili nekoliko slika. Računalni vid često se oslanja na manje ili više složene pretpostavke o sceni prikazanoj na slici.
Strojni vid je proces primjene niza tehnologija i metoda za pružanje slikovno bazirane automatske inspekcije, kontrole procesa i upravljanja robotom u industriji. Strojni vid teži primjeni, uglavnom u proizvodnji, primjerice, korištenje autonomnih robota i sustava za kontrolu inspekcije ili mjerenja na bazi vida. To podrazumijeva da se tehnologija senzora i teorija kontrole često integriraju u analizu slikovnih podataka za kontrolu robota i da je obrada u stvarnom vremenu naglašena učinkovitom implementacijom hardvera i softvera. To također podrazumijeva da su vanjski uvjeti kao što je osvjetljenje više pod kontrolom u strojnom nego u računalnom vidu, što omogućava korištenje različitih algoritama.
Obrada i analiza slike se prvenstveno fokusira na proces proizvodnje slike. Na primjer, medicinske slike zahtijevaju značajnu analizu u svrhu dobivanja korisnih informacija. Prepoznavanje uzoraka koristi razne metode za izdvajanje informacija iz signala u cjelini, uglavnom na temelju statističkih pristupa. Značajan dio ovog područja je posvećen primjeni metoda na slikovne podatke.
Jedno od najistaknutijih područja primjene je medicinski računalni vid ili medicinska obrada slike. Ovo područje je karakterizirano vađenjem podataka iz slikovnih podataka u svrhu izrade liječničke dijagnoze pacijenta. Općenito, slikovni podatak je u obliku mikroskopskih slika, rendgenskih slika, ultrazvučnih slika i tomografskih slika. Primjer informacija koje se mogu izvući iz takvih slikovnih podataka je otkrivanje tumora, arterioskleroze i drugih malignih promjena. To također može biti mjerenje dimenzija organa, tok krvi, itd. Ovo područje također podržava medicinska istraživanja pružajući nove podatke, primjerice, o strukturi mozga ili o kvaliteti medicinskog tretmana. Drugo područje primjene računalnog vida je u industriji, ponekad se zove strojni vid, gdje je informacija izvađena u svrhu poticanja proizvodnog procesa. Jedan primjer je kontrola kvalitete u kojoj se detalji gotovih proizvoda automatski pregledavaju kako bi se pronašli nedostatci. Drugi primjer je mjerenje položaja i orijentacije detalja kako bi je robotska ruka izdvojila iz proizvodnog procesa. Strojni vid se pretežno koristi u agrikulturnim procesima za uklanjanje nepoželjnih namirnica, proces koji se naziva optičko sortiranje. Vojne aplikacije su vjerojatno jedan od najvećih područja računalnog vida. Očiti primjeri su otkrivanje neprijateljskih vojnika i vozila te navođenje raketnih sustava. Napredniji raketni sustavi pošalju projektil na određeno područje umjesto na određeni cilj, a cilj se izabere kad projektil dostigne područje temeljeno na lokalnoj razini stečenih slikovnih podataka. Suvremeni vojni pojmovi, kao što su "svijest o bojnom polju", znači da razni senzori prikupljaju skup podataka o borbenoj sceni koji se može koristiti za podršku strateških odluka. U tom slučaju, automatska obrada podataka se koristi za smanjenje složenosti i spajanje informacija iz više senzora za povećanje pouzdanosti. Jedan od novijih područja primjene su bespilotna vozila, uključujući podmornice, kopnena vozila (roboti s kotačima, automobili ili kamioni), bespilotne letjelice (UAV). Stupanj autonomije kreće se od potpuno autonomnih (bespilotnih) vozila do vozila u kojima sustav baziran na računalnom vidu podržava vozača ili pilota u različitim situacijama. Potpuno autonomna vozila obično koriste računalni vid za navigaciju, odnosno za snalaženje u prostoru ili za izradu karte svoje okoline (SLAM) i za otkrivanje prepreka. To se također može koristiti za otkrivanje određenih događaja, primjerice, detektiranje šumskih požara. Primjeri takvih sustava su sustavi upozorenja u automobilima, kao i sustavi za autonomna slijetanja zrakoplova. Nekoliko proizvođača automobila demostrirali su autonomne sustave za vožnju automobila, ali ova tehnologija još uvijek nije dostigla sigurnosnu razinu primjene. Ima dosta primjera vojnih autonomnih vozila u rasponu od naprednih raketa, misija spašavanja pomoću bespilotnih letjelica i navodećih raketnih sustava. Svemirska istraživanja se već rade pomoću autonomnih vozila koja koriste računalni vid, npr., NASA-in Mars Exploration Rover i ESA - ExoMars Rover.
Klasični problem računalnog vida, obrade slika, i strojnog vida je utvrđivanje sadrži li slika određeni objekt, značajku ili aktivnost. Ovaj zadatak se obično može riješiti trivijalno i bez truda od strane čovjeka, ali još uvijek nije zadovoljavajuće riješen problem računalnog vida za opći slučaj - proizvoljni objekt u proizvoljnim situacijama. Postojeće metode za rješavanje ovog problema se u najboljem slučaju mogu primijeniti samo za pojedine objekte, kao što su jednostavni geometrijski oblici (npr. poliedar), ljudska lica, tiskani ili ručno pisani znakovi, ili vozila, te u određenim situacijama dobro definiranog osvjetljenja, pozadine, i položaja predmeta u odnosu na kameru.
Prepoznavanje objekta u računalnom vidu je zadatak pronalaženja danog objekta u slici ili video sekvenci. Ljudi prepoznaju mnoštvo objekata u slici s malo truda, unatoč činjenici da slika predmeta može varirati u različitim točkama gledišta, u više različitih veličina ili čak i kada su objekti pomaknuti ili rotirani. Objekti se mogu prepoznati i kad su djelomično skriveni od pogleda. Ovaj zadatak je još uvijek izazov za računalni vid sustava u cjelini. Najpoznatije metode su: prepoznavanje rubova, podijeli pa vladaj algoritam, usklađivanje gradijenta, histogrami osjetljivih područja podražaja, baze modela.
Prepoznavanje lica je računalni program za automatsko prepoznavanje i provjeru osoba iz digitalne slike ili video izvora. Jedan od načina je usporedba odabranih lica iz slike i lica iz baze podataka. Ovo se obično koristi u sigurnosnim sustavima i može se usporediti s drugim biometrijama kao što su otisak prsta ili zjenica oka. Neki algoritmi za prepoznavanje lica prepoznaju lica vadeći značajke iz slike lica. Na primjer, algoritam može analizirati relativnu poziciju, veličinu ili oblik očiju, nosa, jagodice i čeljusti. Ove značajke tada koristi za traženje drugih slika s istim značajkama. Drugi algoritmi normaliziraju galeriju slika lica, a zatim komprimiraju podatke lica te spremaju podatke slike koji su korisni za otkrivanje lica. Prototipna slika se zatim uspoređuje s podacima lica. Jedan od prvih uspješnih sustava se temelji na predlošku podudarajućih tehnika koji se primjenjuju na niz izraženih crta lica. Priznavanje algoritama može se podijeliti u dva glavna pristupa, geometrijski, koji promatra razlikovna obilježja, ili fotometrijska, što je statistički pristup koji pretvara sliku u vrijednosti koje se uspoređuju s vrijednostima predložaka da bi se otklonila odstupanja. Nadolazeći trend, za koji se tvrdi da postiže bolju točnost, je trodimenzionalno prepoznavanje lica. Ova tehnika koristi 3D senzore za hvatanje podatke o obliku lica. Te se informacije koriste za identifikaciju razlikovnih obilježja na površini lica, kao što su konture očne šupljine, nosa i brade. Jedna od prednosti 3D prepoznavanje lica je da to ne utječe na promjene u rasvjeti kao i druge tehnike.
Optičko prepoznavanje znakova, obično skraćeno na OCR (Optical Character Recognition), je mehaničko ili elektronsko pretvaranje skeniranih slika rukom, pisaćim strojem ili ispisanog teksta u strojno kodirani tekst. To se pretežno koristi kao oblik unosa podataka iz nekakvog izvornog papirnatog izvora podataka, bili to dokumenti, računi, pisma, ili bilo koji ispisani zapis. To je uobičajena metoda digitalizacije tiskanih tekstova, tako da oni mogu biti elektronski pretraživani, komprimirano pohranjeni, prikazani na mreži, te korišteni u procesima strojnog prevođenja, text-to-speech i u rudarenju podataka. OCR ujedinjuje raspoznavanje uzoraka, umjetnu inteligenciju i računalni vid. Ranije verzije su trebale biti programirane sa slikama svakog pojedinog znaka, te se trebalo raditi s istim fontom cijelo vrijeme. "Inteligentni sustavi" s visokim stupnjem točnosti raspoznavanja za većinu fontova danas su zajednički. Neki sustavi su sposobni reproducirati formatirani izlaz koji je usko približan s izvornim skeniranim stranicama uključujući slike, stupce i druge ne-tekstualne komponente. Postoje dvije osnovne vrste jezgre OCR algoritma koje mogu proizvesti rang liste kandidata mogućih znakova. Podudaranje matricama uključuje uspoređivanje slika s pohranjenim simbolima na pixel-by-pixel osnovi, što je također poznato kao " podudaranje uzoraka" ili "raspoznavanje". Ovo se oslanja na ulazne simbole koji su pravilno izolirani od ostatka slike, te na pohranjenim simbolima koji su sličnog fonta i veličine. Ova tehnika najbolje radi s tiskanim tekstom, a ne rade dobro s novim fontovima. Značajka ekstrakcije je ta da razdvaja simbole na dijelove kao što su linija, zatvorene petlje, linije smjera, i sjecišta linija. Onda su uspoređeni s vektorskom reprezentacijom znaka što bi ih moglo smanjiti na jedan ili više prototipa simbola. Opći tehnike prepoznavanja znakova u računalnom vidu se primjenjuju na ovu vrstu OCR-a, koja se najčešće javlja u "inteligentnim" metodama prepoznavanja rukopisa i u najmodernijom OCR softveru. Klasifikator najbližih susjeda, kao što je algoritam k-najbližih susjeda, se koristi za uspoređivanje značajki slike s pohranjenim mogućim simbolima te odabire najsličniji. Komercijalni softveri kao što Cuneiform i Tesseract koriste pristup prepoznavanja znakova u dvije razine. Druga razina je poznata kao "adaptivno prepoznavanje", a koristi oblike slova prepoznate s velikom sigurnošću na prvom prolazu kako bi se bolje prepoznali preostala slova na drugom prolazu. To je prednost nad neobičnim fontovima i niskim kvalitetama skeniranja gdje je font je iskrivljen (npr. mutan ili izblijeđen).
Nekoliko zadataka se odnosi na analizu pokreta gdje je niz slika obrađen za procjenu brzine u nekom trenutku na slici ili u 3D sceni, ili čak i od kamere koja proizvodi sliku. Primjeri takvih zadataka su:
Određivanje trodimenzionalnog pokreta (rotacija i translacija) s fotoaparata iz niza slika proizvedih od strane kamere.
Praćenje pokreta manjeg skupa bitnih točaka ili predmeta (npr. vozila ili ljudi) iz niza slika.
Određivanje, za svaku točku na slici, kako se ta točka kreće u odnosu na ravninu slike. Ovaj pokret je rezultat kretanja 3D točke u prostoru i kretanja kamere u odnosu na prostor.
S obzirom na jednu ili (obično) više slika na sceni, ili s obzirom na video, rekonstrukcija događaja ima za cilj izračunavanje 3D modela scene. U najjednostavnijem slučaju model može biti skup 3D točaka. Sofisticiranije metode proizvode potpune 3D modele ploha. Pojavom 3D oslikavanja koje ne zahtijeva skeniranje i srodne algoritme za obradu, je omogućilo brz napredak u ovom području. Mrežno bazirani 3D senzori se mogu koristiti za generiranje 3D slike iz više kutova. Algoritmi sada mogu spojiti više 3D slika zajedno u oblake točaka i 3D modele.
Cilj restauracije slike je uklanjanje smetnji iz slika. Najjednostavniji mogući pristup za uklanjanje smetnji su razne vrste filtera, kao što su niskopojasni filteri ili srednji filteri. Sofisticiranije metode podrazumijevaju modele strukture slike, koji se razlikuju od smetnji. Prvo analizirajući podatke slike u smislu lokalnih struktura slike, kao što su linije ili rubovi, a zatim kontrola filtriranja na temelju lokalnih podataka iz analize koraka, bolja razina uklanjanja smetnji je postignuta u usporedbi s jednostavnijim pristupima obrade.
Organizacija sustava računalnog vida je vrlo ovisna o primjeni. Neki sustavi su zasebne aplikacije koje rješavaju određena mjerenje ili otkrivaju probleme, dok drugi čine podsustav većeg projekta koji primjerice sadrži i podsustave za kontrolu mehaničkih pogona, planiranja, informacijske baze podataka, sučelja između čovjeka i stroja, itd. Specifične primjene sustava računalnog vida također ovise o tome jeli njegova funkcionalnost prethodno navedena ili može li se neki dio mijenjati tijekom rada. Mnoge funkcije imaju jedinstvenu primjenu. Međutim, postoje i tipične funkcije koje se nalaze u gotovo svim sustavima računalnog vida. Opisane su najčešće metode. Stjecanje slike - Digitalna slika je proizvedena od jednog ili više senzora, koji se, osim raznih vrsta kamera osjetljivih na svjetlo, uključuju daljinski senzori, tomografijski uređaji, radari, ultrazvučne kamere, itd. Ovisno o tipu senzora, rezultirajući slikovni podatak je obični 2D prikaz, 3D volumen, ili slijed slika. Vrijednosti piksela obično odgovaraju intezitetu svjetla u jednom ili nekoliko valnih pojaseva (sive slike ili fotografije u boji), ali također može biti povezano s različitim fizičkim mjerama, kao što su dubina, apsorpcije ili zvučne refleksije, elektromagnetskih valova ili nuklearne magnetske rezonance. Pre-procesiranje - Prije nego što se metoda računalnog vida može primijeniti na slikovne podatke, kako bi se izdvojili neki određeni dijelovi informacija, obično je potrebna obrada podataka kako bi se osiguralo da ispunjava određene pretpostavke potrebne za tu metodu. Primjeri su: ponovno uzimanje uzoraka kako bi se osiguralo da je koordinatni sustav slike točan, smanjenje smetnji kako bi se osiguralo da se senzor smetnji ne uvodi lažne informacije, povećanje kontrasta kako bi se osiguralo da se relevantne informacije mogu biti otkrivene. Ekstrakcija značajki - Značajke slike na različitim razinama složenosti su izlučene iz slikovnih podataka. Tipični primjeri takvih značajki: linije i rubovi, lokalizirane točke kao što su kutovi, mrlje ili točke, složenija obilježja mogu biti povezana s teksturom, oblicima ili pokretima. Otkrivanje / segmentacije - U nekom trenutku u obradi donese se odluka o tome koje točke ili područja slike su relevantne za daljnju obradu. Primjeri su: izbor određenog skupa interesnih točaka, segmentacija jednog ili više slikovnih područja koje sadrže određeni objekt interesa.