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 固定時の グラフ,赤線が最低動作電圧時のグラフである.
© Copyright 2024 Paperzz