OpenCV(Open Source Computer Vision Library)は、主にリアルタイムコンピュータビジョン用のプログラミング関数のライブラリです。[ 2 ]元々はIntelによって開発され、後にWillow Garage、そしてItseez(後にIntelに買収されました[ 3 ])によってサポートされました。このライブラリはクロスプラットフォームであり、 Apache License 2の下でフリーかつオープンソースソフトウェアとしてライセンスされています。2011年から、OpenCVはリアルタイム処理のためのGPUアクセラレーション機能を備えています。[ 4 ]
1999年に正式に開始されたOpenCVプロジェクトは、当初はCPU負荷の高いアプリケーションを推進するためのIntel Researchのイニシアチブであり、リアルタイムレイトレーシングや3Dディスプレイウォールなどの一連のプロジェクトの一部でした。 [ 5 ]このプロジェクトの主な貢献者には、Intel Russiaの最適化専門家やIntelのパフォーマンスライブラリチームが含まれていました。OpenCVの初期には、プロジェクトの目標は次のように説明されていました[ 6 ]。
- 基本的な画像処理インフラストラクチャ向けに、オープンなだけでなく最適化されたコードを提供することで、画像処理研究を前進させます。もう車輪の再発明は不要です。
- 開発者が活用できる共通のインフラストラクチャを提供することで、ビジョンに関する知識を普及させ、コードの可読性と移植性を向上させる。
- 移植性が高く、パフォーマンスが最適化されたコードを無償で提供することで、ビジョンベースの商用アプリケーションを進化させる。しかも、そのライセンスはコード自体がオープンであることやフリーであることを要求しない。
OpenCVの最初のアルファ版は、2000年に開催されたIEEEコンピュータビジョン・パターン認識会議で一般公開され、2001年から2005年の間に5つのベータ版がリリースされました。最初のバージョン1.0は2006年にリリースされ、バージョン1.1の「プレリリース」版は2008年10月にリリースされました。
OpenCV の 2 番目のメジャーリリースは 2009 年 10 月に行われました。OpenCV 2 では、 C++ インターフェースに大きな変更が加えられ、より簡単で型安全なパターン、新しい関数、および既存の関数のパフォーマンス (特にマルチコア システム上) の向上を目指しています。公式リリースは現在 6 か月ごとに行われ[ 7 ]、開発は商業企業に支援された独立したロシアのチームによって行われています。
2012年8月、OpenCVのサポートは非営利財団であるOpenCV.orgに引き継がれ、開発者[ 8 ]とユーザーサイト[ 9 ]を運営している。
2016年5月、インテルはOpenCVの主要開発企業であるItseezを買収する契約を締結した。 [ 10 ] [ 11 ]

OpenCVの応用分野には以下が含まれます。
上記の分野の一部をサポートするために、OpenCVには以下の内容を含む統計的機械学習ライブラリが含まれています。
OpenCV は、その主要なインターフェースと同様に、プログラミング言語C++で記述されています。Python、Java、MATLAB/Octave の言語バインディングがあります。これらのインターフェースのアプリケーションプログラミングインターフェイス( API ) は、オンライン ドキュメントで確認できます。[ 13 ]より幅広いユーザーによる採用を促進するために、いくつかの言語のラッパー ライブラリが開発されています。バージョン 3.4 では、Web プラットフォームで使用するために、OpenCV 関数の一部のJavaScriptバインディングが OpenCV.js としてリリースされました。 [ 14 ]
ライブラリがシステム上でIntelの統合パフォーマンスプリミティブを検出した場合、これらの独自の最適化ルーチンを使用して処理速度を向上させます。
Compute Unified Device Architecture ( CUDA ) ベースのグラフィックス処理ユニット(GPU) インターフェースは、2010 年 9 月以降開発が進められています。[ 15 ]
OpenCLベースのGPUインターフェースは2012 年 10 月以降開発が進められており、[ 16 ]バージョン 2.4.13.3 のドキュメントは docs.opencv.org で入手できます。[ 17 ]
IPUはOpenCVのハードウェアアクセラレーションを利用することもできる。