HDTV 解像度実時間動画像認識応用 SIFT 特徴量抽出プロセッサ
発表者： 神戸大学大学院 システム情報学研究科 水野 孝祐
Email: mi-no@cs.kobe-u.ac.jp
Abstract

現するために，回路を高並列化する必要がある．

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

HDTV 解像度における SIFT 特徴量抽出を行うため

サを提案する．オリジナルの SIFT アルゴリズムの処の必要演算量の解析をおこなった．図 2 に SIFT 特徴理を VLSI 向きに改良し，さらに高並列アーキテクチ

量抽出の 3 大処理である，ガウシアン平滑化，特徴

ャと 3 ステージ ROI パイプラインの導入をおこなった．

点抽出，特徴量記述の演算量の解析結果を示す．

その結果，HDTV 解像度の動画像を 30fps で処理で縦軸が演算量，横軸が特徴点数を表している．ガウきる性能を低消費電力で実現した．

シアン平滑化の演算量が支配的となっており，高速化阻害の一番の要因となっている．そのため，本設

Introduction

計ではガウシアン平滑化回路の並列度を 120 とし，近年の画像認識技術の応用例としてはデジタルカ

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

80604020005000

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.770.24域を必要とする．演算量のみ考慮した場合，特徴点

0.63

抽出は汎用 RISC プロセッサで十分であると考えられ

0

図1

AXG

VG

AA
VG
QQ

CIF

る．しかし上記のような大きなメモリ帯域が必要となるため，専用ハードウェアを用いた解決が必要とな

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

VGAXGA
Video resolution

32bits0
HDTV

32bitsMemory 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 CONTROLLERFIFO for Key-points(SRAM)

GaussianFiltering

Key-Point
Extraction
Datapath

Key-Point ExtractionSequencer

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/FExternal
SDRAM

メモリ帯域解析

Camera

図3Input ImageMEMORY 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 パイプラインの動作を示す．

削減する．さらに全てのガウシアン平滑化を入力画

縦の点線で区切られた範囲が１つの ROI を処理する像から直接生成することにより，処理遅延の問題をために必要なサイクルタイムを表す．ガウシアンピラ解決する．

ミッド生成部，特徴点抽出部，特徴量記述部はそれ

1
ROI detection

25Gaussian Filtering

Down Sampling

6

ぞれ独立に動作し，それぞれ別々の ROI に対する処Gaussian Filtering

理を行う．

ROI ROI ROI ROIROI ROI ROI ROIROI ROIROI ROI ROI ROIROI ROI

１つの ROI の処理にかかる時間は，3 つのモジュ

ROI ROI ROI ROIInput image(Grayscale 8bit)

Subtraction

Subtraction

3
Key-point Extraction

7 Key-pointExtraction

Difference ofGaussian (DOG)

図4Key-point

待つ間，他の 2 つのモジュールにはアイドルサイクルが発生する．そのためクロックゲーティングなどをOrientation

SIFT Descriptor
Vectors

First Hierarchy

ールの内，最も処理に時間のかかるモジュールに依存することになる．1 つのモジュールの処理の完了をDifference ofGaussian (DOG)
8
Descriptor Vector
Generation

Key-point

4 Descriptor Vector
Generation
Orientation

Continue tolast hierarchy

SIFT Descriptor
Vectors

Next Hierarchy

VLSI 向き SIFT 特徴量抽出アルゴリズム

用いてアイドルサイクル中に無駄な電力が発生しないようにしなければならない．本パイプラインを用いることで，各モジュールが必要とするサイクル数が事

図 5 に提案アルゴリズムの導入による認識精度へ前にある程度把握できるため，回路の低消費電力化の影響を示す．図に示す通り，オリジナルに比べて技術であるクロックゲーティングや周波数制御などを2.1%の精度劣化に抑えることができており，シビアな適用することが容易となる．

安全性が求められないアプリケーションに対しては# of correct matchings

十分適用可能な値になっていると言える．

10096-2.1%
9475

提案アーキテクチャを用いることで ROI を効率的に処理することができ，大幅な消費電力削減効果がSimulation condition
Application : Object recognition
Database size : 79 objects
Number of test sequences : 100
Image resolution : VGA

得られる．
Cycle Time for 1 ROIROI Loading

ROI 0 ROI 1

Gaussian Filtering

CG

ROI 0

Key-point
Extraction

CGCG

Descriptor Vector
Generation

CGCG

Images in database

50
Magazine

25

Cup

Inspecticide

Test sequences

Original
algorithm

Employedalgorithm

図5

Cup

認識精度評価Inspecticide

ROI 3

CG: Clock Gating

Time

図7Magazine...
...
ROI 1
ROI 2
CG...
ROI 0 CG ROI 1
CG...
CG
ROI 0

ROI 2

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 115bit

Scale 015bit

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 0MUX

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

12SA

11REG
[47:40]

REG
REG[39:32][23:16]

REG
98REG[63:56][55:48][31:24]SA

図8REG

860bitGaussian filtered pixel

REG

10SA

concatenate

REG 1134SA

REG
REG

特徴点抽出アーキテクチャ

Descriptor Vector Generation Architecture
図 10 に特徴量記述アーキテクチャのブロック図を示す．特徴量記述ア ーキテク チャ は制御回路

MUX

SA

Result of key-point extraction

Gaussian coefficient

234567MUX
1 Dimensional
Ring-Connected
MAC2Systolic 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 filteredimage (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%削減する．特徴点抽出においてメモリアクセ

Operating frequency [MHz]スを 66%削減する．提案アーキテクチャは SIFT 処理

図 14951009085807570656055504540353025200においてはサイクル数を 82%削減し，メモリアクセス

1505

サイクル数とメモリアクセスの削減効果を示す．

4010

シアン平滑化，特徴点抽出，特徴量記述それぞれの50Power [mW]

図 11，12 に提案アーキテクチャの導入によるガウP-f 特性のボトルネックとなっている (1)ガウシアン平滑化の
図 15 に過去に提案されている SIFT 特徴量抽出プ

点抽出のメモリ帯域の 3 つの問題を解決する．

ロセッサ[2][3]との性能比較を示す．[2]と比較してフ# of cycle counts [109 cycles]

演算量，(2)ガウシアン平滑化のメモリ帯域，(3)特徴レームレートについては 53 倍となっており，高速性

Gaussian filtering
Key-point extraction
Descriptor vector generation

84

ることができる．そのため限られたバッテリ環境で動

6.6
50.15

0.05

0.14

0.15

0.15

SIMD architecture

図 11671

Proposed architecture
w/ one-way systolic array

作する，モバイルアプリケーションへの適用が期待
0.05
0.12
0.075

53x100735350

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-parallelizedarchitectureできる．

Proposed architecture
w/ multiple-way systolic
array & image buffer

Energy/frame (mJ)

0.69Power (mW)

3.7

Non-parallelizedarchitecture# of memory accesses [Gbit]が要求されるアプリケーションに適用可能である．さらに消費電力については 38.2mW となり，39%削減す

10Frame rate (fps)

80

3.9

42.021.27

38.2

CICC07 ISSCC09 This Work This Work
KAIST
KAIST (QVGA) (HDTV)

CICC07 ISSCC09
KAIST
KAIST

This
Work

CICC07 ISSCC09
KAIST
KAIST

ThisWork

KAIST, CICC2007 [2]KAIST, ISSCC2009 [3]This Work
Original Scaled to 65nm Original Scaled to 65nm
Technology(nm)
18065
13065
65
Chip size (mm2)
38.5
549
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.6496124
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,“Distinctiveimagefeaturesfromscale-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 forPower
640x480(VGA)/60fps
Consumption
SIFT descriptor
TargetApplication
generationMemory”, 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 固定時のグラフ，赤線が最低動作電圧時のグラフである．