
マッチングアプリのプロフィール写真。インスタで流れてきた風景。Xで拡散されている災害の映像。
「これ、AIが作ったものじゃないか」と思ったとき、多くの人がやるのはじっと見ることだと思います。手の指の数を数える。背景の文字がゆがんでいないか探す。
でも、その方法はもう前提にできません。
この記事では、見分けようとするのをやめて、確かめられるものだけを確かめるという考え方に切り替えます。
技術の話が出てきますが、スマホだけでできる手順から順に並べました。最後に、パソコンがある人向けの確かめ方も置いています。実際に手を動かして測った結果も載せます。
目で見分けるのは、もう前提にできません
出発点をはっきりさせるところから。
総務省が発注した調査の報告書に、こう書かれています。
総務省「令和5年度 生成AIに起因するインターネット上の偽・誤情報等への対策技術に係る調査の請負 事業実施報告書」(2025年3月31日、受託:ボストン コンサルティング グループ)p.3
国の調査でも、人の目では難しいという前提から出発しています。
この報告書は総務省が民間に発注した調査の成果物で、総務省自身の見解を示した文書ではありません。ただ、国がこの前提で対策技術の検討を進めている、という事実の記録にはなります。
では、技術の側はどうか。同じ報告書から、もう1か所。
「ロバスト性が低い ― 画質(ノイズ, 解像度)に検出精度が左右されやすい」
同報告書 p.17
「特定の状況下であれば」という条件が付いています。専用の検知技術ですら、画質が落ちると精度が下がる。スマホの画面で肉眼で見ている私たちが、それより上手くやれる理屈はないでしょう。
なお、この報告書には検知アルゴリズムが何を手がかりにしているか(照明や背景の不自然さ、まばたきのパターンなど)も書かれていますが、それは機械が解析する特徴量の説明であって、人がチェックリストとして使うためのものではありません。同じ報告書が人の目では困難だと書いている以上、ここから「見分けるコツ」を取り出すのは筋が違います。
対策の技術は、2つの方向に分かれています
同じ報告書は、対策技術を大きく2つに分けました。ここが、この記事の骨組みになります。
同報告書 p.16
ひとつめは「真偽判別支援技術」。できあがった画像を解析して、AIが作ったものかを当てにいく方向です。前章のとおり、精度に条件が付きます。
ふたつめは「真正性保証・信頼性判断支援技術」。作る側が、作った時点で情報を付けておく方向です。報告書は電子署名と電子透かしを挙げています。
読者である私たちが使えるのは、主にふたつめです。後から当てにいくのではなく、付いている情報を読む。この記事の残りは、その読み方の話になります。
画像には「来歴」が付いていることがあります
その電子署名の側で、いま標準になりつつあるのがC2PAという規格です。
C2PAの公式サイトから、3か所引用します。
「provides an open technical standard for publishers, creators and consumers to establish the origin and edits of digital content」
「Content Credentials function like a nutrition label for digital content, giving a peek at the content’s history available for anyone to access, at any time」
「栄養成分表示のようなもの」という比喩が、性格をよく表しています。中身の良し悪しを判定してくれるものではなく、どこで作られて、どう編集されたかの履歴が書いてあるということです。
この規格を進めている運営委員会には、Content Credentialsのサイトによれば、Microsoft、Adobe、Intel、BBC、Truepic、Sony、Publicis Groupe、OpenAI、Google、Meta、Amazonといった名前が並んでいます。
同サイトによる、仕様の位置づけの説明がこちらです。
来歴に「AIが作った」と書く場所があります
ここが実用上、いちばん効く部分です。
C2PAの仕様書には、「この画像は生成AIが作った」と記録するための決まった書き方があります。digitalSourceTypeという項目です。
仕様書の例を、そのまま引用します。
c2pa.actions assertion starting with a c2pa.created action, itself having a value of http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia in the corresponding digitalSourceType field.」
つまり、来歴情報の中に trainedAlgorithmicMedia という値が入っていれば、作り手の側が「AIで作った」と申告しているということになります。
ここから、大事な整理が出てきます。
来歴情報は「AIが作った」と書くためにも使われます。「来歴が付いている=本物の写真」ではありません。読むべきなのは、付いているかどうかではなく、中に何と書いてあるかです。
この2つが独立していることを、図にするとこうなります。
スマホで来歴を見る手順
ここからが実務です。まずスマホだけでできる方法から。
◇ 画像に付いているピンを見る
Content Credentialsが付いた画像を表示しているサービスでは、画像の隅に小さなマークが出ることがあります。Content Credentialsのサイトは、このマークをこう説明しています。
ピンは「来歴の情報が入っている」という合図であって、「本物だ」という保証ではありません。タップすると履歴が見られます。
◇ 公式の確認ページに画像を入れる
ピンが出ていない場合や、保存した画像を調べたい場合は、C2PAが案内している確認ページ(verify.contentauthenticity.org)に画像をアップロードします。
ここで注意してほしいのは、何も出なかったときの読み方です。「来歴情報は見つかりませんでした」は、「AIが作った」という意味でも「人が撮った」という意味でもありません。情報が付いていない、というだけです。理由は次の章で実際に測ります。
来歴がない=AI、ではありません
ここは、実際に手を動かして確かめました。
C2PAの開発元が公開しているテスト用の画像(来歴情報が入っているもの)を1枚用意して、中身を編集せずに保存し直すとどうなるかを測っています。
| 操作 | 来歴情報 | ファイルサイズ |
|---|---|---|
| 元の画像(何もしない) | あり | 166,864バイト |
| 画像処理ライブラリで開いて、そのまま保存し直す | なし | 34,020バイト |
| ふちを10ピクセルずつ切って保存 | なし | 42,632バイト |
| 画質を落として保存(quality=70) | なし | 32,727バイト |
編集らしい編集をしていない2行目でも、来歴情報は消えました。画像を開いて保存し直しただけです。
同じことは、報告書も技術の課題として挙げています。
「電子署名 … データ量が増えて処理の負荷が大きい」
同報告書 p.17
ここから言えるのは、ひとつだけです。
「ない」ときは、何も分かりません。
来歴がないことは、「これはAIだ」の根拠にも「これは本物だ」の根拠にもならない、ということです。人が撮った写真でも、保存し直した時点で消えます。
なお、ここで測ったのは手元の画像処理ライブラリで保存し直した場合です。InstagramやX、LINEに上げたときに来歴情報がどう扱われるかは、各サービスの仕様の話なので、この記事では確かめていません。断定は避けます。
パソコンなら、付いているかどうかは自分で確かめられます
ここはパソコンがある人向けの補足です。スマホだけの人は、次の章へ進んで構いません。
JPEGの画像は、画像データの手前に「セグメント」という区画がいくつも並んだ構造をしています。Content Credentialsは、そのうちAPP11と呼ばれる区画に入ります。つまり、ファイルの中を順に見ていけば、付いているかどうかが分かる。
Pythonが動く環境なら、これだけです。
import struct
def has_content_credentials(path):
"""JPEGのAPP11(0xFFEB)セグメントにJUMBF/C2PAの印があるかだけを見る。"""
d = open(path, 'rb').read()
if d[:2] != b'\xff\xd8':
return None
i = 2
while i < len(d) - 1:
if d[i] != 0xFF:
i += 1; continue
m = d[i+1]
if m in (0xD8, 0x01) or 0xD0 <= m <= 0xD7:
i += 2; continue
if m == 0xDA:
break
ln = struct.unpack('>H', d[i+2:i+4])[0]
if m == 0xEB and (b'c2pa' in d[i+4:i+2+ln] or b'jumb' in d[i+4:i+2+ln]):
return True
i += 2 + ln
return False
print(has_content_credentials('調べたい画像.jpg'))
前章の表は、このコードで測ったものです。
ただし、これで分かるのは付いているかどうかだけです。次の3つは、このコードではできません。
- 署名が正しいかどうかの検証。誰でもAPP11に同じような印を書き込めます。中身が信用できるかは、公式の確認ページで署名を検証してもらう必要があります。
- 中身を読むこと。
trainedAlgorithmicMediaが入っているかどうかは、このコードでは判定していません。 - JPEG以外。PNG、WebP、HEIC、動画はこの方法では見られません。画像とは別の場所に来歴を置く方式もあります。
自分で確かめたいなら、まずこのコードで「付いているか」を見て、付いていたら公式の確認ページへ。その順番が現実的です。
Googleの透かしで分かるのは、GoogleのAIだけです
来歴情報とは別に、電子透かしという方法もあります。代表的なのが、GoogleのSynthID。
公式サイトの説明です。
「invisible digital watermark to an AI-generated image (or video segment)」
目に見えない形で画像に埋め込まれるので、見た目では分かりません。確認の方法も公式に書かれています。
ここで、以前書いたAIの答えの確かめ方の話と矛盾していないか、はっきりさせておきます。
AIに「これってAIが作った画像?」と感想を聞くのは、確認になりません。AIは見た目から推測しているだけです。
一方、SynthIDで行われているのは埋め込まれた透かしを読み取ることです。推測ではなく、信号が入っているかどうかの検出です。この2つは別の行為で、後者は確認として成立します。
ただし、範囲に限界があります。公式の説明のとおり、SynthIDが埋め込まれるのはGoogleのAIが作ったものです。他社のAIで作られた画像には、そもそも入っていません。
「透かしが出なかった=AIではない」とは言えない。ここは来歴情報と同じ構造です。
いちばん確かめやすいのは「前からネットにあるか」
ここまでは「AIが作ったか」を確かめる話でした。でも、マッチングアプリやSNSで実際に困るのは、少し違う問いだと思います。
「この人は、この写真の人なのか」
この問いなら、もっと確かめやすい方法があります。逆画像検索です。その画像が以前からネット上にあるなら、見つかります。
◇ iPhoneでの手順
Googleの公式ヘルプに書かれている手順です。
- 「Google アプリ」「Chrome アプリ」「Safari アプリ」のいずれかを開く
- 「検索バーで Google レンズ」をタップするか、カメラロールから写真を探す
- 既存の画像なら「写真選択ツールアイコン」をタップして選ぶ
- 「画面下部で、スクロールして検索結果を見つけます」
ウェブサイト上の画像なら、「その画像を長押し」して「Google レンズで画像を検索」または「Google で画像を検索」を選びます。
◇ パソコンでの手順
同じ公式ヘルプのパソコン版です。
- google.comにアクセスする
- 「画像で検索」アイコンをクリックし、「ファイルをアップロード」を選ぶ
- 画像ファイルを選んで「開く」をクリックする
ウェブサイト上の画像なら、「画像を右クリック」して「Google レンズで検索」を選びます。
◇ 何が分かるか
出てきた結果を、こう読みます。
- 同じ写真が、別の名前の人のSNSで何年も前から使われている … その写真は、目の前の相手のものではない可能性が高い
- 同じ写真が、素材サイトで売られている … 同じく、本人の写真ではない
- 何も出てこない … 分かりません。新しく撮った写真でも、AIが作った画像でも、何も出ないことはあります
3つめが大事です。逆画像検索も、見つかったときは強いが、見つからないときは何も言えないという性格をしています。この記事に出てくる方法は、全部この形です。
判断がつかないときに、やらないこと
ここまで読んで分かるとおり、白黒がつかないまま終わることのほうが多いです。
そこで、判定を諦めたあとの行動を決めておくほうが現実的です。確かめられないときにやらないこと、を3つ。
◇ お金の話に進まない
写真の真偽が確かめられない相手と、お金が動く話を進めない。投資の誘い、立て替え、送金、ギフトカードの購入。写真がAIかどうかの結論が出なくても、ここさえ止まれば被害は起きません。
AIで作られた画像を使った詐欺の手口は、AIなりすまし詐欺の記事にまとめています。
◇ 追加の個人情報を渡さない
勤務先、最寄り駅、家族構成、よく行く店。写真1枚より、こうした情報のほうが悪用しやすいものです。
相手の正体が確かめられていない段階では、増やさない。これは判定の結果を待つ必要がありません。
◇ 自分が拡散する側に回らない
災害や事件の画像は、「本当かもしれない」と思った瞬間に転送したくなります。
でもここまで見たとおり、来歴がないことも、透かしが出ないことも、逆画像検索で何も出ないことも、本物だという根拠にはなりません。確かめられていないものは、確かめられていないまま置いておく。これがいちばん安全です。
今日からできること
3つあります。
ひとつめ、3分。手元の写真を1枚、逆画像検索にかけてみる。
自分で撮った写真でも構いません。操作を1回やっておけば、必要になったときに迷わずに済みます。前章の手順のとおり、長押しかGoogle レンズです。
ふたつめ、5分。verify.contentauthenticity.org を開いて、画像を1枚入れてみる。
おそらく「来歴情報は見つかりませんでした」と出ます。それが普通の状態だ、と体験しておくことに意味があります。付いていないのが当たり前だと分かっていれば、「付いていないからAIだ」という誤解をせずに済むはずです。
みっつめ、1分。判断がつかないときの自分のルールを決めておく。
「写真が確かめられない相手とは、お金の話をしない」。これだけでいいので、言葉にしておいてください。判定に時間をかけるより、はるかに効きます。
まとめ
AIが作った画像を目で見分けるのは、前提にできません。総務省が発注した調査の報告書も「人の目では真贋を見分けることが困難な情報」に日常的に触れる状況だとしており、専用の検知技術ですら「特定の状況下であれば」90%以上という条件付きで、画質に精度が左右されるとされています。
代わりに使えるのが、作る側が付ける情報です。C2PAのContent Credentialsは、画像の来歴を「栄養成分表示のようなもの」として記録する規格で、仕様には digitalSourceType に trainedAlgorithmicMedia と書くことで「生成AIが作った」と記録する方法が定められています。
ただし、来歴情報があることと、AIで作られていないことは別の話です。読むべきなのは、付いているかどうかではなく、中に何と書いてあるかです。
そして、来歴がないことは何も証明しません。実際に測ったところ、編集せずに保存し直しただけで来歴情報は消えました。報告書も、トリミングや非可逆圧縮で電子透かしが壊れるリスクを挙げています。
Googleの電子透かし(SynthID)は、AIに感想を聞くのとは違い、埋め込まれた信号を読み取るものなので確認として成立します。ただし対象はGoogleのAIが作ったものに限られます。
マッチングアプリやSNSで本当に困る問いは「この人は、この写真の人なのか」のほうです。こちらは逆画像検索で確かめられます。ただしこれも、見つかったときは強く、見つからないときは何も言えません。
この記事に出てくる方法は、すべて同じ形をしています。確かめられたときだけ言える。だからこそ、確かめられないときにどうするかを先に決めておくのが現実的です。お金の話に進まない。個人情報を増やさない。自分が拡散する側に回らない。
あわせて読みたい
よくある質問(FAQ)
Q1. 指の数や背景のゆがみを見れば、AI画像は分かりませんか?
前提にしないほうがいいです。総務省が発注した調査の報告書は「生成AIやディープフェイク技術により、偽画像・動画を誰でも容易に作成できるようになり…人の目では真贋を見分けることが困難な情報に、国民がSNS等を通じて日常的に触れる機会が増加しており」としています。専用の検知技術についても「特定の状況下であれば90%以上の精度で人物のディープフェイクを検知可能」としたうえで、「ロバスト性が低い ― 画質(ノイズ, 解像度)に検出精度が左右されやすい」と課題を挙げています。同じ報告書に検知アルゴリズムが解析する特徴(照明や背景の不自然さ、まばたきのパターンなど)も載っていますが、それは機械が扱う特徴量の説明であって、人のチェックリストとして示されたものではありません。
Q2. Content Credentialsとは何ですか?
画像などに「どこで作られて、どう編集されたか」の履歴を付けておく仕組みです。C2PA(Coalition for Content Provenance and Authenticity)という団体が規格をまとめており、公式サイトは「provides an open technical standard for publishers, creators and consumers to establish the origin and edits of digital content」「Content Credentials function like a nutrition label for digital content」と説明しています。運営には Microsoft、Adobe、Intel、BBC、Truepic、Sony、Publicis Groupe、OpenAI、Google、Meta、Amazon などが関わっているとされています。内容の良し悪しを判定するものではなく、履歴を読むための仕組みです。
Q3. 来歴情報が付いていれば、本物の写真ということですか?
違います。来歴情報は「AIで作った」と記録するためにも使われます。C2PAの仕様書には、生成AIが作ったものについて「c2pa.created action, itself having a value of http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia in the corresponding digitalSourceType field」と記録する例が示されています。つまり、来歴があること自体は本物の証明ではありません。確かめるべきなのは、付いているかどうかではなく、中に何と書いてあるかです。
Q4. 来歴情報が付いていなければ、AIが作った画像ですか?
言えません。実際に測ってみたところ、来歴情報が入ったテスト用の画像を、編集せずに画像処理ライブラリで開いて保存し直しただけで、来歴情報は消えました。ふちを切った場合も、画質を落として保存した場合も同じです。総務省が発注した調査の報告書も、電子透かしについて「電子透かしの破壊のリスクがある ― トリミング、非可逆圧縮、色の変更等」と課題を挙げています。来歴情報は「あるときは読める」ものであって、「ないこと」からは何も分かりません。
Q5. AIに「この画像はAIが作ったもの?」と聞けばいいのでは?
それは確認になりません。AIは見た目から推測を述べているだけで、根拠を確かめているわけではないからです。一方、GoogleのSynthIDで行われているのは、埋め込まれた電子透かしを読み取る処理です。公式サイトは「invisible digital watermark」「Simply upload the image, video or audio clip to your chat, and ask if it’s been created or altered by Google AI. Gemini, Search and Chrome will check」と説明しています。推測と検出は別の行為で、後者は確認として成立します。ただし対象はGoogleのAIが作ったものなので、他社のAIで作られた画像には透かしがそもそも入っていません。
Q6. マッチングアプリの相手の写真が怪しいとき、何をすればいいですか?
「AIかどうか」より「この人は、この写真の人なのか」のほうが確かめやすいので、逆画像検索をおすすめします。iPhoneなら、Googleの公式ヘルプのとおり「Google アプリ」「Chrome アプリ」「Safari アプリ」のいずれかを開き、「検索バーで Google レンズ」をタップして写真を選びます。ウェブ上の画像なら長押しして「Google レンズで画像を検索」です。同じ写真が別の名前の人のSNSで何年も使われていたり、素材サイトで売られていたりすれば、その時点で判断がつきます。ただし何も出てこなかった場合は、何も分かりません。
Q7. 逆画像検索で何も出てきませんでした。本物ということですか?
いいえ。新しく撮った写真でも、AIが作った画像でも、検索結果に出てこないことはあります。この記事で紹介した方法は、どれも同じ性格をしています。来歴情報も、電子透かしも、逆画像検索も、見つかったときは強い根拠になりますが、見つからなかったときは何の根拠にもなりません。だからこそ、確かめられなかったときの行動(お金の話に進まない、個人情報を増やさない、自分が拡散しない)を先に決めておくほうが現実的です。
Q8. InstagramやXに上げると、来歴情報は消えますか?
この記事では確かめていないので、断定しません。測ったのは、手元の画像処理ライブラリで開いて保存し直した場合で、そのときは消えました。各サービスがアップロード時にどう処理するかは、それぞれの仕様の話です。言えるのは、来歴情報は加工や保存し直しで失われ得るものであり、総務省が発注した調査の報告書も「トリミング、非可逆圧縮、色の変更等」で電子透かしが壊れるリスクを挙げている、というところまでです。
Q9. 記事のPythonのコードで、AIかどうかまで判定できますか?
できません。あのコードが見ているのは、JPEGのAPP11というセグメントにC2PAの印が入っているかどうかだけです。できないことが3つあります。ひとつ、署名が正しいかどうかの検証はしていません。誰でも同じような印を書き込めるので、中身を信用するには公式の確認ページで署名を検証してもらう必要があります。ふたつ、中身は読んでいないので、trainedAlgorithmicMedia が入っているかどうかは分かりません。みっつ、JPEG専用です。PNG、WebP、HEIC、動画には使えません。
Q10. 結局、確実な見分け方はないということですか?
「見分ける」という形では、確実な方法はありません。この記事の提案は、見分けようとするのをやめて、確かめられるものだけを確かめることです。来歴情報が付いていれば中身が読めます。GoogleのAIで作られたものなら透かしで分かります。前からネットにある写真なら逆画像検索で分かります。どれも当たればはっきりしますが、外れても何も言えません。そのうえで、確かめられなかったときの行動を決めておく。それが現実的な落としどころだと思います。


