プロが教えるわが家の防犯対策術!

こんにちは。

私は今、画像工学という授業を受けているのですが、先日次のようなことを習ったのですが、その本質が理解できませんでした。
それは、画像の中から、コーナーを探すのには以下のような輝度値のHessian行列を使うのですが
H =
| Ixx Ixy |
| Iyx Iyy |
(ここで、Ixxなどはそれぞれの方向の輝度値の2次微分です。)
授業では、この行列Hの固有値を計算し、求まった2つの固有値λ1、λ2がどちらも大きいとき、その点はコーナーであるとされていました。

固有値というものの本質がわかっていないためなのかもしれませんが、どうして2つの固有値がどちらも大きいときコーナーだといえるのかが分かりません。Tomasiさんの論文なども読んでみたのですが、解説はされておりませんでした。

どなたか理解しておられる方がいらっしゃれば、申し訳ありませんが、ご教授お願いします。

A 回答 (4件)

ANo.1のコメントについてです。



> この方法についても、同じような理解でよいのでしょうか?

(1) 画像に対してある旨い回転をしたとき、検出したいパターンが「特徴量の行列の非対角要素が0で対角要素が大きい」という状態と対応するような、特徴量の行列の作り方をしている。しかも、
(2) 画像の回転が、特徴量の行列を回転することと対応している(つまり、画像を回転してから特徴量の行列を計算するのと、特徴量の行列を計算してからそれを回転するのとが(ほぼ)等価である)、

ならば、どんな特徴量であろうとも、固有値の計算を利用して「画像が最もパターンに近くなるという意味で(ほぼ)最適な回転をしたときの、対角要素」が計算できることは自明かと思います。

 きちんと証明することも難しくはないと思いますが(ただし、四角いピクセルでできた離散画像だと思うと大変そう)、ま、パターン認識の話でそこまでやらねばならんということもないでしょう。むしろ、直感的イメージを掴む方が大事だろうな。
    • good
    • 0
この回答へのお礼

ありがとうございます。

非対角要素が0になるようにし、
固有値で比較するということは

画像(座標系)を回転させることで
評価する尺度をどの方向を向いたコーナーにおいても、統一させていることになり、その上で曲率を評価している

という理解ができました!

固有値が求まるということは、固有ベクトルが2つ求まるということなので、実際にどんな角度(をもった座標系)からコーナーを見たときに、非対角要素が0になるのか、わかるんじゃないかな~と思ったのですが・・・

画像上でその方向を考えようと思うと、
なかなか難しいですね><

お礼日時:2008/05/16 18:41

 #3です。

すいません。間違えました。

 ついこの間まで、f:R^2→R^2の平均曲率(の絶対値)の最小化を考えていたので、そっちとかぶってしまいました。輝度は、I:R^2→Rなので、ヤコビ行列は、^Tを転置記号として、

  dI=|Ix,Iy||dx,dy|^T

であり、勾配の二乗は、

  dI^2=|dx,dy||Ix,Iy|^T|Ix,Iy||dx,dy|^T

で、
  |Ix,Iy|^T|Ix,Iy|
 =|(Ix)^2 (IxIy) |
  |(IyIx) (Iy)^2 |

ですよね。混乱を招く事を言い、申し訳ありません。
    • good
    • 0

>なるほど旨いやり方だなあ。

(#1さんより)
 同感です。
 私は現在プログラマーで、画像をピクセル単位で扱う事が、ときどきあります。また過去、構造関係の解析技術者をやっていた時期もあり、FEMやBEMをカスタマイズする時に、構造物の輪郭線の角を自動で判定させる方法はないものかと、考えた事があります(やりっぱなしで終わりましたが)。その経験から、もうちょっと説明したくなりました(← 大きなお世話)。

 一般に二次微分は、外形の曲率にほぼ比例します。角で曲率は無限大です。従って#1さんの仰るように、「最もコーナーっぽく見えるように座標を回転させて」みた時に、固有値が無限大であれば、それは厳密にコーナーです。しかし画像はピクセル単位の離散データであるため、二次微分は差分で行うはずです。よって、差分データに基づけば、「固有値が飛び抜けて大きくなる差分中心点」は、コーナーの可能性大、となります。

>Tomasiさんの論文
 基本発想は同じ、というイメージが沸きました。先の二次微分を差分に代行させる場合、最低3点必要です。これが「3×3程度のピクセルウィンドウ」の意味と思われます。そして、ヤコビ行列、

| I1x I2x |
| I1y I2y |

は各点での勾配を表し、勾配の絶対値の二乗は、

| (Ix)^2 (IxIy) |
| (IyIx) (Iy)^2 |

で表せます。二次微分を差分で代行させる場合、この絶対値二乗の値が大きければ、傾向として二次微分も大きくなるので、「3×3程度のピクセルウィンドウ」の平均評価として、

| Σ(Ix)^2 Σ(IxIy) |
| Σ(IyIx) Σ(Iy)^2 |

を用いる、という事だと思いました。Σは、ウィンドウ内での総和です。これも「旨いやり方だなあ」と思いました。

この回答への補足

ありがとうございます。

自分の勉強不足のため、わからないことがあるのですが、

| I1x I2x |
| I1y I2y |

がヤコビ行列というのはわかります。
その絶対値の2乗を

| (Ix)^2 (IxIy) |
| (IyIx) (Iy)^2 |

と書かれておられますが、その意味がいまいちわかりません。
I1とI2は違う変数での微分値ですよね?ということは、

| (I1x)^2 (I2xI1y) |
| (I1yI2x) (I2y)^2 |

となりそうなのですが、実際には確かに

| Σ(Ix)^2 Σ(IxIy) |
| Σ(IyIx) Σ(Iy)^2 |

の形で使われています。
この間の関係がよくわからないので、よろしければ教えていただけないでしょうか?

補足日時:2008/05/16 19:02
    • good
    • 1

 「コーナー」が直角に近いコーナーであって、しかもある特定の方向を向いている場合、その頂点においてHessian(要するに2階微分)が特徴的なパターン(すなわち、対角要素が大きく、非対角要素がほぼ0)を示す。

このことから、その点がコーナーの頂点であるかどうかが判定できる、としましょう。
 さて、固有値ってのは、簡単に言えば「ある行列Aが与えられた時、座標系をうまく回転して行列の非対角要素を0にする」という操作をしたときに得られる対角行列Bの、対角要素のことです。
 なので、Hessianの固有値を計算することは、「Hessian Hを回転して得られる行列Gであって、旨い回転によってGの非対角要素が0になるようにした時の行列Gについて、その対角要素」を計算したことになる。ところで、その同じ回転を画像に適用した場合、回転した画像のHessianはGになる。
 つまり、「コーナーがどっちを向いていても、上記の判定法にとって一番コーナーらしく見えるように図形を回転して眺めたときに、上記の判定法でコーナーだと判定されるかどうか」という判定をしていることと等価になるわけです。
 そして、画像を回転するのは大変手間が掛かるけれど、Hessian行列Hを回転したものGを計算するなら簡単です。
 なるほど旨いやり方だなあ。

この回答への補足

どうもありがとうございます。
「画像を回転するかわりに、行列を座標変換している」
というのは、なるほど!と思いました。

昨日自分で調べたところによりますと、現在は、1次微分を用いて判別する方法が主流のようです。
Tomasiさんの論文では、Hessianの代わりに
勾配共分散行列とよばれる
M=
| Σ(Ix)^2 Σ(IxIy) |
| Σ(IyIx) Σ(Iy)^2 |
と呼ばれるものを、コーナーかどうか判別したいピクセルを中心とした3×3程度のピクセルウィンドウごとに計算し
Mの固有値をとり、同様に2つの固有値が大きいとき、
その点はコーナーであるとされていました。

この方法についても、同じような理解でよいのでしょうか?

補足日時:2008/05/16 15:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!