FPGA上への高速テンプレートマッチングの実装

Download Report

Transcript FPGA上への高速テンプレートマッチングの実装

画像処理ボード上での
高速テンプレートマッチングの
実装と検証
高性能計算研究室 B4 川本隆志
2005/2/24
1.研究背景・研究目的
4.簡易テンプレートマッチングの設計
2.実装ターゲットボードと設計環境
5.高速テンプレートマッチングの設計
3.テンプレートマッチングの定義
6.ボード上での検証と性能評価
1
研究背景
• システムLSIの回路規模の拡大
• ハードウェア記述言語によるトップダウン設計
• フラットパネル・ディスプレイの需要の高まり
– 市場規模 1998年:約100億ドル→2004年:約400億ド
ル(米DisplaySearchデータ)
研究目的
• 産学共同研究におけるガラス外観検査装置の
開発
• FPGAを用いた画像処理(テンプレートマッチン
グ)の高速化
2
実装ターゲットボード(TSUNAMI)
SRAM
SDRAM
External
I/O
Mezzanine
I/O
Card
Altera
Stratix
FPGA
SRAM
SDRAM
Local Bus
Configuration
PLD
Address
Decode
PLD
PLX
PCI9656
Device
PCI Bus
設計環境
• Altera社の統合開発環境ツールQuartusIIとシミュレーションツール
ModelSimを使用
• ハードウェア記述言語VHDLで設計
3
テンプレートマッチングとは
重ね合わせることにより比較照合
対象画像
テンプレート
一致しているかどうかを判断
設計したテンプレートマッチングの種類
• 簡易テンプレートマッチング
– 一般的な定義に忠実な手法
• 高速テンプレートマッチング
– 十字型の特徴に着目した、比較照合の少ない手法
4
簡易テンプレートマッチングの手法
対象画像(2値化)
……
1画素ずつ
ずらしながら
切り出していく
全ての画素に対して、対応
する画素の差を取る
切り出し部分
テンプレート(2値化)
画素毎の差を積算し、その部分の相違度とする
5
簡易テンプレートマッチングの構成
対象画像:
1024x1024画素
テンプレート:8x8
画素
タイミング
ジェネ
レータ
開
始
信
号
対象画像
メモリアドレス
ジェネレータ
一時メモリ
アドレス
ジェネ
レータ
対象画像
メモリ
-
一時メモリ
制御
ユニット
テンプレート
メモリ
アドレス
ジェネレータ
8ビット
セレクタ
テンプレート
メモリ
結果
アキュムレータ
マ
ッ
チ
ン
グ
座
標
最小相違度
保持ユニット
マッチング処理ユニット
6
改良アルゴリズムを用いた高速化(1)
• マッチング処理の回数を減らす
7
改良アルゴリズムを用いた高速化(2)
• 切り出す回数を少なくする
マッチング部分に
近づいている可能性が
あるときだけ
少しずつずらす
大きくずらしながら
切り出すことで
比較照合の回数を
少なくする
8
高速テンプレートマッチングの構成
対象画像:
1024x1024画素
SRAM
テンプレート:
32x32画素
レジスタ
FPGA外部
レジスタ
FPGA内部
レジスタ
レジスタ
結果書き戻し
ユニット
開
始
信
号
タイミング
ジェネ
レータ
SRAM
リ-ド
アドレス
ジェネ
レータ
相違度
計算ユニット
ワード
セレクタ
ブロックセレクタ
一時
メモリ
制御
ユニット
テンプレート
メモリ
結果
アキュムレータ
マ
ッ
チ
ン
グ
座
標
最小相違度
保持ユニット
マッチング処理ユニット
9
終
了
信
号
ボード上での実装と検証の方法
QuartusII
ホストPC
回路構成情報
TSUNAMI専用API
回路構成情報
開始
信号
レジスタ
FPGA
終了割り込み信号
画像
マッチング座標
マッチング座標
画像
SRAM
TSUNAMIボード
10
実行クロック数の比較と性能評価
• TSUNAMIボード上での正常な動作を確認
実行条件
マッチング候補数
1個
2個
3個
4個
5個
6個
簡易版C
プログラム
39,480,000
39,480,000
39,480,000
39,480,000
39,480,000
39,480,000
高速版C
高速版VHDL
高速版VHDL
プログラム (シミュレーション) (TSUNAMI)
167,132
34,898
270,246
277,810
44,042
464,103
384,440
68,354
685,894
489,132
77,498
868,199
576,184
89,898
1,078,680
676,816
99,042
1,249,433
• 簡易Cに対して高速Cが最小で約236分の1
• 高速Cに対して、VHDLシミュレーションの結果が最小で約7分の1だが、
TSUNAMI上での結果は最大で約1.9倍となった
– TSUNAMIボード上のSRAMの1回のリードアクセス(32ビット)に10クロック
程度もかかることが原因
ボードに依存しない部分の高速化については
ソフトに対して数倍の性能向上が得られた
11
まとめ
• ガラス外観検査装置の開発のためのテンプレー
トマッチングの設計
• 改良アルゴリズムによる高速化
• 高速テンプレートマッチングのFPGA上への実装
と検証・性能評価
今後の課題
• 画像サイズが可変の場合に対応させる
• アフィン変換の機能を追加
12