映画のジャンルポスターの生成と絵のスタイルの転送-コース「ニューラルネットワーク」テクノスフィアの学生のプロジェクト





テクノパーク(バウマンモスクワ州立工科大学)でのモバイル開発に関する学期コースの卒業生の卒業プロジェクトについて話しました(以前の出版物:「iOS用のアプリケーション開発」、「Android用のアプリケーションの開発」)。今日、私たちはテクノスフィアの2学期の学生の興味深いプロジェクトを共有しています。これはモスクワ州立大学との共同教育プロジェクトであり、分析の分野で毎年トレーニングプログラムを実施し、大量のデータを処理します。学生は、機械学習、情報検索、ニューラルネットワークおよびその他の分野のコースを受講します。プロジェクト方式は教育に使用されているので、学生プロジェクトの防衛に関する学期の結果を要約します。



実験は教育過程において重要な役割を果たします。学生のプロジェクトはそれらなしでは実行できません。彼らはさまざまなアプローチ、方法、アーキテクチャ、ツールを試します。多くの場合、実験後、学生は新しいアプローチを支持して技術とアルゴリズムの選択を放棄します。これは多くの経験と学習です。以下では、2つの学生プロジェクトの開発におけるそのような段階について説明します。



  • 映画ポスターGAN /埋め込みプロジェクト。
  • 漫画シリーズのCyrcleganプロジェクト。


漫画シリーズのCycleGAN



このプロジェクトの作成者は、CycleGAN手法を使用して、あるアニメーションフィルムから別のアニメーションフィルムに画像を転送することにしました。 GAN(Generative adversarial network)は、画像間モデルをトレーニングするための方法です。 2つのニューラルネットワークがトレーニングされます。敵対関係にあるディスクリミネーターとジェネレーターです。ジェネレーターは分類エラーを増加させようとし、ディスクリミネーターはそれを減少させようとします。また、CycleGANは、監視されていないモードで画像から画像への学習を転送する方法です。



AとBの2つの画像ドメインがあるとします。2つのジェネレータと2つのディスクリミネータが作成されます:gen_A2B、gen_B2A、disc_A、disc_B。 gen_A2Bジェネレーターは、Aの画像から同じ画像を作成する必要がありますが、ドメインBにあるようにします。これを行うには、サイクル整合性損失を入力します。



l1loss(gen_b2a(gen_a2b(a)), a)


この場合、ジェネレーターはディスクリミネーターを欺く画像を生成しますが、同時に元のコンテンツを保持します。



ソリューションアーキテクチャ:



ジェネレータ:





Resnetブロックを使用すると、元の画像を思い出すことができます。また、バッチ正規化の代わりにインスタンス正規化を使用しました。後者は他の画像からのノイズを追加するためです。



弁別器:





既製の画像がなかったので、アニメのフルレングス映画のキーフレームから写真を選びました。Aには宮崎隼雄の「SpiritedAway」、Bには新海誠の「YourName」を使用しました。 CycleGANは大幅な変更(形状など)にはあまり適していないため、著者はアニメから両方のドメインを取得しました。



最初にLSGANが損失関数として使用され、次にWGAN GPが使用されました。これは、LSGANがトレーニング中に奇妙なアーティファクトを作成し、色を失ったためです。



トレーニングには、horse2zebraで事前にトレーニングされたモデルを使用しました(重みはジェネレーターでのみ検出されました)。彼女はすでに写真の内容を保存する必要があることを理解しているので、最初に著者は優れた自動エンコーダーを受け取りました。これは、識別器を欺くために教えられるだけで済みました。



トレーニングの最初に、サイクル損失ID損失と勾配クリッピングに高い値を設定しましたが、十分なエポックが経過したときに、ジェネレーターがディスクリミネーターをもう少しだまそうとするように、これらの値を徐々に減らすことにしました。



また、事前にトレーニングされた大規模なネットワーク(VGG、RESNET、Inception)を識別器として使用しようとしましたが、それらは非常に大きく、トレーニングの速度が大幅に低下しました。



その結果、全体的なカラースキーム(上にオリジナル、下に生成された写真)を維持しながら、スタイルがオリジナルに近い形で転送されるという事実を達成することができました。











プロジェクトコード:https //github.com/IlyasKharunov/Cyclegan_project



プロジェクトチーム:Ilyas Kharunov、Oleg Verbin



プロジェクト保護付きのビデオ



映画ポスターGAN /埋め込み



次のプロジェクトは、学生がたどった道の観点から興味深いものです。他の学生プロジェクトとは異なり、ドミトリーは自分で仕事をしました。この道は他の道よりも難しいことが判明しましたが、結果と結論は興味深いものです。



著者は、特定のジャンルの映画のポスターを生成するネットワークを作成することにしました。たとえば、ホラー映画のポスターを暗い色で、コメディーのポスターを明るい色で作成するなどです。



IMDBのウェブサイトから、著者は1970年から2020年の期間に20のジャンルの映画の41,000のポスターを取りました。その後、一部のジャンルでは画像が少なすぎることが判明したため、ドミトリーはジャンルごとにセットのバランスを取り、その結果、3万2000枚のポスターが残った。



次に、学生はDCGANアーキテクチャを備えたニューラルネットワークを適用して、ジャンルのない画像を生成しました。彼女は64x128のサイズのポスターを扱っていました。





結果は不気味であることが判明しました:





次に、作成者はCVAE + DCGANアーキテクチャを試しました。





また、GANなしのVAEと分類子付きのGAN。組み立てられたポスターのセットは、これらの方法には複雑すぎるという結論に達しました。次に、作成者は条件付きGANを適用しました。これはDCGANと同じですが、ジェネレーターとディスクリミネーターの両方にジャンルのみが入力されるようになりました。潜在ベクトルzは、長さ100、長さ20のホットフォーマットのジャンルで取得され、長さ120のベクトルになりました。ジャンルが回答に追加され、1つの線形レイヤーに対して追加の実行が実行されました。



私はなんとか次の結果を達成することができました:





ご覧のとおり、学生はさまざまなアプローチを試すことに興味があり、結果は興味深いものでした。Autoは多くの新しい経験を受け取り、そのようなアイデアを実装するには、StyleGANなどのより複雑なニューラルネットワークをすぐに採用する必要があるという結論に達しました。



ネットワーク学習プロセス:





プロジェクトチーム:ドミトリーピターキン。



プロジェクト保護付きのビデオ






間もなく、C ++およびGo開発、フロントエンド開発、およびインターフェイス作成で最も興味深いディプロマプロジェクトについて説明します。あなたはこのリンクで私たちの教育プロジェクトについてもっと読むことができますそして、Technostreamチャネルにアクセスすることが多く、プログラミング、開発、その他の分野に関する新しいトレーニングビデオが定期的に表示されます。



All Articles