1

私の講師は、のスライドを持っていますedge histogramsimage retrievalこれにより、最初に画像をに分割し4x4 blocks、次にでエッジを確認する必要があると述べていhorizontal, vertical, +45°, and -45° orientationsます。次に、これはで表されると述べてい14x1 histogramます。彼がどうやって14x1 histogramマストを作成しなければならないと決めたのか私にはわかりません。誰かが彼がこの値をどのように思いついたのか、またはどのように作成するのか知っていedge histogramますか?

ありがとう。

4

1 に答える 1

3

あなたが参照しているものは、方向付けられた勾配のヒストグラム (HoG) と呼ばれます。ただし、数学はあなたの例ではうまくいきません。通常、空間ビニング パラメータ (4x4 ブロック) を選択します。ブロックごとに、いくつかの異なる方向 (この場合は 2 方向のみ) で勾配の大きさを計算します。したがって、各ブロックにはN_{directions}測定値があります。これにブロックの数 (あなたの場合は 16) を掛けると、16*N_{directions}合計の測定値があることがわかります。

ヒストグラムを作成するには、これらの測定値を 1 つの長いベクトルに連結するだけです。ビン/方向の組み合わせを 1-D ヒストグラムのスロットにマップする方法を追跡している限り、連結を行う方法はどれでもかまいません。この連結の長いヒストグラムは、勾配の方向に基づいて画像のある側面を認識するように分類器をトレーニングするなど、機械学習タスクに最もよく使用されます。

しかし、あなたの場合、教授は何か特別なことをしているに違いありません.16個の異なる画像ブロック(画像ブロックの4x4グリッド)がある場合、合計で全体のヒストグラムで 14 の測定値。

あるいは、教授は、[-45,+45] の間の角度の範囲を取り、それを 14 の異なる値に分割することを意味する場合があります: -45、-45 + 90/14、-45 + 2*90/14、 ... 等々。

それが教授の意味である場合、その場合、1 つのブロック内に 14 個の方向ビンが得られます。すべてが連結されると、画像全体を表す非常に長い 14*16 = 224 コンポーネントのベクトルが 1 つ得られます。

ちなみに、勾配のヒストグラムの Python 実装で多くのテストを行ったので、ここまたはここにリンクされている作業の一部を見ることができます。そのサイトにはいくつかのサンプル コードもありますが、より適切にサポートされているバージョンの HoG がscikits.imageに表示されます。

于 2012-04-07T04:18:11.077 に答える