OpenCV er et open source-computersynsbibliotek tilgængeligt under BSD-licensen. Så det er gratis til akademisk og kommerciel brug. Biblioteket er skrevet i C og C++. Det kører på Linux, Windows, Mac OS, iOS og Android. Den har C-, C ++-, Java-, MATLAB- og Python-grænseflader. OpenCV har mere end 2.500 optimerede algoritmer til computersyn i realtid.
Målet med OpenCV-samfundet er at skabe en computersynsinfrastruktur, der giver udviklere mulighed for at oprette komplekse applikationer med relativ lethed. Biblioteket er designet til beregningseffektivitet til applikationer i realtid. Så det har en bred vifte af anvendelser inden for ansigtsgenkendelse, gestegenkendelse, medicinsk billeddannelse, interaktion mellem menneske og computer, bevægelsessporing, sikkerhedsovervågning, robotik, kamerakontrol og mere.
Udover computervisionskomponenterne har OpenCV også support til generel maskinlæring. Machine learning (ML) er en vigtig teknologi til computersynproblemer. Så ML-biblioteket gør OpenCV mere attraktivt for udviklere af computersyn.
Computervision og OpenCV
Computersyn blev oprettet med det mål at replikere menneskelige synsfunktioner. Det bruger algoritmer til at omdanne fangede billeder til data og gør det lettere at forstå visionsproblemer i den virkelige verden.
I tilfælde af menneskelig vision fungerer vores øjne som inputenheder. Derefter deler vores hjerner billedstrømmene i flere kanaler til behandling. Udover visuelle data tager den menneskelige hjerne også højde for andre sensoriske data og bruger dem til at forstå rumlig dybde. Det giver menneskelige hjerner mulighed for at forstå et tredimensionelt rum.
Når vi indsamler data gennem kameraer, får vi et todimensionalt billede af verden. Computersynsalgoritmer tager de to-dimensionelle billeder og bruger matematiske egenskaber til at finde ud af de tredimensionelle repræsentationer. Det er et ekstremt vanskeligt problem at løse.
Desuden bruger computersyn ofte andre kontekstuelle oplysninger til at overvinde begrænsningerne i to-dimensionelle billeder. Det tager højde for oplysninger som farve, lysstyrke eller kontrast. For eksempel, hvis en objektgenkendelsesalgoritme er på udkig efter et træbord, kan det sikkert fjerne eventuelle ikke-trærelaterede farver fra inputbillederne. Computervisionsalgoritmer fjerner også støj i inputdataene.
OpenCV-biblioteket er designet til at gøre implementeringen af algoritmer til computersyn lettere. Det håndterer beregningskompleksitet, så udviklere kan koncentrere sig om opgaver på højt niveau.
Historien om OpenCV
I 1999 startede OpenCV hos Intel som et initiativ til at fremme CPU-intensive applikationer. Gary Bradski, der arbejdede hos Intel på det tidspunkt, bemærkede, at studerende ved MIT Media Lab delte biblioteker for at få et forspring i computersynsapplikationer. Dette inspirerede ideen til at opbygge en computersynsinfrastruktur, der let kan bruges.
Fra Intel flyttede OpenCV-projektet til Willow Garage, et robotforskningslaboratorium og teknologiinkubator med base i Menlo Park, Californien. I øjeblikket vedligeholdes OpenCV open source-projektet af Itseez, et skræddersyet computerudviklings- og konsulentfirma.
OpenCV version 1.0 blev udgivet i 2006. Den næste store version 2.0.0 kom i 2009. Den aktuelle større version 3.0.0 blev udgivet i 2015. Den seneste version til dato er OpenCV 3.3.0.
Brug af OpenCV
Biblioteket har vundet popularitet blandt forskere og akademikere. Det bruges ofte som et undervisningsværktøj til computersyn. Men OpenCV er robust nok til at understøtte virkelige problemer.
Du kan bruge OpenCV til ikke-kommercielle og kommercielle produkter. Det bruges af branchegiganter som Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda og Toyota. Forskningsinstitutter ved førende universiteter som MIT, CMU, Stanford og Cambridge yder støtte til biblioteket. OpenCV Yahoo Group har 50.000 medlemmer over hele verden.
Installation af OpenCV
For at demonstrere installationen af OpenCV bruger jeg Ubuntu 17.10 og udfører installationen i et nyt dockerbillede for at sikre, at der ikke er modstridende pakker til OpenCV dev-miljøet. Her er min kommandolinje til dockeropsætning:
docker pull ubuntudocker run -it 00fd29ccc6f1 bash
apt-get opdatering
Ok godt, nu har du et nyt miljø, lad os installere nogle krævede afhængigheder for at gøre miljøet brugbart.
apt-get install wget cmake g ++ unzip vimDernæst har vi brug for kildekoden til OpenCV. Du kan hente kildekoden fra hjemmesiden her og sikre, at du downloader den nyeste version. Pak det ud, og opret derefter et build-bibliotek til CMake-systemet, og indtast biblioteket:
wget https: // github.com / opencv / opencv / arkiv / 3.3.1.lynlåscd opencv-3.3.1
mkdir build
cd-opbygning
Dernæst kan vi bygge biblioteket og installere det i systemstien i dockerbilledet. Hvis du ikke bruger docker, skal du beslutte dit build-præfiks, men ved hjælp af et dedikeret dockerbillede gør alt dette meget simpelt som vist nedenfor:
cmake ..lave
foretage installation
For at kontrollere, at installationen og installationen var vellykket, kan vi skrive et trivielt C ++ - testprogram, der inkluderer et OpenCV-bibliotek, og derefter køre det. Her er en eksempelkode, du kan bruge til at teste din installation:
#include "opencv2 / core / core.hpp "#omfatte
int main ()
cv :: Point2f p (4, 5);
std :: cout << "Point output: " << p << std::endl;
returnere 0;
Du kan bygge og køre det sådan:
root @ 6d6b443afced: ~ / src # g ++ test.cpp-o testroot @ 6d6b443afced: ~ / src # ./prøve
Punkt output: [4, 5]
Tillykke med arbejdet, jobbet er gjort.
Næste skridt
OpenCV ansigtsgenkendelse
Referencer:
- https: // opencv.org /
- https: // opencv.org / om.html
- https: // docs.opencv.org / 3.3.1 / d1 / dfb / intro.html
- https: // da.wikipedia.org / wiki / OpenCV