Offener Lebenslauf - OpenCV

OpenCV
OpenCV Logo mit Text svg version.svg
Originalautor(en) Intel Corporation , Willow Garage , Itseez
Erstveröffentlichung Juni 2000 ; Vor 21 Jahren ( 2000-06 )
Stabile Version
4.5.4 / 9. Oktober 2021 ; vor 3 Tagen ( 2021-10-09 )
Repository
Geschrieben in C / C++
Betriebssystem Plattformübergreifend
Größe ~200 MB
Typ Bücherei
Lizenz Apache-Lizenz
Webseite opencv .org

OpenCV ( Open Source Computer Vision Library ) ist eine Bibliothek mit Programmierfunktionen, die hauptsächlich auf Echtzeit- Computer Vision ausgerichtet sind . Ursprünglich von Intel entwickelt , wurde es später von Willow Garage und dann von Itseez (das später von Intel übernommen wurde) unterstützt. Die Bibliothek ist plattformübergreifend und kann unter der Open-Source- Apache-2-Lizenz kostenlos verwendet werden . Ab 2011 bietet OpenCV GPU-Beschleunigung für Echtzeitvorgänge.

Geschichte

Das 1999 offiziell ins Leben gerufene OpenCV-Projekt war ursprünglich eine Initiative von Intel Research zur Weiterentwicklung CPU- intensiver Anwendungen, Teil einer Reihe von Projekten, darunter Echtzeit- Raytracing und 3D-Anzeigewände . Zu den wichtigsten Beiträgen zu dem Projekt gehörten eine Reihe von Optimierungsexperten von Intel Russland sowie das Performance Library Team von Intel. In den frühen Tagen von OpenCV wurden die Ziele des Projekts wie folgt beschrieben:

  • Bringen Sie die Vision-Forschung voran, indem Sie nicht nur offenen, sondern auch optimierten Code für die grundlegende Vision-Infrastruktur bereitstellen . Das Rad muss nicht mehr neu erfunden werden .
  • Verbreiten Sie Vision-Wissen, indem Sie eine gemeinsame Infrastruktur bereitstellen, auf der Entwickler aufbauen können, damit Code leichter lesbar und übertragbar ist.
  • Erweitern Sie visionsbasierte kommerzielle Anwendungen, indem Sie portablen , leistungsoptimierten Code kostenlos zur Verfügung stellen – mit einer Lizenz, die nicht erfordert, dass der Code selbst geöffnet oder frei ist.

Die erste Alpha-Version von OpenCV wurde auf der IEEE Conference on Computer Vision and Pattern Recognition im Jahr 2000 der Öffentlichkeit zugänglich gemacht , und zwischen 2001 und 2005 wurden fünf Betas veröffentlicht. Die erste 1.0-Version wurde 2006 veröffentlicht. Eine Version 1.1 "Pre-Release" “ wurde im Oktober 2008 veröffentlicht.

Die zweite große Version von OpenCV war im Oktober 2009. OpenCV 2 enthält wesentliche Änderungen an der C++- Schnittstelle, die auf einfachere, typsicherere Muster, neue Funktionen und bessere Implementierungen für bestehende Muster in Bezug auf die Leistung abzielen (insbesondere auf Multi- Kernsysteme). Offizielle Veröffentlichungen erfolgen jetzt alle sechs Monate und die Entwicklung wird jetzt von einem unabhängigen russischen Team durchgeführt, das von kommerziellen Unternehmen unterstützt wird.

Im August 2012 wurde der Support für OpenCV von einer gemeinnützigen Stiftung OpenCV.org übernommen, die eine Entwickler- und Benutzerseite unterhält.

Im Mai 2016 unterzeichnete Intel eine Vereinbarung zur Übernahme von Itseez, einem führenden Entwickler von OpenCV.

Im Juli 2020 kündigte und startete OpenCV eine Kickstarter-Kampagne für das OpenCV AI Kit , eine Reihe von Hardwaremodulen und Ergänzungen zu OpenCV, die Spatial AI unterstützen.

Anwendungen

openFrameworks mit dem OpenCV-Add-On-Beispiel

Die Anwendungsbereiche von OpenCV umfassen:

Um einige der oben genannten Bereiche zu unterstützen, enthält OpenCV eine statistische Bibliothek für maschinelles Lernen , die Folgendes enthält:

Programmiersprache

OpenCV ist in C++ geschrieben und seine primäre Schnittstelle ist in C++, aber es behält immer noch eine weniger umfassende, aber umfangreiche ältere C-Schnittstelle bei . Alle neuen Entwicklungen und Algorithmen erscheinen in der C++-Oberfläche. Es gibt Bindungen in Python , Java und MATLAB / OCTAVE . Die API für diese Schnittstellen finden Sie in der Online-Dokumentation. Wrapper in mehreren Programmiersprachen wurden entwickelt, um die Akzeptanz durch ein breiteres Publikum zu fördern. In Version 3.4 wurden JavaScript- Bindungen für eine ausgewählte Teilmenge von OpenCV-Funktionen als OpenCV.js veröffentlicht, um für Webplattformen verwendet zu werden.

Hardware-Beschleunigung

Wenn die Bibliothek Intels Integrated Performance Primitives auf dem System findet, verwendet sie diese proprietären optimierten Routinen, um sich selbst zu beschleunigen.

Seit September 2010 ist eine CUDA- basierte GPU- Schnittstelle in Arbeit.

Seit Oktober 2012 ist eine OpenCL- basierte GPU- Schnittstelle in Arbeit, die Dokumentation zur Version 2.4.13.3 findet sich unter docs.opencv.org.

Betriebssystemunterstützung

OpenCV läuft auf den folgenden Desktop-Betriebssystemen: Windows , Linux , macOS , FreeBSD , NetBSD , OpenBSD . OpenCV läuft auf folgenden mobilen Betriebssystemen: Android , iOS , Maemo , BlackBerry 10 . Der Benutzer kann offizielle Releases von SourceForge abrufen oder die neuesten Quellen von GitHub verwenden . OpenCV verwendet CMake .

Siehe auch

Verweise