シミュレータで生成した画像に現実感を付与する(SimGAN)

概要

学習のための画像がない場合や不足している場合,シミュレータ等を使い人工的に画像を生成することがある. しかしシミュレータで生成した画像(以下シミュレータ画像と呼称)は,現実の画像に現実感の観点で及ばない. そのためシミュレータ画像に過学習してしまうと,実際の画像に対して効果を発揮しないことがある.

だからと言ってシミュレータ画像の質をチマチマ向上させるのは大変. そこでラベルなしの現実画像を訓練画像として使い,GANの枠組みでシミュレータ画像を洗練させる. その際,シミュレータ画像に付随するannotationの情報は保持するように, 大きな改変にはペナルティをかける(self-regularization loss)など工夫を施す.

f:id:yusuke_ujitoko:20170808235033p:plain:w400

SimGAN

SimGANの目的は現実の画像 {y_{i}} を使って, シミュレータ画像を{x} を洗練させて現実感を付与する変換 {R_{\theta}(x)} を学習させること.

adversarial loss with self-regularization

その際の要件として,シミュレータ生成した際のannotation情報は保持させるというものがある.

例えば,視線推定のための画像データを拡張する場合には, シミュレータで画像生成する際に視線方向のannotationは与えておくが, そのannotationした情報は{R_{\theta}(x)} で変換した後も保持していないと,教師データとして視線推定に使えない.

そこで通常のGANのLossに加えて, self-regularization lossを加えることを提案. self-regularization lossは,ピクセルごとの変換前後のL1距離とする.

local adversarial loss

SimGANのdiscriminatorの学習の際, ある画像特徴量を過度に評価してしまうようになると,ゴミを生成することとなる.

画像を局所領域に分割したときの各領域ごとdiscriminatorに区別させた. 各局所領域においてもSimGANで変換した画像に現実感が付与されている状態では,現実の画像の局所領域と区別がつかないはず.

f:id:yusuke_ujitoko:20170809000248p:plain:w400

いくつかの特徴量による評価が組み合わさるので,ある1つの特徴量への依存が小さくなる.(ここは自信がない)

検証

視線推定タスク

視線推定の学習に使うデータセットは質が低い. そこでSimGANでannotation付きデータを大量生成して学習させたところ, sota達成

f:id:yusuke_ujitoko:20170809000354p:plain

データセットに対するuser studyも行った. 50個の現実のデータと50個のSimGANによる生成データをrandomに提示してどちらが本物か答えさせたら正答率は51.7%だった.

距離画像による手姿勢推定タスク

通常,現実の距離画像にはノイズが入っている. そのノイズがシミュレータ画像にはないので,変換してノイズを再現.

f:id:yusuke_ujitoko:20170809000649p:plain