このトピックでは、Intelligent Media Management (IMM) の画像管理に関するよくある質問への回答を提供します。
IMMはデータセット内の画像数を制限しますか?
はい。データセット内の画像数は、データセットに含めることができるファイルの最大数を超えることはできません。詳細については、クォータを参照してください。
データセットの粒度を決定するにはどうすればよいですか?
ビジネス要件に基づいてデータセットの粒度を決定することをお勧めします。また、検索クエリと顔クラスタリングはデータセット間ではサポートされていないことに注意してください。たとえば、クラウドアルバムアプリケーションでは、エンドユーザーごとに個別のデータセットを作成します。
顔クラスタリングで顔画像のグループ化が失敗するのはなぜですか?
顔画像グループを作成するための要件が満たされていないため、エラーが発生します。顔のグループ化の精度を高めるには、顔画像グループを作成するために次の要件を満たす必要があります。
IndexFileMeta オペレーションを使用して、顔画像をデータセットに追加します。
データセットには、次の要件を満たす同一人物の顔画像が少なくとも3つ含まれています。
画像の顔部分は75×75ピクセルより大きくなっています。
HeadPoseパラメーターの3つの要素の絶対値はすべて30未満です。
FaceQualityパラメーターの値は0.8より大きくなっています。
顔画像グループが作成された後、上記の要件を満たさない顔画像もグループに追加される場合があります。
顔画像グループ内の画像をクエリするにはどうすればよいですか?
顔画像グループ内の画像をクエリするには、SimpleQuery オペレーションを呼び出し、Query
パラメーターに顔画像グループのIDを指定します。
顔画像グループのIDをクエリするには、QueryFigureClusters オペレーションを呼び出し、レスポンスの FigureClusters
パラメーターから ObjectId の値を取得します。
{
"Field ": "Figures.FigureClusterId ",
"Operation ": "eq ",
"Value ": "顔画像グループID" // Face image group ID
}
作成された顔画像グループが見つからないのはなぜですか?
メタデータのインデックス作成には、非同期処理メカニズムが使用されます。画像のインデックス作成、顔のグループ化、および顔画像のクエリには、完了するまでに時間がかかります。ビジネスアプリケーションのロジックを設計する際には、遅延に関連するデータ整合性の問題を考慮してください。
画像のインデックス作成:IndexFileMeta オペレーションは、画像のインデックス作成に約10秒かかります。
顔のグループ化:CreateFigureClusteringTask オペレーションは、顔画像のグループ化に最大180秒かかります。実際の時間は一度にインデックスを作成する画像の数によって異なり、ほとんどのシナリオでは数秒です。
重要CreateFigureClusteringTaskオペレーションは、顔検出を実現するためにIndexFileMetaオペレーションに依存しています。メッセージサービス(MNS)を使用してIndexFileMetaリクエストへのレスポンスをサブスクライブする場合は、IndexFileMetaオペレーションを呼び出す前に少なくとも10秒待機してください。これにより、CreateFigureClusteringTaskオペレーションは最新の顔情報を取得するのに十分な時間を持つことができます。
非同期のIndexFileMetaオペレーションとCreateFigureClusteringTaskオペレーションが完了した後、10秒待ってからSimpleQueryオペレーションを呼び出して最新の 結果を取得します。
画像をインデックスするたびにCreateFigureClusteringTaskオペレーションを呼び出す必要がありますか?
いいえ、画像がインデックスされるたびにCreateFigureClusteringTaskオペレーションを呼び出す必要はありません。複数の顔画像をインデックスした後、CreateFigureClusteringTask オペレーションを呼び出して、インデックス付き顔画像のバッチクラスタリングを実行できます。次のソリューションをお勧めします。
ソリューション1:CreateFigureClusteringTaskオペレーションを各データセットに対して5分ごとなどの定期的な間隔で呼び出します。
ソリューション2:IndexFileMeta オペレーションを呼び出すたびに、対応するデータセットを遅延キューに追加します。キューから
DatasetName
の値を定期的に取得して、増分画像を含むデータセットをクエリします。IndexFileMetaオペレーションの最後の呼び出しから10秒後にCreateFigureClusteringTaskオペレーションを呼び出します。このソリューションをお勧めします。
顔クラスタリングタスクの画像に異なる人物の顔が含まれている場合はどうなりますか?
画像に異なる人物の顔が含まれている場合、各顔がグループに追加される場合があります。これは、顔クラスタリングが顔レベルで実行されるためです。
SimpleQueryオペレーションが指定された顔グループに属さない顔を返すのはなぜですか?
SimpleQueryは画像レベルで結果を返します。画像内のすべての顔とラベルが返されます。顔の位置、表情、年齢など、顔画像グループまたは人物に関する顔情報をクエリするには、すべての結果の Figures
フィールドをトラバースし、FigureClusterId
の値がリクエストで FigureClusterId
に指定された値と同じである結果を取得します。