画像認識ライブラリ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のラッパーがあります。

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

 

OpenCVの日本語化は?

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

 

OpenCV.jp
OpenCV1.0,OpenCV1.1pre,OpenCV2.0,OpenCV2.1,OpenCV2.2 に関するドキュメントの日本語訳,サンプルプログラムを公開しているサイトです.

という日本語の非公式サイトがありますが、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
# 背景 仕事をしているとき、業務に関係ない情報を閲覧していることって誰でもありますよね? そんなときに**背後にボスが忍び寄っている**と気まずい思いをします。もちろん急いで画面を切り替えれば良いのですが、そういう動作は逆に怪しま...
Hironsan/BossSensor
Hide screen when boss is approaching. Contribute to Hironsan/BossSensor development by creating an account on GitHub.

 

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

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

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

 

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

Udemy

 

コメント