OpenCV er et åpen kildekode-datasynsbibliotek tilgjengelig under BSD-lisensen. Så det er gratis for akademisk og kommersiell bruk. Biblioteket er skrevet i C og C++. Den kjører på Linux, Windows, Mac OS, iOS og Android. Den har C, C ++, Java, MATLAB og Python-grensesnitt. OpenCV har mer enn 2500 optimaliserte algoritmer for sanntids datasyn.
Målet med OpenCV-fellesskapet er å lage en infrastruktur for datasyn som lar utviklere lage komplekse applikasjoner med relativt letthet. Biblioteket er designet for beregningseffektivitet for applikasjoner i sanntid. Så den har et bredt spekter av bruksområder innen ansiktsgjenkjenning, gestgjenkjenning, medisinsk bildebehandling, interaksjon mellom menneske og datamaskin, bevegelsessporing, sikkerhetsovervåking, robotikk, kamerakontroll og mer.
I tillegg til datamaskinsynkomponentene, har OpenCV også støtte for maskinlæring for generelle formål. Machine learning (ML) er en viktig teknologi for datasynproblemer. Så ML-biblioteket gjør OpenCV mer attraktivt for utviklere av datasyn.
Computer Vision og OpenCV
Datasyn ble opprettet med det mål å replikere menneskelige visjonsegenskaper. Den bruker algoritmer for å transformere fangede bilder til data og gjør det lettere å forstå synsproblemer i den virkelige verden.
Når det gjelder menneskesyn, fungerer øynene våre som inngangsenheter. Så deler hjernen vår bildestrømmene i flere kanaler for behandling. Foruten visuelle data tar den menneskelige hjerne også hensyn til andre sensoriske data og bruker den til å forstå romlig dybde. Det gir menneskelige hjerner muligheten til å forstå tredimensjonalt rom.
Når vi samler inn data gjennom kameraer, får vi et todimensjonalt syn på verden. Datasynsalgoritmer tar de todimensjonale bildene og bruker matematiske egenskaper for å finne ut de tredimensjonale representasjonene. Det er et ekstremt vanskelig problem å løse.
Datasyn bruker også ofte annen kontekstuell informasjon for å overvinne begrensningene i todimensjonale bilder. Den tar hensyn til informasjon som farge, lysstyrke eller kontrast. For eksempel, hvis en objektgjenkjenningsalgoritme leter etter et trebord, kan det trygt eliminere eventuelle ikke-trerelaterte farger fra inngangsbildene. Også datasynsalgoritmer eliminerer støy i inngangsdataene.
OpenCV-biblioteket er designet for å gjøre implementeringen av algoritmer for datasyn enklere. Den håndterer beregningskompleksitet slik at utviklere kan konsentrere seg om oppgaver på høyt nivå.
Historien om OpenCV
I 1999 startet OpenCV hos Intel som et initiativ for å fremme CPU-intensive applikasjoner. Gary Bradski som jobbet i Intel på den tiden, la merke til at studenter ved MIT Media Lab delte biblioteker for å få et forsprang i datasynsapplikasjoner. Dette inspirerte ideen til å bygge en infrastruktur for datasyn som lett kan brukes.
Fra Intel flyttet OpenCV-prosjektet til Willow Garage, et forskningslaboratorium for robotteknologi og teknologiinkubator basert i Menlo Park, California. For tiden vedlikeholdes OpenCV open source-prosjektet av Itseez, et tilpasset programvareutviklings- og konsulentselskap for datasyn.
OpenCV versjon 1.0 ble utgitt i 2006. Den neste store versjonen 2.0.0 kom i 2009. Den nåværende store versjonen 3.0.0 ble utgitt i 2015. Den siste versjonen hittil er OpenCV 3.3.0.
Bruke OpenCV
Biblioteket har fått popularitet blant forskere og akademikere. Det brukes ofte som et undervisningsverktøy for datasyn. Men OpenCV er robust nok til å støtte virkelige problemer.
Du kan bruke OpenCV til ikke-kommersielle og kommersielle produkter. Den brukes av bransjegiganter som Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda og Toyota. Forskningsinstitutter ved ledende universiteter som MIT, CMU, Stanford og Cambridge gir støtte til biblioteket. OpenCV Yahoo Group har 50000 medlemmer over hele verden.
Installere OpenCV
For å demonstrere installasjonen av OpenCV vil jeg bruke Ubuntu 17.10 og vil utføre installasjonen i et nytt dockerbilde for å sikre at det ikke er motstridende pakker for OpenCV dev-miljøet. Her er kommandolinjen min for dockeroppsett:
docker pull ubuntudocker run -it 00fd29ccc6f1 bash
apt-get oppdatering
Ok flott, nå har du et nytt miljø, la oss installere noen nødvendige avhengigheter for å gjøre miljøet brukbart.
apt-get install wget cmake g ++ pakke ut vimDeretter trenger vi kildekoden til OpenCV. Du kan få kildekoden fra nettstedet her, og sørge for at du laster ned den nyeste versjonen. Pakk den ut, og opprett deretter en byggekatalog for CMake-systemet og skriv inn katalogen:
wget https: // github.com / opencv / opencv / archive / 3.3.1.glidelåscd opencv-3.3.1
mkdir bygge
cd-bygging
Deretter kan vi bygge biblioteket og installere det i systemstien i dockerbildet. Hvis du ikke bruker docker, vil du bestemme deg for bygge prefikset ditt, men å bruke et dedikert dockerbilde gjør alt dette veldig enkelt som vist nedenfor:
cmake ..gjøre
gjøre installasjon
For å bekrefte at byggingen og installasjonen var vellykket, kan du skrive et trivielt C ++ - testprogram som inkluderer et OpenCV-bibliotek og deretter kjøre det. Her er en eksempelkode du kan bruke til å teste installasjonen din:
#include "opencv2 / core / core.hpp "#inkludere
int main ()
cv :: Point2f p (4, 5);
std :: cout << "Point output: " << p << std::endl;
retur 0;
Du kan bygge og kjøre det slik:
root @ 6d6b443afced: ~ / src # g ++ test.cpp-o testroot @ 6d6b443afced: ~ / src # ./test
Punktutgang: [4, 5]
Gratulerer med arbeidet, jobben er ferdig.
Neste skritt
OpenCV ansiktsgjenkjenning
Referanser:
- https: // opencv.org /
- https: // opencv.org / om.html
- https: // docs.opencv.org / 3.3.1 / d1 / dfb / intro.html
- https: // no.wikipedia.org / wiki / OpenCV