- By BPR
- 0 comments
BEST PATH RESEARCH は、プライバシーを重視した iOSアプリのプロトタイプを開発しました。このアプリでは、ユーザーはサーバーにデータを送信することなく、Appleデバイスに保存されているすべての写真をローカルに検索することができます。 インデックス作成と検索はすべてユーザーのモバイルデバイス上で行われ、「機内モード」 でも実行できるため、ユーザーのデータの安全性を完全に確保することができます。
以下のデモアプリ画面では、iPhone12 で 45,000 枚以上の画像をリアルタイムにインデックスするスピードと、英語の自然言語検索クエリを使用して最も関連性の高い写真を返す 2 つの例を紹介していますのでご覧ください。
このアプリで使われている技術は、OpenAIが2020年にリリースした CLIP(Contrastive Language-Image Pre-training)という画像とテキストエンコーダがベースになっています。 CLIPのテキストエンコーダは英語版のみですが、これを40ヶ国語に対応したマルチリンガルテキストエンコーダとして拡張し、アプリの検索機能を同じ 40ヶ国語に拡張しています。
まず、CLIPの画像モデルを用いて各写真の画像「埋め込み」ベクトルを生成し、端末内の全写真のインデックスを作成します。この画像ベクトルには、非常に高性能なオープンソースの最近傍ベクトルデータベースライブラリである NGTを使用し、iOS上で動作するように特別に改良しました。 インデックスが構築されると、自然言語のテキストクエリを使用して画像コレクションを検索することができます。クエリ時に、各テキストクエリは同様にCLIPテキストモデル (実際にはオリジナルの CLIP テキストモデルの修正多言語版)を使用してベクトル埋め込みに変換され、NGTが返す距離を使用して、ベストマッチングの画像のランク付けされた リストを作成し、ユーザーに表示されます。 このようなベクトルベースのインデックス作成・検索手法の興味深い点は、従来の検索システムでは通常役に立たない形容詞(「赤い」「大きい」など)や動詞(「走る」「飲む」など) をユーザーが指定できることです。 この機能により、ユーザーは、漠然とした記憶しかない写真を絞り込むことができるようになります。
技術的には、精度よりも再現率を優先し、たとえ上位に表示されなくても、関連性の高い少数の結果を返すことで、ユーザーが探していた写真を素早く簡単に選択できることを期待しています。 将来的には、アプリを拡張して画像間検索もできるようにする予定です。例えば、ユーザーが撮った写真や既存の画像を選択したりすると、カメラロールにある画像の中から最も似ているものをすべて探し出すことができます。
iOS 上でこのような印象的なリアルタイム性能を得るために、BEST PATH RESEARCH は PyTorch のモデルトレースとサイズ縮小の知識を応用して、CLIP エンコーダモデルをAppleのCoreMLフォーマットに変換しました。NGTの高速な最近接ベクトルマッチング能力と組み合わせることで、ミッドレンジのモバイルデバイスで巨大な画像コレクションの検索をリアルタイムで実行することができました。
残念ながら、OpenAIのモデルに関するライセンスの問題で、このデモアプリを一般に公開することはできません。しかし、私たちが使用した技術に興味を持たれた方は、デモや期間限定のアプリの試用、あるいは BEST PATH RESEARCH があなたのモデル開発、変換、実装のニーズに対してどのようなお手伝いができるか相談するために、お気軽に私たちにご連絡ください。