画像処理の基本、OpenCVで何ができる?分かりやすく解説!
こんにちは!PA Labメディアです。今回の記事では
- 「画像処理のプログラミングをやってみたいけど何から初めて良いか分からない」
- 「Pythonは勉強したけど、実際に何ができるか分からないから知りたい」
- 「OpenCVってよく聞くけど機械学習のライブラリのこと?」
上記のような方を対象にした記事となっています。
ある程度Python、画像処理やプログラミングに興味を持った方はOpenCVという名前を聞いたことがある方も多いかと思います。OpenCVと機械学習を混同してしまっている方も多いかと思いますが、この記事では分かりやすくOpenCVがどんなものか、といった事をお伝えしていきたいと思います。
目次
OpenCVとは何か
OpenCV(Open Source Computer Vision Library)は、沢山の基本的なコンピュータービジョンのアルゴリズムが実装されているオープンソースのライブラリになります。主にリアルタイムで画像や動画を処理するための機能が数百以上実装されていて、BSDライセンスのため勿論商用目的でも使用することが可能です。
OpenCV自体はC/C++で作成されたライブラリになっており、ハードウェアレベルでの最適化もされているため、高速化されているライブラリとなっています。ただPythonで使用する事が出来るラッパーライブラリも提供されており、最近ではPythonで使用される事例が多く見られます。
特にPythonでは機械学習ライブラリもWebアプリケーションライブラリも豊富ですので、組み合わせて使用するケースも非常に多いです。例えば、深層学習のためのデータ拡張をOpenCVで行ったり、OpenCVを使ってWebアプリケーションに画像処理の機能を追加するといった組み合わせ方があります。
OpenCVの応用事例
Intelが開発公開しているライブラリで世界中で標準的に使用されているライブラリで、沢山の応用事例で使用されているものになります。
- 顔認識
- ジェスチャ認識
- モバイルロボット
- 物体検出
- モーショントラッキング
- 拡張現実(AR)
- 異常検知
大体の便利な機能が網羅されているため、簡単に応用事例に活用することが出来るのがOpenCVの大きな特徴となっています。最近ではディープラーニングベースのアルゴリズムも追加されており、例えば物体検出ではSSDというモデルがOpenCVでは標準で搭載されています。
OpenCVで出来る事
OpenCV自体の機能としてもかなり沢山の実装が含まれており、よく用いられている機能としては以下のようなものがあります。
- 古典的なフィルター処理
- 機械学習の機能
- テンプレートマッチング
- 画像の幾何変換
- 特徴点検出
OpenCVは基本的には画像処理を行うためのライブラリですが、古典的な画像処理の機能に加えて、機械学習を使用した画像処理の機能も含まれています。そのため、機械学習の機能もOpenCVの実装の中に含まれており、そのため機械学習のライブラリだと混乱されている方が多いようです。
OpenCVで出来る事の例(1)古典的なフィルター処理
画像処理の分野では昔からよく使われているノイズ除去フィルターの機能があります。
中央値やガウシアンなどが有名なフィルタになり、あるピクセルの周辺情報を利用して画像処理を行うような処理となります。例えば、ガウシアンフィルタでは画像は全体的にぼやけてしまいますが、ノイズ除去としての機能となって、様々な特徴を強調することが出来ます。
オリジナル画像
ガウシアンフィルター画像
OpenCVで出来る事の例(2)テンプレートマッチング
またよく使われるOpenCVの機能としてはテンプレートマッチングがあります。
テンプレートマッチングとは入力画像とある画像で類似している箇所をマッチングする技術の事です。
入力画像
テンプレート画像
テンプレート画像を元にある画像の中から類似度が高いものを探してくるのがテンプレートマッチングです。
勿論全く同じ画像じゃなくて大丈夫なので、同じようなものを探してくるためにテンプレートマッチングを使用することが出来ます。
OpenCVのインストール
OpenCVのインストール(mainモジュール)
Pythonで基本的な機能を使用したい方は以下のコマンドでインストールすることが出来ます。
$ pip install opencv-python
OpenCVのインストール(contribモジュール)
mainモジュールは商用利用可能ですが、機能がより沢山入っているのはcontribモジュールとなっています。
例えば、cuda関連の実装や3Dビジュアライザーなどが実装されています。
$ pip install opencv-contrib-python
まとめ
OpenCVは画像処理の基本のライブラリで、Pythonで使用される事例が多くなってきています。
この記事ではOpenCVで何が出来るのか、 OpenCVの応用事例、OpenCVのインストール方法に関して簡単に紹介をしていきました。詳しい実装例や応用例に関してはまた別の記事で詳細に紹介をしていきますので、そちらをご覧いただければと思います。
PA Labでは「AIを用いた自動化×サービス開発」の専門家として活動をしています。高度なデータ分析からシステム開発まで一貫したサービス提供を行っており、特に機械学習やディープラーニングを中心としたビジネス促進を得意としております。
無料で分析設計/データ活用に関するご相談も実施中なので、ご相談があればお問い合わせまで。
この記事へのコメントはありません。