FPGA用に考案したWave Front Fetchアルゴリズム(未発表)をFPGAに実装して性能とハードウェア量を評価した. Wave Front Fetchアルゴリズムは,よく知られているPush Relabelアルゴリズムの高速化のための付加機能であるGlobal Update処理をPush処理の中に一体化したものである. このアルゴリズムはGPUに実装した場合でも高い性能が得られるが,FPGAに実装すると50MHzのクロック周波数の場合で,現時点で入手可能な最高性能のGPUであるGTX1080での実行に比べて40倍から80倍の性能向上を達成できることが分かった(発表予定).CPUと比べると1000倍以上の高速化となる. 問題はグラフデータをFPGA内部のブロックメモリに格納する必要がある点であり,3Dグラフのサイズが16x64x64程度までしかFPGA上に置けない.ブロックメモリサイズの拡大はFPGAの今後の重要な方向であると業界紙等で指摘されるようになってきているが,現状のFPGAではブロックメモリサイズがネックとなる. 一方,注視ステレオから並行ステレオに変更したために必須となったステレオキャリブレーション処理は,当初OpenCVの,良く知られたZhangの手法によるライブラリを使用したが,十分な精度が得られなかった.原因を分析したところ,二つのステレオカメラの同期ずれが大きな誤差につながっていることが分かった.安価なUSB接続による2台のカメラを使う場合に同期をとることは不可能であるので,独自に新たなキャリブレーション方式を開発することとした.グラフカット値を小さくするようにカメラを回転させるという愚直な方法を試したところこれで十分な精度が得られた.
|