4

分類によるオブジェクト検出に HoG 機能を使用しています。

長さの異なる HoG 特徴ベクトルをどのように扱うかについて混乱しています。

すべて同じサイズのトレーニング画像を使用して分類子をトレーニングしました。

ここで、分類器を実行する画像から領域を抽出しています。たとえば、スライディング ウィンドウ アプローチを使用しています。私が抽出したウィンドウのいくつかは、分類子がトレーニングされた画像のサイズよりもはるかに大きいです。(テスト画像で予想されるオブジェクトの最小サイズでトレーニングされました)。

問題は、分類する必要があるウィンドウがトレーニング画像のサイズよりも大きい場合、HoG 特徴ベクトルもトレーニング済みモデルの特徴ベクトルよりもはるかに大きくなることです。

では、モデルの特徴ベクトルを使用して抽出ウィンドウを分類するにはどうすればよいでしょうか?

たとえば、抽出された 1 つのウィンドウのサイズ (360x240) を としましょうextractedwindow。次に、20x30 しかない私のトレーニング画像の 1 つを取り、それを と呼びましょうtrainingsample

HoG 特徴ベクトルを使用すると、次のようになります。

fd1, hog_image1 = hog(extractedwindow, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True)

fd2, hog_image2 = hog(trainingsample, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True)

print len(fd1)
print len(fd2)

次に、これは特徴ベクトル間の長さの違いです。

2640
616

それで、これはどのように扱われますか?抽出されたウィンドウは、分類器がトレーニングされたサンプルのサイズに縮小されることになっていますか? それとも、抽出されたウィンドウごとに HoG 機能のパラメーターを変更/正規化する必要がありますか? または、これを行う別の方法はありますか?

私は個人的に、scikit-image を使用して Python で作業していますが、問題は使用しているプラ​​ットフォームとは関係ないと思います。

4

1 に答える 1

3

おっしゃるとおり、HOG は基本的にセル サイズをピクセル単位で設定するパラメーターを使用します。したがって、画像のサイズが変わると、セルの数が異なり、記述子のサイズも異なります。

HOG を使用する主な方法は、ピクセル単位で同じサイズのウィンドウを使用することです (トレーニング中もテスト中も同じサイズ)。extracted windowと同じサイズにする必要がありますtrainingsample

そのリファレンスで、あるユーザーは次のように述べています。

HOG はスケール不変ではありません。各画像で同じ長さの特徴ベクトルを取得しても、スケールの不変性は保証されません。

したがって、同じウィンドウサイズを使用する必要があります...

于 2014-05-23T08:26:26.597 に答える