A Day in the Life

AIで画像の美しさを評価する LAION Aesthetics

画像の美しさ、というのは主観が多分に含まれるものなので、コンピュータが評価するタスクとしては難しいのかな、と思っていたのだけどLAION-AESTHETICS を読んでびっくり、だいぶきちんと評価できてそう。実際にLAION Aesthetics V2でデータセットをスコア付した結果(リンク先ページは大量の画像ロードが走って遅いので注意)ではこんな感じ。例えばスコアが1.5~1.75の画像だと

score_1

となる。またスコア7~7.25の画像では

score_7

という感じになる。おーすごい、それっぽい。そしてこのスコアを学習・導出しているものも複雑なディープラーニング処理ではなく、単純なMLP(5つの線型層+Dropoutで、活性化関数を挟まない)というのもすごい。

LAION-Aesthetics V1

V1 では SAC というStable Diffusion等が生成した画像とプロンプトを約24万枚のデータセットのうち、当時あった5000枚のデータのうち4000枚を0-10でレーティング付して、入力にはCLIPを通した画像の特徴量を使い、MLPでトレーニング。結果4000枚のデータでも良い感じだったとのこと。

LAION-Aesthetics_Predictor V1 のコードや重みはこちら

LAION-Aesthetics V2

V2では先程のSACのデータセットの17.6万枚をレーティングしたもの、LAION-Logosの1.5万枚のロゴ画像をレーティングしたもの、25万枚のレーティング画像があるAVA Datasetを使ってトレーニング。結果として、シンプルなMLPでCLIP ViT/14の画像特徴量を使ったものが最も主観的な評価で良かったとのこと。確かにスコア6.5以上の画像などを見るとどれも良さそうな画像に見える。Stable Diffusion V1はこのスコア5.5+の画像860M枚で学習したようで、たしかに高画質な画像生成では元データも高品質が求められる。

LAION-Aesthetics_Predictor V2 のコードや重みはこちら。Colab でかんたんに動かせるようにnotebookを書いてみた

このブログ画像のAesthetics Predictorスコアを見る

Aesthetics_Predictor V2 を使って、このブログ記事画像6000枚ちょっとのスコアを算出してみた。

> df.image_score.describe()
count    6411.000000
mean        4.749680
std         0.375495
min         3.169599
25%         4.513570
50%         4.771865
75%         5.007550
max         6.175828

hist_bins

スコア的には平均4.75、標準偏差0.38で高スコアも少ないが低スコアも少ない。いちおうちゃんとした写真をブログに載せているはずなので、まぁそうだよね~というスコア分布。実際にどんな画像が低スコアで、どんな画像が高スコアか見てみよう。

低スコア

文字が入ったり画面が暗かったりノイジーだったり、といった物が多くなるほど感。

低スコア

高スコア

おおー、たしかに高スコアぽい。縦長画像が多いけど。上位25%であるスコア5.0超えのものはだいたいサムネイルの見栄え良い感じがする。

高スコア

高スコア_2

LAION Aesthetics Predictor を使ってみて

CLIPの画像特徴ベクトルに対しスコア付したものを活性化関数をすらないシンプルなMLPで学習させたもので、良い感じのスコアが計算され驚きであった。あまりスコアが高くない画像はレコメンデーション時のサムネイル画像には使わないなど、普通にWebサービスなどでも活用できそう。

LAIONのDiscordを覗いてみると、このデータセットや学習をさらに広げる話などもされていて、今後もより良い美しさスコアや多様性を持ったスコア表現が出てきそうで楽しみである。

記事の一覧 >

関連するかもエントリー

類似画像検索
facebook が作ったベクトル検索エンジンの faiss を使って類似画像検索ができる、というなにかの記事を見てへーと思い、自分の日記画像の中から類似画像を見つけるというのをやってみたら、思っていた以上に簡単だったのでお気持ちを記事に。この日記画像の類似画像類似画像検索は画像...
facebook が作ったベクトル検索エンジンの faiss を使って類似画像検索ができる、というなにかの記事を見てへーと思い、自分の日記画...
Kaggle コンペ Feedback Prize - English Language Learning でチーム参加15位金メダル取得で、Kaggle Master へ
Kaggle のコンペティション、Feedback Prize - English Language Learningが終わり、約2650チーム中15位で金メダル取得となった。これで合計金メダル2つ、銀メダル1つを取得し、Kaggle Competitions Master の条...
Kaggle のコンペティション、Feedback Prize - English Language Learningが終わり、約2650チ...