317 Views
October 31, 24
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2024年度後期 第5回輪読会 【物体検出】 R-CNN 京都大学 工学部 4回生 河田 賢斗 0
概要 【物体検知】 →物体を囲むバウンディングボックスを予測し、ボックス内の物体のクラス分類を解く 【R-CNNによる物体検出】 ・Category-independent な領域提案( region- proposal ) を行う ・各提案領域に対して、大規模な「畳み込みニューラルネットワーク」を通し て固定長の特徴ベクトル ( fixed-length feature vector ) を抽出する ・最後に、クラス毎に特化した線形 SVMs 層を通す 以上の region-proposal ・ 大規模なCNN ・ Linear SVMs層 の 3 stage を通し て物体検知を行う 1
アジェンダ ◼ Region Proposal ◼ Test-time Detection ◼ Training ◼ Visualization, ablation, and modes of error ◼ The ILSVRC 2013 Detection Dataset ◼ Semantic segmentation ◼ Conclusion 2
アジェンダ Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik . (2014) . “Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5)” 本資料は上記の論文をもとに内容を構成しています (前ページの区切りも論文に依拠) mAPを改善させる物体検出手法についてR-CNNを提案 1. region-proposal を Bottom-up するために high-capacity CNN を使用 2. Domain-specific fine-tuning 、supervised pre-training を組み合わせる その他の手法(OverFeat 等)と比較し、パフォーマンスの向上を発見 3
Region Proposal 【Region-Proposal を生成する手法】 ・Objectness , ・Selective Search , ・Category-independent object proposals , ・Constrained parametric min-cuts (CPMC) , ・ Multiscale combinatorial grouping ,・ Cires¸an etc 【論文で採択された手法】 ・Selective Search 【その後の流れ】 4096次元の特徴ベクトルをRegion-Proposal から抽出 (ここではCNNのCaffe実装を使用した) 平均を差し引いた227×227のRGB画像を5つの畳み込み層*と2つの全結合層*に 順伝播させることで計算される また、CNNに入力する際にBB(Boundary-Box)内のピクセルを膨張させ、引き 延ばすように設定(元のボックスの周りに16 pixel の画像コンテキストを設定) 4
Region Proposal 【テスト時】 ・Selective search を用いて2000のRegion Proposal を抽出 ・特徴(ベクトル)を計算するためCNNを通して順伝播させる(各Proposal は227×227に変換) ・Class-Specificな全てのSVMsに出力された特徴ベクトルを通し、スコアを付与する → 最も高いスコアを付与したSVMsが属するクラスを、特定の特徴ベクトルに紐付ける ・全ての特徴ベクトルがスコア化された後、各クラスに対応する提案領域のセットをより改善 させる どういうことか? →ある特定のクラス(例えば、”猫”や”犬” など)に対して、全ての領域をSVMやCNNによるスコ アに基づいて、高い順に並べ替える → スコアの高い領域を選択するために、重複している他のスコアの小さい領域を削除する (IOUの閾値を基準とする) → 各クラスに対して信頼度の高い部分のみが選ばれ、別の領域との重複が最小化される →最終的な物体検出予測時に於ける重複検出を防ぎ、予測の質を改善可能になる 5
Test-time Detection 【物体検出を効率的に行う】 A. 全てのクラスに対して、作用されるCNNのパラメータは同一である B. CNNによって出力される特徴ベクトルは、比較的低次元である →結果、あらゆるクラスに対してRegion-Proposal や 特徴ベクトルの計算に要する時間が均等化 クラス特有の計算は、 1. 特徴ベクトルとSVMの重みとのdot products(ドット積)演算 及び 2. 非極大抑制 のみである ∴ハッシュ化*のような近似手法に依存することなく、数千のオブジェクトクラスに対して対応 可能である ハッシュ化* : 計算量を削減させるために、データや特徴を圧縮する、簡略化した手法. これによりUVAシステムより大幅に効率性を改善させることが可能となる UVA システム : ①高次元の特徴量を使用 ②10万個の線形予測器の格納に134GBのメモリ 本システム : ①低次元の特徴量を使用 ② 10万個の線形予測器の格納に約1.5GBのメモリ 6
Training 【CNNのPre-Training】 Caffe(データセット)と呼ばれるオープンソースの深層学習用ライブラリ を用いてモデルを訓練 結果 : Krizhevskyが公表したAlexNetと比較してトップ1エラー率(モデルが最も確からしいと判 断したラベルが正解と異なる確率) が2.2% 増加した*ものの、匹敵する精度を確保 増加した理由* : 訓練のプロセスが単純であることに起因 【Fine-Tuning について】 新たなタスクやProposal Window にCNNを適用するために、「Warped Region Proposals 」 を用いてCNNのパラメータの訓練をSGD(確率的勾配降下法)によって実行 また、物体検出タスクにCNNを用いる際に、Classification-Layer(分類層) をどう変更するのか について記述されている → ImageNet用に訓練されたCNNの最終分類層(クラス数が1000に設定されている)を物体検出 タスクに対応するものに変更させる 加えてIoUの基準を0.5として0.5以上の場合、「Region Proposal」によって正しく物体検知を 行えているとみなし、0.5未満ではそうでないと捉える 7
Training 学習率は0.001に設定するが、これは「初期化を壊さない(clobbering)」ようにするためである 32個のポジティブウィンドウと96個の背景ウィンドウをバッチとして作成する →背景ウィンドウと比較してポジティブウィンドウは極めて稀であることに起因する 【Object Category Classifires】 Ex. Binary Classifier (二値分類器) 車を分類したい→ 背景(車に関係ない)は negative example 車を囲む部分は positive example 部分的に車を overlap している領域はどうか? overlap threshold の基準値からの上下で判断 SVM(線形サポートベクターマシーン)を最適化するには? 特徴量を抽出し、トレーニングラベルを適用する→データセットとして使用する →物体がどのクラスに分類されるのかを判別するための「分類境界」が学習可能となる ただし、トレーニングデータが非常に多いためHard Negative Mining* と呼ばれる手法を採用 Hard Negative Mining* : ネガティブな例を重点的に学習する手法であり、誤分類しやすい例を集中的に学習する 8
Training 1) Fine-Tuned 済みのCNNの最終層であるsoftmax関数をそのまま使用する のか 2) 各クラス毎に検出SVMを訓練して物体検出を行う 1)は効率的で計算コストが削減される一方、2)は各クラスに対して別々のモデルを訓練する必要 があり計算コストが高まるが、精度も高まる 【Results on PASCAL VOC 2010 ~ 2012 】 PASCAL VOCのBest Practice に従って、設計上のハイパーパラメータや設計上の決定をVOC 2007データセットを用いて検証 →最終的にCNNをVOC 2012 で、Detection SVMs をVOC 2012 trainval で最適化 (VOC 2010, 2012のデータセットからの結果を得るため) Evaluation Server (評価サーバ) に最終結果を送信する 結果の送信は、2つの主要なアルゴリズムのバリエーション*に対して1回ずつ行う 2つの主要なアルゴリズムのバリエーション* : Boundary Box 回帰有り・無し の2通り 9
Training VOC 2010に対する結果を複数の手法により比較したものがTable 1 その他にSegDPM*などがある SegDPM* : image-classifier rescoring, inter-detector context, DPM detector 最も比較しやすいものがUVA System* UVA System* : 画像を領域に分割し、特徴を抽出することで空間的な情報を活用する →はじめに2×2に分割し、さらに4×4に細分化する→空間的に画像の情報が蓄積される 空間上の位置情報と特徴ベクトルを結合させる→最終的には各ベクトルが量子化される 10
Training ヒストグラム交差カーネル*によって分類を行う ヒストグラム交差カーネル* : ヒストグラム形式*で表示されたデータ間の非線形な類似度を取り入れる ヒストグラム形式* : 画像の特徴(特徴量)を数値データ(頻度)として視覚化して表現 【Results on ILSVRC2013 detection】 R-CNNを200のILSVRC2013 検出データセットで作用 →結果を「ILSVRC2013 evaluation server」に2度送信 クラス毎の「AP(Average Precision) Distribution」をボックスプロットで表示&各クラスのAP をクラス毎に表で表示 比較対象の手法は全てCNN を用いた構造だが、CNNの適用法により結果(AP)が変化する 11
Visualization, ablation, and modes of error フィルタを重ねると重ねるほど、より抽象的な特徴を捉えるため視覚的に理解することが難しい → CNN が入力画像から学習した特徴を可視化 (特徴の逆変換による・Deconvolutional Approach・非パラメトリック手法により明示化 ) →畳み込みの逆操作を行って、もとの入力画像に近い解像度の出力を得る手法である ニューラルネットワーク内のユニット(特徴/CNNの後半の層)を物体検出器のように扱う これは、ユニットの「反応」を計算する必要がある(約1000万の領域提案による) →反応が高い順から低い方へと分類し、NSMによって最も重要な領域のみ(最も反応性の高い部 分)を残す →どのような入力に対してユニットが「反応」するのかを可視化したい &平均化を行わないことで「異なる視覚モード」(Different Visual Mode) を明示化したい (まとめ) CNNの浅い層では色のグラデーションやエッジ・線といった低次元な特徴を捉えるが、深い層 (後半の層)ではより複雑で抽象的な特徴(物体全体やパーツなど)を捉える →深い層(ユニット)を、物体そのものや物体のパーツを検出する「検出器」として扱うことが出 来る 12
Visualization, ablation, and modes of error Pool⁵について : ネットワークの5層の出力に対してマックスプーリングを行ったものである (size) 6×6×256 (characteristic) 227×227の入力画像における受容野(195×195)に対応している →Pool⁵の各ユニットは入力画像の特定の領域と対応している 中央のPool⁵は画像全体からの情報を取得しており、端の部分は一部の情報が切り取られる可能性 Fig 4 : VOC 2007でファインチューニングされたCNN から出力されたPool⁵のユニットに対する、 上位16の反応部位 13
Visualization, ablation, and modes of error ネットワークが学習したものを代表する→256のユニット中6つのユニットが選択される Class-Tuned features (特定のクラスに向けて調整された特徴) & Distributed Representation (分散表現された特徴) Fc₆層は、「畳み込み層」及び「プーリング層」で学習された豊富な特徴を結合し、さらに複雑な 構成を学習することが可能となる 【Ablation studies】 物体検出タスクに対して重要である層を把握するために「VOC 2007」に対する結果を解析した Layer Pool⁵ → Layer fc₆ Layer Pool⁵の特徴マップ(9216次元のベクトルに変換後)に対して4096×9216の重み行列を掛 け合わせる→4096次元のベクトルが返される→最後に重み(バイアスベクトル)を加え、ハーフ ウェーブ整流を適用する 4096次元のベクトル→4096×4096の重み行列との内積→バイアス項を付加する→ハーフウェー ブ整流*を適用 ハーフウェーブ整流* : (𝑥 ← max(0, 𝑥)) 14
Visualization, ablation, and modes of error CNNの結果 (PASCALにてファインチューニングされていない/全てのパラメータは事前にILSVRC 2012のみ よって事前学習されている) fc₇の結果は fc₆の結果より悪いものであった →mAPの値を変化させずにCNNパラメータの29%(1680万に値する)は取り除くことが可能 さらに、fc₆・ fc₇を取り除いた場合では改善されることが判明(Pool⁵の特徴はわずか6%程度のパ ラメータを使用しているのみ) CNNの改良 表現力は主に畳み込み層から生じている(密に結合している全結合層ではなく) 畳み込み層のみに依るDFM(Dense Feature Map) を作成し、スライディングウィンドウやDPM を用いて物体検出を行う Fine-tuningによるパフォーマンスの改善 VOC2007のtrainvalデータセットによってCNNパラメータをファインチューニングする →mAPの値は急増する(fc₆やfc₇での効果が大きい)一方で、Pool⁵での効果は比較的小さい ImageNetで学習された特徴は一般的であり、fc6やfc7はドメインに特化して調整される 15
Visualization, ablation, and modes of error PASCAL-VOC データセットで試された特徴学習手法は比較的少ない →2つのDPM(Deformable Part Models)について DPMについて : 物体をいくつかの「パーツ」に分解して物体が柔軟に変形することを許容する 従来、HOG特徴を用いて各パーツの特徴を捉える A. DPM ST スケッチ内のトークン(画像内の線や簡単なパターン)を捉える HOGの勾配方向やエッジといった情報(HOG特徴*)に加えて、上のトークン情報を組み合わせる →従来のDPMにスケッチトークンの確率ヒストグラムを付加させる HOG特徴* : 画像内の各ピクセルにおける勾配やその方向を把握し、方向及び強度を計算する.後 に、方向ヒストグラムを作成し、一つの特徴ベクトルとして結合する. B. DPM HSC HOG特徴の代わりに「疎な符号化」による選択されたアトムを用いて、画像の各ピクセルの情報 を表現する(各ピクセルに対応する活性化値を算出する.)その後、活性化の整流、空間プーリング、 パワー変換を行う. 16
Net Work Architecture Net Work Architecture は R-CNN の物体検出に影響を与える Ex. 16-layer deep network recently proposed by Simonyan and Zisserman (ILSVRC 2014 classification challengeにて最も高いパフォーマンスを示す) 13層の3×3サイズの畳み込み層及び途中に挿入された5層のMax-Pooling層、最後に導入される 完全結合層 → “O-Net” “T-Net”も存在. R-CNN with O-Net → 精度が大幅に改善される(計算時間に欠点あり) Boundary-Box Regressionによって、Pool⁵層の出力に基づいてSelective Searchの際に提案さ れる領域の検出窓を再調整する → 線形回帰モデルを利用する 17
The ILSVRC 2013 Detection Dataset ✓ 概要 PASCAL VOC と比較してデータセットが多様的である(より同質的でない) 3つのセットに大別可能である →train, val, and test val と test は同じ画像分布から得られる →雑然さやオブジェクトの数、姿勢の多様性が類似 →網羅的に注釈されている(各画像に存在する、200のクラスからのインスタンスが Bounding-Box に紐付けられる) train →ILSVRC2013の分類画像分布から得られる →数が多いため、網羅的な注釈はない →ネガティブ画像(対尾するクラスのインスタンスが含まれていない画像のセット)が手動で作 成される 18
The ILSVRC 2013 Detection Dataset R-CNNを訓練させるための選択肢を多数提供 ただし、trainはhard negative mining* には用いにくい →(一般的な戦略) : valに重点を置き、train 画像をポジティブ画像の補助的な データとして活用 →training 及び validation の双方に val を使用するため同サイズの val1, val2 に 分割 →valの画像に含まれるクラスには偏りが存在するため class-balanced とする ここで用いられる手法が「クラス不均衡の最小化」である 具体的には、画像に含まれるクラス毎の物体の数を特徴量として扱い、候補ス プリットを生成(クラスタリング)し、スプリット間の均衡を改善するためにロー カルサーチを行う(ランダムなローカル化) hard negative mining* : モデルの精度向上のため、誤分類されやすいサンプルを学習させること 19
The ILSVRC 2013 Detection Dataset Region Proposal PASCALでの手法と同一 → val1, val2, test に対してSelective Search* は”Fast Mode” で利用 Selective Search* : 物体検出で候補領域を提案するために、画像を複数のセグメントに分割す るため、画像解像度によって提案領域の数が変化する ILSVRC の画像サイズは小さなものからメガピクセルのものまで多様であり、Selective Search に通すまえに固定的な大きさ(500ピクセル)に変換する Ex. 1枚のval に対して平均的に2403の提案領域を得る(recall : 91.6 % ,0.5 IoU threshold ) PASCAL に対してはおよそ98 % のリコール率を達成 Training Dataset val1から得られた提案領域及び正解領域の組み合わせの画像セット及び train からクラス毎に最 大Nの正解領域を組み合わせたセットを作成 → val1 + train N 何に用いるか? 1. CNNのファインチューニング 2. SVM分類器の訓練 3. バウンディング・ボックス回帰器の学習 20
The ILSVRC 2013 Detection Dataset 1. CNNのファインチューニング val1 + train のデータを利用して50,000回のSGDを行ってCNNの重みを更新する 2. SVM分類器の訓練 各々のクラスに対するポジティブな例としてval1 + trainNのデータセットから全ての正解領 域を用いる Hard Negative Mining も val1から得られる5000もの画像において実行される →全てのval1データセットを用いる場合と比較してmAPは0.5ポイント低下するのみであり、 SVMでの所要時間が半減した trainからはNegative Samples は抽出されない(注釈付きではないため) 21
The ILSVRC 2013 Detection Dataset Validation and Evaluation サーバに結果を送信する前に、Training dataset の妥当性を担保し、CNNのファインチューニン グ及びバウンディング・ボックス検出器のval2データへの効果を示す 以下のハイパーパラメータはPASCALと同程度とする SVM C パラメータ* : 誤分類にどれだけのペナルティーを与えるのかの指標 Padding in Region Warping* : バウンディング・ボックス内の物体候補領域を正方形に成形す るために追加される NMS Threshold* : 複数のバウンディング・ボックスが重複している際に、どれを残すのか又は 除外するのかを決定するための閾値 Bounding- Box Regression Hyperparameter* : バウンディング・ボックスの位置やサイズを 調整するためのハイパーパラメータ *上のパラメータはILSVRC に特化していないハイパーパラメータであるが、R-CNNの予備的な 結果を出力することが目的であるため特に問題はない 22
The ILSVRC 2013 Detection Dataset Val2 での最良の選択を行う→ILSVRCの評価用サーバに2つの結果*を送信 2つの結果* : A. Bounding-Box 有りのもの (val のデータセットを使用) B. Bounding-Box 無しのもの (val + train 1k のデータセットを使用) CNNは val1 + train1kのデータセットによってファインチューニングされている Ablation Study 結果が本論文にまとめられている 異なる数のTraining data, fine-tuning, bounding-box regression による比較 ‐ CNN のfine-tuning による 精度向上が認められる ‐ training data は数の増加に よる精度の改善は少ない 23
The ILSVRC 2013 Detection Dataset Relationship to Overfeat Overfeat : R-CNNの特別な形態である、R-CNNと比較して極めて速く処理を行う R-CNNでは提案領域をゆがませる(変形させる)が、Overfeatでは行なわない Selective Search から multi-scale pyramid of regular square region* への置き換え Per-class bounding-box regressor から single bounding-box regressor へ変化させる Multi-scal regular square region* : 異なる解像度(サイズ)を有する画像を生成し、ピラミッド状の構造を構築する.各々の階層におい て一定の大きさを有する正方形領域を画像全体で動かす この際に、重複するウィンドウ(正方形)間の計算効率を高めることが可能となる R-CNNでは提案領域1つ1つに対してCNNを導入するが、画像全体を畳み込むことで計算効率が 向上する →R-CNNの高速化が実現するが、モデル自体の計算負荷を低減させる・提案領域を提示する Selective Search による効率化を図るべき →Fast R-CNN &Faster R-CNN への進展 24
Semantic segmentation Region Classification* は Semantic segmentation* の標準的な手法である Region Classification* : 画像の中で特定の領域(「Region」)内にあるピクセルがどのクラスに 所属するのかを予測する手法である 正確な物体の輪郭を捉えることは難しい Semantic Segmentation* : 画像内のすべてのピクセルを特定のクラスに割り当てる手法である 物体の正確な輪郭を捉える 2013年当時はO2P(Second-order Pooling)が隆盛 O2P : 150の提案領域(Region Proposal) を得るためにCPMC*を利用し、各々の領域の質を予 測する(SVRを用いる). このCPMCの質の高さ及び二次プーリングによって高いパフォーマン スを得る. また、CNNをマルチスケール(複数の階層)にわたって使用し、画像中のすべてのピクセルを分類 することに成功した CPMC* : 画像内の物体領域候補を抽出する(複数生成する)ための手法である 25
Semantic segmentation PASCAL VOC データセット 物体検出やセグメンテーションに広く用いられるが、アノテーション(注釈)が不十分 →Hariharanらは拡張アノテーションを作成 また、VOC2011の検証セットによってモデル設計やハイパーパラメータは設定済み 最終的には、一度のtestデータセットによって結果を得るようにする CNN features for segmentation CPMCによって提案された領域における特徴を計算するための3つの手法 227×227の形状へと提案領域を変形させる 1. 変形後の形状をCNNに入力して特徴を抽出する (full) 2. 変形後の領域に対して、背景部分を「平均入力」(mean input)に置き換え、全体から平均値 を減じることで( mean subtraction )、領域の「前景部分」(fore-ground mask)のみを CNNに通して特徴を抽出する (fg) 3. 1.及び2.で得られた特徴の結果を結合して使用する 相互的に特徴を補完することが出来る (full + fg) 26
Semantic segmentation Results on VOC 2011 ・VOC2011のvalidation datasetを用いた場合のO₂P との結果の比較 ーfc6は常にfc7よりパフォーマンスが高い ーfgはfull の結果をわずかに上回るのみであった(fc6) →マスクされた背景部分がより強い影響をもたらす ーfull + fg は精度が前の二つの手法と比較して大幅に増加 →fgの特徴が得られたとしても、fullの情報は示唆に富む ・R&PとO₂Pとの結果の比較 ーfine-tuning を行わずとも、full + fg の 手法が最も高い精度を出していることが分かる 27
Conclusion セグメンテーションや物体検出タスクで最も精度を高く出す方法 →低レベルな画像の特徴* (low-image features) 及び高レベルなコンテキスト* (high-level context)を結合した複雑なアゼンブリ 低レベルな画像の特徴* : 画像の細かい特徴 高レベルなコンテキスト* : 画像全体の理解や物体同士の関係性 PASCAL VOC 2012における過去の結果より30%改善された結果を得た 2つの重要な点 : 1. 画像のsegmentation 及び localization のために、bottom-up式の提案領域を見つけ出し、 CNNで処理する 2. ラベル付きのトレーニングデータが不足している場合に、大規模なCNNを訓練する すなはち、net-workを事前学習しておき、データが欠如しているタスクに対してはファイン チューニングを行う →【“Supervised-training” +”Fine –Tuning” Paradigm】 【データセットが不足している画像認識問題に対して有用】 28