Deformable Part Models(DPM, 変形可能パーツモデル群)

1. DPM(変形可能パーツモデル群) とは [概要]

Deformable Part Models (DPM, 変形可能パーツモデル群)とは,外見モデルとして,スター型のパーツモデル群グラフィカルモデルを用いて,外見モデルのパーツ移動に伴う変形を,Laten SVMにより学習する,パーツ間グラフを用いた物体検出モデルである [Felzenszwalb et al., 2008](v1), [Felzenszwalb et al., 2010](v2), [Girshick et al., 2012](v5). (※ 名称が「part-models」と複数形の名前になっているので,私の方では「モデル」と翻訳することにした)

この記事では,DPMの5つの発表バージョンのうち,基盤となる最初のver1. ver2にフォーカスして仕組みの説明を行う(2節,ver. 3 ~ ver.5 については,2.3節で少しだけ触れる).そして,DPMの「歴史的な立ち位置」と,「CNN時代の物体検出技術との比較」を行う(3節).

図1 DPM(Deformable Part Models).
図1. DPM(Deformable Part Models).(図はプロジェクトページから引用)

DPMは,Latent SVM [Yu and Joachims, 2009]の学習フレームワークを用いて,星座モデルのグラフィカルモデルに「各物体クラス内でのパーツ移動変化に伴う外見の変化」を学習する(図1).各パーツは,HOG・SVM検出器 [Dalal and Triggs, 2005] に相当しており,それら「識別的パーツ検出器」間の相対的位置関係の変化を,星形モデルのグラフへ学習する.

DPMで,Latent SVMが学習・推定するグラフは,以下2つの全体・各パーツを担当する,HOG・SVMのフィルタ(SVMの重み係数)から構成される:

  • ルートフィルタ(全体の検出器.図の 赤色のバウンディンボックス)
    • 物体全体のグローバルな外見を表現.
    • スター型グラフ(星座モデル)においては,中心座標$(c_x,c_y)$を構成.
    • ルートフィルタだけなら,普通のHOG・SVM検出器と同じ.
  • N個のパーツフィルタ(各サブパーツの検出器.図1の 青色のバウンディンボックス)
    • N個の,ローカルな各パーツの外見を表現.
    • 星座モデルにおいて,端点の$i$番目のパーツ座標$\bm{z}_i =(x_i,y_i)$を構成.
    • 中心$(c_x,c_y)$ に対して,相対的に各パーツモデルを移動可能
      • パーツBBoxはアノテーションしないでOK.
      • 学習中にパーツフィルタと同時に,潜在変数$\bm{z}_i$も推定する.

DPMは,上記の(N+1)個のHOG・SVM検出器から構成された「星座モデル」を,Latent SVM により学習・推定するというフレームワークである.

学習前の準備として,各物体のルートフィルタのBBoxのみアノテーションしておけば良いのがDPMの利点である.各パーツフィルタとその相対位置は,学習時にLatent SVMの潜在変数として最適化されるので,パーツを事前にアノテーションする必要がないという利点がある (2.1節).

また,DPMの登場により,Pascal VOC (2007)に含まれる「主要な20種の物体クラスすべて」に対しての物体検出モデルの学習が,初めて実現された(2.2節).それ以前の主流であった,HOG・SVM検出器やViola-Jones物体検出器(Wikipedia)などの「単一物体クラス検出器」では,「歩行者」や「正面顔」のような「縦横サイズが固定されたバウンディンボックス内の画像特徴の変化が,比較的少ないクラス」でしか,良い検出器は学習できていなかった(詳しくは物体検出の記事を参考).よって,DPMの登場は大きなパラダイムシフトとなった.

加えて,視点ミクスチャ(ver.2)の提案により,複数視点の検出器を混合したモデルを構成できるようにもなった.これにより「飛行機」「自転車」などの,「視点ごとに見え方が大きく異なるクラス」の検出器も,より高精度に学習できるようになった(2.2節).

テスト時には,パーツ検出器の最適位置を,構造化予測する(=入力画像を元に,出力グラフのパラメータを最適化する).具体的には,上記1,2のパーツ検出器をスライディングウィンドウした結果の応答マップを入力として,動的計画法を用いてグラフを最適化する(※「テスト」のこれ以上の詳細については,この記事では省略する.学習フェーズ主体で,説明を進める).

以上がDPMの概要である.2節の「ver. 1, ver. 2 の詳細説明」に入るまえに,DPMが,当時の最先端モデルをどのように発展させたかの経緯について,先に1.1節でおさえておく.これにより,従来手法との比較による「時系列方向での俯瞰的な理解」をまず高めておきたい.

1.1 生成モデル型パーツモデルを,先端的な「識別モデル」「多数物体クラス」

絵的構造群(Pictorial Structures)を用いた物体認識
図2. 絵的構造群(Pictorial Structures)を用いた物体認識 [Felzenszwalb and Huttenlocher, 2005]
([Bourdev and Girschick, 2013] のIntroductionのスライドから引用)

DPMの主著者であるFelzenszwalb氏は,生成モデル型のパーツモデルである絵的構造群(Pictorial Structures)をもちいた画像からの物体認識 [Felzenszwalb and Huttenlocher, 2005] を,すでに発表していた(図2).この手法では,まず(絵的な)矩形型パーツの輪郭群からなる「対象物体の輪郭」を表わす線画モデル(=絵的構造群)を用意する (※ 図2のように,人クラスの生成する線画は,鉄拳シリーズの木人に近い).そして,入力画像から計算した輪郭特徴と,生成した線画モデルの間の尤度(類似度など)をもとに,絵的構造群の最適パーツ配置をグラフ推論する.これにより,画像中の対象物体に絵的構造群をフィットし,対象物体の「パーツ姿勢を含めた検出・認識」を行えるという手法である.

しかし,この研究は,古典的な画像特徴を用いるので,Articulatedな結果を得られる発想はよかったが,頑健性に乏しかった.線画モデルと古典的画像特徴でパーツ尤度を計算するため,線画表現で十分フィットできるような,対象クラス(正面を向いた人(図2)や,正面顔画像)にしか通用せず,用途がまだ限定的であった.つまり,もうひと押しないと,実用的にならない初期段階の発想であった.

その手法を,識別モデル型のパーツ検出器(HOG +SVM [Dalal and Triggs, 2005])をパーツ検出器として採用することで,Pascal VOCの多様な物体クラス全てに対して,頑健な検出器を学習できる仕組みを初めて確立したのがDPMであった.

1.1.1 当時の状況と,DPMの実現難易度

当時は [Felzenszwalb and Huttenlocher, 2005]と並行して,物体認識においても,例えば [Fergus et al., 2003]などで,生成モデル型の「星型パーツモデル」を用いた手法が,よく研究されていた.そんな中,DPMのver. 1 では,物体検出問題向けに初めて,識別的検出モデルをパーツモデルに使用した星型パーツモデルが提案された.

また,この当時は構造化予測(Structured Prediction)の主な道具として,Latent SVM と Conditional Random Field(CRF)の2つが存在していた.今でこそ,GCNやCNNを用いて,グラフや画像の構造化学習は楽に行える時代になっている.しかし当時は,基本的にこの2つの技術しか存在していなく,いずれも立式や応用(実装)が簡単ではなかったので,敷居は高く,使いこなせるのはトップ研究者陣に限られていた.

その状況下で,Felzenszwalb氏はDPMを提案し,そのソフトウェア実装も公開した.前述のとおり,Latent SVM 部分の自作は敷居が高かったため,DPMの再現実装をするのも当時の研究者には難しかった.それもあり,このDPMソフトウェアは重宝されることになった.

1.1.2 従来の単一クラス物体検出との比較

DPM登場まで主流な手段であった,単一物体クラス検出器では「歩行者」「顔」「人物部分ポーズ (Poselets [Bourdev and Malik, 2009]」などの,BBox固定サイズ内の外見変化が少ない物体クラスでは,精度が高いモデルは学習できていた.

しかし,Pascal VOCチャレンジが始まって以降に検出対象となった,「飛行機」「車」「自転車」などの物体クラスに対しては,「各クラス内での外見の変化」が大きいため従来モデルでは限界があり,精度の高い検出モデルをまだ誰も提案できていなかった(※ Poselets については,人物姿勢推定の記事の,該当する節2.1, 2.2を参照).

そんななか,DPMは,Pascal VOCの全20クラスに対して実用的に動く物体検出モデルを,初めて提案できた.DPMにより,人や顔に限らず,一般的な全て物体の検出モデルを学習できるようになり,画像認識業界にパラダイムシフトが起こった (VOC2007で,最初のDPM ver. 1 は mAP 17% を達成).

以上,この1.1節では,2節以降の導入として,DPM登場までの経緯と,DPMの大まかな仕組みと達成したこと,およびDPM登場のインパクトについて述べた.

1.2 記事の構成

2節以降は,以下の構成でDPMについて述べる

  • 2節:DPM の ver.1 と ver. 2 (主に学習フェーズについて説明)
  • 3節:DPMの課題と,その後のCNN物体検出による改善
  • 4節:まとめ

3節では,HOG+SVM [Dalal and Triggs, 2005] のような,従来の「単一物体クラス検出モデル(※ 物体検出の記事を参考)」との違いをおさえたのち,DPMの検出性能の良さや,逆に達成可能なことの限界について順にまとめる.

限界についてまとめる3.2節では,現代のディープニューラルネットワークを用いた物体検出モデル(Faster R-CNNYOLO, SSD以降)で実現できていることと,当時のDPMが達成できていたことを簡単にだけ比較する.これにより「DPMが当時,今後の課題としていたこと」が,CNN物体検出との比較を通して整理できるようにしたい (読者が独自に深い比較を更に行うと,既に使われなくなったDPMからも,何かインスパイアが得られるかもしれない).

2. DPM のver.1 と ver. 2

DPMの学習フェーズ
図3 DPMの学習フェーズ.
物体全体の枠だけから,パーツモデルが学習される
(Felzenszwalb氏の発表スライドから引用)

1節で既に述べたとおり,DPMの学習フェーズでは,ルートフィルタとパーツフィルタの間の位置関係を表わした「星形のパーツ間関係グラフ」を学習し,その結果,各パーツはHOG・SVM検出器として学習される(図3).

ルートフィルタの中心点$(c_x,c_y)$に対する,各パーツフィルタの相対位置$\bm{z}_i =(x_i,y_i)$を格納した,「星形パーツグラフ」を,ルートフィルタのBBox情報のみを教師に与える(図2-左),各パーツモデルの相対位置$\bm{z}_i$は,学習中に同時に求める.すなわち,N個の $\bm{z}_i$ 潜在変数も加えたLatent SVMの学習を通じて,学習画像の外見のパーツ移動による全体の変形具合・パーツ間位置関係が,潜在変数付き学習により「勝手に」求まる (図3).つまり図2にあるように,DPMの学習では各サブパーツのラベル付けは不必要であり,Latent SVMが自動で探して決める.

テスト時には,各パーツ(ルートフィルタ + N個のパーツフィルタ)の応答を検出したあとに,動的計画法を用いて,パーツグラフのグラフ推論を行る.その出力グラフの最適化により,ルートフィルタの位置と最適なパーツフィルタの配置($\bm{z}_i$ ),およびルートフィルタ($\bm{z}_0$ )・パーツフィルタ($\bm{w}_i$)も学習する.

2.1 DPM ver. 1

2.1.1 パーツ検出器の弱教師あり学習

DPMの最初の提案(ver. 1) [Felzenszwalb et al., 2008]では,「BBox内のHOG特徴 + Latent SVM」を用いて,各パーツのBBoxラベルは無いPascal VOCデータセットから,複数のパーツ検出器(Part Model)弱教師あり学習によって学習した.図1で言うと,自転車全体を囲ったルートフィルタの赤枠しか,学習時には与えず,青色の各N個のパーツは,Latent SVM中の潜在変数$\bm{z}_i = (x_i,y_i)$として設定する.そして,学習時には,(6~8個程度の)パーツ位置$\bm{z}_i$と,パーツBBox内HOGに対するSVMの重みである「パーツフィルタ$\bm{w}$」が,教師なしで学習される.

まとめると,DPMでは,Latent SVMによる弱教師ありの(構造化)学習を通して,パーツの相対的配置が決まり,ルート検出モデルのSVM重み係数と共に,パーツ検出モデルのSVM重み係数も学習される.ただし,Latent SVMの学習では,潜在変数も同時に探索・最適化しないといけないので,かなり学習時間が長くなってしまうという欠点がある(※ latent SVMに限らず,全ての「潜在変数付き機械学習モデル」が持つ性質).

2.1.2 潜在パーツ学習により,20クラスで検出モデルの学習が可能に

当時の画像認識チャレンジの主戦場であった PASCAL VOC チャレンジは,それまで検出器の主な対象であった,「歩行者」や「顔」以外の,基本的物体クラスの学習データも,新たに提供し始めたデータセット・チャレンジである (計20クラス).「歩行者(全身)」や「(正面)顔」などの,領域矩形のアクペスト比が固定で済む物体クラスと違い,コンピュータビジョン業界が物体認識対象として新たに本格的に取り組むことになった「自転車」「飛行機」などは,各学習画像での外見の多様性が大きい.よって,当時の縦横のアスペクトが固定の単一的な見え方しか学習できない,従来の単一クラス物体検出の技術では,自転車クラスの見え方やアスペクト比は多様すぎるゆえ,精度の高い検出器を学習できなかった(2.2節で詳しく).

そこでDPMsでは「パーツ検出」の概念を星形パーツ群モデルに導入した(図1).物体クラスのパーツ位置を,Latent SVM の潜在変数として採用した.DPMの学習では,$N$個のパーツ位置の潜在変数$\bm{z_i}$も,検出器の学習中に同時に探索する.全体検出器 (ルートフィルター) のSVMを学習する.自動探索が終わった$N$個のパーツ位置の領域サンプルから,パーツ検出器$N$個も学習する.そして,Latent SVMで,それらのパーツ配置(ルートフィルター中心に対するパーツフィルタ中心の位置)も線形回帰させる.これによりテスト時には,全体検出器と各パーツ検出器の双方のフィルタ応答を利用して,グラフィカルモデルの推論を行い,全パーツの最適配置を検出結果として推定することができるようになった.

こうして「自転車」のような「パーツ配置に多様性があるクラス」でも,パーツの変形具合を学習できるモデルとなった.また,DPMは「パーツ位置変化に頑健な」物体検出器の学習を,パーツのROIのアノテーションは行わず,弱教師あり学習により学習できるようになった.

2.2 DPM ver. 2: 視点Mixureの導入

DPM v2 - 視点ミクスチャの導入.
図4: DPM v2 – 視点ミクスチャの導入
(正面視点モデルと横視点モデル).

旧来の「歩行者」検出器では,視点が変わっても,BBoxの縦横比を64 x 128に揃えやすかった(歩行者の縦横スケールは均一的であるからである).しかし,PASCAL VOCチャレンジの登場により,新たに物体検出器を学習する必要が出てきた「自転車」クラスや「犬」クラスなど,正面・横・その他視点でROI矩形のアスペクト比が大きく異なり,見え方も視点ごとに異なってくるクラス群が多い.

そこで,ジャーナル版のDPMであるDPM version 2 [Felzenszwalb et al., 2010]では,視点(view)別のモデルを複数学習し,それらを全て用いる視点Mixture の仕組みも提案された(図4).複数視点で外見の多様性があっても,各支店を担当する視点モデル(その視点の外見に特化したDPM)がN視点分用意されていて,一番応答の良い視点のDPMで検出を行うことができる.これにより,視点ごとのモデルを選択的に(自動で)切り替えることで,「自転車」「車」「犬」「馬」などのクラスの物体検出も行いやすくなったおかげで,DPM ver.1 の27% のmAPの精度から,version.2 では 36% まで上昇した

2.3 version 3 以降のDPMの発展

DPMは,主著者と,その引き継ぎで途中から主著者を担当するようになったGirschick氏から,DPM version 5まで,合計5つの研究が順に発表された.プロジェクトページ のReferencesが各バージョンに相当し,各バージョンごとに,対応するソフトウェアも公開された.

ver. 1(会議版,2.1節), ver. 2(ジャーナル版での改善,2.2節)が,この記事でフォーカスするDPMの主提案である.ver. 2では,計算時間削減と,コントラスト変化への頑健性強化の目的で,PCA学習を用いた「パッチ内HOGの次元削減」も提案された.

ver. 3では,DPMのカスケードモデル化が提案された.またGirschick氏が主著者に代わってからは,ver. 4 (※技術報告), ver. 5 [Girschick et al., 2011]では,人物検出に特化して遮蔽対応を強化したDPMが提案された.人物の部分遮蔽対応のために,ルートフィルタを「6パーツ+遮蔽パーツ」に分解し,遮蔽中の外見のこまやかなモデル化が可能となった.

3. DPMの課題と,その後のCNN物体検出による改善

以上のようにDPM は,Pascal VOC のような「写り方の視点・パーツ配置が多様な物体」も,1モデルとして一括学習できるようになった.これにより,当時としては一躍,最高峰の物体検出技術として躍り出ることになった.

しかしDPMは,最終バージョンの DPM ver.5 [Girschick et al., 2011] まで到達しても,モデル設計に伴う課題によって,検出できない物体の映りかたのパターンが以前として存在し,性能限界が生じていた (3.1節).これは,CNN物体検出器の登場によって,(畳み込み層+プーリング層にもとづいた)「より複雑な,外見モデル」を学習できるまでは,うまく解決できなかった(3.2節).

3.1 DPM の課題

当時最先端を独走した,DPMの仕組みをもってしても,CNNがその後に実現したような「高速な,大規模クラス数の検出モデル」は実現できていなかった.DPMの主貢献である,識別パーツモデル群のパーツグラフ(2.1節)と,視点Mixtureによる複数視点への対応(2.2節)を用いても,結局はそれぞれ「2次元平面的なパーツの移動」と「物体全体の視点による見えの変化」までしかモデリングできない.よって,「3次元的な見えの変化が多い物体クラス」については,CNN物体検出ほどの,十分な性能の検出器を結局は最後まで学習できなかった.

ルートフィルタも,パーツフィルタも,BBox内HOG特徴ベクトル(固定サイズ)である.パーツの平行移動だけでは表現できないような外見の変化までは,モデリングができないからである.逆に言うと,2次元平面内での,パーツの平行移動で表わせる範囲までは,DPMでも相当強い.

また,全パーツが画像中に写っていないとグラフが検出できないのが問題となった.つまりはDPMには,「対象物体の半分しか写っていない場合」など,部分遮蔽にも対応できないという弱点も存在した.DPM ver.5で,人物クラス限定ではあるが,遮蔽への対応が展開されたものの,CNNベースの物体検出が達成できるほど,あらゆる部分遮蔽への対応(学習)はできなかった.

3.2 CNN物体検出による,DPM の課題の改善

R-CNN, Faster R-CNN [Ren et al., 2015] 以降の「CNNベースの物体検出ネットワーク」では,深層学習やCNNのパワーのおかげで,3.1節にあげたようなDPMの弱点を克服することができた.多様な物体クラスの検出や,きびしい遮蔽への対応が可能となる.CNNは,部分遮蔽したサンプルの外見も,容易に学習できるだけのモデルのリッチさがある.

HOG・SVMやICF + BoostingにDPMが物体検出の主流であった時代(2010年ごろまで)は,「明示的なパーツ表現を設計することで,部分遮蔽サンプルへ対応する」ということを研究者は主に頑張っていた.しかし,CNNがその必要を無くしてくれた(ただし明示的な中間パーツがつくれなくなり,モデルがImplicitになったのは,ExplicitなパーツモデルであるDPMと比べると,弱点とも言える)

また,物体検出向けに用いるCNN(やFCN)は,ダウンサイズしていきながら何層も畳み込んでいくなかで,各サイズの「パーツ表現」をカーネルに(自動的に)学習してくことができる.つまり,勝手に部分遮蔽対応を高レベルに行ってくれる意味で,非常に楽なのである.

※ ちなみに,人物姿勢推定においては,Flexible Mixture-of-Parts (ホームページ)などの,DPM系の「きびしい遮蔽へも対応した」発展手法が,ディープラーニング流行前にも登場した (以下の関連記事を参照):

またCNNによる各種画像認識タスクを,複数スケール対応させるための拡張機構,FPN(Feature Pyramid Networks)の登場により,複数スケールへの対処も現実的な計算コストで行えるようになった.

4. まとめ

以上,DPMのver.1 と ver. 2を中心に,DPMの弱教師ありパーツモデル学習の仕組みについて述べた(2節).前時代のHOG・SVM や ICF・boostingなどの「単一物体クラス検出手法」と比べて,DPMは,Pascalの20クラスの「パーツ移動による変形」「視点の変化」にも強い物体検出器を,初めて学習できるようになった.

CNNの時代に移行するまでは,DPMは様々な物体検出問題で無双を続けることになった.よって,人検出や顔検出モデルについても,Flexible Mixture-of-Partsなど「パーツ変化や視点変化に強いDPMベースの検出モデル」が提案されていった [Zhu and Ramanan, 2012] ,[Chaitanya and Ramanan, 2012].しかも,これらはDPMを提案したDeva Ramananの研究室から,各応用発展系が一挙に提案されたのもポイントである.

また,3節では,現代と古典的物体検出から見ると,狭間の時代に相当するDPMの課題にフォーカスした.その後のCNN物体検出では何が改善されて,逆にDPMでは何が課題であったかを読者が今後考えれるように,おおまかにだけ両者の比較を書いて整理した.

関連書籍

References

参照外部リンク

  • [Bourdev and Malik, 2009] Lubomir Bourdev, Jitendra Malik, Poselets: Body Part Detectors Trained Using 3D Human Pose Annotations, In, ICCV 2009.
  • [Bourdev and Girschick, 2013] ICCV 2013 Tutorial “Part-based Models for Recognition “, Lubomir Bourdev, Ross Girshick.
  • [Chaitanya and Ramanan] Desai, Chaitanya, and Deva Ramanan. “Detecting actions, poses, and objects with relational phraselets.” In ECCV 2012.
  • [Dalal and Triggs, 2005] N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In CVPR, 2005.
  • [Felzenszwalb and Huttenlocher, 2005] P. Felzenszwalb and D. Huttenlocher. Pictorial structures for object recognition. In, IJCV, 61(1):55–79, 2005.
  • [Felzenszwalb et al., 2008] P. Felzenszwalb, D. McAllester, D. Ramanan, A Discriminatively Trained, Multiscale, Deformable Part Model. In CVPR 2008.
  • [Felzenszwalb et al., 2010] P. Felzenszwalb, R. Girshick, D. McAllester, and R. D. Object detection with discriminatively trained part-based models. TPAMI, 2010.
  • [Girschick et al., 2011] R. Girshick, P. Felzenszwalb, D. McAllester. Object Detection with Grammar Models. In NIPS, 2011.
  • [Girshick et al., 2014] Girshick, R., Donahue, J., Darrell, T., & Malik, J. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
  • [Yu and Joachims, 2009] C.-N. J. Yu and T. Joachims. Learning structural svms with latent variables. In ICML, 2009.
  • [Zhu and Ramanan] Zhu, Xiangxin, and Deva Ramanan. “Face detection, pose estimation, and landmark localization in the wild.” In CVPR, 2012.
SNSでシェアやブックマークを行う