OpenCV
![]() | |
Originele auteur (s) | Intel Corporation, Wilg garage, Itseez |
---|---|
Eerste uitgave | Juni 2000 tot 20000000 juni 2000 |
Stabiele vrijlating | 4.6.0 / 7 juni 2022 |
Opslagplaats | |
Geschreven in | C, C ++, Python, Java, Assemblagetaal |
Besturingssysteem | Platformovereenkomst |
Maat | ~ 200 MB |
Type | Bibliotheek |
Licentie | Apache -licentie |
Website | OpenCV |
OpenCV (Open source Computer Vision Library) is een bibliotheek met programmeerfuncties voornamelijk gericht op realtime computer visie.[1] Oorspronkelijk ontwikkeld door Intel, het werd later ondersteund door Wilg garage dan Itseez (die later werd overgenomen door Intel[2]). De bibliotheek is platformovereenkomst en gratis voor gebruik onder de open source Apache 2 licentie. Vanaf 2011 bevat OpenCV GPU-versnelling voor realtime operaties.[3]
Geschiedenis
Officieel gelanceerd in 1999 was het OpenCV -project aanvankelijk een Intel -onderzoek Initiatief om vooruit te komen processor-Intensieve toepassingen, onderdeel van een reeks projecten, waaronder echte tijd ray tracing en 3D -display muren.[4] De belangrijkste bijdragers aan het project omvatten een aantal optimalisatie -experts in Intel Rusland, evenals het Performance Library -team van Intel. In de begindagen van OpenCV werden de doelen van het project beschreven[5] net zo:
- Vooruitzichtonderzoek door niet alleen open te bieden, maar ook geoptimaliseerde code voor basisinfrastructuur. Niet meer het wiel opnieuw uitvinden.
- Verspreiding van visie -kennis door een gemeenschappelijke infrastructuur te bieden waarop ontwikkelaars kunnen voortbouwen, zodat de code gemakkelijker leesbaar en overdraagbaar zou zijn.
- Op visie gebaseerde commerciële applicaties van opzicht door te maken door te maken draagbaar, Prestatie-geoptimaliseerde code gratis beschikbaar-met een licentie die geen code vereist om open of vrij te zijn.
De eerste alfa -versie van OpenCV werd vrijgegeven aan het publiek op de IEEE -conferentie over computer vision en patroonherkenning in 2000 en vijf bèta's werden uitgebracht tussen 2001 en 2005. De eerste 1.0-versie werd uitgebracht in 2006. Een versie 1.1 "pre-release" werd uitgebracht in oktober 2008.
De tweede grote release van de OpenCV was in oktober 2009. OpenCV 2 omvat belangrijke wijzigingen in de C ++ Interface, gericht op gemakkelijkere, meer type-veilige patronen, nieuwe functies en betere implementaties voor bestaande implementaties in termen van prestaties (vooral op multi-core systemen). Officiële releases vinden nu elke zes maanden plaats[6] En de ontwikkeling wordt nu gedaan door een onafhankelijk Russisch team dat wordt ondersteund door commerciële bedrijven.
In augustus 2012 werd ondersteuning voor OpenCV overgenomen door een non-profit Foundation OpenCV.org, die een ontwikkelaar onderhoudt[7] en gebruikerssite.[8]
In mei 2016 heeft Intel een overeenkomst getekend om het te verwerven,[9] Een toonaangevende ontwikkelaar van OpenCV.[10]
In juli 2020 kondigde OpenCV aan en begon een Kickstarter -campagne voor de OpenCV AI Kit, een reeks hardwaremodules en toevoegingen aan OpenCV die ruimtelijke AI ondersteunen.
Toepassingen

De toepassingsgebieden van OpenCV zijn onder meer:
- 2D- en 3D -functietoolkits
- Egomotie schatting
- Gezichtsherkenningssysteem
- Gebaarherkenning
- Menselijke computerinteractie (HCI)
- Mobiele robotica
- BEWEGSTELIJKHEID
- Objectdetectie
- Segmentatie en erkenning
- Stereopsis Stereo Vision: Diepte Perceptie van 2 camera's
- Structuur van beweging (SFM)
- Motion tracking
- Augmented reality
Om enkele van de bovenstaande gebieden te ondersteunen, omvat OpenCV een statistiek Machine Learning bibliotheek die bevat:
- Stimulans
- Decision Tree Learning
- Gradiënt boost bomen
- Verwachting-maximalisatie-algoritme
- K-hemelse buuralgoritme
- Naïeve Bayes -classificator
- Kunstmatige neurale netwerken
- Willekeurig bos
- Ondersteuning vectormachine (SVM)
- Diepe neurale netwerken (DNN)[11]
Programmeertaal
OpenCV is geschreven in C ++ en de primaire interface is in C ++, maar het heeft nog steeds een minder uitgebreide, maar uitgebreide ouder behouden C -interface. Alle nieuwe ontwikkelingen en algoritmen verschijnen in de C ++ -interface. Er zijn bindingen in Python, Java en Matlab/OCTAAF. De API voor deze interfaces is te vinden in de online documentatie.[12] Wikkelaars in verschillende programmeertalen zijn ontwikkeld om de adoptie door een breder publiek aan te moedigen. In versie 3.4, Javascript Bindingen voor een geselecteerde subset van OpenCV -functies werden vrijgegeven als OpenCV.JS, om te worden gebruikt voor webplatforms.[13]
Hardware acceleratie
Als de bibliotheek Intel's vindt Geïntegreerde prestaties primitieven Op het systeem zal deze gepatenteerde geoptimaliseerde routines gebruiken om zichzelf te versnellen.
A Cudagebaseerd GPU Interface is sinds september 2010 aan de gang.[14]
Een OpenCLgebaseerd GPU Interface is sinds oktober 2012 aan de gang,[15] Documentatie voor versie 2.4.13.3 is te vinden op docs.opencv.org.[16]
OS -ondersteuning
OpenCV wordt uitgevoerd op de volgende desktop -besturingssystemen: ramen, Linux, macos, FreeBSD, NetBSD, Openbsd. OpenCV draait op de volgende mobiele besturingssystemen: Android, iOS, Maemo,[17] BlackBerry 10.[18] De gebruiker kan officiële releases krijgen van Bronforge Of neem de laatste bronnen uit Gitub.[19] OpenCV -gebruik Cmake.
Zie ook
- Aforge.net, een computer vision -bibliotheek voor de Gemeenschappelijke taal looptijd (.NET -framework en Mono).
- ROS (Robot -besturingssysteem). OpenCV wordt gebruikt als het primaire visiepakket in ROS.
- VXL, een alternatieve bibliotheek geschreven in C ++.
- Cviptools, een complete GUI-gebaseerde computer-visie- en beeldverwerkingssoftwareomgeving, met C-functiebibliotheken, een COM-gebaseerde DLL, samen met twee hulpprogramma's voor algoritme-ontwikkeling en batchverwerking.
- Opennn, een open-source neurale netwerken Bibliotheek geschreven in C ++.
- Lijst met gratis en open source softwarepakketten
Referenties
- ^ Pulli, Kari; Baksheev, Anatoly; Kornyakov, Kirill; Eruhimov, Victor (1 april 2012). "Realtime Computer Vision met OpenCV". Rij. 10 (4): 40: 40–40: 56. doen:10.1145/2181796.2206309.
- ^ Intel verwerft itseez: https://opencv.org/intel-acquires-itseez.html
- ^ "Cuda". Opencv.org. Opgehaald 2020-10-15.
- ^ Adrian Kaehler; Gary Bradski (14 december 2016). Leren OpenCV 3: Computer Vision in C ++ met de OpenCV -bibliotheek. O'Reilly Media. pp. 26ff. ISBN 978-1-4919-3800-3.
- ^ Bradski, Gary; Kaehler, Adrian (2008). Leren OpenCV: computer vision met de OpenCV -bibliotheek. O'Reilly Media, Inc. p. 6.
- ^ OpenCV wijzigen logboeken: http://code.opencv.org/projects/opencv/wiki/changelog Gearchiveerd 2013-01-15 op de Wayback -machine
- ^ OpenCV Developer Site: http://code.opencv.org Gearchiveerd 2013-01-13 om archief.today
- ^ OpenCV gebruikerssite: http://opencv.org/
- ^ "Intel verwerft computer vision voor IoT, Automotive | Intel Newsroom". Intel Newsroom. Opgehaald 2018-11-26.
- ^ "Intel verwerft het Russische computerzichtbedrijf Itseez". East-West digitaal nieuws. 2016-05-31. Opgehaald 2018-11-26.
- ^ OpenCV: http://opencv.org/opencv-3-3.html
- ^ OpenCV C -interface: http://docs.opencv.org
- ^ Inleiding tot OpenCV.js en tutorials
- ^ CUDA GPU -poort: http://opencv.org/platforms/cuda.html Gearchiveerd 2016-05-21 op de Wayback -machine
- ^ OpenCL -aankondiging: http://opencv.org/opencv-v2-4-3rc-is-under-way.html
- ^ OpenCL-versnelde computer Vision API Referentie: http://docs.opencv.org/modules/ocl/doc/ocl.html
- ^ Maemo Port: https://garage.maemo.org/projects/opencv
- ^ BlackBerry 10 (gedeeltelijke poort): https://github.com/blackberry/opencv
- ^ "GitHub - OpenCV/OpenCV: Open Source Computer Vision Library". 21 mei 2020.