概念と用語

このページでは、ユーザーがサービスをよりよく理解するために、AnySeeで使用されている概念と用語の説明を提供します。

データ/エンティティ (Entities)

エンティティは、エンティティの識別子として、構造化されたべクトルデータフィールドを含むデータのタイプです。
エンティティには、異なるエンドポイントとデータ構造になっている場合があります。

2022年8月現在、AnySeeは、以下のエンティティタイプを提供しています。

📘

日本語ページの表記について

このガイドでは、日本語を理解しやすいために、「顔エンティティ」を「顔データ」として表記しています。
適宜読み替えてご利用ください。


モデル (Models)

モデルとは、アップロードされた画像を処理するAIコンピュータービジョンのモデルを指定する列挙型の文字列です。一方、モデルは、いくつかのモジュールによって構成され、それぞれが画像処理中に特定の役目を担当します。そのプロセスは検出モジュールから始まり、中間の出力を取得するために、アライメント、ぼやけさ、ポーズのモジュールで処理する必要があります。これらの出力を使用して、顔の特徴と顔の属性をそれぞれ抽出できます。アライメントとぼやけさからのアウトプットを利用して、品質情報も計算できます。ただし、品質情報計算の部分は厳密には、モデルの一部ではありません。

1040

顔モデルの処理フロー

IMAGEのすべてのモデルは事前トレーニング済みの静的モデルであり、オンラインでの再トレーニングを実行しません。ユーザーは、画像をアップロードするAPIをコールする際に、モデルを指定する必要があります。

ほとんどの場合、1つのモデルで処理できるデータタイプは1つのみです。間違ったモデルを指定すると、エラーが通常発生します。ただし、成功したとしても、認証の正確性は保証できません。

異なるモデルによって生成されたベクトルは、同じエンティティタイプに属していても、互換性がありません。AnySeeには画像が保存されないため、別のモデルに切り替えるには、すべての元画像を再登録する必要があります。将来モデルをアップグレードする予定があるお客様は、ご自身のサービスに画像データを保管してください。

モデルごとに、入力画像の要件が異なります。各エンティティタイプの画像の詳細ページを参照してください。

2023年6月現在、AnySeeは、以下のモデルを提供しています。

  • JCV_FACE_K25000
  • JCV_FACE_J10000

ベクトル (Vectors)

ベクトル (または特徴ベクトル) は、多次元の定量的データセットです。画像認識のプロセスでは、モデルが入力画像を処理し、特徴ベクトルを出力します。

522

ベクトル生成のイメージ

抽出された特徴ベクトルは、多次元の浮動小数点数タイプで構成されたベクトルで、画像に含まれるエンティティの抽象的な識別子になります。特定の類似度関数(通常はコサイン類似度とユークリッド距離)を適用すると、エンティティ間の類似度を定量化できます。


検索 (Search)

一部のユースケースでは、事前に作成されたデータグループの中で、最も類似したデータを見つけたい機能が必要としています。その目的を達成するには、すべてのデータペアを使い果たして、それぞれ類似性スコアを計算するで実現できますが、大量な計算リソースを消費します。ほとんどの場合では、検索時間を短縮するために近似最近傍探索アルゴリズム(ANN Search)が採用されています。

アルゴリズムは、全部のペアを計算するわけではありません。そのため、適切なアルゴリズムは、リコール率とパフォーマンスのバランスを取る必要があります。AnySeeでは、最新のHNSW(Hierarchical Navigable Small World)のカスタマイズ版を使用しています。100万個のベクトル対象の検索では、25ミリ秒の検索時間以内に、ほぼ100%に近いリコール率を実現しています。

676

HNSWの概念図
引用元:Malkov, Yury A., and Dmitry A. Yashunin. "Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs." IEEE transactions on pattern analysis and machine intelligence (2018).

近似最近傍探索アルゴリズムの詳細については、Ann-Benchmarksを参照してください。


インデックス (Indexing)

他のデータベース サービスと同様に、AnySeeはインデックスを使用して、迅速かつ正確なデータ検索を実現しています。基本的に、固定フィールドはインデックス化されていますが、カスタマイズフィールドはインデックス化されていません。この構成により、検索およびリスト機能での事前フィルター処理など、さまざまな柔軟で高性能な検索オプションが可能になります。このドキュメントでは、すべてのフィールドにインデックス条件の説明が付けられています。

一部のVSS(ベクトル保存検索エンジン)は、インデックスの再作成なしでは、リアルタイムでベクトルの更新または削除することはできません。そのインデックスの再作成プロセスは、サービスを停止することが必要です。
AnySeeは、サービスを停止することなくベクトルのリアルタイム操作を提供し、検索で既に削除されたデータを返す危険性を排除しています。