CSD (Measuring Style Similarity in Diffusion Models) について
スタイル(画風)の類似度を測る手法
arXiv
GitHub
課題と研究の目的
画像生成において生成画像がデータセットのどの画像に影響を受けているか調べたり、画像検索だと特定の画像と類似する画像を調べたりすることってよくあるし、そういう感じの研究多いよね。対照的に、アーティストは画像の内容よりもそのスタイル・画風の複製に対して関心があるよね。今回の研究は、画像の内容よりもそのスタイルを表すラベルを持つデータセットと、それを使ってスタイルを検索できるフレームワークを提案するよ。
そもスタイルとは
スタイルと一言に言っても色々あって、名前のついているムーブメント (キュビズム、印象派など) だったり、特定の作家名で表現されることがある。今回は、スタイルをこのムーブメントや作家名でイメージされる全体的な特徴として定義するよ。これには、色使いや描画技法、構成や遠近法だったりを含むよ。
データセットの作成 (LAION-Styles)
既存の画像データセットはたくさんあるけど、スタイルと関連づけられた公開データセットはあんまないので新しく作るよ。BAM はデータセット公開されてない?し、WikiArt は小さいので、今回は LAION ベースで作るよ。
ざっくりこんな感じにデータセットのフィルタリングとラベリングを行ったよ:
- 美的なものに絞る
- LAION から aesthetic score が 6 以上のものに絞って、画像とテキストのペア 12M が残った (これを 12M LAION Aesthetics とする)
- これは有名・人気な画像が多く含まれていて、非常に偏っていることに注意
- 普通に重複する画像も多いでそこも注意
-
CLIP Interrogator のタグを使用
- CLIP Interrogator は CLIP を使って、事前に用意した大量のタグのリストと画像を入れて、それっぽいタグを選ぶことができるツールとして有名
- 作家名、表現方法 (油絵、水彩、など)、ムーブメントなどの 5600 タグを採用
- 12M LAION Aesthetics のキャプションの中に該当するタグがあるかどうかを検索し、タグづけ
- 一つ以上のタグがヒットした画像のみを残す
- 10,000回以上ヒットしたタグを見てみると、
picture
やphotograph
みたいな、特定のアートスタイルを表すわけじゃないタグがあったので手動で削除 - 利用不可能だったURLの画像を取り除く
- この時点で約 1M 画像と 3840 タグが残る
-
SSCD を使って重複削除
- 0.8 の閾値で重複する似たような画像のタグを統合
- ついでにキャプションも統合できるので、キャプションがない画像を補完できる
- 重複削除で 511,921 枚の画像が残る
CSD (Contrasive Style Descriptors)
提案手法の CSD では二種類のロスを使ってスタイル表現を獲得することを目指すよ。
教師あり対照学習
作成したデータセットである LAION-Styles のタグを利用して、教師あり対照学習を行った。(SupConLoss)
参考: https://github.com/google-research/syn-rep-learn/blob/main/StableRep/models/losses.py#L49-L106
自己教師あり学習 (SSL)
SimCLR のように、似た画像を似ていると認識できるように学習を行う。ただし、スタイルが損なわれるようなデータ拡張 (ガウスぼかしや Color Jitter は行わず、水平・上下反転、リサイズ、回転などを使った。
ロス
最終的に、タグを教師とした教師あり対照学習と自己教師あり学習の両方を使った
重みの初期化
CLIP ViT-B、ViT-L を初期値として学習したらパフォーマンスが良かったよ