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

ITで知っておくべき知識
スポンサーリンク

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の最新版はこちらです。

OpenCV - Browse /opencv-win/3.4.1 at SourceForge.net
Open Source Computer Vision Library

 

OpenCVをC#で使うには?

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

 

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

GitHub - shimat/opencvsharp: OpenCV wrapper for .NET
OpenCV wrapper for .NET. Contribute to shimat/opencvsharp development by creating an account on GitHub.

 

OpenCVの日本語化は?

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

 

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のディープラーニングを使った、ボスセンサーという面白いアプリがあります。

DeepLearningで上司を認識して画面を隠す - Qiita
背景仕事をしているとき、業務に関係ない情報を閲覧していることって誰でもありますよね?そんなときに背後にボスが忍び寄っていると気まずい思いをします。もちろん急いで画面を切り替えれば良いのですが、そ…
GitHub - Hironsan/BossSensor: Hide screen when boss is approaching.
Hide screen when boss is approaching. Contribute to Hironsan/BossSensor development by creating an account on GitHub.

 

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

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

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

 

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

Udemy

 

コメント