モデル・技術

HOGとは?勾配の向きを数える——深層学習以前に形を読んだ特徴量

読み:エイチオージー / 英:Histogram of Oriented Gradients

更新日: 読了目安:約6分

HOG(Histogram of Oriented Gradients、勾配方向ヒストグラム)は、画像の局所領域で画素の勾配の向きを数え、エッジや輪郭の形状を手作りの特徴ベクトルに変換する古典的手法です。CNNが特徴をデータから学ぶのに対し、HOGは人が設計した手順で形を読む——本記事はセルの細かい式より、「なぜ深層学習の前にこれが標準だったか」と、勾配という言葉のすり替えに焦点を当てます。

CNN以前の世界

2010年代前半まで、画像認識の多くは特徴抽出+分類器の二段構成でした。まずHOGやSIFTなどで数値特徴を作り、次にSVMやランダムフォレストでクラスを当てる——AlexNet以降はCNNが特徴と分類を端到端で学ぶ流れが主流になりました(G-315)。

HOGは「画像のどこに、どんな向きのエッジが多いか」を固定アルゴリズムで要約します。学習データから重みを更新するのではなく、設計済みの変換——試験では「古典的な特徴量」「手作り特徴」とラベル付けされることが多いです。

HOGが形を読む手順

厳密なパラメータは実装依存ですが、試験向けの流れは次のとおりです。

  • 前処理 — 輝度の正規化などで照明のゆらぎを抑える
  • 勾配計算 — 各画素で横・縦方向の輝度変化から勾配の大きさと向きを求める
  • セル分割 — 画像を小さなセル(例:8×8画素)に区切る
  • ヒストグラム化 — セル内の勾配向きをビンに数え、方向ヒストグラムを作る
  • ブロック正規化 — 隣接セルをまとめて正規化し、特徴ベクトルを完成させる

ここでの勾配は、画像のエッジ(明暗の境目)の向きを表す画素レベルの微分です。誤差逆伝播で層の重みを更新する学習用勾配とは別物——名前が同じでも文脈が違います。

段階何を残すか試験向けの一言
勾配計算エッジの向きと強さ形状の手がかり
ヒストグラム向きの分布回転に比較的頑健
正規化照明差の影響を抑える局所コントラストへの対策

歩行者検出の記憶

HOGが広く知られるきっかけの一つは、歩行者検出です。人の胴体や四肢は縦横斜めのエッジが規則的に並ぶため、勾配方向の分布が人らしいパターンになりやすい——HOG特徴+線形SVMの組み合わせは、ディープ学習以前の物体検出パイプラインの代表例として教科書に載ります。

現在のFaster R-CNNやYOLOは、候補領域の生成から分類までをニューラルネットで一気に学習します(G-323)。HOGは系譜の起点として覚えると、画像認識の歴史が一本につながります。

CNNとの対比

観点HOGCNN
特徴の作り方人が設計した固定手順畳み込み層でデータから学習
学習の要否特徴抽出自体は学習不要重みを勾配降下で更新
得意な情報エッジ・輪郭の形状低次から高次まで階層的特徴
試験での位置づけ古典的特徴量深層学習の中核(TF-401

HOGは「畳み込みそのもの」ではありません(G-255のすり替えに注意)。局所領域を見る発想はCNNと通じますが、学習可能なフィルタを重ねる構造ではない——この差が試験の要点です。

試験で押さえるポイント

  • 定義 — 勾配方向のヒストグラムで形状特徴を表現する古典的手法
  • 役割 — 特徴抽出(分類器そのものではない)
  • 歴史 — CNN以前の画像認識・歩行者検出で標準的だった
  • 対比 — 手作り特徴 vs 端到端学習。画素勾配 vs 学習勾配

演習で確認する

G検定:G-315G-021TF-401G-323G-255

すり替えに注意

誤った説明正しい理解
HOG=CNN手作り特徴抽出 vs 学習型ネットワーク
HOG=物体検出モデル特徴量。検出にはSVM等の分類器が別途必要だった
HOGの勾配=誤差逆伝播の勾配画素の輝度変化 vs 損失のパラメータ微分
HOG=データ拡張特徴抽出 vs 学習データを増やす前処理(G-020
HOG=損失関数入力画像の変換 vs 学習の誤差定義

よくある質問

HOGは何をする手法ですか?

画像を小さなセルに分割し、各セル内の画素勾配の向きをヒストグラムにまとめて特徴ベクトルを作る手法です。人のシルエットや物体の輪郭といった形状情報を、学習前に設計された手順で数値化します。CNN以前の物体検出や歩行者検出で広く使われました。

HOGとCNNは同じですか?

同じではありません。HOGは人が設計した特徴抽出の手順であり、ニューラルネットワークの学習とは別物です。CNNは畳み込み層を通じて特徴をデータから自動で学習します。どちらも画像の局所パターンを扱いますが、特徴の作り方と学習の有無が根本的に異なります。

HOGの勾配は誤差逆伝播の勾配と同じですか?

同じではありません。HOGでいう勾配は、画像の輝度が横・縦方向にどれだけ変化するかという画素レベルの微分情報です。誤差逆伝播の勾配は、損失関数をパラメータで微分した学習用の信号です。用語が「勾配」を共有しますが、文脈と意味が別です。