HoG vs Haar-like feature ベンチマーク

OpenCVのサンプルとしても公開され、すっかり有名になった Haar-like特徴量と AdaBoost分類器を用いた顔認識手法だが、現在最先端の画像処理研究では、HoGという特徴量が注目されている。

HoGは、"Histogram of oriented Gradient"の略で、直訳すると、「方向づけられた勾配のヒストグラム」ということになる。つまり、入力画像の勾配(微分画像)を求め、それを局所領域ごとに勾配方向で区間分割してヒストグラムを取ったものを特徴量としようとする手法である。

これは2005年にNavneet DalalとBill Triggsによって提唱された新しい手法で、Haar-likeよりも分別能力が高そうだということで、盛んに研究されている。

私も今、HoGを使った物体認識処理を試作しているところであるが、データ空間として線形分離しやすいらしく、SVM(サポートベクトルマシーン)に放り込んでやると、それなりの性能(正答率80〜90%以上)をもった識別器がいきなりできてしまった。目的に応じていろいろと調整してやればかなり面白い認識アルゴリズムが作れそうである。

HoGについての分かりやすい説明資料が、ここに公開されている(公開者の中部大学 藤吉氏に感謝!)。この資料、SIFT等の他の最新の手法にも言及されているので、知らない人は必読である。

さて、そうなってくると、Haar-likeとHoG、どっちがどれくらい性能がいいのか?という疑問が沸く。自分で調べる前にちょっと検索してみたら、こういう論文を発見した。2007年できたてホヤホヤ?の論文である。そのものずばり、Haar-like と HoGを比較している。

結論だけ引用すると、検出率はHoGが良く(高く)、false positive量はHaar-likeの方が良い(少ない)模様(table2)。また、傾向として「HoGは、特徴量を増やすと false positive 率は安定のまま検出率が向上する。他方、Haar-likeでは、false positive率が減少した」とのこと。むむむ。こういうのはいきなり鵜呑みにしないほうが良いので、追試が必要そうである。
また、どういう画像シーンに適用するかによっても変わってくるだろう。