Hur man lär en dator att förstå vad som visas påbild eller fotografi? Det verkar enkelt för oss, men för en dator är det bara en matris med nollor och enor, från vilka du behöver extrahera viktig information.
Vad är datasyn? Detta är datorns förmåga att "se"
Vision är en viktig informationskälla fören person, med hjälp av honom får vi, enligt olika källor, från 70 till 90% av all information. Och naturligtvis, om vi vill skapa en smart bil, måste vi implementera samma färdigheter i en dator.
Uppgiften med datorsyn kan varaformuleras ganska vagt. Vad är "att se"? Det är att förstå vad som är var, bara genom att titta. Detta är skillnaden mellan datasyn och mänsklig syn. Vision för oss är en källa till kunskap om världen, liksom en källa till metrisk information - det vill säga förmågan att förstå avstånd och storlekar.
Bildens semantiska kärna
När vi tittar på bilden kan vi karakterisera den enligt ett antal funktioner, så att säga, extrahera semantisk information.
Om vi till exempel tittar på det här fotot kan visäg att det är utomhus. Att detta är en stad, trafik. Att det finns bilar här. Från byggnadens konfiguration och från hieroglyferna kan vi gissa att detta är Sydostasien. Från porträttet av Mao Zedong förstår vi att detta är Peking, och om någon har sett videosändningarna eller har varit där själv kommer han att kunna gissa att detta är den berömda Himmelska Fridens torg.
Vad mer kan vi säga om bilden genom att titta påhenne? Vi kan markera objekt i bilden, säg, det finns människor där, här närmare - ett staket. Här är paraplyerna, här är byggnaden, här är affischerna. Dessa är exempel på mycket viktiga objektklasser som just nu letas efter.
Vi kan också extrahera vissa funktioner eller attribut för objekt. Här kan vi till exempel bestämma att detta inte är ett porträtt av någon vanlig kines, nämligen Mao Zedong.
Med bilen kan du bestämma vad det ärett rörligt föremål, och det är styvt, det vill säga det deformeras inte under rörelse. Vi kan säga om flaggor att dessa är föremål, de rör sig också, men de är inte styva, de deformeras ständigt. Och det finns också vind i scenen, detta kan bestämmas av den viftande flaggan, och du kan till och med bestämma vindens riktning, till exempel, det blåser från vänster till höger.
Värdet av avstånd och längder i datasynen
Metrisk information är mycket viktig i vetenskapen om datorsyn. Det här är alla slags avstånd.Till exempel är detta särskilt viktigt för en rover, eftersom kommandon från jorden tar cirka 20 minuter och svaret är detsamma. Följaktligen är returresan 40 minuter. Och om vi upprättar en rörelseplan enligt jordens befallningar, måste vi ta hänsyn till detta.
Framgångsrik datorvisionsteknikintegrerad i videospel. Från videon kan du bygga tredimensionella modeller av objekt, människor och från användarfoton kan du återställa tredimensionella modeller av städer. Och gå sedan längs dem.
Datorsyn Är ett ganska brett område. Det är nära sammanflätat med olika andra vetenskaper. Delvis datorvision fångar området för bildbehandling och ibland lyfter fram området för maskinsyn, historiskt hände det.
Analys, mönsterigenkänning - sättet att skapa ett högre sinne
Låt oss analysera dessa begrepp separat.
Bildbehandling är det område av algoritmer där in- och utdata är en bild, och vi gör redan något med det.
Bildanalys är ett område för datorsyn som fokuserar på att arbeta med en tvådimensionell bild och drar slutsatser av den.
Mönsterigenkänning är abstrakten matematisk disciplin som känner igen data som vektorer. Det vill säga, det finns en vektor vid ingången och vi måste göra något med den. Varifrån denna vektor kommer är det inte så viktigt för oss att veta.
Datorsyn var ursprungligenrekonstruktion av strukturen från tvådimensionella bilder. Nu har detta område blivit bredare och det kan tolkas i allmänhet som att fatta beslut om fysiska objekt baserat på bilden. Det vill säga detta är uppgiften för artificiell intelligens.
Parallellt med datorsyn, i ett helt annat fält, i geodesi, utvecklades fotogrammetri - detta är mätningen av avstånd mellan objekt som använder tvådimensionella bilder.
Robotar kan "se"
Och den sista är maskinsyn. Maskinsyn avser robotens vision. Det vill säga lösningen på vissa produktionsproblem. Vi kan säga den datorsynen - det här är en stor vetenskap. Det kombinerar vissa andra vetenskaper delvis. Och när datorsyn tar emot en specifik applikation blir den till maskinsyn.
Fältet för datasyn har en massapraktiska tillämpningar. Det är förknippat med automatiseringen av produktionen. På företag blir det effektivare att ersätta manuellt arbete med maskinarbete. Maskinen blir inte trött, sover inte, den har ett oregelbundet arbetsschema, den är redo att arbeta 365 dagar om året. Så med maskinarbete kan vi få ett garanterat resultat vid en viss tidpunkt, och det är ganska intressant. Alla uppgifter för datorvisionssystem har en visuell applikation. Och det finns inget bättre än att se resultatet direkt från bilden, bara i beräkningsstadiet.
På tröskeln till en värld av artificiell intelligens
Plus området är svårt!En betydande del av hjärnan är ansvarig för synen, och man tror att om du lär en dator att "se", det vill säga tillämpa datorsyn helt, så är detta en av de fullständiga uppgifterna för artificiell intelligens. Om vi kan lösa problemet på mänsklig nivå kommer vi troligen att lösa AI-problemet samtidigt. Vilket är mycket bra! Eller inte särskilt bra om du tittar på Terminator 2.
Varför är syn svårt? Eftersom bilden av samma objekt kan variera mycket beroende på externa faktorer. Objekt ser olika ut beroende på observationspunkterna.
Till exempel en och samma siffra hämtad från olikavinklar. Och mest intressant kan en figur ha ett öga, två ögon eller en och en halv. Och beroende på sammanhanget (om det här är ett foto av en person i en T-shirt med tecknade ögon), kan det finnas fler än två ögon.
Datorn förstår inte ännu, men den "ser" redan
En annan faktor som skapar svårigheter ärbelysning. Samma scen med olika belysning ser annorlunda ut. Objektens storlek kan variera. Dessutom objekt av vilken klass som helst. Hur kan du säga om en person att hans höjd är 2 meter? Aldrig. En persons höjd kan vara 2,3 m och 80 cm. Liksom föremål av andra typer är det ändå objekt av samma klass.
Särskilt levande föremål genomgår mestolika deformationer. Hår av människor, idrottare, djur. Titta på bilder av löpande hästar, det är helt enkelt omöjligt att avgöra vad som händer med deras man och svans. Vad sägs om överlappningen av objekt i bilden? Om du släpper in en sådan bild i en dator, kommer även den mest kraftfulla maskinen att ha svårt att ge rätt lösning.
Nästa typ är förklädnad.Vissa föremål, djur förklarar sig som miljön, och ganska skickligt. Och fläckarna är desamma och färgerna. Ändå ser vi dem, men inte alltid långt ifrån.
Ett annat problem är rörelse. Objekt i rörelse genomgår ofattbara deformationer.
Många objekt är mycket varierande. Här, till exempel, i de två bilderna nedan är föremål av typen "fåtölj".
Och du kan sitta på det här.Men att lära en bil att så olika saker i form, färg, material alla är föremål för "stolen" - det är väldigt svårt. Det här är uppgiften. Att integrera datorvisionsmetoder är att lära en maskin att förstå, analysera och anta.
Integrering av datorvision i olika plattformar
Datorsyn började tränga igenom massorna till och med2001, när de första ansiktsdetektorerna skapades. Detta gjordes av två författare: Viola, Jones. Det var den första snabba och ganska robusta algoritmen som visade kraften i maskininlärning.
Nu har datorsyn en ganska ny praktisk tillämpning - ansiktsigenkänning.
Men att känna igen en person, som visas ifilmer - i godtyckliga vinklar, med olika ljusförhållanden - är det omöjligt. Men för att lösa problemet, oavsett om det är en eller olika personer med olika belysning eller i olika positioner, liknande, som på fotografiet i passet, kan du med hög grad av självförtroende.
Kraven på passfotografier beror till stor del på det speciella med ansiktsigenkänningsalgoritmer.
Till exempel, om du har ett biometriskt pass, kan du på vissa moderna flygplatser använda det automatiska passkontrollsystemet.
Det olösta problemet med datasyn är förmågan att känna igen godtycklig text
Någon kan ha använt systemetOCR. En av dessa är Fine Reader, som är ett mycket populärt system på Runet. Det finns många formulär där du behöver fylla i data, de skannas perfekt, informationen känns igen av systemet mycket bra. Men med fri text på bilden är situationen mycket värre. Denna uppgift är fortfarande olöst.
Spel som involverar datasyn, motion capture
Ett separat stort område är skapandet3D-modeller och motion capture (som är ganska framgångsrikt implementerat i dataspel). Det första programmet som använder datorsyn är ett system för interaktion med en dator med gester. Under skapandet upptäcktes många saker.
Algoritmen i sig är ganska enkel, men för denanpassning krävs för att skapa en generator av konstgjorda bilder av människor för att få en miljon bilder. Superdatorn använde dem för att välja parametrarna för algoritmen, enligt vilken den nu fungerar på bästa sätt.
Det är en miljon bilder och en veckas räkningsuperdatorns tid tillåtet att skapa en algoritm som förbrukar 12% av en processors kraft och låter dig uppfatta en persons hållning i realtid. Detta är Microsoft Kinect-systemet (2010).
Att söka efter bilder efter innehåll gör att du kan ladda upp ett foto till systemet, och som ett resultat kommer det att returnera alla bilder med samma innehåll och tas från samma vinkel.
Exempel på datorvision: 3D- och 2D-kartor görs nu med den. Kartor för bilnavigatörer uppdateras regelbundet enligt data från DVR.
Det finns en databas med miljarder bilder frångeotaggar. Genom att ladda upp en bild till denna databas kan du bestämma var den togs och till och med från vilken vinkel. Naturligtvis, förutsatt att platsen är ganska populär, att turister på en gång har besökt den och tagit ett antal fotografier av området.
Robotar finns överallt
Robotik finns överallt idag utan denaldrig. Nu finns det bilar där det finns speciella kameror som känner igen fotgängare och vägskyltar för att skicka kommandon till föraren (på sätt och vis ett datorprogram för syn som hjälper bilentusiasten). Och det finns helautomatiserade robotbilar, men de kan inte förlita sig på ett videokamerasystem ensamt utan att använda mycket extra information.
En modern kamera är en analog av en pinhole-kamera
Låt oss prata om digital avbildning.Moderna digitalkameror är utformade som en hålkamera. Bara i stället för ett hål genom vilket en ljusstråle tränger igenom och projicerar konturen av ett objekt på kamerans bakvägg, har vi ett speciellt optiskt system som kallas en lins. Dess uppgift är att samla en stor ljusstråle och omvandla den på ett sådant sätt att alla strålar passerar genom en virtuell punkt för att få en projektion och bilda en bild på en film eller matris.
Moderna digitalkameror (matris)består av enskilda element - pixlar. Varje pixel låter dig mäta ljusets energi som faller totalt på denna pixel och mata ut ett nummer vid utgången. Därför får vi i en digitalkamera istället för en bild en uppsättning mätningar av ljusets ljusstyrka som har fallit i en separat pixel - datorns synfält. När bilden förstoras ser vi därför inte släta linjer och tydliga konturer utan ett rutnät av rutor målade i olika toner - pixlar.
Nedan visas världens första digitala bild.
Men vad saknas i den här bilden? Färg. Vad är färg?
Psykologisk uppfattning av färg
Färg är vad vi ser.Färgen på ett objekt, samma objekt för en person och en katt kommer att vara annorlunda. Eftersom vi (människor) och djur har ett annat optiskt system - syn. Därför är färg en psykologisk egenskap hos vår vision som uppstår när vi observerar föremål och ljus. Inte en fysisk egenskap hos ett objekt och ljus. Färg är resultatet av interaktionen mellan ljuskomponenterna, scenen och vårt visuella system.
Programmering av datorvision i Python med bibliotek
Om du bestämmer dig för att på allvar studeradatorsyn, är det värt att omedelbart förbereda sig för ett antal svårigheter, denna vetenskap är inte den enklaste och döljer ett antal fallgropar. Men "Computer Vision Programming in Python" av Ian Erik Solem är en bok som sätter allt på det enklaste sättet. Här kommer du att bekanta dig med metoder för att känna igen olika objekt i 3D, lära dig att arbeta med stereobilder, virtual reality och många andra datorsynapplikationer. Det finns tillräckligt med exempel i Python i boken. Men förklaringarna presenteras så att säga på ett generaliserat sätt för att inte överbelasta för vetenskaplig och svår information. Arbetet passar studenter, bara amatörer och entusiaster. Du kan ladda ner den här boken och andra om datorvision (pdf-format) på nätet.
Just nu finns det ett öppet bibliotekdatorvisionsalgoritmer, liksom bildbehandling och numeriska algoritmer för OpenCV. Den implementeras på de flesta moderna programmeringsspråk och är öppen källkod. Om vi pratar om datorvision, använder Python som programmeringsspråk, har det också stöd från detta bibliotek, dessutom utvecklas det ständigt och har ett stort samhälle.
Microsoft tillhandahåller sinaApi-tjänster som kan träna neurala nätverk för att arbeta med ansiktsbilder. Det är också möjligt att använda datorvision med Python som programmeringsspråk.