Blog

【アドテクスキルアップゼミ】GANで手画像生成


AI事業本部(旧アドテク本部)にはアドテクスキルアップゼミという制度があります。これは事業に関連する技術を少人数で調査、研究する活動を支援する取り組みです。今日はマルチメディアデータゼミで私が取り組んできたプロジェクトを紹介します。

手の画像生成

「スキルアップ」ゼミとのことなので、これまで手をつけていなかった技術を使ったプロジェクトに取り組みます。今回はGANを使った簡単なツールの開発をしてみることにしました。GANは画像生成の定番手法です。これまで自分の研究でGANを扱ったことはありませんが、バナー広告生成の観点からも注目されているので、ゼミでやってみることにしました。

今回は手画像の生成に取り組みます。手は広告デザインによくあるモチーフです。商品を持った画像やハンドジェスチャーなどは定番デザインの1つです。そのようなバナーの制作では、デザイナーがイメージに近い手の素材を探したり、自分で撮影することが多いようですが、好きなポーズの手画像をすぐ入手することができれば便利でしょう。そこで指定したポーズのリアルな手画像を生成するモデルを学習してみます。

手のポーズからフォトリアリスティックな手のRGB画像を作りたい(右は本物の手の写真)

最近の研究ではポーズや服装を指定して全身画像を生成する取り組みなどがあります。そのような問題に比べると手の生成はだいぶ簡単そうです。

データセット

手のポーズと手画像のペアを用意します。今回は自分の手の動画を撮影し、ポーズ推定をすることでポーズ画像を生成しました。ポーズ推定にはここの実装と学習済みモデルを使いました。RGB画像から手のポーズを推定することができます。今回のようなシーンであればなかなか精度良く推定することができます。

モデル

ポーズ画像で条件付けした手画像を生成したいので、UNet-likeなモデルを構築します。入力はポーズ画像、出力は同じポーズのRGB手画像です。このモデルでは手画像を生成していく過程の特徴マップに、ポーズ画像から抽出した特徴マップを連結しています。なんとなくポーズに沿った画像が描画できそうです。

手画像生成モデルのイメージ図

最初の手画像生成実験

上記のモデルを学習してみます。今回は入力のポーズ画像に対して正解画像が存在するので、通常のGANの損失関数に加え、生成画像と正解画像の二乗誤差も最小化するように学習します。Chainer-GAN-libをベースに開発しました。Chainer-GAN-libではいろいろなGANアルゴリズムの実装が公開されていて、簡単に試すことができます。

結果

なんだかそれっぽい手画像が生成されるようになりました。

入力ポーズと生成された手画像

しかし、人間の手の動きはそれほどバリエーションがないので、ほぼ同じポーズが学習データに含まれているかもしれません。ポーズを人手で編集して画像を生成してみましょう。

関節の位置をちょっとずらして手画像を生成した例

関節位置が本物の手のバランスからちょっとでも外れると画像が崩壊します。ある種の過学習状態のようです。

画像崩壊対策

過学習のまっとうな対策はデータの増量(例えばいろいろな人の手画像を集めたり)ですが、撮影が面倒なのでやりません。今回はdata augmentationでなんとかならないか試してみます。前回の結果では指定したポーズのバランスが本物と異なる場合に画像が崩壊するという問題がありました。今回は多少ポーズの指定が適当でも、ボーンに沿って手を描画するようなモデルの学習を目指します。いくつかの方法を試しましたが、比較的軽量で効果があったのは入力ポーズ画像からランダムな領域を欠損させる方法です。

ポーズ画像のランダムな領域を隠す。実際には背景と同じ色で塗りつぶし。

いっそのこと入力を大幅に隠してしまえば、最終出力画像が全体としてもっともらしくなるよう、補完して描画する方法を学習してくれるのではないかと期待して、このような変換を取り入れてみました。またランダムに入力ポーズ画像を操作することで、入力と出力画像のペアを暗記するような学習を避けることができます。

結果

手画像生成ツールの編集画面

最初の結果と比べてだいぶロバストになりました。簡単な処理で結果が変わると嬉しいですね。非現実的な指の長さを指定しても、ボーンに沿って描画してくれるようになっています(そんな画像が必要になるバナーがあるとは思いませんが…)。しかし21個もある関節を一つ一つユーザが指定するのは非常に面倒です。UIの側面からもこのような技術の使い方を考える必要があるでしょう。

最後に

アドテクスキルアップゼミで取り組んでいる手画像生成の試みを紹介しました。先日あった社内向け報告会ではデザイナーの人たちからもフィードバックをもらえたので、今後はそれらを参考にしたツールへ改良していきたいです。こういうプロジェクトに興味のある学生さんがいたら連絡ください。
マルチメディアデータゼミでは他にもステガノグラフィ技術の検証や映画タイトルの生成、対話データの個人情報マスキングなどいろいろなプロジェクトに挑戦しています。他のプロジェクトの成果報告にもご期待ください。

Author

アバター
otani