OpenCV
OpenCV (engl. Open Source Computer Vision) je biblioteka programskih funkcija, uglavnom u realnom vremenu, prvobitno razvijena u Intelovom istraživačkom centrom u Nižnjem Novgorodu (Rusija), ranije podržavana od strane Willow Garrage, a sada podržavana od strane Itseez.[1] Biblioteka je međuplatformska, omogućeno korišćenje biblioteke različitim softverima, besplatna za korišćenje pod open-source BSD lincecom.
Originalni autor(i) | Intel, Willow Garage, Itseez |
---|---|
Prvo izdanje | jun 2000. |
Stabilno izdanje | 4.1.1
/ 26. jul 2019. |
Repozitorijum | |
Napisan u | C/C++ |
Operativni sistem | Međuplatformski |
Veličina | ~200 MB |
Tip | biblioteka |
Veb-sajt | opencv |
Istorija
urediZvanično pokrenut u 1999. godini, u OpenCV projekat je prvobitno bila inicijativa Intel istraživanja za unapređivanje CPU-intensive aplikacijama, aplikacijama koje koriste veliki deo procesora, deo serije projekata, uključujući i praćenja zraka u realnom vremenu i 3D prikaz zida. Glavni doprinosioci projekta su takođe bili i eksperti za optimizaciju iz Intel Russia, kao i tim stručnjaka iz Intel's Perfomance Library Team. U početku OpenCV-a, ciljevi projekta su bili[2] :
- Advance vision pretraga pružajući ne samo da otvoren, nego i optimizovan kod za glavni vid infrastrukture. Fokus nije bačen na ponovni razvoj koda.
- Prošireni vid znanja time što se koristi uobičajena infrastruktura na kojoj je razvojni tim mogao da nadgrađuje tako da je kod mogao biti lakši za čitanje i transfer.
- Naprednije komercijalne aplikacije, praveći prenosiv, perfomansno optimizovan kod, koji je bio besplatan, sa licencom koja nije bila otvorena.
Prva Alfa verzija OpenCV je puštena u javnost na IEEE Conference on Computer Vision and Pattern Recognition u 2000. godini, i pet beta verzije su objavljene između 2001. i 2005. Prva Verzija 1.0 je objavljena 2006. godine. Sredinom 2008. godine, OpenCV je dobila korporativnu podršku od Willow Garage-a, a sada ponovo u fazi aktivnog razvoja. Verzija 1.1 je unapred objavljena u oktobru 2008. godine.
Drugi veliko objavljivanje OpenCV-a bilo je u oktobru 2009. godine. OpenCV 2 obuhvata velike promene u interfejsu jezika C++, usmeren na lakše, oblike koji su lakši za pisanje, nove funkcije, i bolju implementaciju već postojećih zbog potrebi boljih perfomansi (posebno za potrebe sistema koji koriste više jezgara). Zvanično izlazi na svakih šest meseci,[3] a razvoj je sada u rukama nezavisnih ruskih timova koji imaju podršku komercijalnih korporacija.
U avgustu 2012. godine, podrška za OpenCV je preuzela neprofitna fondacija OpenCV.org, koja održava razvojni[4] i korisnički sajt.[5]
Aplikacije
urediOpenCV aplikacija uključuju:
- 2D i 3D alatke
- Sistem za prepoznavanje lica
- Prepoznavanje pokreta
- Interakcija čoveka i računara (HCI)
- Mobilna robotika
- Razumevanje pokreta
- Identifikacija objekta
- Segmentacija i prepoznavanje
- Percepcija dubine od 2 kamere
- Struktura pokreta (ULP)
- Praćenje kretanja
- Proširena realnost - Za podršku nekih od navedenih oblasti, OpenCV uključuje biblioteku za statističku mašinsko učenje, koja sadrži:
- Boosting
- Razgranato rezonsko učenje
- Algoritam očekivanje-maksimizacija
- Algoritam za K-najbližih suseda
- Naivni Bajesov klasifikator
- Veštačka neuronska mreža
- Random forest
- Postupak vektora podrške (SVM)
Programski jezik
urediOpenCV je napisan u jeziku C++ i njegov glavni interfejs je u C++ , ali i dalje sadrži manje razumnjiv, stariji, prošireniji C interfejs. Postoje vezivanja u Python-u, Java-i i u MATLAB-u. API za ove interfejse se mogu naći na internetu.[6] Omotači na drugim jezicima, kao što su C#, Perl, Ch, and Ruby#, Perl-a,[7] h,[8] i Rubi su dizajnirani da promovišu donošenje široj publici.
Sve nove tehnologije i algoritmi u OpenCV-u razvijaju se u interfejs C++.
Hardversko Ubrzanje
urediAko biblioteka pronađe Intel's Integrated Performance Primitives u sistemu, ona će koristiti svoje optimizovane postupke, da ubrza sebe.
Grafički interfejs zasnovan na CUDA tehnologiji je u razvoju od septembra 2010. godine.[9]
Grafički interfejs zasnovan na OpenCL-u je u razvoju od Oktobra 2012. godine. Dokumentacija za verziju 2.4.9.0 se može naći na docs.opencv.org.[10]
Podrška za operativne sisteme
urediOpenCV radi na različitim platformama. Desktop: Windows, Linux, OS X, FreeBSD, NetBSD, OpenBSD; Mobile: Android, iOS, Maemo, BlackBerry 10. Korisnici mogu da dobiju zvanična izdanja sa SourceForge-a ili uzeti najnovije kodove sa GitHub-a.[11] OpenCV koristi CMake.
Reference
uredi- ^ Itseez leads the development of the renowned computer vision library OpenCV. http://itseez.com
- ^ Bradski, Gary; Kaehler, Adrian (2008). Learning OpenCV: Computer vision with the OpenCV library. O'Reilly Media, Inc. str. 6.
- ^ OpenCV change logs: http://code.opencv.org/projects/opencv/wiki/ChangeLog Arhivirano na sajtu Wayback Machine (15. januar 2013)
- ^ OpenCV Developer Site: http://code.opencv.org Arhivirano 2013-01-13 na sajtu Archive.today
- ^ OpenCV User Site: http://opencv.org/
- ^ OpenCV C interface: http://docs.opencv.org
- ^ CPAN: http://search.cpan.org/~yuta/Cv-0.29/
- ^ Ch OpenCV: http://www.softintegration.com/products/thirdparty/opencv/
- ^ Cuda GPU port: http://opencv.org/platforms/cuda.html Arhivirano na sajtu Wayback Machine (21. maj 2016)
- ^ OpenCL-accelerated Computer Vision API Reference: http://docs.opencv.org/modules/ocl/doc/ocl.html
- ^ GitHub - Itseez/opencv: Open Source Computer Vision Library
Literatura
uredi- Bradski, Gary; Kaehler, Adrian (2008). Learning OpenCV: Computer vision with the OpenCV library. O'Reilly Media, Inc. str. 6.
Spoljašnje veze
uredi- OpenCV on SourceForge.net
- Documentation of OpenCV
- Introduction to programming with OpenCV
- A list of other open source computer vision codes and libraries
- Chroma Key Background Subtraction - OpenCV