図:SHA-256(改ざん検知)と知覚ハッシュ(流用検知)—設計思想が正反対で守備範囲が異なる
写真の不正には、大きく分けて二つの種類があります。ひとつは画像を「加工・捏造する」こと。もうひとつは、本来は別の場面で撮られた写真を、あたかも今回のものであるかのように「使い回す(流用する)」ことです。前者は加工痕やAI生成の特徴から検出できますが、後者はやっかいです。なぜなら、使い回された写真そのものは、加工も捏造もされていない「本物の写真」であることが多いからです。
たとえば、過去の保険金請求で使った損害写真を別の請求にもう一度提出する。インターネットで拾った美しい室内写真を、自社の管理物件であるかのように広告に載せる。どこかのサイトにある画像を「これが証拠です」と訴訟に持ち込む——これらはいずれも、画像を改ざんしていなくても成立する不正です。画像の真正性を「加工されていないか」だけで判断していると、こうした流用はすり抜けてしまいます。
本記事では、写真の「使い回し」を技術的に検出するための二つの基礎技術——知覚ハッシュ(perceptual hash) と 逆画像検索(reverse image search)——について、その仕組みと限界を、技術者でなくても理解できる形で整理します。
「使い回し」は「加工」とは別の問題
真正性を確かめるとき、私たちは無意識に二つの異なる問いを混同しがちです。
- 問い1:この写真は加工・捏造されていないか?(改ざんの問題)
- 問い2:この写真は本当にこの案件のものか/どこかからの流用ではないか?(出所・重複の問題)
ELA(誤差水準解析)やAI生成画像検出、EXIFメタデータの確認は、主に問い1に答えるための技術です。一方、本記事で扱う知覚ハッシュと逆画像検索は、主に問い2に答えるための技術です。両者は補い合う関係にあり、片方だけでは「真正性」を十分に守れません。
重要なのは、流用の検出は「加工の有無」とは無関係に必要だという点です。加工されていない本物の写真でも、出どころが偽られていれば、それは立派な不正だからです。
暗号学的ハッシュ(SHA-256)と知覚ハッシュは、似て非なるもの
「ハッシュ」という言葉は、Imprintでも中心的な技術であるSHA-256などの暗号学的ハッシュを指して使われることが多いものです。しかし、流用検出で使う知覚ハッシュは、性質が正反対といってよいほど異なります。両者の違いを理解すると、なぜ流用検出には別の道具が必要なのかが見えてきます。
図:暗号学的ハッシュ vs 知覚ハッシュの違い(用途が全く異なる—両方が必要)
| 観点 | 暗号学的ハッシュ(SHA-256) | 知覚ハッシュ(pHash など) |
|---|---|---|
| 入力がわずかに変わると | 出力がまったく別物になる | 出力もわずかにしか変わらない |
| 何を見分けられるか | 完全に同一のファイルかどうか | 見た目が似た画像かどうか |
| 主な用途 | 改ざん検知・同一ファイルの証明 | リサイズ・再保存後の「使い回し」検知 |
| 例 | 1ビット書き換えただけで一致しなくなる | JPEG再保存・縮小しても近い値になる |
SHA-256は「指紋の完全一致」を確かめる道具です。Imprintはこれを使い、写真の原本バイト列から計算したハッシュを記録することで、「このファイルがこの時点で存在し、その後一切変更されていない」ことを技術的に裏づけています。
ところが、写真を使い回す側は、たいてい元ファイルをそのまま再利用しません。スクリーンショットを撮り直したり、軽くリサイズしたり、JPEGとして保存し直したりします。これだけでSHA-256の値は完全に変わってしまうため、暗号学的ハッシュでは「実質的に同じ画像なのに、別ファイルとして扱われる」のです。ここで登場するのが知覚ハッシュです。
知覚ハッシュの仕組み
知覚ハッシュは、画像の「見た目の特徴」を短いビット列(多くは64ビット程度)に圧縮します。設計の狙いは、人間の目に同じように見える画像は、似たハッシュ値を持つようにすることです。代表的なアルゴリズムをいくつか挙げます。
| アルゴリズム | 概要 | 特徴 |
|---|---|---|
| aHash(平均ハッシュ) | 画像を小さく縮小・グレースケール化し、各画素が全体の平均より明るいか暗いかを1ビットで表す | 計算は高速だが、頑健性はやや低い |
| dHash(差分ハッシュ) | 隣り合う画素どうしの明暗の大小関係をビット化する | 全体の明るさ・コントラスト変化に比較的強い |
| pHash(DCTハッシュ) | DCT(離散コサイン変換)で画像の低周波成分を取り出し、その大小をビット化する | 圧縮・リサイズに強く、実務で広く使われる |
| wHash(ウェーブレットハッシュ) | ウェーブレット変換を利用して特徴を抽出する | pHashと並ぶ頑健性を持つ |
いずれの方式でも、処理の最初に画像を小さく縮小し、グレースケールに変換します。細部や色を捨てて「大まかな明暗のパターン」だけを残すことで、解像度や軽微な色調整の違いに左右されにくくしているわけです。
ハミング距離で「似ている度合い」を測る
二つの画像が似ているかどうかは、それぞれの知覚ハッシュを比べて判断します。比較に使うのが ハミング距離——二つのビット列を並べて、何ビット異なるかを数えた値です。
- ハミング距離が 0 に近い → ほぼ同一の画像の可能性が高い
- ハミング距離が 大きい → 別の画像である可能性が高い
実務では「64ビット中、距離が10以下なら使い回しの疑いあり」といったしきい値を設けて運用します。このしきい値の設定が、後述する誤検知の多寡を左右する勘どころになります。
擬似コードで示すと、考え方はとてもシンプルです(Pythonの imagehash ライブラリを使った例)。
import imagehash
from PIL import Image
# 2枚の画像の知覚ハッシュ(pHash)を計算
hash_a = imagehash.phash(Image.open("claim_001.jpg"))
hash_b = imagehash.phash(Image.open("claim_047.jpg"))
# ハミング距離(異なるビット数)を求める
distance = hash_a - hash_b
print(distance) # 例: 2 → ほぼ同じ画像の可能性が高い
if distance <= 10:
print("使い回しの疑いあり")
過去に受け付けた画像すべてのハッシュをあらかじめ保存しておけば、新しく届いた画像を照合し、「以前のどの画像と似ているか」を高速に探せます。これが、社内データベース内での重複・流用を検出する基本的な仕組みです。
図:pHashの計算フローとハミング距離(距離0-10で使い回しの疑いあり、大きければ別の画像)
逆画像検索:画像が「インターネットのどこに出ているか」を探す
知覚ハッシュが「手元のデータベース内の重複」を見つける技術だとすれば、逆画像検索は「インターネット上の出所」を探す技術です。テキストではなく画像そのものを入力すると、その画像(および視覚的に似た画像)がウェブ上のどこに掲載されているかを返してくれます。内部では、知覚ハッシュに近い手法や、深層学習による特徴量の照合が使われています。
主な逆画像検索サービスには次のようなものがあります。
- Google 画像検索/Google レンズ:最も手軽で、似た画像や同じ画像の掲載先を広く探せます。
- TinEye:同一画像や加工・トリミングされた複製を探すことに特化しており、その画像がいつ・どこに現れたかを追いやすいのが特徴です。
- Yandex:人物・場所・物体の照合に強いとされ、他の検索より多くの候補を返すことがあります。
- Microsoft Bing Visual Search:Bingに統合された画像検索機能です。
実務での使い方は明快です。提出された写真を逆画像検索にかけ、ストックフォトサイトや他社の物件ページ、過去のニュース記事などに同じ画像が見つかれば、「この案件オリジナルの写真ではない」可能性が一気に高まります。
限界と注意点
知覚ハッシュと逆画像検索は強力ですが、万能ではありません。誤った判断を避けるために、限界を正しく理解しておく必要があります。
知覚ハッシュは誤検知・見逃しの両方を起こす。 よく似ているが別物の画像——たとえば同じ車種・同じ型番の製品を別個体で撮った写真——では、ハミング距離が小さくなり、誤って「使い回し」と判定することがあります。逆に、大きくトリミングしたり、左右反転したり、強いフィルターをかけたりすると、見た目には同じ画像でもハッシュが大きく変わり、使い回しを見逃すことがあります。アルゴリズムによって回転・反転への強さも異なります。
逆画像検索は「インデックス済みの画像」しか見つけられない。 検索エンジンがクロール(収集)していない画像は、たとえウェブ上に存在しても結果に出ません。一度も公開されていない私的な写真や、ログインの内側にある画像は、原理的に検出できないのです。「逆画像検索で見つからなかった=オリジナルである」とは言い切れません。
「最初に見つかった掲載」が本当の出所とは限らない。 逆画像検索が示す「最も古い掲載日」は、あくまで検索エンジンが把握している範囲のものです。真の撮影者や初出を保証するものではありません。
どちらも「撮影者」や「撮影日時」を証明しない。 流用検出は「この画像が他所にもある/過去にもある」ことを示すだけで、誰がいつ撮ったかを立証する技術ではありません。出所や撮影時点を裏づけるには、メタデータ・タイムスタンプなど別の手段と組み合わせる必要があります。
このように、流用検出は「疑わしい候補をあぶり出す」一次スクリーニングとして優れていますが、最終的な判断は人による確認や他の証拠と合わせて行うべきものです。
他手法との組み合わせ:Imprint のアプローチとの関係
ここまで読んでお気づきの通り、知覚ハッシュ・逆画像検索が扱うのは主に「問い2:流用ではないか」です。一方、Imprint が提供しているのは、別の角度からの検証です。
Imprint は、写真の原本バイト列から SHA-256(暗号学的ハッシュ) を計算し、RFC 3161 タイムスタンプと、Polygon を用いたパブリックブロックチェーンへのハッシュ記録を組み合わせます。これにより「この特定のファイルが、この時点に存在し、それ以降改ざんされていない」ことを技術的に裏づけます。さらに EXIF 解析・ELA・AI生成画像検出・C2PA 検出を束ねて、100点満点の減点方式で真正性スコアを算出します。
整理すると、両者は守備範囲が異なります。
- Imprint(暗号学的ハッシュ+タイムスタンプ+メタデータ解析):その写真自体が加工されていないか、いつ存在したか、を検証する
- 知覚ハッシュ+逆画像検索:その写真が他所や過去の別案件からの「使い回し」でないか、を検証する
なお、知覚ハッシュによる類似画像照合や逆画像検索は、現時点の Imprint の機能には含まれていません。しかし両者は対立するものではなく、補完関係にあります。たとえば撮影制御フロー(専用UIで撮影し、サーバー受信直後にハッシュを記録する流れ)で取得した写真は、その時点での原本性が担保されるため、後から「どこかの流用ではないか」を疑う必要性そのものを下げられます。流用が疑われる既存画像については、Imprint の検証に加えて逆画像検索を併用する、といった運用が現実的です。
業界別の活用シーン
損害保険
同じ損害写真が複数の請求にまたがって提出される、過去の請求画像が別契約で再利用される、ネット上の事故・破損写真が「自分の損害」として提出される——こうした流用は、加工検出だけでは捕捉しにくい典型例です。受け付けた請求写真の知覚ハッシュを蓄積して社内で重複照合し、疑わしいものは逆画像検索でネット上の出所を確認する、という二段構えが有効です。
不動産
物件広告では、他社リスティングからの写真の無断転載や、ストックフォトを実際の物件であるかのように掲載するケースが問題になります。掲載前に逆画像検索で同一画像の他サイト掲載を確認すれば、転載やストックフォトの流用を出稿前に見つけやすくなります。自社で撮影した写真を Imprint で記録しておけば、逆に「自社オリジナルである」ことの裏づけにもなります。
法務・訴訟
「これが証拠です」と提出された画像が、実はインターネット上に以前から存在していた——という事態は、証拠の信用性を根底から揺るがします。逆画像検索でより古い掲載が見つかれば、その画像がオリジナルでない可能性を示す材料になります。ただし前述の通り、検索結果は「証拠」そのものではなく「調査の端緒」として扱い、撮影日時の裏づけにはタイムスタンプ等を併用するのが適切です。
まとめ
写真の不正は「加工」だけではありません。本物の写真を別の文脈に「使い回す」流用もまた、深刻な不正です。これを見抜くには、暗号学的ハッシュ(SHA-256)の完全一致判定とは別に、見た目の近さで照合する知覚ハッシュと、ウェブ上の出所を探す逆画像検索が役立ちます。
一方で、知覚ハッシュには誤検知・見逃しがあり、逆画像検索はインデックス済みの画像しか見つけられないという限界があります。いずれも「疑わしい候補のあぶり出し」には強いものの、最終判断は人の確認や他の証拠と組み合わせて行うべきです。改ざんの検証は Imprint のような技術で、流用の検証は知覚ハッシュ・逆画像検索で——目的に応じて道具を使い分けることが、写真の真正性を守る近道になります。
Imprint で写真の真正性を確かめる
Imprint は、写真の改ざん検知・タイムスタンプ・メタデータ解析を組み合わせ、「その写真が本物かつ無加工であること」を技術的に証明する B2B SaaS です。
- カメラで実際に試す: /capture
- 開発者向けの API ドキュメント: https://api.imprint-digital.jp/docs