OpenCVでは何ができるのでしょうか?
OpenCVとは
OpenCV(Open Source Computer Vision Library)とはインテルが開発・公開したオープンソースのコンピュータービジョン、画像認識、画像処理、画像解析、機械学習等の機能を持つC/C++、Java、Python、MATLAB用ライブラリです。
画像認識系では、世界で最も使われているライブラリ群と言ってよいでしょう。
OpenCVはBSDライセンスでリリースされています。
従って自由に改変したり、商用利用が可能です。
オープンソースのライセンスについては以下をご覧ください。
また、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をC#で使うには?
OpenCVは、C#からは直接使えないので、C++でライブラリを作るとよいでしょう。
また、C#でお手軽にすぐに使うには、OpenCvSharpという .NET Frameworkのラッパーがあります。
OpenCVの日本語化は?
OpenCVの公式サイト、ドキュメントは英語のみです。
という日本語の非公式サイトがありますが、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のディープラーニングを使った、ボスセンサーという面白いアプリがあります。
OpenCVをお手軽に学習したい、知りたい
Udemyという世界最大のオンライン学習プラットフォームがあります。
OpenCVについては日本語のオンラインコースがあります。
↓Udemyの公式サイトはコチラ
コメント