画像認識ライブラリOpenCV できること、ダウンロード、使い方

スポンサーリンク
スポンサーリンク

OpenCVとは

OpenCV(Open Source Computer Vision Library)とはインテルが開発・公開したオープンソースのコンピュータービジョン、画像認識、画像処理、画像解析、機械学習等の機能を持つC/C++、Java、Python、MATLAB用ライブラリです。

画像認識系では、世界で最も使われているライブラリ群と言ってよいでしょう。

OpenCVはBSDライセンスでリリースされています。

従って自由に改変したり、商用利用が可能です。

オープンソースのライセンスについては以下をご覧ください。

オープンソースソフト(OSS)とは?ライセンス一覧、種類、比較 (GPL、CPL、MPL、EPL)
オープンソースソフトウェア(OSS)のライセンスって分かりにくいので、ちょっとまとめてみました。 オープンソースと...

また、macOSやFreeBSD等全てのPOSIXに準拠したUnix系OS、Linux、Windows、Android、iOS等をサポートしています。

2009年にインテルからWillow Garage (ウィロー・ガレージ) に開発が移管された後、2015年からはItseezがメンテナンスを行なっています。

2016年5月26日にインテルがItseezを買収しています。

OpenCVのダウンロードサイト

OpenCVは以下のサイトからダウンロード可能です。

公式サイト: https://opencv.org/

ドキュメント: https://docs.opencv.org/

GitHub: https://github.com/opencv/opencv

バイナリパッケージ: https://sourceforge.net/projects/opencvlibrary/files/

OpenCVの最新バージョンは、3.4.1 (2018年2月27日) です。

OpenCVをお手軽にダウンロードして使うには、SourceForgeにあるバイナリパッケージを使うのがよいです。

Windowsの最新版はこちらです。

https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.4.1/

OpenCVをC#で使うには?

OpenCVは、C#からは直接使えないので、C++でライブラリを作るとよいでしょう。

また、C#でお手軽にすぐに使うには、OpenCvSharpという .NET Frameworkのラッパーがあります。

https://github.com/shimat/opencvsharp

OpenCVの日本語化は?

OpenCVの公式サイト、ドキュメントは英語のみです。

http://opencv.jp/

という日本語の非公式サイトがありますが、OpenCV 2.4系のみで現在はメンテナンスされていないようです。

OpenCVで出来ること

OpenCVは、およそ画像処理で必要なことはほぼすべて出来ます。

OpenCVで、出来ることをまとめると以下の通りです。

画像処理 (Image Processing)

  • 勾配、エッジ、コーナー (Gradients, Edges and Corners)
  • サンプリング、補間、幾何変換 (Sampling, Interpolation and Geometrica lTransforms)
  • モルフォロジー演算 (Morphological Operations)
  • フィルタと色変換 (Filters and Color Conversion)
  • ピラミッドとその応用 (Pyramids and the Applications)
  • 画像分割、領域結合、輪郭検出 (Image Segmentation, Connected Components and Contour Retrieval)
  • 画像と形状のモーメント (Image and Contour Moments)
  • 特殊な画像変換 (Special Image Transforms)
  • ヒストグラム (Histograms)
  • マッチング (Matching)
  • ラベリング (Labeling) : OpenCV 3.0以降

構造解析 (Structural Analysis)

  • 輪郭処理 (Contour Processing)
  • 計算幾何 (Computational Geometry)
  • 平面再分割 (Planar Subdivisions)

モーション解析と物体追跡 (Motion Analysis and Object Tracking)

  • 背景統計量の累積 (Accumulation of Background Statistics)
  • モーションテンプレート (Motion Templates)
  • 物体追跡 (Object Tracking)
  • オプティカルフロー (Optical Flow)
  • 推定器 (Estimators)

パターン認識 (Pattern Recognition)

  • 物体検出 (Object Detection)

カメラキャリブレーションと3次元再構成 (Camera Calibration and 3D Reconstruction)

  • カメラキャリブレーション (Camera Calibration)
  • 姿勢推定 (Pose Estimation)
  • エピポーラ幾何 (Epipolar Geometry)

機械学習

  • 単純ベイズ分類器 (Naive Bayes Classifier)
  • k近傍法 (K Nearest Neighbors)
  • サポートベクターマシン (SVM)
  • 決定木 (Decision Trees)
  • ブースティング (Boosting)
  • Random forest (Random forest)
  • EMアルゴリズム (Expectation-Maximization)
  • ニューラルネットワーク (Neural Networks)

ユーザインタフェース

  • シンプルGUI (Simple GUI)
  • 画像の読み込みと保存 (Loading and Saving Images)
  • ビデオ入出力 (Video I/O)
  • OpenGL/Direct3D相互運用

画像解析のみならず、ディープラーニング等の機械学習が出来るようになっています。

その他のアプリケーションの例。

↓OpenCVを使った色の追跡、カラートラッキングのサンプルです。

OpenCVのディープラーニングを使った、ボスセンサーという面白いアプリがあります。

https://qiita.com/Hironsan/items/8ad9b11bcc0c618ec5e2

https://github.com/Hironsan/BossSensor

OpenCVをお手軽に学習したい、知りたい

Udemyという世界最大のオンライン学習プラットフォームがあります。

OpenCVについては日本語のオンラインコースがあります。

↓Udemyの公式サイトはコチラ

Udemy

スポンサーリンク
スポンサーリンク
スポンサーリンク

フォローする