Viziune modernă pe calculator. Sarcini și tehnologii de viziune pe calculator. Programarea viziunii pe computer în Python
Cum să predați un computer pentru a înțelege ce este imaginat într-o fotografie sau o fotografie? Se pare că este ușor pentru noi, dar pentru un calculator este doar o matrice compusă din zerouri și una de la care este necesar să extragă informații importante.
conținut
- Ce este viziunea pe calculator? aceasta este capacitatea computerului de a "vedea"
- Miezul semantic al imaginii
- Valoarea distanțelor și a lungimilor în vederea calculatorului
- Analiza, recunoașterea modelului - modul de a crea minți superioare
- Roboții pot "vedea"
- Pe pragul lumii inteligenței artificiale
- Computerul nu înțelege încă, dar deja "vede"
- Integrarea viziunii pe calculator în diferite platforme
- Problemă nerezolvată viziunea pe computer este abilitatea de a recunoaște textul arbitrar
- Jocuri cu viziune pe calculator, capturarea mișcării
- Roboții sunt peste tot
- O cameră modernă este un analog al unei camere obscura
- Percepția psihologică a culorii
- Programarea viziunii pe calculator în python folosind bibliotecile
Ce este viziunea pe calculator? Aceasta este capacitatea computerului de a "vedea"
Viziunea este o sursă importantă de informație pentru o persoană, cu ajutorul căreia obținem, potrivit diverselor surse, 70-90% din toate informațiile. Și, firește, dacă vrem să creăm o mașină inteligentă, trebuie să implementăm aceleași abilități în computer.
Sarcina de vizionare pe calculator poate fi formulată destul de neclară. Ce este "vezi"? Trebuie să înțelegeți că unde se află, doar căutați. Aceasta este diferența dintre viziunea computerului și viziunea umană. Viziunea pentru noi este sursa cunoașterii despre lume, precum și o sursă de informații metrice - adică abilitatea de a înțelege distanțele și dimensiunile.
Miezul semantic al imaginii
Privind imaginea, o putem caracteriza într-o serie de moduri, ca să spunem așa, să extragem informații semantice.
De exemplu, uita-te la această fotografie, putem spune că acest lucru este în afara camerei. Ce este acest oraș, traficul stradal. Că aici sunt mașini. Prin configurația clădirii și prin hieroglife, putem ghici că aceasta este Asia de Sud-Est. Potrivit portretului lui Mao Zedong, înțelegem că acesta este Beijing, iar dacă cineva a văzut videoclipul sau a vizitat el însuși, el va fi capabil să ghicească că aceasta este faimoasa Piață Tiananmen.
Ce putem spune despre imagine, considerând-o? Putem selecta obiectele de pe imagine, să zicem, există oameni acolo, mai aproape aici este gardul. Iată umbrelele, aici este clădirea, aici sunt postere. Acestea sunt exemple de clase de obiecte foarte importante, care sunt căutate în acest moment.
De asemenea, putem extrage câteva atribute sau atribute ale obiectelor. De exemplu, aici putem constata că acesta nu este un portret al unor chinezi obișnuiți, și anume Mao Zedong.
Cu mașina, puteți determina că acesta este un obiect în mișcare și este rigid, adică nu se deformează în timpul mișcării. Despre steagurile pe care le puteți spune că acestea sunt obiecte, ele se mișcă, dar ele nu sunt rigide, permanent deformate. Și, de asemenea, există un vânt în scenă, poate fi determinat de steagul în curs de dezvoltare și chiar direcția vântului poate fi determinată, de exemplu, suflă din stânga în dreapta.
Valoarea distanțelor și a lungimilor în vederea calculatorului
Foarte important este informația metrică din domeniul științei despre viziunea pe computer. Sunt tot felul de distanțe. De exemplu, pentru un rover, acest lucru este deosebit de important, deoarece comenzile de pe Pământ durează aproximativ 20 de minute și răspunsul este același. În consecință, legătura acolo și înapoi - 40 de minute. Și dacă vom elabora un plan pentru mișcarea comenzilor Pământului, atunci trebuie să luăm acest lucru în considerare.
Din fericire, tehnologiile de viziune pe computer sunt integrate în jocurile video. Prin video, puteți construi modele tridimensionale de obiecte, persoane și fotografii ale utilizatorilor, pot restaura modele tridimensionale ale orașelor. Și apoi mergeți pe ele.
Viziunea computerului este o zonă destul de largă. Este strâns legată de diverse alte științe. Parțial, viziunea pe computer captează zona de procesare a imaginii și uneori identifică domeniul viziunii computerizate, istoric.
Analiza, recunoașterea modelului - modul de a crea minți superioare
Vom analiza aceste concepte separat.
Prelucrarea imaginilor este domeniul algoritmilor în care intrarea și ieșirea sunt o imagine și noi deja facem ceva cu ea.
Analiza imaginilor este un domeniu al viziunii computerizate care se concentrează pe lucrul cu o imagine bidimensională și trage concluzii din aceasta.
Recunoașterea imaginilor este o disciplină matematică abstractă care recunoaște datele sub formă de vectori. Adică intrarea este un vector și trebuie să facem ceva cu ea. De unde acest vector nu este atât de important pentru noi să știm.
Viziunea computerului - a fost inițial o restaurare a structurii imaginilor bidimensionale. Acum, această zonă a devenit mai extinsă și poate fi tratată, în general, ca luarea deciziilor cu privire la obiectele fizice, pe baza imaginii. Asta este aceasta este o sarcină inteligența artificială.
În paralel cu viziunea calculatorului în absolut o altă zonă, în geodezie, sa dezvoltat fotogrammetria - aceasta este măsurarea distanțelor dintre obiectele pe imagini bidimensionale.
Roboții pot "vedea"
Și ultimul lucru este viziunea mașinilor. Prin viziunea calculatorului se înțelege vederea roboților. Aceasta este soluția unor probleme de producție. Putem spune că viziunea pe computer - aceasta este o mare știință. El unește unele alte științe în parte. Iar când viziunea pe computer primește o aplicație specifică, ea se transformă în viziune asupra computerului.
Domeniul viziunii pe calculator are o mulțime de aplicații practice. Este asociat cu automatizarea producției. La întreprinderi, devine mai eficient să se înlocuiască munca manuală cu mașinile. Mașina nu este obosită, nu doarme, are un program de lucru nereglementat, este gata să lucreze 365 de zile pe an. Prin urmare, prin utilizarea mașinilor, putem obține un rezultat garantat la un anumit moment și acest lucru este destul de interesant. Toate sarcinile pentru sistemele de vizionare pe calculator au o aplicație vizuală. Și nu este nimic mai bun decât să vezi rezultatul imediat din imagine, doar în stadiul calculelor.
Pe pragul lumii inteligenței artificiale
Plus zona - este complicat! O parte importantă a creierului este responsabilă pentru viziune și se crede că dacă învățați computerul să "vadă", adică să utilizați pe deplin viziunea calculatorului, atunci aceasta este una dintre sarcinile complete ale inteligenței artificiale. Dacă putem rezolva problema la nivel uman, cel mai probabil, în același timp, vom rezolva problema AI. Ceea ce este foarte bun! Sau nu foarte bine, dacă te uiți la "Terminator 2".
De ce este dificilă viziunea? Deoarece imaginea acelorași obiecte poate varia foarte mult în funcție de factorii externi. În funcție de punctele de observare, obiectele arată diferit.
De exemplu, una și aceeași figură, luată din unghiuri diferite. Și ceea ce este cel mai interesant, o figură poate avea un ochi, doi ochi sau un an și jumătate. Și în funcție de context (dacă este o fotografie a unui bărbat într-un tricou cu ochi vopsite), atunci ochiul poate fi mai mult de două.
Computerul nu înțelege încă, dar deja "vede"
Un alt factor care creează complexitatea este iluminarea. Aceeași scenă cu iluminare diferită va arăta diferită. Dimensiunea obiectelor poate varia. Și obiecte din orice clasă. Cum poți spune despre un bărbat că înălțimea lui este de 2 metri? Nici un fel. Înălțimea unei persoane poate fi de 2,3 m și de 80 cm. Ca obiecte de alte tipuri, acestea sunt totuși obiecte din aceeași clasă.
În special obiectele vii suferă o varietate de deformări. Părul oamenilor, sportivilor, animalelor. Uită-te la imaginile de a alerga cai, este imposibil să se determine ce se întâmplă cu coama și coada lor. O suprapunere a obiectelor din imagine? Dacă faceți o astfel de fotografie pe un computer, chiar și cea mai puternică mașină va fi dificil de a da soluția potrivită.
Următorul tip este deghizat. Unele obiecte, animalele sunt mascate în mediul înconjurător și suficient de priceput. Petele sunt aceleași și culoarea. Dar totuși le vedem, deși nu întotdeauna de departe.
O altă problemă este mișcarea. Obiectele în mișcare suferă deformări inimaginabile.
Multe obiecte sunt foarte variabile. Aici, de exemplu, în două fotografii de mai jos obiecte precum "fotoliu".
Și pe asta poți sta. Dar pentru a învăța mașina că lucrurile diferite în formă, culoare, material sunt toate obiectele "scaunului" - foarte dificil. Aceasta este sarcina. Metode de integrare a viziunii pe calculator este de a învăța o mașină pentru a înțelege, a analiza și a ghici.
Integrarea viziunii pe calculator în diferite platforme
În masă, viziunea computerelor a început să pătrundă înapoi în 2001, când au fost create primele detectoare de față. Au fost cei doi autori: Viola, Jones. Acesta a fost primul algoritm rapid și suficient de fiabil, care a demonstrat puterea metodelor de învățare a mașinilor.
Acum, viziunea pe calculator are o aplicație practică destul de nouă - recunoscând o persoană cu fața.
Dar este imposibil să recunoaștem o persoană, așa cum se arată în filme - în unghiuri arbitrare, cu diferite condiții de iluminare. Dar pentru a rezolva problema, unul sau diferiți oameni cu iluminare diferită sau în poziții diferite, asemănători, ca și fotografiile din pașaport, puteți cu un grad înalt de încredere.
Cerințele pentru fotografiile cu pașaport 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 un sistem automat de control al pașapoartelor.
Problemă nerezolvată Viziunea pe computer este abilitatea de a recunoaște textul arbitrar
Poate că cineva a folosit sistemul de recunoaștere a textului. Unul dintre acestea este Fine Reader, un sistem foarte popular în Runet. Există multe forme în care trebuie să completați datele, sunt perfect scanate, informațiile sunt recunoscute foarte bine de sistem. Dar cu text arbitrar asupra imaginii, lucrurile sunt mult mai rele. Această sarcină rămâne nerezolvată.
Jocuri cu viziune pe calculator, capturarea mișcării
O arie mare separată este crearea de modele tridimensionale și de captare a mișcării (care este implementat cu succes în jocuri pe calculator). Primul program, folosind viziunea computerizată, este un sistem de interacțiune cu calculatorul cu ajutorul gesturilor. Când a fost creat, au fost multe lucruri care au fost deschise.
Algoritmul în sine este destul de simplu, dar pentru ao configura, a fost necesar să se creeze un generator de imagini artificiale de oameni pentru a obține un milion de fotografii. Supercomputerul, cu ajutorul lor, a preluat parametrii algoritmului, conform cărora funcționează acum cel mai bine.
Astfel, un milion de imagini și o săptămână de calcul supercomputer au permis să creeze un 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).
Căutarea imaginilor în funcție de conținut vă permite să încărcați o fotografie în sistem, iar după rezultate veți afișa toate fotografiile cu același conținut și luate din același unghi.
Exemple de viziune pe calculator: în prezent se realizează hărți tridimensionale și bidimensionale. Hărțile pentru navigatoarele auto sunt actualizate în mod regulat în funcție de datele de la DVR-uri.
Există o bază cu miliarde de fotografii cu geometrie. Încărcarea unui instantaneu în această bază de date vă permite să determinați unde a fost făcut și chiar din ce perspectivă. Bineînțeles, cu condiția ca locul să fie destul de popular, că la un moment dat au fost turiști și au făcut o serie de fotografii ale zonei.
Roboții sunt peste tot
Robotica este acum peste tot, fără ea deloc. Acum, există vehicule care au camere speciale care recunosc pietonii și indicatoarele rutiere pentru a transmite comenzi către conducătorul auto (acest lucru într-un mod un program de calculator pentru a vizualiza, ajută șoferul). Și există o vehicule robotizate complet automatizate, dar ele nu se pot baza numai pe camera video de sistem, fără utilizarea unei cantități mari de informații suplimentare.
O cameră modernă este un analog al unei camere obscura
Să vorbim despre imaginea digitală. Camerele digitale moderne sunt construite pe principiul camerei obscura. Numai că în loc de gaura prin care lumina intră în fasciculul și proiectate pe peretele din spate al camerei circuitului subiect, avem un sistem optic special numit lentila. Obiectivul ei este de a colecta un fascicul de lumină de mare și de ao transforma, astfel încât toate razele trecut printr-un punct virtual, în scopul de a obține proiecția și formează o imagine pe film sau o matrice.
Camerele digitale moderne (matrice) constau din elemente separate - pixeli. Fiecare pixel vă permite să măsurați energia luminii, care cade pe acest pixel în total, și ieșiți un număr. Prin urmare, într-o cameră digitală, obținem în locul unei imagini un set de măsurători ale luminozității luminii care intră într-un computer pixel individual câmpul de vedere. Prin urmare, atunci când imaginea este mărită, nu vedem linii netede și contururi clare, ci o rețea de pixeli care sunt colorate în tonuri diferite - pixeli.
Mai jos puteți vedea prima imagine digitală din lume.
Dar ce lipsește în această imagine? Culoare. Și ce este culoarea?
Percepția psihologică a culorii
Culoarea este ceea ce vedem. Culoarea obiectului, același obiect pentru om și pisică va fi diferită. Deoarece noi (la oameni) și animalele avem un sistem optic - viziune, este diferit. Prin urmare, culoarea este o proprietate psihologică a viziunii noastre, care rezultă din observarea obiectelor și a luminii. Și nu proprietatea fizică a obiectului și a luminii. Culoarea este rezultatul interacțiunii dintre componentele luminii, scena și sistemul nostru vizual.
Programarea viziunii pe calculator în Python folosind bibliotecile
Dacă ați decis să se angajeze în mod serios în studiul de viziune de calculator, ar trebui să se pregătească imediat pentru o serie de dificultăți, această știință nu este cea mai ușoară și ascunde o serie de capcane. Dar „Programarea calculatoarelor Vision pe Python“ paternitatea lui Jan Erik Solema - o carte care descrie toate limbajul cel mai simplu. Aici veți face cunoștință cu metodele de recunoaștere a diferitelor obiecte în 3D, să învețe să lucreze cu imaginea stereo, realitatea virtuală și multe alte aplicații de vizualizare pe computer. Există suficiente exemple în cartea din Python. Dar explicațiile sunt prezentate, ca să spunem așa, generalizată, astfel încât să nu suprasarcină prea mult de cercetare și de date dure. Munca se potriveste elevilor, iubitorilor si entuziaștilor. Puteți descărca această carte și altele despre viziunea pe calculator (format pdf) online.
În prezent, există o bibliotecă deschisă de algoritmi pentru viziunea pe calculator, precum și procesarea imaginilor și algoritmi numerici pentru OpenCV. Acest lucru este implementat în majoritatea limbilor de programare moderne, are cod sursă deschisă. Dacă vorbim despre viziunea pe computer, Python îl folosește ca limbaj de programare, are și sprijinul acestei biblioteci, în plus, este în continuă evoluție și are o comunitate mare.
Microsoft oferă serviciile sale Api, care pot pregăti rețele neuronale pentru a lucra cu imagini ale indivizilor. Există, de asemenea, posibilitatea de a aplica și viziunea pe calculator, folosind Python ca limbaj de programare.
Distanța de la ochi la monitor: caracteristici, cerințe și norme
Cum să verificați viziunea la domiciliu. Sfaturi simple
Nu vă doare ochii de la computer? Vă vom spune ce să faceți în acest articol!
De ce avem nevoie de ochelari pentru computer și cum să le alegem corect?
Tianhe-2 - cel mai puternic calculator din lume
Viziunea binoculară ca proces complex
Pahare de computer: bune sau rele. Recenzii ale medicilor despre ochelari de calculator
Cum se referă viziunea mondială și valorile omului?
Ghicitori ale filosofiei: atitudinea este ce?
Sindromul de viziune asupra computerului: o boală a progresului științific și tehnologic?
Care sunt programele interesante pentru calculator?
Care este diferența dintre viziunea monoculară și viziunea binoculară?
Dependența de calculator: realitățile de azi
Cum să vă păstrați vederea când lucrați la computer - modalități eficiente și recomandări
Viziunea asupra lumii științifice
Cum să aflați ID-ul computerului
Ce este un computer și ce este acum?
Alegeți ochelari: mijloace de protecție pentru sănătatea dumneavoastră
Cum să conectați televizorul la un computer fără ajutor?
Sursă de alimentare a computerului și grijă de acesta
Cum să faceți o fotografie a ecranului unui computer în Windows și Mac OS