第9 回ゼミ輪講 - MPRG : 機械知覚&ロボティクス

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で処理することが可能