Computer vision (annars teknisk vision ) är en teori och teknik för att skapa maskiner som kan upptäcka, spåra och klassificera objekt.
Som en vetenskaplig disciplin hänvisar datorseende till teorin och tekniken för att skapa konstgjorda system som hämtar information från bilder. Videodata kan vara i många former, som en videosekvens, bilder från olika kameror eller 3D-data som från en Kinect- enhet eller en medicinsk skanner.
Som en teknisk disciplin försöker datorseende att tillämpa teorier och modeller för datorseende för att bygga datorseendesystem . Exempel på användning av sådana system kan vara:
Datorseende kan också beskrivas som ett komplement till (men inte nödvändigtvis motsatsen till) biologisk syn. Inom biologi studeras den visuella uppfattningen av människor och olika djur, som ett resultat av vilka modeller för driften av sådana system skapas i termer av fysiologiska processer. Computer vision, å andra sidan, studerar och beskriver datorseende system som är implementerade i hårdvara eller mjukvara. Det tvärvetenskapliga utbytet mellan biologisk och datorseende har visat sig vara mycket produktivt för båda vetenskapsområdena.
Underavsnitt av datorseende inkluderar återuppspelning av action, händelsedetektering, spårning, mönsterigenkänning, bildåterställning och några andra.
Området datorseende kan karakteriseras som ungt, mångsidigt och dynamiskt utvecklande. Och även om det finns tidigare verk kan man säga att det inte var förrän i slutet av 1970-talet som intensiva studier av detta problem började, när datorer kunde styra behandlingen av stora datamängder, som bilder. Men dessa studier startade vanligtvis inom andra områden, och därför finns det ingen standardformulering av datorseendeproblemet. Dessutom, och ännu viktigare, finns det ingen standardformulering för hur ett datorseendeproblem ska lösas. Istället finns det många metoder för att lösa olika väldefinierade datorseendeproblem, där metoderna ofta är problemspecifika och sällan kan generaliseras till ett brett spektrum av tillämpningar. Många av metoderna och tillämpningarna finns fortfarande inom grundforskningen, men ett ökande antal metoder används i kommersiella produkter, där de ofta ingår i ett större system som kan lösa komplexa problem (till exempel inom medicinsk bildbehandling eller mätning och kvalitet). kontroll i tillverkningsprocesser). I de flesta praktiska tillämpningar av datorseende är datorer förprogrammerade för att utföra specifika uppgifter, men kunskapsbaserade metoder blir mer generella.
En viktig del inom området artificiell intelligens är automatisk planering eller beslutsfattande i system som kan utföra mekaniska åtgärder, som att flytta en robot genom någon miljö. Denna typ av bearbetning kräver vanligtvis input från datorseendesystem som fungerar som en videosensor och ger information på hög nivå om miljön och roboten. Andra områden som ibland beskrivs som tillhörande artificiell intelligens och som används i relation till datorseende är mönsterigenkänning och inlärningsmetoder. Som ett resultat ses datorseende ibland som en del av området artificiell intelligens eller datavetenskap i allmänhet.
Ett annat område relaterat till datorseende är signalbehandling . Många metoder för att bearbeta endimensionella signaler, vanligtvis temporala signaler, kan naturligtvis utvidgas till att behandla tvådimensionella eller flerdimensionella signaler i datorseende. Men på grund av bildernas säregna natur finns det många metoder utvecklade inom datorseende som inte har några analoger inom området endimensionell signalbehandling. En speciell egenskap hos dessa metoder är deras icke-linjäritet, som tillsammans med signalens flerdimensionalitet gör det motsvarande delfältet vid signalbehandling till en del av datorseendefältet.
Förutom de nämnda synsätten på problemet med datorseende kan många av de frågor som undersöks studeras rent matematiskt. Till exempel är många metoder baserade på statistik , optimeringsmetoder eller geometri . Slutligen görs mycket arbete inom området praktiska tillämpningar av datorseende - hur befintliga metoder kan implementeras i mjukvara och hårdvara, eller hur de kan modifieras för att uppnå hög hastighet utan en betydande ökning av förbrukade resurser.
Datorseende , bildbehandling och maskinseende är närbesläktade områden. Men det är fortfarande inte exakt bestämt om de är sektioner av en, bredare. I en detaljerad analys kan det tyckas att det bara är olika namn för samma område. För att undvika förvirring är det vanligt att särskilja dem som områden inriktade på ett visst studieämne. Nedan följer en beskrivning av några av de viktigaste:
Bildbehandling, eller bildanalys, är främst inriktad på att arbeta med tvådimensionella bilder, det vill säga hur man omvandlar en bild till en annan. Till exempel, per-pixel kontrastförbättringsoperationer, kantförbättringsoperationer, nedtoningsoperationer eller geometriska transformationer som affina transformationer . Dessa operationer förutsätter att bildbehandling/analys fungerar oberoende av innehållet i själva bilderna.
Datorseende fokuserar på bearbetning av 3D-scener som projiceras på en eller flera bilder. Till exempel att återställa strukturen eller annan information om en tredimensionell scen från en eller flera bilder. Datorseende beror ofta på mer eller mindre komplexa antaganden om vad som representeras i bilderna.
Machine vision fokuserar på främst industriella applikationer som autonoma robotar och visuella inspektions- och mätsystem. Detta innebär att bildsensorteknologier och styrteori är förknippade med bearbetning av videodata för att styra roboten, och databearbetning i realtid utförs i hårdvara eller mjukvara.
Det finns också ett fält som heter Visualisering , som ursprungligen förknippades med processen att skapa bilder, men ibland handlade om bearbetning och analys. Till exempel arbetar röntgen med analys av medicinsk applikationsvideodata.
Slutligen är mönsterigenkänning ett fält som använder olika metoder för att extrahera information från videodata, huvudsakligen baserat på ett statistiskt tillvägagångssätt. En betydande del av detta område ägnas åt den praktiska tillämpningen av dessa metoder.
En av de viktigaste tillämpningarna är bildbehandling inom medicin. Detta område kännetecknas av att hämta information från videodata för medicinsk diagnos av patienter. I de flesta fall erhålls videodata med hjälp av mikroskopi , radiografi , angiografi , ultraljud och tomografi . Ett exempel på information som kan erhållas från sådana videodata är upptäckten av tumörer , åderförkalkning eller andra maligna förändringar. Ett annat exempel skulle vara mätning av organstorlekar, blodflöde etc. Detta tillämpningsområde bidrar också till medicinsk forskning genom att tillhandahålla ny information, till exempel om hjärnans struktur eller kvaliteten på medicinsk behandling.
Ett annat tillämpningsområde för datorseende är industrin. Här inhämtas informationen i syfte att stödja produktionsprocessen. Ett exempel skulle vara kvalitetskontroll, där delar eller slutprodukten automatiskt kontrolleras för defekter. Ett annat exempel är mätning av position och orientering av delar som lyfts av en robotarm.
Militära applikationer är kanske det största området för datorseende. Uppenbara exempel är upptäckt av fiendens soldater och fordon och kontroll av missiler . De mest avancerade missilkontrollsystemen skickar missilen till ett givet område istället för ett specifikt mål, och målval görs när missilen når det givna området baserat på mottagen videodata. Ett modernt militärt koncept som "combat awareness" innebär att olika sensorer, inklusive bildsensorer, tillhandahåller en stor uppsättning information om slagfältet som kan användas för att fatta strategiska beslut. I det här fallet används automatisk databehandling för att minska komplexiteten eller öka tillförlitligheten hos den mottagna informationen.
Ett av de nya användningsområdena är autonoma fordon, inklusive undervatten, mark (robotar, bilar), luft. Graden av autonomi varierar från helt autonoma (obemannade) fordon till fordon där datorseende baserade system stödjer föraren eller piloten i olika situationer. Helt autonoma fordon använder datorseende för navigering, det vill säga för att få information om sin plats, för att skapa en karta över miljön, för att upptäcka hinder. De kan också användas för specifika uppgifter, som skogsbranddetektering. Exempel på sådana system är varningssystem för fordonshinder och autonoma landningssystem för flygplan. Vissa biltillverkare har demonstrerat autonoma körsystem, men denna teknik har ännu inte nått den punkt där den kan masstillverkas.
Andra applikationer inkluderar:
Vart och ett av de ovan beskrivna tillämpningsområdena för datorseende är associerat med ett antal uppgifter; mer eller mindre väldefinierade mät- eller bearbetningsproblem kan lösas med en mängd olika metoder. Några exempel på typiska datorseendeuppgifter presenteras nedan.
En klassisk uppgift inom datorseende, bildbehandling och maskinseende är att avgöra om videodata innehåller något karakteristiskt objekt, funktion eller aktivitet. Denna uppgift kan tillförlitligt och enkelt lösas av en människa, men har ännu inte lösts på ett tillfredsställande sätt i datorseende i det allmänna fallet: slumpmässiga objekt i slumpmässiga situationer.
Befintliga metoder för att lösa detta problem är endast effektiva för vissa objekt, såsom enkla geometriska objekt (till exempel polyedrar), mänskliga ansikten, tryckta eller handskrivna tecken, bilar, och endast under vissa förhållanden, vanligtvis en viss belysning, bakgrund och position för objektet i förhållande till kameran.
En mängd olika igenkänningsproblem har beskrivits i litteraturen:
Det finns flera specialiserade uppgifter baserade på erkännande, till exempel:
Flera rörelseuppskattningsuppgifter där en sekvens av bilder (videodata) bearbetas för att hitta en uppskattning av hastigheten för varje punkt i en bild eller 3D-scen. Exempel på sådana uppgifter är:
Givet två eller flera bilder av en scen, eller videodata. Scenrestaurering har till uppgift att återskapa en tredimensionell modell av scenen. I det enklaste fallet kan modellen vara en uppsättning punkter i tredimensionellt rum. Mer sofistikerade metoder återger hela 3D-modellen.
Uppgiften med bildåterställning är att ta bort brus (sensorbrus, rörelseoskärpa, etc.). Det enklaste sättet att lösa detta problem är olika typer av filter, såsom lågpass- eller mellanpassfilter. Mer komplexa metoder använder representationer av hur vissa delar av bilden ska se ut, och utifrån detta ändrar man dem.
En högre nivå av brusborttagning uppnås genom att först analysera videodata för närvaron av olika strukturer, såsom linjer eller kanter, och sedan hantera filtreringsprocessen baserat på dessa data.
Implementeringen av datorseendesystem är starkt beroende av deras applikation, hårdvaruplattform och prestandakrav. Vissa system är autonoma och löser specifika detekterings- och mätproblem, medan andra system är delsystem av större system som redan kan innehålla delsystem för styrning av mekaniska manipulatorer (robotar), informationsdatabaser (som söker efter liknande bilder), gränssnitt mellan människa och maskin (dataspel) , etc. Det finns dock funktioner som är gemensamma för många datorseendesystem.