【要約】数万枚のイラストからAIを使って理想のイラストを探す画像検索エンジンを作ってみた話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、数万枚規模のイラストコレクションから、特定の属性や絵柄を効率的に抽出できない問題に直面した。
- ・CLIPを用いた直接比較では、日本語非対応や、画像全体の構図に局所的特徴が埋もれる課題があった。
- ・汎用CLIPはアニメドメインに最適化されておらず、AI生成画像特有のパターンにより類似度が飽和した。
- ・グラム行列によるスタイル抽出は、チャンネル間の相関計算により次元が膨大になり、VRAM不足を招いた。
// Approach
検索精度と計算リソースの制約を両立させるため、以下の複数の手法を検討し、採用した。
- ・タグ付けによる情報の圧縮:WD14 Taggerを用いて画像をテキスト化し、局所的な特徴を比較可能にした。これによりマルチモーダルの問題を解決した。
- ・AdaINによるスタイル抽出:チャンネルの平均と標準偏差のみを用いるAdaINを採用し、メモリ消費を抑制した。これにより、限られたVRAMでの動作を実現した。
- ・ベクトル空間の補正:対称的な単語による誤判定を防ぐため、クエリリストをハードコーディングした。
// Result
手法の導入により、検索精度の向上と計算リソースの最適化を同時に実現した。
- ・タグ付けアプローチにより、類似度スコアが最大95%以上に達した。
- ・AdaINの導入により、8GBのVRAM環境でも絵柄検索が可能となった。
- ・AI生成画像特有の類似度飽和に対し、適切な閾値設定で対応した。
- ・今後は、色の語彙力を拡張し、より微細な属性検索の実現を目指す。
Senior Engineer Insight
> 汎用モデルのドメイン不一致と、高次元計算によるリソース枯渇という、実戦的な課題への対処が示されている。特に、グラム行列からAdaINへの切り替えは、限られたVRAMでの運用を考慮した現実的な判断だ。ただし、タグ付けの語彙力依存や、AI生成画像による特徴量の飽和は、大規模運用時の検索品質を左右する。実戦投入には、ドメイン特化型の学習や、より高度な色空間の制御が必要になるだろう。