AIで作った画像をAIは見分けられるのか!?
皆さんこんにちは
tereka114です。最近はNLP関係の技術調査も兼ねて、FB3をやってます。
最近の社会の流れを見ていて、少し時間の片隅でやってみたい事ができ、やったので、実験とその結果を書いておきます。
導入
今年はStable Diffusionが発表され、また、mimic、NovelAIなど画像の生成に関して
社会に劇的なインパクトを与えるモデル/サービスが発表されてきました。
今までの生成モデルもそれなりにおおっと言われてましたが、ここまでインパクトが世間的に出てくることはほとんどなかったのではないかと思っています。
私もお仕事であまり関係をしない都合上、GAN以降のモデルはノーマークだったので、非常に驚きました。(記憶だとBigGANが最後・・・)
私がGANを使っていた頃は32px, 64pxを生成するのが限度で、かつ、きれいではありませんでした。
それが、わずか数年(5年ほどだと思いますが・・・)こんなに綺麗な画像が生成できるとは思っていませんでした。
もちろん、機械学習エンジニアとして、AIすげぇ、大歓迎といった本人主観の一面だけで見た至極単純な感想もありますが、
デザイナー/イラストレーターさんからすると、やはり驚異の一つであり、既存の絵と近しいものが出てきた といったことになれば、
AIによる絵のパクリなど、新しい問題が生まれるのは当然のことです。
そのためなのか、サービスの規約でAIの画像をアップロードを阻止しているといった情報もちらほらTwitterで見られています。
それらのAIが生成した画像の権利・倫理関係の良し悪しや実態の正誤はともかくとして、
人類が作った画像AIが作ったデータを見分けるのは将来的に価値があるものだと思っています。
段々と難しくなっていくと思いますが、今の段階だとどうなのかを見てみることは意味がありそうです。
準備
画像側のデータセットはほぼダウンロードするだけです。
実験
実験目的
本記事ではAIが作ったのか否かを見分けることを目的です。
利用用途を鑑みて次の2つを調査する必要があります。
データ作成
Stable Diffusionと人工のデータを準備し、単純に人類/AIで2値分類します。
一つのカテゴリだと難しいものもあるかもしれないので、いくつかのプロンプト(呪文)で試しました。
Category | Real Dataset | SD Prompt |
---|---|---|
Landmark | GLDv1 | landmark |
Car | myautage | car outside |
リアル画像と生成された画像です。どうでしょう?わかりますでしょうか?
Landmark Original
Stable Diffusion Landmark
Car Original
Stable Diffusion Car
モデル作成
モデルはEfficientNetV2m(Pretrained ImageNet)で前処理を次の2つのパタンを試しました。
Resize/RandomCrop(学習)+Resize/CenterCrop(推論)を用いました。Resizeだと画像に加工が入るので、特徴的なノイズが含まれる場合、そのノイズが変な方向に修正、もしくは、消える可能性があります。
そのため、Crop系のであれば、そのノイズを加工せず取り込めることを期待します。
評価方法
AUC、F1、Recall、Precisionを計算します。
実験結果
条件 | 前処理 | AUC | F1 | Recall | Precision |
---|---|---|---|---|---|
Landmark | Resize | 0.998 | 0.982 | 0.996 | 0.969 |
Car | Resize | 0.975 | 0.582 | 0.412 | 0.994 |
Landmark | Crop | 0.999 | 0.999 | 1.0 | 0.999 |
Car | Crop | 0.999 | 0.998 | 0.999 | 0.997 |
実装の詳細は次のKaggle Notebookを見てください。
Crop
https://www.kaggle.com/code/tereka/detectstablediffusionimages?scriptVersionId=109399786
Resize
https://www.kaggle.com/code/tereka/detectstablediffusionimages?scriptVersionId=109300787
Cropのほうが精度が高かったです。
リサイズは元画像の解像度によっても縮小のされ方が異なるので、判定が難しかったのではないかと推測できます。
Future Work
やり残したこととして、次があります。
- 様々なモデルを使っての検出、Stable Diffusionのみならず、他のモデルも使って試みてどのモデルかを当てる。
- より異なるドメインの違いによる差分はあるが、例えば、アニメ画像(Waifu diffusionなど)であれば、どのようになるのか。
- 解像度の比較、Stable Diffusionの解像度が固定だったが、様々な解像度の画像が含まれる場合にどうなるのか。
最後に
今回のデータセットではAIを見分けることができたので、生成された画像に何らかの特徴があったのではと思っています。
AIでAIで作った画像がわかるか?といったことだけでAIによる諸問題が全て解決するとはもちろん言えませんが、問題の解決に一役買ってくれるとありがたいと考えています。