🌱

えっちなサイトを作る(23)

2021/08/17に公開

引き続きえっちなゲームがプレイできちゃうサイトを作ろうと頑張ります。

体調が良くなかったので、ちょっと進捗が悪い…😒

Datasetについての情報収集 (1)

国内情報だとキーワードDatasetよりもカタカナデータセットのが記事が引っかかりやすい。

  • 国内
    • Zenn
    • Qiita
      • 最新ソートだと100件までしか遡れない
    • hatena bookmark
    • twitter
      • 通常検索だとちょっと無理っぽい
      • インフルエンサーを見つけてフォローする方が良さそう

海外情報はまだ調査中。
まずはkerasに固まってるやつを一通り見てからのほうが良いかも。

モザイク除去から学ぶ最先端のディープラーニング本をやる(9)

https://qiita.com/koshian2/items/aefbe4b26a7a235b5a5e

6章

  • Inpaintingの手法
    • GANベース
    • Non-GANベース
      • P-Conv
  • P-Conv
    • マスク領域を回復できる
      • DeepCreamPy ver.1の手法
      • パターンスタンプツール的な動きする
      • 不規則なマスクは得意
      • 規則的で大きなマスクは苦手
    • U-Net強化版
    • 訓練が早い
    • 勾配消失の回避
      • 学習が進まない
    • モード崩壊の回避
      • 同一画像ばかり生成する
    • Validationが明確に定義できる
      • モデルの評価がしやすい
  • P-Convの実装
    • 入力、カーネル、マスクの3要素から計算
      • マスクにも畳み込みを行う
      • つまり、段階的にマスクを減らしていくことになる
      • マスク要素が増えた分、メモリ消費は増える
    • 損失関数にVGGが使われている
      • 他で訓練済みのNNの一部(いらない全結合層を排除したもの)
      • 入力画像、予測画像をVGGに入れて出力の差を見る損失関数
      • GANでもVGGを使うが、Non-GANではVGG自体は訓練しない
    • 損失関数のStyle Loss
      • VGGとグラム行列を利用する
    • ネットワークはU-NetをP-Convレイヤーで置き換えたもの
  • グラム行列
    • Xが与えられたときX^TXをグラム行列と呼ぶ
    • 単一要素に周囲の情報を含むので、損失関数にて利用すると周囲の情報も参照しているとみなせる
    • 共分散と相関
      • いまいち分からんので演習する
    • グラム行列を利用して共分散と相関を求められる
      • 単一要素(画像の単一ピクセル)間の相関のようなものを算出できる
  • P-Convの損失関数の実装
    • 6項から成り立つ
    1. Valid Loss : マスクされていない部分のL1 Loss
    2. Hole Loss : マスク部分の L1 Loss
    3. Perceptual Loss : VGGネットワークの特徴量に対する L1 Loss
    4. Style Loss 1 : VGGネットワークの特徴量とグラム行列をあわせたもののL1 Loss
    5. Style Loss 2 : 同じ
    6. Total Varidation Loss : 画像をなめらかにする処理
    • ハイパーパラメータを含む統合式
      • L_{total} = L_{valid} + 6L_{hole} + 0.05L_{perceptual} + 120L_{style} + 0.1L{tv}
      • 重みを見ると殆どがStyleLoss。L_{hole}のマスク部分をやや強めに見るが、ボヤけない程度。
  • P-Convを強化する
    • Region-wise Conv
      • マスク領域と非マスク領域でカーネルやNormalizationを共通化するのは良くないのではというアイデア
      • 単純に取り入れると畳み込み層が2倍、係数2倍になるので注意
    • Region Normalization
      • マスク領域と非マスク領域でそれぞれ統計量計算しNormalizationする
      • Normalization方式はInstance Normalization
    • これらを導入すると良くなるか?
      • P-Convはマスク領域をほとんど捨てているため、ぼかしモザイクの情報を活かしてない
      • ぼかしモザイク情報を利用したい場合は、これらの方法は有効
      • ぼかしモザイクに対する計測結果では改善が見られる
  • P-Convの超解像アプローチ
    • 低解像度画像を穴開き画像に拡大し、穴部分をすべてマスクにすると超解像の画像が出力される
    • モザイク除去に使えるかというと、出力がくすんでしまう
      • (筆者の意見)超解像ベースのモザイク除去の方法は限界がある
  • 強化したP-Convの測定
    • 出力結果を見ると、狭い領域でベタ塗りは回復できても衣服の形状回復が難しい
      • 大きい領域になると出力結果があまり良くない
      • 損失関数を組み合わせたNon-GANの限界か?
    • Region-wise Conv / Normはモザイクの場合歪み軸について性能向上した
      • 白抜きの場合は逆に性能が低下した
    • 他統計量の説明が難しい
      • 演習後に見直す

終わりに

内容が結構難しいです。
今日は途中までで終わろうと思いましたが、zenn記事書きながら内容まとめてたら何とか終わりまで読めました。
次回演習やってもう一度見直すとよさそうです。

Discussion