このトピックでは、Intelligent Media Management (IMM) におけるイメージ管理に関するよくある質問に回答します。
データセットあたりのイメージ数の上限
はい。データセット内のイメージ数は、設定されたファイルクォータを超えることはできません。詳細については、「クォータ」をご参照ください。
データセットの粒度設計
検索クエリおよび顔クラスタリングは、データセットをまたいでサポートされていません。この制約に基づいてデータをパーティション分割することを推奨します。たとえば、クラウドフォトアルバムアプリケーションでは、各エンドユーザーごとに個別のデータセットを作成してください。
顔クラスタリングでグループが作成されない理由
正確な顔クラスタリングを実現するには、以下の要件を満たす必要があります。
-
IndexFileMeta 操作を使用して、データセットにイメージを追加します。
-
データセットには、同一人物の高品質な顔イメージが少なくとも 3 枚含まれている必要があります。これらのイメージは以下の条件を満たす必要があります。
-
顔のサイズが 75 × 75 ピクセルより大きいこと。
-
HeadPoseパラメーターの 3 つの要素それぞれの絶対値が 30° 未満であること。 -
FaceQuality値が 0.8 より大きいこと。
-
顔グループが作成された後、これらの高品質基準を満たさないデータセット内の他のイメージも、同じグループにクラスタリングされる可能性があります。
顔グループ内のイメージのクエリ
Query パラメーターに顔グループ ID を指定して SimpleQuery 操作を呼び出すことで、そのグループに含まれるイメージの一覧を取得できます。次の例をご参照ください。
QueryFigureClusters 操作を呼び出すことで、応答の FigureClusters パラメーターから顔グループ ID である FigureClusterId を取得できます。
{
"Field ": "Figures.FigureClusterId ",
"Operation ": "eq ",
"Value ": "your-face-group-id"
}
新しい顔グループが検索結果に表示されない理由
メタデータのインデックス作成は非同期プロセスです。イメージのインデックス作成、顔クラスタリング、および検索可用性の完了には時間がかかります。アプリケーションロジックを設計する際は、この遅延によって生じる可能性のあるデータ整合性の問題を考慮してください。
-
イメージのインデックス作成:IndexFileMeta 操作を呼び出してイメージをインデックス作成するには、通常約 10 秒かかります。
-
顔クラスタリング:CreateFigureClusteringTask 操作を呼び出して顔クラスタリングを実行するには、最大で 180 秒かかる場合があります。実際の所要時間は一度にインデックス作成されるイメージ数によりますが、通常は数秒で完了します。
重要CreateFigureClusteringTask操作は、イメージ内の顔を検出するためにIndexFileMeta操作に依存しています。Message Service (MNS) を使用してIndexFileMeta呼び出しの結果をサブスクライブする場合は、IndexFileMeta呼び出しが完了してから少なくとも 10 秒待ってからCreateFigureClusteringTaskを呼び出してください。これにより、CreateFigureClusteringTaskが最新の顔情報を確実に取得できるようになります。 -
IndexFileMetaやCreateFigureClusteringTaskなどの非同期操作が完了した後、SimpleQuery操作が最新の結果を返すまでに最大で 10 秒かかる場合があります。
インデックス作成された各イメージに対して CreateFigureClusteringTask を呼び出す必要があるか?
これは推奨されません。CreateFigureClusteringTask 操作は増分クラスタリングを実行します。新しくインデックス作成されたイメージのバッチを一度に処理するために、この操作を 1 回呼び出すことができます。以下の 2 つのアプローチを検討してください。
-
シンプルなアプローチ:各データセットに対して、5 分ごとなど一定の間隔で
CreateFigureClusteringTask操作を呼び出します。 -
推奨されるアプローチ:IndexFileMeta 操作を呼び出すたびに、対応するデータセットを遅延キューにプッシュします。定期的にこのキューから
DatasetNameを取得し、新しいイメージが追加されたデータセットを特定します。そのデータセットに対する最新のIndexFileMeta呼び出しから 10 秒後にCreateFigureClusteringTask操作を呼び出します。
1 枚のイメージ内に複数人の人物をグループ化
顔クラスタリングは個々の顔単位で動作します。1 枚のイメージ内に複数人の人物が含まれている場合、各顔は独立して評価され、異なる顔グループに割り当てられる可能性があります。
SimpleQuery の結果に他の顔が含まれる理由
SimpleQuery 操作はイメージ単位で結果を返すため、一致したイメージ内のすべての顔およびタグが返されます。検索対象の人物に関する特定の顔情報を取得するには、応答の Figures フィールドを繰り返し処理します。クエリで指定した FigureClusterId と一致する顔オブジェクトを取得してください。このオブジェクトには、顔の位置、表情、年齢などの詳細が含まれています。
通知なしで CreateFacesSearchingTask の結果を取得する方法
CreateFacesSearchingTask 操作は、通知を通じてのみ結果を配信します。GetTask 操作ではタスクのステータスをクエリできますが、検索結果を取得することはできません。
CreateStory を再度呼び出すと既存のストーリーが変更されるか?
CreateStory 操作を呼び出す際、ObjectId パラメーターを渡さない場合は新しいストーリーが作成されます。ObjectId を渡すと、その ID を持つ既存のストーリーが更新されます。
イメージの結合は AI 処理をサポートしているか?
いいえ。AI 処理はサポートしていません。コンテンツ分析を行わず、単純なイメージのマージを実行します。