Sari la conținut

OpenCV

De la Wikipedia, enciclopedia liberă
OpenCV
Autor inițialIntel Corporation, Willow Garage, Itseez
Versiune inițialăiunie 2000; acum 24 ani (2000-06)
Ultima versiune4.0.1 (22 decembrie 2018; acum 5 ani, 10 luni și 10 zile (2018-12-22))
Repogithub.com/opencv/opencv Modificați la Wikidata
Scris înC/C++
Sistem de operareCross-platform
Mărime~200 MB
TipBibliotecă
LicențăLicența BSD
Prezență online
opencv.org

OpenCV (Vedere computerizată cu sursa deschisă) este o bibliotecă de funcții informatice specializată pe vedere computerizată în timp-real.[1] Elaborată inițial de Intel,[2] a fost dezvoltată ulterior de Willow Garage, apoi de Itseez (care a fost achiziționată mai târziu de Intel[3]). Biblioteca este de tip multiplatformă și este gratuită pentru utilizare sub licența BSD pentru sursă deschisă.

OpenCV suportă ansamblurile software de învățare profundă TensorFlow, Torch/ PyTorch și Caffe.[4]

Lansat oficial în anul 1999, proiectul OpenCV a fost inițial o inițiativă a departamentului Intel Cercetare pentru dezvoltarea aplicațiilor intensive-numeric, făcând parte dintr-o serie de proiecte printre care și urmărirea razelor în timp-real și pereții cu ecran 3D.[5] Printre principalii contribuitori ai proiectului au fost și câțiva experți în optimizare de la Intel Rusia, precum și echipa Intel Performance Library. La începuturile OpenCV, scopurile proiectului erau descrise [6] astfel:

  • Cercetarea avansată a vederii prin asigurarea nu doar de cod sursă deschis ci și optimizat pentru infrastructura de bază a vederii. Fără a reinventa roata.
  • Promovarea cunoștințelor despre vedere prin asigurarea unei infrastructuri comune pentru programatori, astfel ca codul sursă să fie mai inteligibil și transferabil.
  • Avansarea de aplicații comerciale bazate pe vedere prin furnizarea gratuită de cod sursă portabil și optimizat – cu o licență care nu solicită ca codul în sine să fie deschis sau gratuit.

Prima versiune alfa a OpenCV a fost lansată public la Conferința IEEE despre Vederea Computerizată și Recunoașterea Modelului din anul 2000, iar cinci versiuni beta au fost lansate între anii 2001 și 2005. Prima versiune 1.0 a fost lansată în anul 2006. O versiune 1.1 „pre-lansare” a fost lansată în luna octombrie 2008.

A doua lansare majoră a OpenCV a avut loc în octombrie 2009. OpenCV 2 include modificări majore ale interfeței C++, țintind modele mai ușoare, cu tipuri mai stabile, funcții noi, și implementări mai bune ale celor existente, în sensul performanței (în special pentru sistemele multi-nucleu). Acum au loc lansări oficiale chiar și la perioade de șase luni[7] iar dezvoltarea este realizată de o echipă rusă independentă sprijinită de corporații comerciale.

În luna mai 2016, Intel a semnat un acord de preluare a Itseez,[8] un dezvoltator OpenCV avansat.[9]

Ansambluri deschise rulând exemplul OpenCV

OpenCV este aplicat în:

Pentru a sprijini cele de mai sus, OpenCV include o bibliotecă statistică de învățare automată care conține:

Limbaje de programare

[modificare | modificare sursă]

OpenCV este scris în limbajul C++ și are interfața principală în C++, dar păstrează și o interfață C veche mai puțin dezvoltată, deși extinsă. Există translații în Python, Java și MATLAB/ OCTAVE. Interfețele de programare (abr. en. API) pentru acestea se pot găsi în documentația din internet.[11] Pentru a încuraja adoptarea de o mai mare audiență au fost dezvoltate și anvelope în C#, Perl,[12] Ch,[13] Haskell,[14] și Ruby.

Noile dezvoltări și algoritmii în OpenCV se realizează acum pentru interfața C++.

Accelerare hardware

[modificare | modificare sursă]

Dacă biblioteca găsește Primitivele Integrate de Performanță (abr. en. IPP) ale Intel în sistem, va utiliza aceste rutine specifice optimizate pentru a se accelera.

O interfață GPU bazată pe CUDA este dezvoltată începând din septembrie 2010.[15]

O interfață GPU bazată pe OpenCL este în dezvoltare din octombrie 2012,[16] iar documentația pentru versiunea 2.4.13.3 se poate găsi la docs.opencv.org.[17]

Suport pentru sisteme de operare

[modificare | modificare sursă]

OpenCV rulează pe următoarele sisteme de operare desktop: Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD.

OpenCV rulează pe următoarele sisteme de operare mobile: Android, iOS, Maemo,[18] BlackBerry 10.[19] Utilizatorii pot prelua versiunea oficială din SourceForge sau ultimele coduri sursă din GitHub.[20] OpenCV utilizează CMake.

  • AForge.NET, o bibliotecă de vedere computerizată pentru CLR (Ansamblul .NET și Mono).
  • ROS (Sistem de operare roboți). OpenCV este utilizat pentru vedere în ROS.
  • VXL, o bibliotecă alternativă scrisă în C++.
  • Integrating Vision Toolkit (IVT), o bibliotecă C++ rapidă și ușor de folosit cu intefață OpenCV opțională.
  • CVIPtools, un mediu de programare complet pentru vedere computerizată și procesare de imagine, cu biblioteci de funcții C și o bibliotecă dinamică DLL pe baza modelului de componente COM.
  • OpenNN, o bibliotecă cu sursa deschisă pentru rețele neurale scrisă în C++.
  • ro Stoean, Catalin. „Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV” (PDF). Universitatea Tehnică din Cluj-Napoca. 
  • ro Danescu, Radu Gabriel. „Computer Vision” (PDF). Universitatea din Craiova, Facultatea de Stiinte Exacte - Matematica și Informatică. 
  • ro Păuleț, Claudia. „Recunoașterea fețelor, lucrare de licență, 2012” (PDF). Universitatea Ioan Cuza din Iași. Arhivat din original (PDF) la . Accesat în . 
  1. ^ en Pulli, Kari; Baksheev, Anatoly; Kornyakov, Kirill; Eruhimov, Victor (). „Vedere computerizată în timp-real cu OpenCV”. Queue. pp. 40:40–40:56. doi:10.1145/2181796.2206309. 
  2. ^ en Taheri, Sajjad (). „Vedere computerizată în masă: vederea computerizată pentru platforma Open Web”. eeTimes. Accesat în . 
  3. ^ en Intel achiziționează Itseez: https://opencv.org/intel-acquires-itseez.html Arhivat în , la Wayback Machine.
  4. ^ en https://github.com/opencv/opencv/wiki/Învățare profundă în OpenCV
  5. ^ en Adrian Kaehler; Gary Bradski (). Să învățăm OpenCV 3: Vedere computerizată în C++ cu biblioteca OpenCV. O'Reilly Media. pp. 26ff. ISBN 978-1-4919-3800-3. 
  6. ^ en Bradski, Gary; Kaehler, Adrian (). Să învățăm OpenCV: Vedere computerizată cu biblioteca OpenCV. O'Reilly Media, Inc. p. 6. 
  7. ^ en Jurnal de modificări OpenCV: http://code.opencv.org/projects/opencv/wiki/ChangeLog Arhivat în , la Wayback Machine.
  8. ^ en „Intel achiziționează Vederea Computerizată pentru IOT, Auto | Intel Newsroom”. Intel Newsroom (în engleză). Accesat în . 
  9. ^ en „Intel achiziționează compania rusă de vedere computerizată Itseez”. East-West Digital News (în engleză). . Accesat în . 
  10. ^ en OpenCV: http://opencv.org/opencv-3-3.html Arhivat în , la Wayback Machine.
  11. ^ en Interfața C OpenCV: http://docs.opencv.org
  12. ^ en CPAN: http://search.cpan.org/~yuta/Cv-0.29/
  13. ^ en OpenCV în Ch: http://www.softintegration.com/products/thirdparty/opencv/
  14. ^ Proiectul haskell-opencv în Github: https://github.com/LumiGuide/haskell-opencv
  15. ^ en Portare pentru Cuda GPU: http://opencv.org/platforms/cuda.html Arhivat în , la Wayback Machine.
  16. ^ en Anunțul pentru OpenCL: http://opencv.org/opencv-v2-4-3rc-is-under-way.html Arhivat în , la Wayback Machine.
  17. ^ en Referința API pentru vedere computerizată OpenCL: http://docs.opencv.org/modules/ocl/doc/ocl.html
  18. ^ en Portarea Maemo: https://garage.maemo.org/projects/opencv Arhivat în , la Wayback Machine.
  19. ^ BlackBerry 10 (portare parțială): https://github.com/blackberry/OpenCV
  20. ^ en https://github.com/Itseez/opencv