Transcript 第9回ゼミ輪講
Efficient Scan-Window Based Object Detection
using GPGPU
松島千佳
8. 19. 2008
はじめに
歩行者検出における問題点
HOG特徴量の算出時に重複部分が存在するため処理コストが高い
検出ウィンドウの移動やスケールの変化
検出ウィンドウ内のブロックの移動
解決法
制限付きHOG特徴量の算出方法
多重解像度の入力画像を用意しセルのサイズで分割
事前に全てのヒストグラムを算出
GPUを用いた高速化
GPGPUのプログラムモデル
1.
入力データを2次元のテクスチャに変換し,GPUのメモリに転送
2.
フラグメントプログラムを全てのピクセルに対し実行
3.
いくつかのテクスチャ間を反復し,レンダリング手順を実行
CPUベースのHOG-SVM検出器
歩行者検出
DalalらによってHOG-SVMを用いた手法が提案
歩行者検出の実行時間について分析
スキャンウィンドウのサイズ: w×h (w = 64,h = 128)
Histogram of Oriented Gradients (HOG)
グレースケールの画像から算出される傾きのヒストグラムを
正規化したもの
パラメータ
1セル
: r×r ピクセル (r = 8)
ビンの数 : 8ビン
1ブロック : c×cセル (c = 2)
HOGのメモリアクセス数の演算コスト
HOG特徴量のベクトル計算
効率よく算出するためにIntegral Imageを使用
Lは特徴ベクトルの大きさ
4点の頂点演算で四角い領域内の和を算出
アクセスコストの比率
Integral Imageを用いた方がアクセスコストは低い
事前計算することに対しオーバーヘッドが存在
SVM識別器
統計的な学習方法
クラス内のマージンが最大となる識別境界を決めること
線形SVM
特徴ベクトルと重みベクトル間の内積
出力が閾値より大きければ特徴ベクトルは人として識別
メモリアクセスに関する演算コストは2L
入力画像の1スケールにおける検出の総演算コスト
dはスキャンウィンドウのずらし幅
GPUベースのHOG-SVM検出器
問題点
Integral Imageの演算をGPGPUへ応用することは難しい
GPU-CPU間のデータ転送は高コスト
解決方法
4つのモジュールに分割して処理
スケーリング
特徴抽出
識別
削減
スケーリング
入力画像だけを転送
GPU内で異なるスケールの画像を全て生成
メインメモリからGPUへ転送するデータを削減
特徴抽出
隣接したスキャンウィンドウにはオーバーラップ存在
ずらし幅が小さいため
提案方法
スキャンウィンドウに左右されないヒストグラムを事前に演算
識別モジュールの後に異なるウィンドウ間でそれらを共有
ずらし幅dの大きさはセルの大きさrと同じ
ヒストグラムのセルの境界はいつもスキャンウィンドウのずらし幅
特徴抽出のレンダリングの手順
識別
特徴量の配列から結果を格納するテクスチャにレンダリング
ヒストグラムの値と重みベクトル間の内積を算出
算出した値を正規化
特徴抽出と識別ステップの総演算コスト
CPUベースのものと提案法のアクセスコストの比率
今回のパラメータを使用した場合,比率は0.46
Integral Imageを用いたHOG-SVM検出器よりも2倍速い
識別のレンダリング手順
評価(1)
検出器の性能を評価
INRIAの人データを使用
パラメータ
r=d=8
c=2
スケール比 = 1.2
評価(2)
検出器の処理速度を評価
CAVIARデータセットを使用
3つの異なる方法を実装
1.
2.
3.
CPUベースでIntagral Imageを用いた検出器(CPU-II)
CPUベースでヒストグラムを事前に演算した検出器(CPU-HC)
GPGPUベースの検出器(GPGPU)
おわりに
GPUのを用いたHOG特徴量の算出方法について記述
スケール比率が1.05の場合
GPGPUを用いた検出器は1画像あたり73msで処理することが可能