AIが一般人を一瞬でダンサーに。AIが一般人を一瞬でダンサーに。TueAI:人工知能AIが一般人を一瞬でダンサーに。ダンスの練習といっても一筋縄ではいきません。「練習しなくても、自然に踊れるようになっていれば......」なんて夢のような話、AIが実現してくれます。踊りたいダンス映像を学習させることで、一瞬で踊れるようにしてくれます。言葉で説明するよりも、まずは映像をみてください。人物Aの動きを人物Bに転移。Now」で、動画に写る人物を踊らせた映像がこちら。引用元:https://www.youtube.com/watch?v=PMivT7MJ41M左で踊る人物のダンスを、右の人物に転移させています。別の人物が写る動画だけです。画像内に写る人物の関節点と骨格を検出してくれる「OpenPose」が使われています。OpenPoseOpenPoseがどんな技術なのかおさらいすると、OpenPoseは静止画を入力するだけで人間の関節点と骨格を検出することができ、顔や手までも詳細に検出してくれる技術です。OpenPoseと、画像生成を行うGAN(敵対的生成ネットワーク)を組み合わせることで、人物Aの動きを人物Bに同期できます。Chanらが2018年8月に論文を公開し、注目を浴びました。Nowで使われる技術をもう少し深ぼって解説していきます。NowにはOpenPoseに加え、GANの手法の1つ「pix2pixHD」も使われています。pix2pixHDを使うことで人物Aの動き(ソース動画)を人物B(ターゲット動画)に移すことができます。Nowダンスを転移させるためには、大きく分けて学習(Training)と転移(Transfer)、2つのフェーズが必要です。学習フェーズ学習フェーズでは人物Bの動画(ターゲット動画)のみを使います。OpenPoseを使って推定した姿勢情報から、pix2pixHDのGenerator(生成器)を使い実物そっくりの画像を生成。生成された画像が、Generatorによって生成されたフェイク画像なのか、元画像なのかをpix2pixHDのDiscriminator(判別器)が判別します。pix2pixHDが画像の生成と判別を繰り返し行うことで学習していきます。このフェーズで学習させたpix2pixHDのGeneratorとDiscriminatorを使い、次の転移フェーズに利用します。転移フェーズ転移フェーズでは人物Aの動画(ソース動画)と、先ほど学習したGeneratorとOpenPoseを使います。人物Aの動画から踊っている人の姿勢情報をOpenPoseで取り出します。取り出した姿勢情報をターゲット動画に転移させることで上図のような動画を生成できます。大まかな仕組みは掴めたかと思いますが、さらに詳細に知りたい方に、学習フェーズ・転移フェーズそれぞれをさらに深掘って解説していきます。※以下は技術者向けの内容です。Lossを使用します。Lossは、入力画像と生成された画像をCNNに入力し、そのCNNの中間層から取り出した各特徴量の差分を小さくするように学習する方法。これにより、より鮮やかな画像を生成できるようになります。転移フェーズでは学習フェーズと同様にOpenPoseで姿勢を推定します。Generatorに入力する前に、姿勢情報を正規化することで動きを転移した際に違和感が残らないよう、立っている位置や画像中における人物の大きさを補正します。ここまでの処理を行うことでソース動画の動作をターゲット動画に転移することができました。Smoothingといった工夫がされています。詳しい詳細はこちらの論文でぜひご確認ください。“すごいAI”で終わらせてよいのか以前公開した「OpenPose試してみた。〜ディープラニングで人のポーズを解析」の応用編が今回の記事です。OpenPoseが2017年に発表され、その1年後にはOpenPose技術を使った応用的な研究が発表されるAI業界のスピード感。元となる技術を知ることで、応用技術の動向をキャッチアップしやすくなります。2018」では、Illustratorで描いたキャラクターを解析し、骨格を推定する技術が発表されましたが、キャラクターの骨格を推定する技術にも、OpenPoseに似た技術が使われているのかもしれません。裏ではどのようなAI技術が使われているのか、どのような仕組みで動いているのかを大まかにも理解することで、より早く、より的確に最先端テクノロジーを自社ビジネスへ実装できるのではないでしょうか。大地ドイツでの半導体の研究を経て、ディープラーニングの世界へ。PyTorchとChainerを駆使して、レッジでは開発案件にも携わっている。研究分野の記事の執筆が得意。