[論文メモ] PixelFolder: An Efficient Progressive Pixel Synthesis Network for Image Generation
Pixel Shufflerを使ったピクセルレベルの画像生成
既存手法にCIPSというのがあり、これはピクセル座標と潜在変数から画像を生成するというもの。ピクセルは独立で、空間方向でのconvolutionはなく、基本ピクセル独立のMLP(Network In Networkみたいな)。
しかし、メモリの消費も大きく計算量も多いのでそれをどうにかしたいというお気持ち。
手法
Pixel Shufflerを導入して解像度を下げる。ここではpixel foldingという名前をつけているが統一してほしい。ここでは一応pixel foldingという名前を使う。
pixel foldingの仕組みは図3(a)を参照。
pixel foldingはあるテンソルをにreshapeし解像度を下げる(図3(a)の上)。
逆操作のpixel unfoldingはテンソルをにreshapeし解像度を上げる(図3(a)の下)。
reshapeするだけなので計算コストも少なく情報も落ちない。
このpixel foldingを使ったアーキテクチャをPixelFolderとする。
アーキテクチャの全体像は図2(b)を参照。ちなみに図2(a)が既存手法のCIPSのアーキテクチャ。
アーキテクチャは各解像度で各ピクセルの初期値となる入力があり、入力と同じサイズの画像を生成する。最終的にそれらをターゲットの解像度にアップサンプリングし足し合わせることで画像を生成する。
途中pixel foldingで解像度を落としpixel unfoldingで元に戻すボトルネックな構造。
ピクセルに対してのMLPを適用して画像を生成するので解像度を下げるとコストを下げられる。ただすでにピクセル独立ではないと思う。
各解像度では初期値特徴を多分conv1x1あたりでチャンネル数を1/4にし、pixel folding -> ModConv -> pixel unfolding -> ModConv -> ToRGBというプロセスをたどる。自身より解像度の低いステージがある場合はその中間特徴も受け取る。
初期値特徴は各座標のフーリエ特徴と座標ごとの学習可能なパラメータ。
ModConvはStyleGAN2で採用されたModulated Convでこれは3x3のカーネルサイズ。