【画像処理入門】アルゴリズム&プログラミング

画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

画像処理とは

画像処理(Image Processing)とは、コンピュータを用いて画像に対して様々な処理を行う技術の総称です。
画像処理には大きく分けて以下2つの目的があります。

  • 画像から画像への変換
    • 画像の編集や加工、見やすさの改善を行うことです。
    • 例えば、画像の拡大・縮小、高画質化、ノイズ除去などが含まれます。
  • 画像から情報の取得
    • 画像を分析し、有用な情報を抽出することです。
    • 例えば、顔検出、自動運転技術における障害物認識、医療機器でのCT画像の分析などが含まれます。

「画像から画像への変換」を画像処理、「画像から情報の取得」をコンピュータビジョンと区別する場合もあります。

画像処理技術を活用した分析の特徴と課題

画像処理技術を活用した分析は、自動運転技術における障害物認識、医療機器でのCT画像の分析など多方面で活躍しています。
画像センサ(カメラ)は、他のセンサーと比較しても多くの情報を取得できるため、対応できる課題分野の幅が大きいことが大きな特徴です。
ただし、画像センサが取得する情報量は多いため、データ処理の計算コストが高い、つまり分析には高価な計算機(コンピュータ)が必要なことが課題です。
特に、監視システムや自動運転車など、即時の反応が求められる用途では、画像データをリアルタイムに処理することが求められるため、高速な計算機や画像処理アルゴリズムが必要となります。

【画像処理入門】基礎的なアルゴリズム

基本的な画像処理アルゴリズムについて以下にまとめました。

画像の基本構造
データ構造 デジタル画像の基本構造標本化量子化ラスタ走査と二次元配列走査
色空間 RGBGRAYHSV
色空間の変換 RGB→GRAYRGB→HSV
減色 ■K平均法
ヒストグラム・濃度変換
基礎 ヒストグラムとは
濃度変換 線形濃度変換非線形濃度変換(ガンマ補正)ヒストグラム平均化
空間フィルタリング
基礎 畳み込み演算とは
平滑化 平均値ガウシアンメディアン
輪郭抽出 一次微分PrewittSobelLaplacianエンボスLoGCanny
高速処理 積分画像DoGDoM ■XDoG
まとめ 空間フィルタリングの種類
周波数フィルタリング
基礎 画像のフーリエ変換
ノイズ除去
画像圧縮
二値画像
基礎知識 二値画像とは
二値化処理 単純二値化適応型二値化大津の二値化
膨張収縮 膨張収縮処理マスク処理
直線検出 ■ハフ変換(古典的) ■ハフ変換(確率的)
幾何学的変換
補間 最近傍補間法バイリニア補間法バイキュービック補間法
回転 アフィン変換
パターン認識
テンプレート探索 SSD・SAD・NCC・ZNCC ■FFT+積分画像で高速化
特徴量 Haar-likeHoGSIFT ■SURF ■位相限定相関法
識別器 カスケード型SVM ■ニューラルネット
利用例 顔検出(Haar Cascade)人検出(HoG SVM)
動画像処理
動体検出 背景差分法フレーム差分法色追跡(HSV)
動体追跡 ■MeanShift ■Camshift ■オプティカルフローパーティクルフィルタ
画像計測
ノイズ ■ショットノイズ ■熱ノイズ
距離計測 ■単眼カメラ ■ステレオカメラ ■エピポーラ幾何学 ■キャリブレーション ■ステレオマッチング
三次元計測 ■位相シフト法
ファイル構造
ファイル構造 ヘッダ部とデータ部
BMP BMP形式BMPをバイナリエディタで解析
JPG
PNG
GIF
応用例
画像加工 写真の漫画化 ■写真のアニメ絵化

【画像処理応用】プログラミング、ソフトウェア、その他

画像処理プログラミング・ソフトウェアについて以下にまとめました。

画像処理プログラミングまとめ
Python Pythonで画像処理入門Python + OpenCV入門Python + Scikit image入門
C# C#で画像処理入門
画像処理ソフトまとめ、その他
画像編集ソフト GIMP入門
その他 プロ生ちゃん(暮井 慧)(お借りした画像)