Practical Deep Stereo (PDS): Toward applications-friendly deep stereo matching
従来のDeepLearning baseにしたStereo MatchingではSoftArgMinが使われていた。しかし、従来のSoftArgMinを使ってDisprityを求める場合に弊害が2つある
・お互いに離れた値のDisparityでMatching Costが高い場合、中途半端な位置にDisparityを推定してしまう。
・再トレーニングせずにモデルをより大きな視差範囲に適用したい場合は、推定精度が悪化する可能性がある。
これらを解消する為に
inference => Sub-pixel MAP
training => Sub-pixel cross-entropy
の2つを提案する。
SoftArgMin VS Sub-pixel MAP(maximum a posteriori)
SoftArgMinは0~MaxDisparityまでのすべての値を考慮しているので中途半端な推定をすることがある。
それに対してSub-pixel MAPは最大値の近辺のみを見てDisparityを推定するので他のMatching Costが高い所に影響されずにDisparityを推定できる。
d^がすべてのDisparityの中でProbabilityが最大時のDisparity。
d~がd^から+-δの範囲でSoftArgMinを行う。
δは4に設定されている
*PはSoftMaxにより正規化されている。
L1 Loss VS Sub-pixel cross-entropy
普通にCross Entropy Lossを計算する。従来の方法では一つのDisparityの出力に対してLossを計算していたのに対して、全部のDisparityにおけるProbabilityの値をGround Truthからの距離を元にLossを計算している。
*PはSoftMaxにより正規化されている。
Qgt(d)はLaplacian分布を表している。
図のようにLaplace DistribuionがQgt(d)の式によって表されている。
結果
 Sub-Pix CrossEntropy LossはL1 Lossより早く収束しているらしい。結論
Sub-pixel MAPを使う事で精度良く、様々な画像サイズの入力に対応出来るようになった。 Sub-pixel cross-entropyは全体のDisparityに対してLossを計算するのは面白いと思ったが、DisparityのGround Truthが必要という事はUn-Supervised Learningが出来なくなるので、汎用性は低いと感じた。それとSub-pixel MAPをTrainingに使えたら面白いなと感じたので、実際に試してみたいと思う。