mcpField
F
find-the-original-image

find-the-original-image

github.com/useosintセキュリティ5756.5k 回インストール12 週間前に更新
リポジトリ

find-the-original-image について

調査担当者や検証者向けの画像検索スキルで、類似画像ではなく最も早い掲載ページを探します。複数の検索エンジンや部分画像での再検索、掲載ページの確認を組み合わせ、顔検索の法的・精度上のリスクも説明します。

主な機能

  1. 01画像の種類に応じた検索エンジン選択
  2. 02切り抜き・反転による再検索
  3. 03動画から抽出したキーフレームの検索
  4. 04掲載ページ・日付・クレジットの確認
  5. 05顔検索のリスクと制約の説明

活用シーン

  1. 01報道写真が主張された事件より前のものか確認
  2. 02写真家・説明文・最初の掲載ページの追跡
  3. 03看板や画像の一部から古い出典を特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/useosint/skills --skill find-the-original-image

インストール後、Claude Code で/find-the-original-imageを入力して読み込まれたか確認します。

同梱ファイルreference/engine-matrix.mdreference/preprocessing.md

詳細

元画像を見つける

目標は、ほとんどの場合「一致する画像を見つける」ことではありません。最初に公開されたページを見つけ、そのページを読むことです。一致する画像があれば、その画像がほかの場所にも存在することは分かります。最初に公開されたページを見れば、撮影者、日付、キャプション、名前が分かります。実際に調査の手がかりとなるのは、こうした情報です。

初心者がよくする間違いは、画像全体を1つの検索エンジンにアップロードして何も見つからず、画像がインデックスされていないと結論づけることです。特徴的な被写体だけを切り抜いて再検索すれば、画像全体での検索では見つからないものが見つかります。

手元の画像に合わせて検索エンジンを選ぶ

手元にあるものまず試す検索エンジン理由
顔Yandex顔の類似性を重視してインデックスを構築しているため、似た顔の別人と、別の写真に写った同じ人物の両方が見つかります。これができる一般的な検索エンジンはほかにありません。
顔で、Yandex では見つからない専用の顔検索エンジン(下記参照)法的な問題と同意に関する問題を解決してから利用してください。
北米/西ヨーロッパ以外の街並みYandexGoogle のクロールが不十分なロシア、中央アジア、東ヨーロッパ、トルコ、中国のウェブコンテンツを深くインデックスしています。
商品、本の表紙、アート作品、植物、動物Google Lens物体やエンティティを認識し、ショッピングやナレッジグラフと連携しています。
画像内の文字Google Lens画像の文字を OCR で認識し、抽出した文字列を検索できます。多くの場合、答えは文字にあり、画像検索は関係ありません。
ランドマークや有名な建物Google Lensランドマークの分類は、最も得意とする機能です。
ごちゃごちゃした写真の特定の領域Bing Visual Searchアップロードした画像上で範囲を指定すると、その部分だけを再検索できます。切り抜いて再検索する一連の作業を最も速く行える検索エンジンです。
報道写真、ミーム、または古いと思われる画像TinEye古い順に並べ替えられ、変更された複製も確実に見つけられる唯一の大手検索エンジンです。
中国語のコンテンツ、または中国でホストされているコンテンツBaidu image searchほかの検索エンジンにはない範囲をカバーしています。

少なくとも3つの検索エンジンを使ってください。結果は常に食い違いますが、その食い違い自体が手がかりになります。TinEye が何年も前の完全一致画像を見つける一方で、Lens が最近の再投稿しか見つけないなら、メディアが再利用されている兆候です。

各検索エンジンが実際に行っていること

Yandex は、顔の要素を強く取り入れた視覚的な類似性で照合します。検索結果ページでは、「この画像を含むサイト」と「類似画像」が別々に表示されます。証拠となるのは前者だけです。切り抜き、回転、大幅な再圧縮への対応は、ほかの検索エンジンより優れています。

Google Lens は、画像全体の重複照合から、「これは何か、何を売れるか」へと軸足を移しています。出典を調査する場合は、視覚的な一致を示すカルーセルではなく、画像を含むページを一覧表示するオプションを使ってください。また、見た目が似ているだけで無関係な写真が、一致する画像として返されることを想定してください。

Bing Visual Search は、この2つの中間に位置します。使う理由は範囲選択ツールです。ダウンロード、切り抜き、再アップロードを繰り返す必要がありません。

TinEye はクロールベースで、対象範囲は比較的小さく、検索結果がゼロになる画像も多くあります。TinEye に見つからなくても、何も証明されません。ほかにはない機能は、完全一致やほぼ同一の画像を照合して古い順に並べ替えられることと、切り抜き、色調変更、透かしの追加が行われた複製を検出できることです。そうした複製は、入力画像と並べて表示されます。

手順

  1. 入力を整えます。 入手できる限り高解像度のコピーを用意します。スクリーンショットではなく、ファイルそのものを使ってください。スクリーンショットは拡大縮小と再圧縮が加わるため、一致率が下がります。まだ何も削除せず、コピーの編集を始める前に、元のファイルに対して secrets-in-file-metadata を実行します。
  2. 全体画像をすべてのエンジンで検索します。 低コストで、すぐに結果が出ることもあります。
  3. 切り抜いて再検索します。 このスキル全体で最も成果が上がる手順です。全体画像のフィンガープリントは背景に大きく左右されます。顔、看板、ロゴ、車両、タトゥー、建物の角などをぴったり切り抜き、それぞれ別々に検索してください。再投稿の際に切り抜きやフレームの調整が行われるため、全体画像では一致しなくても、切り抜き画像では一致することがよくあります。
  4. 水平方向に反転します。 自動照合を回避するために画像を反転するのはよくある手法であり、画面録画や動画の再投稿で生じる一般的な加工でもあります。反転して、同じエンジンで再検索します。
  5. 品質の低い入力は前処理して再試行します。 拡大、ノイズ除去、レベル補正を行います。reference/preprocessing.md を参照してください。
  6. 動画の場合は、キーフレームを抽出し、静止画として検索します。 冒頭、中間、最後のフレームに加え、看板や顔が含まれるフレームも検索します。キーフレームでの一致が、動画の調査の突破口になることがよくあります。
  7. 最も古いものから並べ替えます。 TinEye では、古い順に並べ替えます。その日付は答えではなく上限として扱い、手順 8 に進みます。
  8. 一致したページを確認します。 ページを開き、写真家のクレジット、代理店、キャプション、人物名、ページ上の日付、画像 URL に含まれるファイル名(2019-04-city-event-03.jpg など)、周辺の記事本文を収集します。手がかりはここにあります。

一致だけでなく、最初の公開時期を特定する

最古の既知のコピーの日付は、検索範囲についての主張であり、世の中全体についての主張ではありません。確度を高めるには、次の点を確認します。

  • 一致したページに記載されている日付を read-deleted-pages で確認します。アーカイブにおける URL の初回記録日時は、ページが実際に存在した時期の上限を示します。また、ページに表示されている日付は CMS によって過去や未来に設定されている可能性があります。
  • google-like-a-spy の日付指定検索演算子を使い、同じイベントやキャプションに関する、より早いテキストでの言及を探します。
  • 同じ画像がより高解像度で存在するか確認します。最も高解像度のバージョンは通常、元の画像に最も近く、通信社のコピーは、そのコピーを再投稿した Twitter の画像より大きいはずです。ここでは TinEye の最大画像順の並べ替えが役立ちます。
  • 代表的なストックフォトライブラリを確認します。同じ写真に、3 か国の異なるニュースイベントのクレジットが付いているなら、ストック画像であり、「オリジナル」はライセンスページです。
  • 画像内の透かしや通信社の識別コードは、どのインデックスよりも有力な手がかりです。透かしを切り抜き、それだけを検索します。

顔検索専用エンジンと使用を避けるべき場面

PimEyes と FaceCheck.ID は、オープンウェブをクロールして顔を探し、生体情報の類似性に基づいて照合します。一般的な検索エンジンでは見つけられない人物も見つかります。一方で、実際のリスクも伴います。

  • 顔のテンプレートは GDPR 第 9 条における生体データです。正当な利益だけではなく、明示的な適法根拠が必要な特別カテゴリに該当します。イリノイ州の BIPA とテキサス州の CUBI は、書面による同意なく生体識別子を収集した場合に、私的訴権と法定損害賠償を認めています。
  • PimEyes の利用規約では、自分自身の顔を検索するためのツールとして位置付けられており、オプトアウトも用意されています。意図にかかわらず、第三者の顔を使って検索することは利用規約に違反します。
  • Search4Faces はロシアのソーシャルプラットフォーム上の顔をインデックス化しており、対象者の足跡が VK または Odnoklassniki にある場合に実用的な選択肢です。

記録された許可がある場合、または正当な保護目的がある場合に顔検索を使用してください。たとえば、詐欺事件で取引相手を確認する、対象者の同意を得て本人確認を行う、行方不明者を捜索する、自分自身の情報の露出状況を確認するといった場合です。写真から見知らぬ人を特定したり、抗議活動の群衆の中の顔に名前を結び付けたり、私人の所在を突き止めたりするために使用してはいけません。実行したこととその理由を案件ファイルに記録してください。また、顔検索エンジンのヒットだけでは未確認として扱ってください。そっくりな人物による誤検出はよくあり、エンジンが示す根拠を監査することもできません。

ここで失敗するケース

  • 似ていることは、同一であることを意味しません。 どのエンジンも、「この画像を含むページ」と「これに似た画像」をひとつのビジュアルグリッドに混在させます。証拠になるのは前者だけです。候補を開き、手の位置、布のしわ、反射など、ピクセルレベルの細部を比較して確認してください。
  • 見つからないことが既定であり、結論ではありません。 インデックス化されていない画像、公開されたばかりの画像、ログインが必要な画像、アプリ内だけにある画像は、検索結果に表示されません。「4 つのエンジンすべてで結果なし」というのは、その画像がそれらのインデックスに存在しないことを意味します。オリジナルであることの証拠としては弱く、真正性についてはまったく証拠になりません。
  • ストック写真は帰属の判断を誤らせます。 互いに無関係な 40 のサイトに掲載されている「CEO」の顔写真はストック素材であり、それを使用している組織はおそらく偽物です。これ自体が有力な調査結果になります。
  • AI 生成画像には、探すべき出所がありません。 一致がゼロで、生成画像特有の兆候がある場合は、独立した結果として扱ってください。写真が未公開のオリジナルだと結論付けるのではなく、is-this-photo-real に引き継いでください。
  • エンジンは過去の情報を書き換えます。 検索結果は再現できません。インデックスからページが削除されたり、結果の順序が変わったり、先週見つけたヒットが消えたりすることがあります。結果ページのスクリーンショットを撮り、一致を見つけたらすぐに該当 URL をアーカイブしてください。
  • 切り抜きは逆の方向に誤解を招くことがあります。 草や空の切り抜きでは、確信度は高くても意味のない一致が何千件も返されます。単に写っているものではなく、珍しいものを切り抜いてください。
  • 情報が漏れる可能性があります。 クライアントの画像を商用エンジンにアップロードすると、そのベンダーに開示され、調査対象への関心からあなたが特定される可能性があります。機密性の高い素材の場合は、識別につながる細部を除いた切り抜きを検索するか、検索しないでください。investigate-without-getting-made を参照してください。

確信度の評価

  • オリジナルの出所を確認済み — 他のすべてのコピーより古いページが見つかっており、妥当な発信元(写真家、代理店、対象者本人のアカウント)がホストしています。ページ上の日付は独立したアーカイブの記録によって裏付けられており、より大きい版やより古い版も存在しません。
  • 可能性が高い — エンジン間で最古のコピーが一致し、ホストも妥当ですが、日付の根拠がページ自身の主張だけであるか、その時期のアーカイブ記録がありません。
  • 一致のみ — ある日付までに、ある URL に画像が掲載されていたことを示せます。その事実だけを正確に述べてください。「オリジナル」だと格上げしてはいけません。
  • 未確認 — ピクセルレベルで確認されていない視覚的な類似性、顔検索エンジンのヒット、または再現できなかった単一エンジンの検索結果。

実践例

あるアカウントが「今朝、警察が急襲、[都市名]」というキャプション付きの写真を投稿しています。

Lens で画像全体を検索しても、一般的な機動隊のストック画像しか見つかりません。Yandex では似た警察の写真が十数件見つかりますが、どれも一致しません。TinEye では結果がありません。TinEye のインデックスは小さいため、この結果は情報がないものとして扱います。

肩章を切り抜き、Bing の範囲選択を使って再検索します。キャプションにある国とは別の国の自治体警察と判読できます。

背景にある店の看板を切り抜き、Lens で OCR を行って、店名をテキスト検索します。検索結果は2件で、どちらもその別の国にある通りです。画像検索自体は行き詰まりましたが、テキストを手掛かりに検索したことで見つかりました。

店先を切り抜いた画像で Yandex を再検索すると、3年前のニュースギャラリーが見つかります。同じ通り、同じ店のひさし、同じバリケードの配置です。写真家のクレジットも記載されています。アーカイブには、記載された日付の2日後にそのギャラリーページが保存された記録があり、これが裏付けになります。

結論:この画像が、主張されている出来事より何年も前に別の国で公開されていたことは、確認済みです。捏造ではなく、文脈を変えて提示されたものです。場所の特定は geolocate-from-pixels に、写真家のクレジットは find-anyone に引き継ぎます。

手掛かりの引き継ぎ先

得られた情報引き継ぎ先
場所、街並み、店先geolocate-from-pixels
名前が判明している人物、写真家のクレジットfind-anyone
公開元のサイトまたは代理店のドメインwho-owns-this-domain
消失または改変された一致ページread-deleted-pages
キャプションのテキスト、店名、ファイル名のスラッグgoogle-like-a-spy
改ざんまたは生成の疑いis-this-photo-real
投稿アカウント、別の場所で再利用されたアバターhunt-a-handle、pattern-of-life-from-socials
写真や動画の位置特定を含む調査案件where-was-this-taken

検索エンジンごとの選択の詳細: reference/engine-matrix.md。

コメント