Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!
スポンサーリンク

画像処理をサクッと実行できるソフトウェアには何があるの?フリー(無料)ソフトも含めて、サクッとまとめました

スポンサーリンク
画像処理 ソフト フリー ライブラリ フリーソフト 画像処理
画像処理 ソフト フリー ライブラリ フリーソフト
スポンサーリンク
スポンサーリンク

画像処理を実装したい!

と思われる方も多いかと思います。

 

  • 1からプログラミングするのは大変
  • サクッと望みの機能を実現したい!
  • 他社に先駆けて新機能をリリースしたい!

 

といった場合には、画像処理のソフトやライブラリを活用することで、

開発期間を大幅に短縮することが可能です。

 

  • 画像処理のソフトやライブラリには、どんなものがあるの?

と思われる方も多いかもしれません。

 

画像処理には、様々なソフトがあります。

また、各画像処理ソフトは、それぞれ特徴があり、

料金がかからない無料(フリー)ものから、有料のものなど、ライセンス形態もいろいろです。

 

そこで本記事では、画像処理を使って、何かを実現したいあなたのために、

開発期間を効率化する画像処理ソフトやライブラリについて、サクッとまとめました。

 

本記事の概要

画像処理をサクッと実行できるソフトウェアには何があるの?フリー(無料)ソフトも含めて、サクッとまとめました

概要ですが、本記事では、以下の6つの画像処理ソフト(ライブラリ)をまとめており、それぞれ以下で説明していく流れになっています。

  • OpenCV(フリーソフト)
  • LTI-Lib(フリーソフト)
  • VXL(フリーソフト)
  • Intel Performance Primitives(有料)
  • HALCON(有料)
  • PatMax(有料)

(他の画像処理のソフトやライブラリもあるかと思います。抜けているものにつきましては随時追加したいと思います。こんなのもあるよとご連絡いただけたら幸いです)

 

 

 

まじ1つ目のご紹介は、「OpenCV」です。

画像処理のソフトといえば、もっともよく知られているのは、

OpenCVではないでしょうか

OpenCV

OpenCV(Open Source Computer Vision Library)」は、フリー(無料)の画像処理ライブラリです。

画像処理だけでなく、コンピュータビジョン、機械学習、数学処理などのアルゴリズムも含まれています。

画像処理でオープンソースといえば、OpenCV、というくらい有名です。

元はインテル社が開発していたものが公開され、その後、管理会社が Willow Garage 社から現在はItseez に移り、Itseezはインテルに買収されたので、再びインテルの手元にあることになります。

2015年にはOpenCV 3.0 にバージョンアップされました。

このバージョンアップでは、C言語関数形式のAPIのメンテナンスは終わり、C++APIの使用が推奨されるなどの変更がありました。

使えるプログラミング言語

Python,  Java,  C,  C++,  MATLAB, Ruby などの言語から使うことができます。

使えるプラットフォーム

Windows,  Linux,  Mac, iOS,  Androidなど

ライセンス

BSDライセンス

利用可能な主な機能

上で述べたように、画像処理だけでなく、構造解析、物体追跡、パターン認識、機械学習などの機能をサクッと実装できるライブラリを含んでいます。

画像処理

ヒストグラム・フィルタ・エッジ・補間・幾何変換・画像分割・領域結合・輪郭検出・画像変換・マッチング・ラベリングなど

構造解析

輪郭処理・計算幾何・平面再分割など

モーション解析と物体追跡

物体追跡・オプティカルフロー・モーションテンプレートなど

パターン認識

物体検出など

カメラキャリブレーションと3次元再構成

カメラキャリブレーション・姿勢推定・エピポーラ幾何など

機械学習

k近傍法・SVM(サポートベクトルマシン)・決定木・ブースティング・ランダムフォレスト・ニューラルネットワーク・単純ベイズ分類器・EMアルゴリズムなど

ユーザインターフェース

画像の読み込み・保存・ビデオ入出力・シンプルGUIなど

 

OpenCVのおすすめ本はこちらです

実践OpenCV 3 for C++画像映像情報処理

詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

OpenCVとPythonによる機械学習プログラミング

Machine Learning for Opencv

Opencv: Computer Vision Projects with Python

 

 

 

 

 

 

 

 

LTI-Lib(Lehrstuhl fur Technische Informatik)

LTI-Lib」は、ドイツのアーヘン工科大学の計算機工学講座で開発された画像処理やコンピュータビジョンのライブラリです。

C++ベースのオブジェクト志向型のCVライブラリで、

ロボティクスや物体認識、身ぶり・手ぶり、ジェスチャー認識の研究プロジェクトとともに開発が進められました。

その経緯から、それらに関係する処理がC++のクラスとして提供されています。

LTI-Libのライセンス

なお、 LTI-Libは、LGPLライセンスでのオープンソースとなっています。

 

LTI-Libには、500以上のクラスが含まれており、それらのクラスは以下の内容となっています。

線形代数クラス

行列・ベクトル・テンソル、固有値・固有ベクトルを抽出する関数、線形方程式、統計など

分類やクラスタリング

動径分布関数分類器、サポートベクトルマシン、k−means法、ファジーcーmeans法など

画像処理

セグメンテーション、線形フィルタ、ウェーブレット、Steerable フィルタなど

視覚化や描画ツール

 

LTI-Libの開発環境

LTI-Libは、

  • Linux環境で、GCC
  • Windows NT環境で、Visual C++

によって開発されており、他の環境ではテストされていませんのでご注意ください。

 

 

 

 

 

 

 

 

VXL(the Vision-something-Libraries)

VXLは、コンピュータビジョンの研究と実装のためのC++ライブラリの集まりです。

ANSI/ISO C++記述され、多くのプラットフォームで、軽量で高速に動く一貫したシステムとして使えるようにデザインされています。

ライセンス

BSDライセンスのオープンソースです。

 

VXLのコアライブラリには、以下のものがあります。

vnl (数値用ライブラリ)

数値の格納やアルゴリズム:行列・ベクトル・分解・最適化など

vil(画像用ライブラリ)

画像のロード、保存、操作:大きな画像でもオッケー

vgl (幾何)

1、2、3次元の点、曲線、その他の基本のものの幾何

vsl(入力・出力)・vbl(基本テンプレート)・vul(ユーティリティ)

 

これらのコアライブラリは軽量で、他のコアライブラリを参照する必要がないのが特徴です。

 

その他のライブラリも充実しています。

その他のライブラリ

  • 数値アルゴリズム
  • 画像処理
  • 座標系
  • カメラ幾何
  • ステレオ
  • 動画操作
  • 動きの構造復元
  • 確率モデリング
  • GUIデザイン
  • 分類
  • ロバスト推定
  • 特徴追跡
  • トポロジー
  • 構造操作
  • 3dイメージング

などがあります。

コア以外のライブラリでは、必要なライブラリ以外に依存関係がないので、必要なライブラリだけリンクすれば使用可能です。

VXLは学術や産業界のコンピュータビジョンの専門家の方々が開発して使っています。

 

 

 

 

 

 

 

 

Intel Performance Primitives(インテル IPP)

Intelが開発した画像処理、信号処理、データ圧縮、暗号化向けのライブラリです。

インテルプロセッサーで性能を出せるように最適化された低水準APIを提供してくれ、画像処理などを高速に行えるのが特徴です。

以下でそれぞれの関数群をサクッとご紹介します。

画像処理

画像処理ライブラリは、上で述べた内容とほぼ同じです。

応用することで、

  • 医療画像
  • コンピュータビジョン
  • バイオメトリック認証
  • マシンビジョン
  • 画像認識
  • ジェスチャー認識

などの処理を実現することができます。

信号処理

信号処理では、離散フーリエ変換(DFT)や高速フーリエ変換(FFT)、コンボリューション、フィルタリング、統計などの処理を行うことで、情報の生成・変換・解釈ができます。

それを応用することで、音声認識・音声合成など、コミュニケーションの支援に活用することができます。加えて、以下のような応用に使うことができます。

  • 通信
  • 超音波装置
  • 医療スキャン
  • 音声信号の録音・再生
  • エコーキャンセル
  • 環境や音響のシミュレーション
  • 音声制御の個人用アシスタント

データ圧縮

データの格納や送信に必要なビット数を減らす技術を「データ圧縮」と呼びます。

一般的に使われているLZSS,  Zlib,  LZO,  bzip2などを最適化したパフォーマンスで使えます。

暗号化

サイバーセキュリティは、今後とももっとも重要なポイントの1つです。

セキュリティ分析やモバイルやクラウドのセキュリティ、IoTのセキュリティなどについて、データの完全性、認証ハッシュ、公開鍵暗号化、対称アルゴリズム、AES、TripleDES、SMS4、ストリーム暗号などが使えます。

 

 

ちなみに、インテルIPPは、OpenCVのもとになったライブラリです。

OpenCV 3.0では、インテルIPPのサブセットが提供されていたりしています。

 

こちらもどうぞ↓

Optimizing Applications for Multi-core Processors: Using the Intel Integrated Performance Primitives

Intel Integrated Performance Primitives: How to Optimize Software Applications Using Intel Ipp

 

 

 

 

 

 

 

 

その他には、主に産業用に、以下の画像処理ライブラリがございます。

 

 

HALCON

HALCONは、MVTec社が開発した、マシンビジョン構築ライブラリです。

2000ほどのライブラリの中から必要ライブラリを組み合わせることで、画像処理システムを構築できるツーツです。Visual C++、Visual Basic、Visual C#コードへの自動変換が可能となっており、お手持ちのPCなどに簡単に組み込むことができます。国内で数万システムで使われている実績があるとのことです。

機能としては以下のものがございます。

計測ツール

高精度なエッジ検出で1/50ピクセル精度の計測が可能となっています。

パターンマッチング

回転・縮尺・あおり・局所的変形にも対応しており、遮蔽・輝度変化・コントラスト反転の環境でも高速・高精度にマッチングができます。

ブロブ解析

ブロブとはかたまりの事で、ブロブ解析はかたまりの有無やかたまりの形状の特徴などを解析する画像処理の1つです。形状特徴量やモフォロジー処理などを高速に行うことが可能です。

文字認識・文字照合

ニューラルネットワークによる文字認識率(MNIST誤認識率0.65%)を実現した文字認識技術を使えます。

カメラキャリブレーション

カメラキャリブレーションは、カメラのパラメータを推定することで、このパラメータを利用すると、レンズの歪みを取り除いたり、3次元構造を見積もり、ステレオカメラを使えば深さを測ったり、平らな物体の長さを測定したりできます。検査面に対する3次元補正や、メートルなど実世界単位での計測、高精度計測に活用されています。

バーコード・データコード読み取り

高速化

HALCONでは、プログラムレベルでマルチスレッド処理を構築でき、マルチコアCPUのパワーを活用した画像処理アプリケーションを作成できます。

HALCON活用法

 

 

 

 

 

 

 

 

PatMax

PatMaxは、Cognex 社が開発したマシンビジョンのライブラリです。

PatMaxの特徴の1つに、パターン照合の特許技術があります。通常のパターン照合では、ピクセルグリッドを使って照合する方法ですが、PatMaxでは、物体の幾何学的特徴をとらえて、それらを照合します。なので、物体の角度やサイズ、影などが変化しても高い検出精度を出すことができます。

この考え方は、人間の認知とも関係していて、例えば、顔認識は、光や特徴、角度など顔の見え方が変化しても、元の特徴が分かっていれば、誰か認識できるはずです。これと同じような技術が幾何学的特徴マッチングのイメージです。

 

 

 

というわけで、画像処理ソフト6つをご紹介しました。

 

でも、どれを使ったらいいの?

 

と思われるかもしれません。

 

考え方としては、2通りあるかと思います。

 

(1),  ボトムアップで、小さい機能を作りながら、大きな機能を実現していくパターン

 

(2),  トップダウンで、目的の機能を最優先にして、それを最速で実現するパターン

 

 

まず(1)のパターンでは、

  • 画像処理の基礎理論を学んだり、
  • 1つひとつの機能を理解しながら開発したい場合
  • 特殊な機能を作りたいため既製品がなさそうな場合

などをお考えの方は、3つのフリーソフトや、IPPを考えると良いかと思います。

それぞれのソフトの中には、画像処理で必要なコンポーネントがありますので、それらを組み合わせながら、目的の機能を実現することができるかと思います。

特に、OpenCVですと多くの開発者がおられますので、何か躓いたときには、共通の悩みを持った方や解決法が見つかりやすい可能性があり、オススメです。

 

 

次に(2)のパターンですが、マシンビジョンなど、

  • すでに他社などで実用化されているもの
  • それに類するものを少し変更して使いたい場合
  • ご予算に余裕がある場合

には、下の2つの有料ライブラリをお考えになると良いかと思います。

プログラミングしながらライブラリを使うというよりも、

専門家のコンサルティングなども受けながら、目的の機能を確実に実現するためのノウハウ全体を提供してもらえるのではないかと思います。

 

 

 

というわけで、画像処理ソフト(ライブラリ・フリーソフトなど)について、オススメの6つをご紹介しました。

 

 

 

こちらもございます↓

画像処理の記事のまとめ(目次)一覧はこちらです

 

 

 

 

 

 

 

 

こちらもどうぞ↓

ディジタル画像処理改訂新版

画像認識 (機械学習プロフェッショナルシリーズ)

図解入門よくわかる最新画像処理アルゴリズムの基本と仕組み (How‐nual Visual Guide Book)

ディジタル画像技術事典200: 動画/静止画/加工/認識/圧縮/伝送/表示/ライブラリ/評価/レンズ… (画像&音声シリーズ)

画像処理の統計モデリング: 確率的グラフィカルモデルとスパースモデリングからのアプローチ

新編 画像解析ハンドブック

確率微分方程式入門 ―数理ファイナンスへの応用― (数学のかんどころ 26)

統計分布ハンドブック

ベイズ統計モデリング: R,JAGS, Stanによるチュートリアル 原著第2版

高校数学でわかる線形代数―行列の基礎から固有値まで (ブルーバックス)

固有値問題30講 (数学30講シリーズ)

詳解 Linuxカーネル 第3版

かんたん Visual Basic 改訂2版 (プログラミングの教科書)

手を動かしてまなぶ 線形代数

改訂新版C言語による標準アルゴリズム事典 (Software Technology)

理論物理学のための幾何学とトポロジー〈1〉

代数幾何学 1

代数幾何と学習理論 (知能情報科学シリーズ)

たのしいベイズモデリング: 事例で拓く研究のフロンティア

 

 

 

こちらの記事もございます↓

画像処理の記事のまとめ(目次)一覧はこちらです

 

Pythonに関する記事の一覧(目次)はこちらです

 

「機械学習」に入門したいあなたにチェックしてほしい良書、10冊はこちらです

 

「自然言語処理」を学びたい人におすすめの良書、10冊はこちらです

 

タイトルとURLをコピーしました