OpenCV 【Open Source Computer Vision Library】
概要
OpenCV(Open Source Computer Vision Library)とは、コンピュータで画像や動画のデータを解析し、何がどのように写っているのかを割り出すコンピュータビジョン(CV:Computer Vision)の機能をまとめたライブラリ。米インテル(Intel)社が開発し、オープンソースソフトウェアとして公開している。コンピュータによる画像処理により、静止画像や動画に写っている物体や人物を認識したり、輪郭などの特徴量、三次元的な位置や姿勢の割り出し、移動の追跡などを行うプログラムを汎用のライブラリの形でまとめている。狭義のCV機能に限らず汎用的な画像処理、機械学習のための機能も備えている。
実装されている機能は多岐にわたるが、一例として、行列演算、幾何変換、色変換、フィルタ処理、領域分割、輪郭抽出、特徴点抽出、物体認識、物体追跡、姿勢推定、カメラキャリブレーション、HDR(High Dynamic Range)合成、超解像処理などが挙げられる。分野や機能ごとにモジュール化されているため、自作ソフトウェアに組み込む際などには必要なものだけを選択することができる。
汎用の機械学習に関する機能も提供されており、ニューラルネットワークやサポートベクターマシン(SVM)、単純ベイズ分類、k近傍法、デシジョンツリー(決定木)、ブースティング、ランダムフォレスト、EMアルゴリズムなどを利用できる。
CPUのSIMD機能やGPUにアクセスして計算を高速化するハードウェアアクセラレーションにも対応しており、x86系のSSEやAVXなどの拡張命令のサポート、他のアーキテクチャにおける同様のSIMD系機能への対応、CUDAやOpenCLを介したGPUアクセラレーションが利用可能となっている。
対応プラットフォームはLinuxなどの各種UNIX系OS、Windows、macOS、Android、iOSで、標準で対応しているプログラミング言語としてはC言語/C++言語、Java、Python、MATLABがあるが、.NETやRubyなどから利用できるようにする非公式なラッパー(言語バインディング)も公開されている。
開発プロジェクトは1999年に始まり、正式な初版は2006年に公開された。開発元はIntel社から新興のコンピュータビジョン関連企業である米ウィローガレージ(Willow Garage)社へ、さらに同業の米イットシーズ(Itseez)社へ移管されたが、2016年にIntelがItseezを買収したことで再びIntel社の元に戻ってきた。バージョン4.4以前はMITライセンス、以降はApacheライセンスに基づいてオープンソースとして公開されている。