ハフ変換

ハフ変換とは

ハフ変換は画像変換手法の一種で、画像の中から直線や円の要素を持つオブジェクトを検出する方法として良く知られています。画像から直線や円を検出する為には、それらの形状情報を画像から抽出する必要がありますが、ハフ変換では画像空間からρ-θパラメータ空間への変換を行うことで、図形要素を抽出します。

ハフ変換の基本原理

ハフ変換では画像空間からρ-θパラメータ空間への変換を行う、と上述しましたが、具体的に示します。ある画像空間上に孤立点があり、点の座標が(x, y)である場合、パラメータ空間への変換を行うとどのような結果が得られるのか、考えることにします。

ρ-θパラメータ空間上のある点(ρ, θ)に座標(x, y)を射影していく形になりますが、ここでρとθはそれぞれ次のように表されます。

ρ : 座標(x, y)を通る直線に対し、原点から垂線を下ろしたときの長さ

θ : 座標(x, y)を通る直線に対し、原点から垂線を下ろしたときにx軸となす角度

画像空間上に孤立点のみが存在する場合、右図のようにその点を通る直線群は無数に存在することになり、

結果として(ρ, θ)も無数に存在することになります。

したがって、横軸をθ、縦軸をρとしたパラメータ空間に射影した場合、下図が得られます。
ハフ変換は直線検出によく用いられますが、画像の中に直線の要素を持つオブジェクトが存在するケースを考えてみます。

最初の図は孤立点のみでしたが、2点追加して下図のような短い斜線となった場合、パラメータ空間に変換した結果はどのようになるでしょうか。

この場合も、孤立点の集合だと考えると結果が容易に想像できます。それぞれの点について、ρ-θパラメータ空間に射影して重ね合わせると、以下のような結果が得られます。

この結果を見ると、3点それぞれを変換した結果が重なり合っている点が存在していることがわかります。これは、重なり合った点(ρ、θ)によって表される画像空間の直線上に、3点が存在していることを示しています。また、パラメータ空間上で重なっている点それぞれが、画像空間上のどの点から変換されたものかは既知であるので、直線の始点及び終点の情報を得ることができ、結果として画像空間上の直線を検出する事ができます。

実際上はこの例のように理想的な直線が画像空間上に描かれていることは稀であり、画像の中には様々なオブジェクトが存在しているケースが殆どですので、閾値などを設けて最も直線らしい要素を検出します。

ハフ変換による直線検出

下図はガントリークレーンの画像です。この画像に対してエッジ検出を行い、その結果をパラメータ空間に変換してみます。

孤立点の例で実施したように変換を行うと、以下のような結果が得られます。
孤立点の画像から得られた結果とは異なり、画像空間上の様々なオブジェクトが射影されることによって、複数の線がρ-θパラメータ空間上で重なり合っていることが解ります。

ここで、多くの線が重なり合っている点(ρ、θ)の中から、最も直線が存在する可能性が高い組み合わせを探します。局所最大値をρ-θパラメータ空間から2個抽出し、元の画像空間上に上書き表示すると以下の結果が得られます。

黄色の線が検出された直線を表していますが、ガントリークレーンの画像から直線を検出できていることがわかります。

ハフ変換の応用や、様々な画像変換

ハフ変換は直線だけでなく円の検出にも用いられます。円検出の場合は円の中心座標(x、y)と半径rを示す3つのパラメータに変換されることになりますので、3次元のパラメータ空間を扱うことになります。半径が既知の場合は直線検出の場合と同じく2次元のパラメータ空間上で取り扱うことができます。

ここでご紹介したハフ変換以外にも、周波数領域への変換など、画像空間領域から別の領域に変換するアルゴリズムが数多く存在しており、画像空間領域では検出できない特徴を識別できます。一般的な画像変換には次のようなものがあります。

ハフ変換の主な用途・活用事例

  • 生産ラインにおける不良品検出や部品数のカウント(断線検出、円検出)
  • 自動車・建設機械等の先進運転支援システム(道路の白線認識等)

MATLABによるハフ変換(画像変換)・画像処理

MATLABのオプション製品であるImage Processing Toolbox™を使用することにより、容易にハフ変換や様々な画像変換のアルゴリズムを行い、結果を確認することができます。所望の結果を得る為には、変換前にフィルタリングやモルフォロジー処理、エッジ検出等様々な画像処理のアルゴリズムを組み合わせて前処理を行う必要があるケースもありますが、Image Processing Toolbox™で提供される高度な関数群によってそれらの処理も容易に実現できますし、それらを直感的かつ効率的に実現するためのGUI機能も提供されています。



ソフトウェア リファレンス

参考: MATLAB, Steve の画像処理, 画像の強調, デジタル画像処理, 画像セグメンテーション, 測地学, 地図投影, 画像解析, 幾何学的変換, 画像および動画処理, 特性抽出, オプティカル フロー, カラー プロファイル, 画像解析, 画像のしきい値処理, エッジ検出, 画像のレジストレーション, RANSAC