HDTV 解像度実時間動画像認識応用 SIFT 特徴量抽出プロセッサ

HDTV 解像度実時間動画像認識応用 SIFT 特徴量抽出プロセッサ
発表者: 神戸大学大学院 システム情報学研究科 水野 孝祐
Email: [email protected]
現するために,回路を高並列化する必要がある.
Abstract
実時間動画像認識応用 SIFT 特徴量抽出プロセッ
HDTV 解像度における SIFT 特徴量抽出を行うため
サを提案する.オリジナルの SIFT アルゴリズムの処
の必要演算量の解析をおこなった.図 2 に SIFT 特徴
理を VLSI 向きに改良し,さらに高並列アーキテクチ
量抽出の 3 大処理である,ガウシアン平滑化,特徴
ャと 3 ステージ ROI パイプラインの導入をおこなった.
点抽出,特徴量記述の演算量の解析結果を示す.
その結果,HDTV 解像度の動画像を 30fps で処理で
縦軸が演算量,横軸が特徴点数を表している.ガウ
きる性能を低消費電力で実現した.
シアン平滑化の演算量が支配的となっており,高速
化阻害の一番の要因となっている.そのため,本設
計ではガウシアン平滑化回路の並列度を 120 とし,
Introduction
近年の画像認識技術の応用例としてはデジタルカ
メラに搭載されている顔検出や車載カメラ画像から
HDTV 解像度動画像に対してリアルタイム処理可能
な性能を達成した.
の道路交通標識の認識などが挙げられる.画像認
特徴点数は写っている物体により大きく変わり,画
識はどのような環境で撮影しても,ロバストに高速・
像の複雑度によっては数万点となることも想定され
高精度処理を行うことが要求される.この要求に対し
る.数万点の特徴点を扱う場合,特徴量記述が占め
て,モデルを局所記述子によって得られる特徴ベクト
る演算量も無視できない値となる.そのため特徴量
ルで表現し,撮影画像の特徴ベクトルと比較・識別す
記述の専用演算回路化も必要となる.
る も の が 提 案 さ れ て い る . 代表 的 な も の と し て
180
SIFT[1]が挙げられる.SIFT を用いると,輝度値の変
160
化・回転の影響を受けずに,高精度に画像認識を行
は 莫 大 な 演 算 量 が 必 要 と な る . Intel Core2Duo
E8400(3.0GHz)で SIFT 特徴量抽出を実行した場合
の処理時間を図 1 に示す.VGA 解像度において 2.77
秒かかっており,実時間動作が難しい.さらに将来
の高知能ロボット応用を想定した場合,認識に用い
る動画像の高解像度化が考えられる.そのため,高
Workload (GOPS)
うことができる.しかしながら SIFT を計算するために
140
Gaussian filtering
Key-point extraction
120
Descriptor vector generation
100
Simulation condition
- Video resolution : HDTV
- Frame rate : 30 fps
80
60
40
20
0
0
5000
10000
15000
20000
25000
# of key-points (Points / frame)
図2
演算量解析
解像度対応の実時間 SIFT 特徴量抽出プロセッサの
Execution time [sec]
実現が必要不可欠であると言える.
SIFT 特徴量抽出を実行するためのメモリ帯域の
見積もりをおこなった(図 3).横軸を解像度,縦軸を
10
メモリ帯域としている.最も大きな帯域を占めるのは
7.28
ガウシアン平滑化であり,HDTV 解像度においては
5374Gbps である.特徴点抽出は 1254Gbps となり,
5
ガウシアン平滑化に次いで 2 番目に大きなメモリ帯
2.77
0.24
域を必要とする.演算量のみ考慮した場合,特徴点
0.63
抽出は汎用 RISC プロセッサで十分であると考えられ
0
図1
A
XG
VG
A
A
VG
Q
Q
CI
F
る.しかし上記のような大きなメモリ帯域が必要とな
るため,専用ハードウェアを用いた解決が必要とな
Image resolution
る.本設計ではガウシアン平滑化部,特徴点抽出部
SIFT 特徴量抽出実行時間
にシストリックアレイアーキテクチャを導入することで
画素再利用,処理結果再利用を促進しメモリ帯域の
高解像度対応の SIFT 特徴量抽出プロセッサを実
削減をおこなった.
図 6 に ROI を効率的に処理することができる 3 ス
Gaussian filtering
テージ ROI パイプラインアーキテクチャのブロック図
Key-point extraction
5000
Descriptor vector generation
4000
を示す.ガウシアン平滑化画像用 SRAM を 3 枚実装
3000
しており,3 つのモジュール(ガウシアン平滑化,特徴
2000
点抽出,特徴量記述)は別々の SRAM にアクセスす
1000
る.
QVGA
VGA
XGA
Video resolution
32bits
0
HDTV
32bits
Memory bandwidth (Gbps)
Three-stage Pipelined Architecture
6000
VLSI chip implementation part
CPU BUS
Gaussian filtered
Image (SRAM)
CROSS_PATH
Key-point
Extraction
Descriptor
Vector
Generation
Histogram
(SRAM)
Descriptor Vector
Generation Datapath
Descriptor Vector
Generation
Sequencer
FIFO CONTROLLER
FIFO for Key-points
(SRAM)
Gaussian
Filtering
Key-Point
Extraction
Datapath
Key-Point Extraction
Sequencer
Gaussian Filtering
Datapath
RISC
力化と回路の拡張性の確保を実現する.
Gaussian filtered
Image (SRAM)
Image Buffer
(Register)
Gaussian Filtering
Sequencer
プラインアーキテクチャを導入することで,低消費電
Gaussian filtered
Image (SRAM)
ROI Buffer
(SRAM)
CPU I/F
さらに ROI 単位で処理を行う 3 ステージ ROI パイ
MEMORY I/F
External
SDRAM
メモリ帯域解析
Camera
図3
Input Image
MEMORY BUS
SIFT
Descriptor
Vectors
Global Sequencer
Sift Algorithm for VLSI Implementation
図 4 に VLSI 向きに処理を改変した SIFT 特徴量抽
SIFT Descriptor Generation Engine
図6
3 ステージ ROI パイプラインアーキテクチャ
出アルゴリズムを示す.入力画像を ROI に分割し,
ROI 毎に処理していくことで内部メモリ容量を大幅に
図 7 に 3 ステージ ROI パイプラインの動作を示す.
削減する.さらに全てのガウシアン平滑化を入力画
縦の点線で区切られた範囲が1つの ROI を処理する
像から直接生成することにより,処理遅延の問題を
ために必要なサイクルタイムを表す.ガウシアンピラ
解決する.
ミッド生成部,特徴点抽出部,特徴量記述部はそれ
1
ROI detection
2
5
Gaussian Filtering
Down Sampling
6
ぞれ独立に動作し,それぞれ別々の ROI に対する処
Gaussian Filtering
理を行う.
ROI ROI ROI ROI
ROI ROI ROI ROI
ROI ROI
ROI ROI ROI ROI
ROI ROI
1つの ROI の処理にかかる時間は,3 つのモジュ
ROI ROI ROI ROI
Input image
(Grayscale 8bit)
Difference of
Gaussian (DOG)
8
Descriptor Vector
Generation
Key-point
4 Descriptor Vector
Generation
Orientation
Key-point
待つ間,他の 2 つのモジュールにはアイドルサイク
ルが発生する.そのためクロックゲーティングなどを
Orientation
SIFT Descriptor
Vectors
First Hierarchy
ールの内,最も処理に時間のかかるモジュールに依
存することになる.1 つのモジュールの処理の完了を
7 Key-point
Extraction
Difference of
Gaussian (DOG)
図4
Continue to
last hierarchy
Subtraction
Subtraction
3
Key-point Extraction
SIFT Descriptor
Vectors
Next Hierarchy
VLSI 向き SIFT 特徴量抽出アルゴリズム
用いてアイドルサイクル中に無駄な電力が発生しな
いようにしなければならない.本パイプラインを用い
ることで,各モジュールが必要とするサイクル数が事
図 5 に提案アルゴリズムの導入による認識精度へ
前にある程度把握できるため,回路の低消費電力化
の影響を示す.図に示す通り,オリジナルに比べて
技術であるクロックゲーティングや周波数制御などを
2.1%の精度劣化に抑えることができており,シビアな
適用することが容易となる.
安全性が求められないアプリケーションに対しては
# of correct matchings
十分適用可能な値になっていると言える.
100
96
-2.1%
94
75
提案アーキテクチャを用いることで ROI を効率的
に処理することができ,大幅な消費電力削減効果が
Simulation condition
Application : Object recognition
Database size : 79 objects
Number of test sequences : 100
Image resolution : VGA
得られる.
Cycle Time for 1 ROI
ROI Loading
ROI 0 ROI 1
ROI 2
Gaussian Filtering
CG
ROI 0
ROI 1
Key-point
Extraction
CG
CG
ROI 0 CG
Descriptor Vector
Generation
CG
CG
CG
ROI 3
ROI 2
CG
Images in database
50
Magazine
25
Cup
Inspecticide
Test sequences
Original
algorithm
Employed
algorithm
図5
Cup
認識精度評価
Inspecticide
ROI 0
CG
CG: Clock Gating
Time
図7
Magazine
ROI 1
...
...
...
...
3 ステージ ROI パイプライン
Gaussian filtering Architecture
段の PE は中段の PE へ,中段の PE は下段の PE
図 8 に本設計で実装した 120 並列ガウシアン並列
へ接続されており,1 サイクル毎に画素データがシフ
化アーキテクチャを示す.本アーキテクチャは 120 個
トしていく.この構造により画素の再利用が実現され
の 1 次元リング状シストリックアレイ(SA)から構成さ
る.
れる.1 つの SA は 2 つの積和演算器,14 段のリン
次に PE への画素ロードの流れについて説明する.
グ状レジスタ,セレクタ回路から構成されている.本
1 サイクルごとにガウシアン平滑化画像 SRAM から
アーキテクチャによるガウシアン平滑化ではウィンド
18 画素を読み出し,差分演算器により DoG 画像 9
ウサイズとして 15 を想定している.この時,1 次元ガ
画素を生成する.この 9 画素を毎サイクル PE に入力
ウシアン平滑化処理を 1 画素ずれた点に対して連続
する.シストリックアレイの動作は,PE に初期画素を
的に行うことを考えると,隣り合うガウシアン平滑化
ロードすることから始まる.初期化するためには 27
処理同士では 14 画素が重複することになる.そのた
個の PE 全てに画素をロードする必要があるため,3
め,隣り合うガウシアン平滑化画素の生成の際に再
サイクル必要となる.初期化のための 3 サイクルが
利用できる 14 画素分のレジスタを用意している.2 つ
経過すると,27 個の PE に画素データが蓄積し,極値
ある MAC はそれぞれが 1 次元ガウシアン平滑化に
検出の結果が出力される.その後は 1 サイクル毎に
対応している.
データが一段ずつ下にシフトしていき,1 サイクル毎
Input pixel
32bit
に 1 点に対する極値検出結果が出力される.
ROI Buffer
(SRAM)
Global Sequencer
Gaussian Filtered Image (SRAM)
32bit
64bit
Scale 1
15bit
Scale 0
15bit
Image Buffer
(Register)
Input pixel
32bit
Scale 2
15bit
Scale 3
15bit
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
PE
DOG image DOG image
16bit
16bit
4SA_0
4SA_0
4SA_1
4SA_2
AND
4SA_1
REG
4SA_2
COMPARATOR
4SA_3
4SA_3
Processing Element
4SA_4
4SA_4
...
Scale 0
MUX
Scale 5
MUX
60bit
60bit
図9
Gaussian Filtered Image (SRAM)
Input pixel
32bit
Gaussian coefficient
64bit
Input pixel Gaussian coefficient
8bit
8bit
8bit
MAC1
[15:8]
[7:0]
[7:0]
14
REG
[31:24]
REG
REG
[23:16]
[15:8]
REG
12
SA
11
REG
[47:40]
REG
REG
[39:32]
[23:16]
REG
9
8REG
[63:56]
[55:48]
[31:24]
SA
図8
REG
8
60bit
Gaussian filtered pixel
REG
10
SA
concatenate
REG 1
13
4SA
REG
REG
特徴点抽出アーキテクチャ
Descriptor Vector Generation Architecture
図 10 に特徴量記述アーキテクチャのブロック図を
示す.特徴量記述ア ーキテク チャ は制御回路
MUX
SA
Result of key-point extraction
Gaussian coefficient
2
3
4
5
6
7
MUX
1 Dimensional
Ring-Connected
MAC2
Systolic Array
15bit
Gaussian filtered pixel
(Sequencer),2 並列の向き計算部(Orientation),2 並
列の特徴量記述部(Description)から構成される.本
アーキテクチャの最も特徴的な部分である向き計算
部 は , 勾 配 計 算 部 , COrdinae Rotation DIgital
Computer (CORDIC)演算部,ヒストグラム生成部に
よって構成されている.CORDIC はハードウェアで三
角関数を計算するための手法であり,広く用いられ
ている.
ガウシアン平滑化アーキテクチャ
Gaussian filtered image
CORDIC
Histogram generation
Element(PE),9 個の差分演算器(Subtractor),AND
Gradient histogram
接続されており,比較演算のために用いられる.上
Orientation
Description
Description
SIFT descriptior vectors
Data registers in global sequencer
回路から構成されるSystolic Array型のアーキテクチ
ャである.中段の真ん中の PE からの出力は全 PE に
Orientation
図 10
特徴量記述アーキテクチャ
Histogram1
(SRAM)
キテクチャを示す.全体としては 27 個の Processing
Sequencer
Crosspath
図 9 に 27 並列特徴点抽出シストリックアレイアー
Gradient generation
Gaussian filtered
image (SRAM)
Histogram0
(SRAM)
Key-point Extraction Architecture
FIFO for key-points
(SRAM)
60
Performance Evaluation
SIMD アーキテクチャと比較して,ガウシアン平滑化
1.2V固定
1.1V
30
1.0V
20
0.9V
10
最低動作電圧
0.8V
0.7V
を 99.8%削減する.特徴点抽出においてメモリアクセ
95
100
90
85
80
75
70
65
60
55
50
45
40
35
30
25
20
0
においてはサイクル数を 82%削減し,メモリアクセス
15
0
5
サイクル数とメモリアクセスの削減効果を示す.
40
10
シアン平滑化,特徴点抽出,特徴量記述それぞれの
50
Power [mW]
図 11,12 に提案アーキテクチャの導入によるガウ
Operating frequency [MHz]
スを 66%削減する.提案アーキテクチャは SIFT 処理
図 14
P-f 特性
のボトルネックとなっている (1)ガウシアン平滑化の
演算量,(2)ガウシアン平滑化のメモリ帯域,(3)特徴
Gaussian filtering
Key-point extraction
Descriptor vector generation
84
が要求されるアプリケーションに適用可能である.さ
らに消費電力については 38.2mW となり,39%削減す
10
ることができる.そのため限られたバッテリ環境で動
6.6
5
0.14
0.05
0.69
0.15
0.15
SIMD architecture
図 11
671
0.15
Proposed architecture
w/ one-way systolic array
作する,モバイルアプリケーションへの適用が期待
0.05
0.12
0.075
53x
100
73
53
50
36.7
25
1.5
1.5
SIMD architecture
1.5
2. Power consumption
888
12.6
1.5
1
Proposed architecture
Proposed architecture
w/ multiple-way systolic
w/ one-way systolic array
array & image buffer
120
100
60.6
60
39%
reduction
62.6
30
15.9
3. Energy efficiency
67%
reduction
124
800
Gaussian filtering
Key-point extraction
Descriptor vector generation
650
図 12
1. Frame rate
サイクル数削減効果
671
Non-parallelized
architecture
できる.
Proposed architecture
w/ multiple-way systolic
array & image buffer
Energy/frame (mJ)
3.7
Non-parallelized
architecture
# of memory accesses [Gbit]
レームレートについては 53 倍となっており,高速性
Power (mW)
80
ロセッサ[2][3]との性能比較を示す.[2]と比較してフ
Frame rate (fps)
# of cycle counts [109 cycles]
点抽出のメモリ帯域の 3 つの問題を解決する.
図 15 に過去に提案されている SIFT 特徴量抽出プ
3.9
4
2.0
2
1.27
38.2
CICC07 ISSCC09 This Work This Work
KAIST
KAIST (QVGA) (HDTV)
CICC07 ISSCC09
KAIST
KAIST
This
Work
CICC07 ISSCC09
KAIST
KAIST
This
Work
KAIST, CICC2007 [2]
KAIST, ISSCC2009 [3]
This Work
Original Scaled to 65nm Original Scaled to 65nm
Technology(nm)
180
65
130
65
65
Chip size (mm2)
38.5
5
49
12.3
17.6
Power supply (V)
1.8
1.2
1.2
1.2
1.2
Operating frequency[MHz]
200
IP:200 NOC:400
78 (max:100)
Frame rate (fps)
15.9
60.6
30 (888@QVGA)
Power (mW)
1080
62.6
496
124
38.2
Energy/frame (mJ)
67.9
3.9
8.2
2
1.27
Video resolution
QVGA (320 x 240)
VGA (640 x 480)
HDTV (1920 x 1080)
Target Application
SIFT descriptor
Object recognition
SIFT descriptor
generation
generation
図 15
性能比較
メモリアクセス削減効果
References
Hardware Results
[1]
設計したプロセッサは論理ゲート 1.1M ゲートで
Lowe,
“Distinctive
image
features
from
scale-invariant keypoints,” in International Journal of
SRAM 容量は 1.38M ビットになった.図 13 に設計し
たプロセッサのチップ写真と仕様を示す.
D.
Computer Vision, vol. 20, 2003, pp. 91–110.
[2]
D. Kim, et al., “An 81.6 GOPS Object Recognition
Processor Based on NoC and Visual Image Processing
Key-point
Extraction &
Descriptor Vector
Generation
SRAM
SRAM
SRAM
Controllers
Gaussian
Filtering
SRAM
SRAM
PLL
Technology
65nm CMOS
Supply Voltage
Core 1.2V, I/O 3.3V
Chip Size
4.2mm x 4.2mm
Core Area
3.2mm x 3.4 mm
Logic Gate Count
1.1M gate
On-chip SRAM
1.38Mbit
Operating
38.2mW@78MHz for
Frequency &
1920x1080(HDTV)/30fps
14.5mW@27MHz for
Power
640x480(VGA)/60fps
Consumption
SIFT descriptor
Target
Application
generation
Memory”, CICC, pp.443-446, Sep. 2007.
[3]
J. Y. Kim, et al., “A 201.4GOPS 496mW real-time
multi-object recognition processor with bio-inspired
neural perception engine”, ISSCC Dig., pp.150-151,
Feb. 2009.
図 13
チップ写真
図 14 に提案プロセッサの周波数・消費電力特性
の実測結果を示す.青線がコア電圧 1.2V 固定時の
グラフ,赤線が最低動作電圧時のグラフである.