Fessで画像検索

そのうち、やりたいなーと思っていた画像検索の機能をプラグインとして作ってみました。

fess-webapp-multimodalプラグインにその機能をまとめましたが、マルチモーダルということで、最終的には画像に限らず、音声や動画も対象にできれば、良いなぁという感じで、そのような名前にしてあります。現時点では、画像しか対象にできていませんが。

画像検索については、CLIPにより、テキストと画像の埋め込みベクトルを作成して、OpenSearchでベクトル検索する感じになっています。

CLIPは、OpenAIが開発したモデルで、テキストと画像の関係を学習するために使用されます。具体的には、テキストと画像のペアを大量に学習することで、画像の内容をテキストで表現したり、テキストに基づいて関連する画像を検索することができます。これにより、テキストと画像の間の意味的な類似性を理解し、それぞれの意味で一致するものを検索できるので、このプラグインで利用しています。

Open Images Datasetの画像を利用して、試してますが、red carとかで検索すれば、赤い車がヒットしますし、running dogとかだと走っている犬の画像がヒットするので、期待通りな感じでした。(始めに間違って、距離計算をL2にしていたら、微妙な感じで焦りましたが、コサイン類似度に変えたらいい感じになった)

今回の実装は、Fess 14.15に依存している部分があるので、次のリリースで、docker-multimodalsearchみたいな感じで、まとめようかと思います。(Fessのセマンティックサーチのdocker-semanticsearchみたいな感じで)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です