/ / Viziune modernă pe computer. Probleme și tehnologii ale viziunii computerizate. Programare computerizată în Python

Viziune modernă pe calculator. Sarcini și tehnologii de viziune pe calculator. Programarea viziunii pe computer în Python

Cum să înveți un computer să înțeleagă ce este descrispoză sau fotografie? Ni se pare simplu, dar pentru un computer este doar o matrice de zerouri și unii, din care trebuie să extrageți informații importante.

viziune computerizată

Ce este viziunea pe computer? Aceasta este capacitatea computerului de a „vedea”

Viziunea este o sursă importantă de informații pentruo persoană, cu ajutorul acesteia, primim, potrivit diverselor surse, de la 70 la 90% din toate informațiile. Și, desigur, dacă vrem să creăm o mașină inteligentă, trebuie să implementăm aceleași abilități într-un computer.

Sarcina viziunii computerizate poate fieste formulat destul de vag. Ce este „a vedea”? Este să înțelegeți unde este, doar uitându-vă. Aceasta este diferența dintre viziunea computerizată și viziunea umană. Viziunea pentru noi este o sursă de cunoaștere despre lume, precum și o sursă de informații metrice - adică capacitatea de a înțelege distanțele și dimensiunile.

Nucleul semantic al imaginii

Privind imaginea, o putem caracteriza în funcție de o serie de caracteristici, ca să spunem așa, să extragem informații semantice.

Python de viziune computerizată

De exemplu, uitându-ne la această fotografie, putemspune că e în aer liber. Că acesta este un oraș, trafic. Că sunt mașini aici. Din configurația clădirii și din hieroglife, putem ghici că acesta este Asia de Sud-Est. Din portretul lui Mao Zedong, înțelegem că acesta este Beijingul și, dacă cineva a văzut videoclipurile sau a fost el însuși, va putea ghici că aceasta este faimoasa Piață Tiananmen.

Ce altceva putem spune despre imagine uitându-nea ei? Putem evidenția obiectele din imagine, să zicem, sunt oameni acolo, aici mai aproape - un gard. Iată umbrelele, aici este clădirea, aici sunt afișele. Acestea sunt exemple de clase de obiecte foarte importante care sunt în prezent căutate.

De asemenea, putem extrage unele caracteristici sau atribute ale obiectelor. De exemplu, aici putem determina că acesta nu este un portret al unor chinezi obișnuiți, și anume Mao Zedong.

Prin mașină poți determina ce esteun obiect în mișcare și este rigid, adică nu se deformează în timpul mișcării. Despre steaguri putem spune că acestea sunt obiecte, se mișcă și ele, dar nu sunt rigide, sunt deformate constant. Și, de asemenea, există vânt în scenă, acest lucru poate fi determinat de steagul care flutură și puteți chiar să determinați direcția vântului, de exemplu, suflă de la stânga la dreapta.

Valoarea distanțelor și lungimilor în viziunea computerizată

Informațiile metrice sunt foarte importante în știința viziunii computerizate. Acestea sunt tot felul de distanțe.De exemplu, acest lucru este deosebit de important pentru un rover, deoarece comenzile de pe Pământ durează aproximativ 20 de minute și răspunsul este același. În consecință, conexiunea dus-întors este de 40 de minute. Și dacă întocmim un plan de mișcare conform comenzilor Pământului, atunci trebuie să ținem cont de acest lucru.

 viziune computerizată pdf

Tehnologie de viziune computerizată de succesintegrat în jocurile video. Din videoclip, puteți construi modele tridimensionale de obiecte, oameni și, din fotografiile utilizatorului, puteți restaura modele tridimensionale de orașe. Și apoi mergi de-a lungul lor.

Viziunea computerizată Este o zonă destul de largă. Este strâns legat de diverse alte științe. Viziune parțială pe computer surprinde zona de procesare a imaginilor și uneori evidențiază zona viziunii automate, istoric s-a întâmplat.

Analiza, recunoașterea tiparelor - modalitatea de a crea o minte superioară

Să analizăm aceste concepte separat.

metode de viziune pe computer

Prelucrarea imaginii este zona algoritmilor în care intrarea și ieșirea sunt o imagine și deja facem ceva cu ea.

Analiza imaginii este o zonă a viziunii computerizate care se concentrează pe lucrul cu o imagine bidimensională și trage concluzii din aceasta.

Recunoașterea tiparului este abstractăo disciplină matematică care recunoaște datele ca vectori. Adică, există un vector la intrare și trebuie să facem ceva cu el. De unde vine acest vector, nu este atât de important pentru noi să știm.

Viziunea computerizată a fost inițialreconstrucția structurii din imagini bidimensionale. Acum această zonă a devenit mai largă și poate fi interpretată în general ca luând decizii cu privire la obiectele fizice pe baza imaginii. Adică, aceasta este sarcina inteligenței artificiale.

În paralel cu viziunea computerizată, într-un câmp complet diferit, în geodezie, s-a dezvoltat fotogrametria - aceasta este măsurarea distanțelor dintre obiecte folosind imagini bidimensionale.

Roboții pot „vedea”

Și ultima este viziunea cu mașina. Viziunea automată se referă la viziunea roboților. Adică soluția unor probleme de producție. Putem spune că viziunea computerizată - aceasta este o mare știință. Combină unele alte științe în parte. Și când viziunea pe computer primește o aplicație specifică, aceasta se transformă în viziune automată.

sarcini pentru sistemele de viziune computerizată

Câmpul viziunii computerizate are o masăaplicații practice. Este asociat cu automatizarea producției. La întreprinderi, devine din ce în ce mai eficient să înlocuim munca manuală cu cea a mașinii. Mașina nu obosește, nu doarme, are un program de lucru neregulat, este gata să funcționeze 365 de zile pe an. Deci, folosind forța de muncă a mașinii, putem obține un rezultat garantat la un anumit moment și acest lucru este destul de interesant. Toate sarcinile pentru sistemele de viziune computerizată au o aplicație vizuală. Și nu este nimic mai bun decât să vezi rezultatul chiar din imagine, doar în stadiul calculelor.

Pe pragul lumii inteligenței artificiale

În plus, zona este dificilă!O parte semnificativă a creierului este responsabilă pentru vedere și se crede că, dacă învățați un computer să „vadă”, adică să aplice pe deplin viziunea pe computer, atunci aceasta este una dintre sarcinile complete ale inteligenței artificiale. Dacă putem rezolva problema la nivel uman, cel mai probabil vom rezolva problema AI în același timp. Ceea ce este foarte bine! Sau nu prea bine dacă te uiți la Terminator 2.

De ce este dificila viziunea? Deoarece imaginea aceluiași obiect poate varia foarte mult în funcție de factori externi. Obiectele arată diferit în funcție de punctele de observare.

De exemplu, una și aceeași figură luată din diferiteunghiuri. Și cel mai interesant este că o figură poate avea un ochi, doi ochi sau unul și jumătate. Și în funcție de context (dacă aceasta este fotografia unei persoane într-un tricou cu ochii desenați), atunci pot exista mai mult de doi ochi.

Computerul nu înțelege încă, dar „vede” deja

Un alt factor care creează dificultăți esteiluminat. Aceeași scenă cu iluminare diferită va arăta diferit. Dimensiunea obiectelor poate varia. Mai mult, obiecte din orice clasă. Ei bine, cum poți spune despre o persoană că înălțimea sa este de 2 metri? În nici un caz. Înălțimea unei persoane poate fi de 2,3 m și 80 cm. La fel ca obiectele de alte tipuri, totuși, acestea sunt obiecte din aceeași clasă.

exemple de viziune computerizată

În special obiectele vii suferă cel mai multdiverse deformări. Păr de oameni, sportivi, animale. Uită-te la imagini cu cai care aleargă, este pur și simplu imposibil să se determine ce se întâmplă cu coama și coada lor. Dar suprapunerea obiectelor din imagine? Dacă strecurați o astfel de imagine într-un computer, atunci chiar și celui mai puternic aparat va fi dificil să ofere soluția corectă.

program de viziune pe computer

Următorul tip este deghizarea.Unele obiecte, animale se deghizează în mediu și destul de abil. Și petele sunt aceleași și culorile. Cu toate acestea, le vedem, deși nu întotdeauna de departe.

O altă problemă este mișcarea. Obiectele în mișcare suferă deformații de neimaginat.

Multe obiecte sunt extrem de variabile. Aici, de exemplu, în cele două fotografii de mai jos sunt obiecte de tip „fotoliu”.

programare de viziune computerizată în python

Și poți sta pe asta.Dar să înveți o mașină că lucruri atât de diferite în formă, culoare, material sunt toate obiectele „scaunului” - este foarte dificil. Aceasta este sarcina. Integrarea metodelor de viziune computerizată înseamnă a învăța o mașină să înțeleagă, să analizeze și să își asume.

 diferențele dintre viziunea computerizată și viziunea umană

Integrarea viziunii computerizate în diverse platforme

Viziunea computerizată a început să pătrundă chiar în masăîn 2001, când au fost creați primii detectori de față. Acest lucru a fost făcut de doi autori: Viola, Jones. A fost primul algoritm rapid și rezonabil de robust care a demonstrat puterea învățării automate.

Acum, viziunea pe computer are o aplicație practică destul de nouă - recunoașterea feței umane.

câmpurile vizuale ale computerului

Dar să recunoaștem o persoană, așa cum se arată înfilme - în unghiuri arbitrare, cu condiții de iluminare diferite - este imposibil. Dar pentru a rezolva problema, indiferent dacă este vorba de una sau de persoane diferite cu iluminare diferită sau în poziții diferite, similare, ca în fotografia din pașaport, puteți cu un grad ridicat de încredere.

Cerințele pentru fotografiile pașaportului se datorează în mare parte particularității algoritmilor de recunoaștere a feței.

De exemplu, dacă aveți un pașaport biometric, atunci în unele aeroporturi moderne puteți utiliza sistemul automat de control al pașapoartelor.

Problema nerezolvată a viziunii computerizate este capacitatea de a recunoaște textul arbitrar

Este posibil ca cineva să fi folosit sistemulOCR. Unul dintre acestea este Fine Reader, care este un sistem foarte popular pe Runet. Există multe formulare în care trebuie să completați datele, acestea sunt perfect scanate, informațiile sunt recunoscute de sistem foarte bine. Dar cu textul liber pe imagine, situația este mult mai rea. Această sarcină rămâne nerezolvată.

Jocuri care vizionează computerul, captarea mișcării

O zonă mare separată este creațiaModele 3D și captură de mișcare (care este implementată cu succes în jocurile pe computer). Primul program care utilizează viziunea computerizată este un sistem de interacțiune cu un computer folosind gesturi. În timpul creației sale, au fost descoperite o mulțime de lucruri.

Algoritmul în sine este destul de simplu, dar pentru elpersonalizare necesară pentru a crea un generator de imagini artificiale ale oamenilor pentru a obține un milion de imagini. Supercomputerul le-a folosit pentru a selecta parametrii algoritmului, conform cărora acum funcționează în cel mai bun mod.

Asta înseamnă un milion de imagini și o săptămână de număraretimpul de supercomputer a permis crearea unui algoritm care consumă 12% din puterea unui procesor și vă permite să percepeți poziția unei persoane în timp real. Acesta este sistemul Microsoft Kinect (2010).

program de calculator pentru viziune

Căutarea de imagini după conținut vă permite să încărcați o fotografie în sistem și, ca rezultat, va returna toate imaginile cu același conținut și luate din același unghi.

Exemple de viziune computerizată: hărțile 3D și 2D sunt acum realizate cu aceasta. Hărțile pentru navigatorii auto sunt actualizate în mod regulat în funcție de datele de pe DVR-uri.

Există o bază de date cu miliarde de fotografii dingeoetichete. Încărcând o imagine în această bază de date, puteți determina unde a fost făcută și chiar din ce unghi. Bineînțeles, cu condiția ca locul să fie destul de popular, că la un moment dat turiștii l-au vizitat și au făcut o serie de fotografii ale zonei.

Roboții sunt peste tot

Robotica este pretutindeni astăzi, fără eaîn nici un caz. Acum există mașini în care există camere speciale care recunosc pietonii și indicatoarele rutiere pentru a trimite comenzi șoferului (într-un sens, un program de computer pentru viziune care ajută entuziastul mașinii). Și există mașini robotizate complet automatizate, dar ele nu se pot baza doar pe un sistem de camere video fără a utiliza o mulțime de informații suplimentare.

O cameră modernă este un analog al unei camere cu stenopi

Să vorbim despre imagistica digitală.Camerele digitale moderne sunt concepute ca o cameră cu orificiu. Doar în loc de o gaură prin care o rază de lumină pătrunde și proiectează conturul unui obiect pe peretele din spate al camerei, avem un sistem optic special numit obiectiv. Sarcina sa este de a colecta un fascicul mare de lumină și de a-l transforma în așa fel încât toate razele să treacă printr-un punct virtual pentru a obține o proiecție și a forma o imagine pe un film sau matrice.

viziune computerizată

Camere digitale moderne (matrice)constau din elemente individuale - pixeli. Fiecare pixel vă permite să măsurați energia luminii care cade pe acest pixel în total și să scoateți un număr la ieșire. Prin urmare, într-o cameră digitală, în loc de o imagine, primim un set de măsurători ale luminozității luminii care a căzut într-un pixel separat - câmpuri de vedere ale computerului. Prin urmare, atunci când imaginea este mărită, nu vedem linii netede și contururi clare, ci o grilă de pătrate pictate în diferite tonuri - pixeli.

Mai jos este prima imagine digitală din lume.

viziune computerizată

Dar ce lipsește din această imagine? Culoare. Ce este culoarea?

Percepția psihologică a culorii

Culoarea este ceea ce vedem.Culoarea unui obiect, același obiect pentru o persoană și o pisică vor fi diferite. Din moment ce noi (oamenii) și animalele avem un sistem optic diferit - viziunea. Prin urmare, culoarea este o proprietate psihologică a viziunii noastre care apare atunci când observăm obiecte și lumină. Nu o proprietate fizică a unui obiect și a luminii. Culoarea este rezultatul interacțiunii componentelor luminii, ale scenei și ale sistemului nostru vizual.

tehnologie de viziune computerizată

Programare computerizată în Python cu biblioteci

Dacă te hotărăști să studiezi seriosviziune computerizată, merită să vă pregătiți imediat pentru o serie de dificultăți, această știință nu este cea mai ușoară și ascunde o serie de capcane. Dar „Computer Vision Programming in Python” de Ian Erik Solem este o carte care pune totul în modul cel mai simplu posibil. Aici vă veți familiariza cu metodele de recunoaștere a diferitelor obiecte în 3D, veți învăța cum să lucrați cu imagini stereo, realitate virtuală și multe alte aplicații de viziune pe computer. Există suficiente exemple în Python în carte. Dar explicațiile sunt prezentate, ca să spunem așa, într-un mod generalizat, pentru a nu supraîncărca informații prea științifice și dificile. Lucrarea este potrivită pentru studenți, doar amatori și entuziaști. Puteți descărca această carte și altele despre viziunea computerizată (format pdf) pe net.

În acest moment există o bibliotecă deschisăalgoritmi de viziune computerizată, precum și procesarea imaginilor și algoritmi numerici ai OpenCV. Este implementat în majoritatea limbajelor de programare moderne și este open source. Dacă vorbim despre viziunea computerizată, folosind Python ca limbaj de programare, atunci are și sprijinul acestei biblioteci, în plus, evoluează constant și are o comunitate mare.

Microsoft oferăServicii API care pot antrena rețelele neuronale să lucreze cu imagini faciale. De asemenea, este posibil să utilizați viziunea computerizată, folosind Python ca limbaj de programare.