poster draft...

1
ハードウェア指向ステレオマッチング アルゴリズムの アーキテクチャとそのFPGA実装 北海道大学 大学院情報科学研究科*, 慶應義塾大学 理工学部 電子工学科† 松山 健人*, 真田 祐樹*, 大畑 克樹†, 大垣 哲郎†, 大平 貴徳*, 築田 聡史*, 五十嵐 正樹*, 池辺 将之*, 浅井 哲也*, 本村 真人*, 黒田 忠広† VDECデザイナーズフォーラム2013 研究背景 ~「見る」ための3Dから「使う」ための3Dへ~ ステレオマッチングとは? 1.入力画像の一部が横方向に同じテクスチャを 持っているか否かでフィルタサイズ設定 2.半径の違う平滑化フィルタをかけた結果の 差分から テクスチャの連続性が判明 3.1行毎に連続性の傾向を出し、それに応じた半径を設定 ! ! ※ステレオ画像から深度を推定する技術 使用するハードウェア、アルゴリズムにより、精度、速度等は大きく変化 →傾向としては精度・速度が両立せず フィルタ半径設定による精度向上 コスト補正部(Guided Filter)の1次元化 オクルージョン(左右の整合性)チェック 実装結果 FPGA:Startix II(ALTERA) ボード:PowerMedusa MU200SX II(MMS) 論理合成ツール : Quartus II(ALTERA) 実装条件 入力画像 192 × 144 (24bit RGB) 出力画像 192 × 144(3bit) FPGA CLK 20MHz FPS 720、処理時間 14msec (16深度はSWシミュレーシ ョン結果) => => FPGAでの実装に成功 入力 出力 (8深度) 参考 (16深度) => 上下方向 1次元修正後 メディアンフィルタ ・実装における変更点 1.視差の精度:16深度→8深度(FPGAのリソース不足) →原因:Guided Filter 内の除算器 2.入力画像の縮小(視差の精度に合わせて) 全体回路図(まとめ) left image right image guided filter radius generator radius generator line buffer line buffer Z -1 Z -1 Z -1 cost Z -1 guided filter cost Z -1 Z -1 guided filter cost Z -1 Z -1 guided filter cost Z -1 Z -1 guided filter cost guided filter cost Z -1 Z -1 guided filter cost guided filter cost Z -1 guided filter cost Z -1 guided filter cost Z -1 guided filter cost Z -1 guided filter cost loser takes all occlusion check loser takes all depth ・・・・・・ ・・・・・・ ・・・・・・ ・・・・・・ ・・・・・・ ・・・・・・ 入力 画像 フィルタ半径 コスト 画像 出力 画像 計算回路 box filter box filter box filter box filter box filter box filter 計算回路 + line bu er - reg X X Guided Filter Box Filter(Line Buffer) 1 HW SW 研究目的 SWで2次元処理を行い、HW処理を1次元化 ・メモリを節約するためにコスト算出にグレースケールを使用 ・多並列化による 高速化 の実現( 1行読めば処理開始可能 ステレオマッチングをHWとSWで分割して精度・速度を同時に得る →ステレオマッチングではカメラを左右に並べるため、横方向の処理結果が重要 →HW部では以下のような高速化のための改良ができると考えられる 並列型ステレオマッチングアーキテクチャ 深度別のコスト算出を並行に処理→遅延器を用意し実現 コストの値が小さいほど正確な視差d→LTA(Loser Takes All)で深度決定 ※左視点基準の場合 (右視点基準でも 同じことを行う) コスト補正部に ・1次元処理を採用→100行分以上のラインバッファを削減 ・グレイスケールを採用→さらなるメモリの節約 並列型ステレオマッチングが実現可能に 1次元処理ならば行ごとにフィルタ半径を設定可能 1次元化の際、深度マップの精度を犠牲にしたのをリカバー 処理:Kinect、Light Field Camera 除算の発生 左右の視差画像の不一致 箇所(エラー)を検出 欠損の穴埋め (右重視と左重視を考慮しながら) エラーの大きさ・頻度は不定  →ハードウェア化には工夫が必要 回路図 input error output reg- ister reg- ister comparator 左側 深度 右側 深度 深度 (HW出力反転 バッファ 反転 バッファ 穴埋め① 穴埋め② エラー 検出 見る:3Dテレビ、3DS Light Field Camera 処理内容:背景置換、AR、物体認識補助、リフォーカス →これらを実現する技術の一つが「ステレオマッチング Kinect ※精度は落ちる SW によるエラー修正 をした最終結果

Upload: others

Post on 01-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: poster draft templalsie.ist.hokudai.ac.jp/publication/dlcenter.php?fn=dom...3.1行毎に連続性の傾向を出し、それに応じた半径を設定! ! ※ステレオ画像から深度を推定する技術

ハードウェア指向ステレオマッチングアルゴリズムのアーキテクチャとそのFPGA実装

北海道大学 大学院情報科学研究科*, 慶應義塾大学 理工学部 電子工学科†松山 健人*, 真田 祐樹*, 大畑 克樹†, 大垣 哲郎†, 大平 貴徳*, 築田 聡史*, 五十嵐 正樹*, 池辺 将之*, 浅井 哲也*, 本村 真人*, 黒田 忠広†

VDECデザイナーズフォーラム2013研究背景

~「見る」ための3Dから「使う」ための3Dへ~ステレオマッチングとは?

1.入力画像の一部が横方向に同じテクスチャを持っているか否かでフィルタサイズ設定2.半径の違う平滑化フィルタをかけた結果の差分から テクスチャの連続性が判明3.1行毎に連続性の傾向を出し、それに応じた半径を設定

! !

※ステレオ画像から深度を推定する技術

使用するハードウェア、アルゴリズムにより、精度、速度等は大きく変化→傾向としては精度・速度が両立せず

フィルタ半径設定による精度向上

コスト補正部(Guided Filter)の1次元化

オクルージョン(左右の整合性)チェック

実装結果

FPGA:Startix II(ALTERA)ボード:PowerMedusa MU200SX II(MMS)論理合成ツール : Quartus II(ALTERA)

実装条件

入力画像 192 × 144 (24bit RGB)出力画像 192 × 144(3bit)FPGA CLK 20MHzFPS 720、処理時間 14msec(16深度はSWシミュレーション結果)

=>

=>

FPGAでの実装に成功

入力出力(8深度)

参考(16深度)

=>

上下方向1次元修正後 メディアンフィルタ

・実装における変更点1.視差の精度:16深度→8深度(FPGAのリソース不足)→原因:Guided Filter 内の除算器2.入力画像の縮小(視差の精度に合わせて)

全体回路図(まとめ)left

imageright

image

guided filter

radius generatorradius generator

line bufferline buffer

Z-1 Z-1 Z-1

cost

Z-1

guided filtercost

Z-1Z-1

guided filtercost

Z-1Z-1

guided filtercost

Z-1Z-1

guided filtercost

guided filtercost

Z-1Z-1

guided filtercost

guided filtercost

Z-1

guided filtercost

Z-1

guided filtercost

Z-1

guided filtercost

Z-1

guided filtercost

loser takes all

occlusion check

loser takes all

depth

・・・・・・

・・・・・・

・・・・・・

・・・・・・

・・・・・・

・・・・・・

入力画像

フィルタ半径

コスト画像

出力画像

計算回路box filter

× box filter

box filter

×

box filterbox filter

box filter

計算回路 +

line bu er

- regX X

Guided FilterBox Filter(Line Buffer)

1 HW SW

研究目的

・SWで2次元処理を行い、HW処理を1次元化・メモリを節約するためにコスト算出にグレースケールを使用・多並列化による高速化の実現(1行読めば処理開始可能)

ステレオマッチングをHWとSWで分割して精度・速度を同時に得る→ステレオマッチングではカメラを左右に並べるため、横方向の処理結果が重要→HW部では以下のような高速化のための改良ができると考えられる

並列型ステレオマッチングアーキテクチャ

深度別のコスト算出を並行に処理→遅延器を用意し実現コストの値が小さいほど正確な視差d→LTA(Loser Takes All)で深度決定

※左視点基準の場合(右視点基準でも同じことを行う)

コスト補正部に ・1次元処理を採用→100行分以上のラインバッファを削減 ・グレイスケールを採用→さらなるメモリの節約→並列型ステレオマッチングが実現可能に

1次元処理ならば行ごとにフィルタ半径を設定可能→1次元化の際、深度マップの精度を犠牲にしたのをリカバー

処理:Kinect、Light Field Camera

除算の発生

左右の視差画像の不一致箇所(エラー)を検出

欠損の穴埋め(右重視と左重視を考慮しながら)

エラーの大きさ・頻度は不定 →ハードウェア化には工夫が必要

回路図input

error

output

reg-ister

reg-ister

comparator

左側深度

右側深度

深度(HW出力)

反転バッファ

反転バッファ

穴埋め①

穴埋め②

エラー検出

見る:3Dテレビ、3DS

Light Field Camera

処理内容:背景置換、AR、物体認識補助、リフォーカス→これらを実現する技術の一つが「ステレオマッチング」

Kinect

※精度は落ちる

SWによるエラー修正をした最終結果