類似画像検索にLLMを利用する。
画像の類似度って難しいですよね?
同じものを表しているのに、画像としては全然違うものだからEmbeddingしてコサイン類似度を測ると遠くなることがよくあります。
なので、商品や動物などの物体を比較する場合は画像の類似度はあてになるけど、スポーツやビジネスシーン等の状況や場面の類似度は難しいという課題がありました。
例としてスポーツを見てみましょう。
以下の4枚の画像の類似度を出します。
画像1~3は野球で、画像4はバスケの画像です。
とりあえずAugNetで類似度を出しましょう。
結果
この結果を見ると一番似ているのは、画像1と画像4です。
野球画像の画像1~3同士は近く、画像4は他と遠くなって欲しい場合はどうしましょうか?
そこでLLMを使ってみます。
ChatGPTのSceneXplainを使います。
SceneXplainはChatGPTのプラグインで、画像のURLを入れると説明をしてくれます。
例えば、画像1ですと、以下のような説明になります。
画像が粗いせいか、ビデオゲームと認識されていますが、野球であることはちゃんと文章で表現してくれています。
同様に他の画像も説明してもらいましょう。
勘のいい人はもう何をしたいか気づいていると思いますが、この説明を使ってNLPのEmbeddingでコサイン類似度を出します。
今回は、T5のSentence Embeddingを使います。
参考:
結果
画像1と一番近いのは、画像3,
画像2と一番近いのは、画像3
画像3と一番近いのは、画像1
となり、意図した結果となりました。
まとめ
今回はそこまでまともに検証はしてないですが、期待できる結果が得られました。
状況や場面等の画像の場合はLLMに説明をさせ、その説明でNLPで類似度を測るというのは場合によっては有効そうです。
その他
今回は、Embeddingしてコサイン類似度を出しましたが、次のようなプロンプトだと、画像を構造化するメタデータの作成もできそうです🤔
↓今すぐフォローすべきキラキラアカウント
↓今すぐ登録すべきキラキラサービス
じゃあの。
この記事が気に入ったらサポートをしてみませんか?