AI・機械学習 技術関連

[DeepNude]水着を丸裸にするAI技術DeepNudeを解説してみる

更新日:

概要

水着を一瞬で丸裸にすることができる画像AI技術であるDeepNudeの解説をしてみます。
https://strippie-app.com

はじめに

AIを用いてアイコラ動画を作成する「ディープフェイク」が2017年末から2018年にかけて話題になりましたが、これと同じようにAIを使用し、女性の写真を1クリックするだけで、ヌードに変換できる「DeepNude」というアプリがエストニアに拠点を置く企業によって2019年6月23日に公開されました。
この「DeepNude」は大きな話題となりましたが、人権的な問題から多くの批判を浴びて5日後にはWebサイトごと削除されてしまいました。
ちなみに男性バージョンも作成を検討していたらしいですが、男性の裸画像の教師データが集まらなかったため断念されたようです。

DeepNudeは、悪用されてしまうと非常に危険な技術ですが、使用されているアルゴリズムは、とてもユニークでファッション、映画、視覚効果などの画像や動画系でも応用可能な興味深い技術でもあります。

今回はこの「DeepNude」について技術的側面から解説してみたいと思います。

DeepNudeの仕組み

使用されている技術の概要

DeepNudeは、主に画像生成分野で着目されているGANネットワークを使用され、
りんごをオレンジに変えたり、茶色い馬をシマウマに変えたりする技術を応用して、水着からヌードを生成しております。

GANによる画像生成

今回の問題(水着→ヌード)

アルゴリズムの流れ

DeepNudeでは、一つのモデルを使用して、いきなり水着画像→ヌード画像に変換するのではなく、
大きく3つの段階を踏むことで水着画像からヌード画像を生成しています。

これは、1つのモデルで変換しようとすると、
学習時にバストと関係ない部位が学習されてしまったり、水着と関係ない背景が変換してしまったりされてしまったり
意図したとおりの変換が難しいため、作成者がアルゴリズムを工夫し段階的にヌードへ変換するアーキテクチャが考案されてたようです。

1.水着部分を特定するためのマスク生成

2.ヌードの元となる抽象的な部位のマスク生成

3.ヌードの生成

使用されているネットワーク

今回使用されているGANは、使用されているネットワークはNVIDIAが公開しているHigh-Resolution Image Synthesis and Semantic Manipulation with Conditional GANsのpix2pixHDが利用されています。

このネットワークを使用することで、水着部分、各部位の抽象的な位置の領域を特定し、特定した領域をヌードに変換させています。

学習データは、
Webからダウンロードした数千枚の水着を着た画像データに対して、水着部分を塗りつぶされたマスクデータ、
更に、抽象的な部位のマスクデータ、別途ダウンロードしたヌード画像を塗りつぶしたマスクデータが作成されています。
DeepNudeの開発者は、これらの学習データをPhotoshopを利用した手作業により作成したようです。

モデルの作成を1からやろうとしたら、よっぽどの根気がなければ、厳しい作業になりそうです。

それぞれの段階でGANとOpenCVを利用されています。OpenCVは各段階の前処理に利用され、GANによってマスクを生成しています。

処理の詳細

入力された水着の画像を裸にしてwatermakを貼るまでのフローを詳細化すると、
以下のような7つのフェーズに分解されます。

主にOpenCVはGANを使用するための前処理に利用され、
GANはマスクの生成とヌードの生成に利用されています。

1.dress -> correct [OPENCV]
 - 画像の明度の調整
2.correct -> mask [GAN]
- 水着の部分のマスク化
3.mask -> maskref [OPENCV]
- マスクされた部分の切り取り
4.maskref -> maskdet [GAN]
- 抽象的な部位のマスク化
5.maskdet -> maskfin [OPENCV]
- 水着部分と抽象的な部位のマスクの重ね合わせ
6.maskfin -> nude [GAN]
 - マスク部分をヌードに変換
7.nude -> watermark [OPENCV]
- 画像にwatermarkの追加

1番目の処理によって、入力した画像と出力された画像の色味が異なってしまっています。
なぜ1番目の処理が必要なのか、コードやreadmeから読み取ることができませんでしたが、開発者の試行錯誤の結果必要な処理であるようです。

画像作成

本家は、Web版を公開中止しているものの、こちらのサイトhttps://strippie-app.com/app/
をがWeb上でDeepNudeを公開しているので、このサイトを利用して画像を生成してみました。

適当なビキニ画像を試してみましたが、かなりの精度でヌード化に成功しました。

全く関係ない画像でも試してみましたが、無理やりヌード化されるようです。

終わりに

「DeepNude」は「DeepFake」と違いダイレクトに女性の人権を踏みにじる危険なアプリケーションではありますが、
使用されているアーキテクチャは非常に工夫されていて面白いものになっております。
水着を裸にする以外でこちらのアルゴリズムを応用してみたいと思っているのですが、
先入観からか、なかなかアイディア出てきません。なにかおもしろいアルゴリズム適用のアイディアがありましたら
教えて下さい。

-AI・機械学習, 技術関連

Copyright© AIなんて気合いダッ! , 2020 All Rights Reserved Powered by AFFINGER5.