SceneScan の FPGA リアルタイムステレオビジョン

左画像

右画像

Real-time Stereo Vision FPGAs with SceneScan

Nerian Vision社 CEO, Konstantin Schauwecker
ステレオ レクティフケーション

概 要
本稿では、最大100フレーム／秒での処理、または最大3.4メガピクセルの画像処理を、わずか8Wの電力消費で行うフレキシブルなFPGAス
テレオ計測システムの実装手法を提示する。本手法では、既存の単純な手法よりも高精度なマッチング結果が得られるセミグローバルマッチ
ング（SGM）アルゴリズムをベースとし、それを改変したアルゴリズムを使用する。そして、コストボリュームと視差マップを入力とする一連の後処理を行うことで、SGMによるステレオマッチング結果をさらに大幅に改善する。本手法に基づいて、ステレオ計測のための二つのシステム「SceneScan」と「SceneScan Pro」を開発した。これらは、現在のステレオ計測市場の成熟度を考慮して開発されたもので、現在
Nerian Vision社(独)から提供されている。

専用メモリ

レクティフケーションマップ

前処理SGM［キーワード］ステレオ計測、デプスセンシング、FPGA

1 はじめにステレオ画像計測は、コンピュータビジョンの分野の中では最も研究が進んリアルタイム計測をデモンストレーションした研究は数多く存在する［5,6］。

でいる技術の一つであり、その研究が始まった1970年代以降、著しい科学

これらの研究は、主に際立った演算性能を持つハイエンドなGPUに注目した的 進 歩 を 遂 げ てきた。密 なデ プ スセンシングのため の 他 の 技 術には、ToFものである。残念ながら、これらのハイエンドなGPUは電力消費量も際立っ（time-of-ﬂight）カメラや構造化光（structured light）カメラなどがあるが、ている。例えば、NVIDAの GeForce GTX TITAN X は最大250Wの電力

これらの技術と比較して、ステレオ計測にはパッシブな計測法であるというが必要となる［7］。そのような大 量消費電 力のハードウェアをバッテリ駆動利点がある。これは、環境光以外のアクティブな光源を計測に必要としないこのモバイルシステムに内蔵させることは非現実的であり、このことが、GPUとを意味する。

ベースのステレオ計測システムが移動ロボット分野で広がらない原因になっアクティブシステムによる計測は、明るい環境光の下にある屋外の状況にはて い る 。も う 一 つ の ハ ー ド ウ ェ ア プ ラ ット フ ォ ー ム 候 補 は F P G A

向かない。この状 況では、アクティブ光 源は識 別可能な高コントラストなパ（ﬁeld-programmable gate array）である。FPGAは汎用的な集積回路でターンをもはや提供できない。また、特別に強力な光源を必要とするロングレあり 、特 定 のア プリケー ション をプ ログ ラミング すること が 可 能 で あ る 。

ンジの計測も課題である。一方で、ステレオ計測は屋外やロングレンジに対しFPGAでは回路レベルでプログラムが実行されるため、CPUやGPUの命令て有望な技術であり、他の計測技術が利用できない環境で、デプスセンシンパイプライン（fetch-decode-executeサイクル）を強要されない。一方で、

グを利用した様々なアプリケーションを可能にする。

FPGAでは、解くべき問題をたくさんの小さな問題へと細分化する構造が内整備された屋内とは違う環境で活動する自律移動ロボットにとって、様々な包されており、それらの小問題は最小電力で並列処理によって解かれる。

光源環境での計測ロバスト性の欠如は重大な問題となる。高速移動する自動FPGAの欠点は、CPUやGPUを用いたケースよりも膨大なプログラミング

車の 安 全 走 行にはロングレンジの計 測も可能でなければならない。ゆえに、努力を必要とする点にある。これにより、FPGAベースの画像処理は最近の画移動ロボットこそリアルタイムステレオのようなロバストなセンサソリュー

像 処 理 シス テム に お いて も 未 だ 一 般 的 で は な い 。N e r i a n V i s i o n 社 は 、ションが必要といえる。

FPGAを用いたステレオ計測システムを研究者やアプリケーション開発者がロバストなデプスセンシングの必要性があるにもかかわらず、ステレオ計測入手しやすくするために、SceneScanとSceneScan Proという二つのセが広まらない主な理由は計算コストの大きさにある。この10年の間に多くのンサシステムを開発した、SceneScan Proを図1に示す。FPGAを使用するステレオマッチングアルゴリズムが提 案されてきたが、マッチング精度の良ことにより、この小さなデバイスがステレオ計測処理をリアルタイム且つ高フいものは、現代のハードウェアを利用したとしても依然として計算コストが非レームレートで行う。これらのシステムの主な特徴は次のとおりである。

常に大きい。
汎用的なCPUでは、近年提案されたステレオマッチング手法が要求する膨大な計算をフレームレートで処 理することは難しい。もちろん、例えば 文 献［1］でデモンストレーションされたように、ブロックマッチングのような単純なアルゴリズムであれば可能である。しかし、KIT TIのステレオベンチマーク［2］でわかるように、そのような単純な処理は、マッチング精度やノイズ耐性の面で近年の手法よりも著しく劣る。より洗練されたステレオマッチング手法の最適な実装に成功した例［3,4］もあるが、トータルの計算コストは依然・最大3.4メガピクセルの解像度を持つ入力ステレオ画像を処理・256ピクセルまでの視差をカバーし、視差のサブピクセル解像度は1/16ピクセル

・処理速度は最大100fps
・電力消費量は8W・算出された視差マップはギガビットイーサネットにてリアルタイム転送として大きく、使用可能な画像解像度と実現可能なフレームレートは比較的低いレベルに留まっている。

SceneScanとSceneScan Proは、Nerian社のSP1システム［1］の後継機

ステレオマッチング処 理をスピードアップする方法として、大 規模 並列計算である。SP1と比較すると、SceneScan Proは3倍の処理パフォーマンスをが 可能なハードウェアの使 用が考えられ、その一つのハードウェアプラット持ち、計 測精度が大幅に向上している。本 稿ではその実現 方法の概要を述べ

フォーム候補はGPUである。GPUの使用と適切なアルゴリズム実装によるるとともに、得られたパフォーマンスを示す。

視差出力

視差マップ後処理

コストボリューム後処理◎テクスチャフィルタリング◎スペックル除 去フィルタリング◎穴埋め処 理◎ノイズ 除 去 処 理◎サブピクセル 最 適化
◎ユニーク性チェック◎ 一貫性チェック

図2：処理構造のブロック線図

2 処理構造2 .2 画像の前処理

ステレオ計測システムSceneScanとSceneScan Proは、Nerian社独自

本システムでは、入 力ステレオ画像に前処 理を適 用している。この前処 理にのステレオカメラKarmin2、もしくは標準的なUSB3Visionのカメラと接よって、2枚の画像間の明るさの違いやオクルージョンに対し、後段の処理が続する。システムは同期した左右のステレオ画像を取得し、内蔵FPGAによっよりロバストになる。て処理を行う。算出されたステレオ視差マップ、すなわちインバースデプスはギガビットイーサ経由で接続された計算機に出力される。
SceneScanとSceneScan Proで実装されているステレオマッチング法
は、セミグローバルマッチング（SGM）［9］をベースにしている。SGMは、高品質なマッチング結果と高い計算効率を持つため、現在では広く知られた手法である。SGMは、例えば Žbontarらの手法［10］のような、最高レベルのパフォーマンス（訳注： KITTIのステレオベンチマークでの高い成績を指す）を実 現 するステレ オ マッチング 法 の ベースとなって い る。しかし、実 際 には、S G M だ け でこれらに 比 肩 するマッチング 精 度 が 得ら れる わ け で は な い。
SGMを含み、かつ前処理および後処理をも含む、より広範な画像処理パイプラインが必要である。図２に示すように、SceneScanとSceneScan Proにはそのようなパイプラインが実装されている。

2.1 ステレオレクティフィケーション
入 力画 像に最初に適 用される前処 理ステップはステレオレクティフィケー
ションである、レクティフィケーションでは、事 前 校 正にて算出されたレクティフィケーションマップを専用メモリから読み込む。このマップは、左右の画 像の 全 画素について、方向と方向のサブピクセル 量のオフセットを持つ。
レクティフィケーション後の画像の画素値は、サブピクセル量のオフセット位置に対するバイリニア補間によって得られる。これらのオフセットは、単一のデータストリームを読めば両画像の全画素のオフセットベクトルが取得できるようにインターリーブされている。データ転送量低減のため、レクティフィ
ケーションマップは圧縮されており、1画素のオフセットベクトルをエンコードするのに必要なメモリ量は平均で1バイトである。すなわち、レクティフィ
ケーションマップの全体メモリ量は左右の入力画像の必要メモリ量とほぼ同じである。画像レクティフィケーションはウィンドウ走査によって処理しており、各画素の最 大オフセット量は使 用するウィンドウサイズに制限されている 。S c e n e S c a n と S c e n e S c a n P r oで は 使 用 ウィンド ウ サイ ズ は

図1：SceneScan Proと接続されたKamin2ステレオカメラ［pixels］であり、これにより、許されるオフセット量はから［pixels］となる。

2 .3 ステレオマッチング
ステレオマッチングは、SGMアルゴリズムの改変版を適用することで実施される。小さな視差の変化と、大きな視差の変化に対するSGMのペナルティ値

p1 とp 2 は、実行時に設 定することができる。ここでは、左画像の一つの画素に対し、いくつかの繰返し処理を必要とする。各繰返し処理では、左画像の注目画素値が右画像の画素グループと比較される。SceneScan Proでは右画素グループの画素数は p = 32 である（訳注：次段で p は”parallelization”と呼んでいることから、この比較は並列処理される模様）。左画像の画素ごとの繰返し回数 n iは、視差レンジを設定することによって実行時に設定できる。

ステレオマッチングにおける最小視差を示す視差オフセット o d も実行時に設定できる。視差オフセットが o d > 0 のとき、視差はo d よりも小さくなることができないので、観測可能なデプスレンジは最大リミット値を持つ。視差オフ
セット o d 、繰返し回数 n i、および並列化（parallelization）p は、次式で最大視差 d max を定める。

dmax = od + nip -1（1.1）

2 .4 コストボリューム後処理

2 .5 視差マップ後処理

SGMアルゴリズムは、左画像の画素と右画像の画素の有効な全組み合わ

コストボリューム後処理の後に、コストボリュームは視差マップへと変換させに対するコスト値を保 持したコストボリュームを生 成する。いくつかのれる。その視差マップに対して追加の後処理ステップが実施される。

後処理ステップがそのコストボリュームに直接適用される。

サブピクセル最適化

テクスチャフィルタリング

後 処 理として最初に適 用されるステップは、サブピクセル最 適化である。

わずかなテクスチャしかない画像領域、もしくは全くテクスチャのない画

このステップは、各画素に対し、最小コストを持つ視差を取得した後に、そ像領域に対するマッチングは、特に難しい問題である。特に、そのような画の左右の視 差コストを評価することによってデプス値の精度を向上させ像領域が画像の境界付近に現れると、多くのミスマッチを引き起こす。こる。ここでは、左右の視差コスト値と最小コスト値を曲線にフィッティングの問題に対し、テクスチャフィルタリングを実施する。このフィルタリングし、その最小値に位置する視差をサブピクセル視差とする。次いで、その推では、各画素に対し、その周辺領域のテクスチャ強 度を表すテクスチャス

定 視 差 値 は 固 定 小 数 点 値 に エ ン コ ー ド さ れ る 。S c e n e S c a n とコアを計算する。このスコアが、事前に定められる閾値よりも小さい場合

SceneScan Proではサブピクセル精度のために下位4bit固定小数点をは、無効な視差を持つ画素としてラベル付けされる。

（a）

（b）

（c）

（d）

（e）

（f）

サポートしており、これにより視差は1/16のサブピクセル解像度を持つ。

スペックル除去フィルタリング

視差のユニーク性チェック
ここでは、視差のユニーク性拘束を導入することにより、不確実性が高いマッチング結果を排除する。ステレオマッチング結果がユニークとみなせる
ケースでは、最小マッチングコストc minと、ｑ ［C1, ）との積算値が、二番目に小さいコスト値よりも小さくなければならない。この関係は次式で表すことができる。

c*・ｑ< { C \ {cmin }} （1.2）

ここまでに述べてきた後処理手法を使っても、常に全ての誤対応を取り除けるわけではない。幸いなことに、残った誤対応は、類似視差を持つ画素どうしの小さな塊になって現れる傾向がある。これらのスペックルはスペックル除去フィルタによって排除される、このフィルタは、最小サイズよりも小さい連結成分を見つける。この最小サイズはスペックルフィルタのウィンドウサイズによって制御される。発見されたスペックルは、無効な視差を持つ

ただし、C は有効視差の全てのコストを表し、c*= c min は最小コストを示す。

画素としてラベル付けられる。

このユニーク性チェックによって排除されたマッチングを持つ画素は、無効穴埋め処理な視差を持つ画素としてラベル付けされる。

前述したすべての後処理ステップは、得られた視差マップから無効な視差視差の一貫性チェックを除去しているため、視差マップは穴があいた状 態となる。もしその穴が高い不確実性を持つマッチング結果をさらに排除するために、視差の一貫性がチェックされる。共通のアプローチは、反対方向のマッチングを実施する（本ケースでは、右画像から左画像へのマッチングを実施する）ことであ小さい場合は、周辺の有効な視差値を使い、それらの視差値から補間することによって、その穴を埋めることができる。補間処理は、穴の水平方向の大きさl hと垂直方向の大きさl v が次式を満たす場合に実施される。

{ lh , l v}

る。そして、次式を満たすマッチング結果だけを残す。

|dl - dr| t c（1.3）

ただし、d l は先に行った左画像から右画像へのマッチング結果、d rは右画

l max

（1.4）

だだし、l max は穴の最大サイズを示す。この補間処理は、穴の周囲の視差値が類似した値を持たない場合にも省略される。

像 から左画 像 へ のマッチング結 果、t c は一貫 性チェック用の閾 値 である。

FPGAのリソースを節約するために、ここでは反対方向のステレオマッチン

図3：（a,c,e）左入力画像の例 （b,d,f）算出された視差マップ

ノイズ除去 処 理

グを改めて実施することを避けている。代わりに、最初に行った左画像から右画像へのマッチングを行いながら、右から左へのステレオ結果の視差マッ最後に、生成された視差マップにノイズ除去フィルタリングを施す。ここでプを、左から右へのマッチングコストから推測している。
この一貫性チェックは、視差マップの不連続性と無効な視差を認識した上で視差マップを平滑をパスしなかった画素も、無効な視差を持つ画素としてラベル付けされる。

化する、処理結果は、SceneScanのイーサネット出力に直接転送される。

図3は、入力画像とSceneScan Proによって算出された視差マップの例を示している。全ての画像は、晴天時に屋外で取得したものである。ステレオ計測は明るい環境光を苦にしないため、全ての例で密な視差マップを取得できている。
それぞれの画像は、カメラに近い物体と遠い物体を含んでいる。対象までの距離が計測密度や計測ロバスト性に影響を与えていないことがわかる。例えば図3（d）の中央部のように、相当遠い物体の画像領域でさえ、密なステレオ計測結果が得られていることがわかる。
総じて視差マップはとてもスムーズであり、わずかな誤対応しか見られない。このことは、コストボリュームと視差マップに対する広範な後処理によって信頼づけ3 結果られている。図3では、前景物体の左側に明瞭なオクルージョンシャドウが現れていることから、オクルージョン領域も効果的にフィルタされていることがわかる。

表１は、異なる画像解像度と視差レンジにおいて、SceneScan Proの実現可能なフレームレートをリストしたものである。これらのフレームレート値は、接続された計算機が 視 差データを受け取った際 の 値であるので、カメラやネットワーク通信におけるオーバー ヘッドが含まれたものである。すべての設 定において、SceneScan Proは、カメラ電力を除き、8［W］の電力しか消費しない。最大のフレームレートは画像解像度が640×480で視差レンジが128［pixels］の時に得られ、SceneScan Proは最大100［fps］の高速処理ができる。画像解像度と視差レンジを増やすとフレームレートは下がってゆく、SceneScan Proの最大画像解像度は1856×1866、すなわち3.4メガピクセルである。最大の視差レンジを256［pixels］とすると、SceneScan Proは1秒あたり51億回の視差評価を実施することになり、それは1秒あたり2000万の視差出力に相当する。視差レンジを128［pixels］に減じた場合、処理パフォーマンスは1秒あたり3000万視差出力に増加する。このとき、各視差値は3次元座標に変換されるため、1秒あたり3000万個の3次元計測点を提供することになる。

視 差レンジ

本稿では、計測ハードウェアFPGAを用いたステレオ計測のための二つのスタンドアロンシステムSceneScanとSceneScan Proを示した。FPGAを使うことにより、これらのシステムはとても高い電力効率を実現した。同時に、並外れた計算パフォーマンスを提供し、100［fps］でのステレオ画像処理が可能となった。特に、自律移動ロボットの分野では、様々なアプリケーションのための高速に取得できる高精度なデプスデータが不可欠である。ステレオ計測は、明るい環境やロングレンジの計測であってもそのようなデータの提供を約束する。SceneScanとSceneScan Proシステムは、消費電力が大きいGPUベースのシステムとは異なり、バッテリ駆動で消費エネルギーに制限のあるモバイルプラットフォームと簡単に統合できる。私たちは、これらのシステムにより、研究者や開発者にとってステレオ計測が今よりも入手可能になることを望むものである。さらに、ステレオ計測原理を利用する他のシステムの開発も促進できれば幸いである。

画像 解像度
640 × 480

800 × 592

1280 × 9601600 × 1200

128［pixel］

100［fps］

65［fps］

24［fps］

15［fps］

256［pixel］

70［fps］

45［fps］

15［fps］

10［fps］

表1：ScenScan Proの処理パフォーマンス

4 結論【参考文献】
1 . M. Humenberger, C. Zinner, M. Weber, W. Kubinger, and M. Vincze, “A fast stereo matching algorithm suitable for embedded real-time systems,” Computer Vision and Image Understanding, vol. 114, no. 11, pp. 1180-1202, 2010.
2 . A. Geiger, P. Lenzm, C. Stiller, and R. Urtasun, “The KITTI vision benchmark suite - stereo evaluation,” 2015,［http://www.cvlibs.net/datasets/kitti/eval̲scene̲ﬂow.php?benchmark=stereo］2018, accessed: 17.09.2018.
3 . S. K. Gehrig and C. Rabe, “Real-time semi-global matching on the CU,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2010, pp. 85-92.
4 . R. Spangenberg, T. Langner, S. Adfeldt, and R. Rojas, “Large scale semiglobal matching on the CPU,” in IEEE Intelligent Vehicle Symposium (IV), 2014, pp. 195-201.
5 . I. Haller and S. Nedevschi, “GPU Optimization of the SGM Stereo Algorithm,” in IEEE International Conference on Intelligent Computer Communication and Processing (ICCP), 2010, pp. 197-202.
6 . J. Kowalczuk, E. T. Psota, and L. C. Perez, “Real-time stereo matching on cuda using an iterative reﬁnement method for adaptive support-weight correspondences,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 23, no. 1, pp. 94-104, 2013.
7 . NVIDIA, “GeForce GTX TITAN X speciﬁcations,”［https://www.geforce.com/hardware/desktop-gpus/geforce-gtx-titan-x/speciﬁcations,］2018, accessed: 19.09.2018.
8 . K. Schauwecker, “SP1: Stereo vision in real time.” in MuSRobS@IROS, 2015, pp. 40-41.
9 . H. Hirschmuller, “Accurate and eﬃcient stereo processing by semi-global matching and mutual information,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), vol. 2, 2005, pp. 807-814.
10 . J. Zbontar and Y. LeCun, “Computing the stereo matching cost with a convolutional neural network,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
11 . S. K. Gehrig, F. Eberli, and T. Meyer, “A real-time low-power stereo vision engine using semi-global matching,” Computer Vision Systems, pp. 134-143, 2009.
12 . C. Banz, S. Hesselbarth, H. Flatt, H. Blume, and P. Pirsch, “Real-time stereo vision systemusing semi-global matching disparity estimation: architecture andFPGA-implementation,” in IEEE Int. Conf. on Embedded Comput. Syst. (SAMOS), 2010, pp. 93-101.