理論

画像内の各ピクセルについて、画像勾配の方向と大きさが計算されます。x方向およびy方向の勾配フィルタカーネルは 次のとおりです。

式 47


勾配の大きさ と方向 は、次のように計算されます。

式 48


計算された勾配は、その方向に応じて特定の数の方向Binに割り当てられます。 Binへの投票は、勾配の大きさの関数です。 DalalとTriggsが発見したように、人物検出手法にHOG特徴量を使用する場合、方向を 個のBinに分割することが最良の結果をもたらします [Dal05]。VAのサンプルデザイン「HOG_9Bins_HistogramMax.va」および「HOG_9Bins_Histogram.va」では、このようなBinningが実装されています。 さらに、サンプル「HOG_4Bins_HistogramMax.va」では、 にわたる4つのBinへの分割を実行しています。 特定の方向の Binへの割り当てまたは重み付け (方向 を持つ)は、補間によって行われます。

式 49


ここで、 は、Bin間の角度ステップのサイズです。 方向ヒストグラムの単一のBinカラム (それぞれ8x8ピクセルの領域用) は、次のように計算されます。

式 50


8x8ピクセルの各セルのヒストグラムは、輝度やコントラストの局所的な変動をカバーするために、2x2セルのサイズを持つブロックにグループ化されます。 ブロックには のオーバーラップがあります。 物体認識目的でHOGデスクリプターを使用する場合、ブロック正規化(アルゴリズムについては[Dal05]を参照)により、パフォーマンスが 倍向上します。 現在のデザイン例では、ブロック正規化は省略されています。「HOG_4Bins_HistogramMax.va」および「HOG_9Bins_HistogramMax.va」のデザインでは、 最大のヒストグラム方向がDMAに転送される一方、「HOG_9Bins_Histogram.va」では完全な方向ヒストグラムがPCに送信されます。 以下で紹介するデザインは、ユーザーの特別な目的に合わせて簡単に適応させることができます。つまり、特定の数とステップサイズの方向Binning、または[Dal05]に基づくブロック正規化を追加で実装することができます。