This topic answers frequently asked questions about image management in Intelligent Media Management (IMM).
Image limit per dataset
Yes. The number of images in a dataset cannot exceed its configured file quota. For more information, see Quotas.
Designing dataset granularity
Search queries and face clustering are not supported across datasets. We recommend that you partition your data based on this constraint. For example, in a cloud photo album application, create a separate dataset for each end user.
Why face clustering fails to create groups
To ensure accurate face clustering, you must meet the following requirements:
-
Use the IndexFileMeta operation to add images to the dataset.
-
The dataset must contain at least three high-quality face images of the same person that meet the following criteria:
-
The face size is larger than 75 × 75 pixels.
-
The absolute value of each of the three elements in the
HeadPoseparameter is less than 30°. -
The
FaceQualityvalue is greater than 0.8.
-
After a face group is created, other images in the dataset that do not meet these high-quality criteria may still be clustered into the same group.
Querying images in a face group
Call the SimpleQuery operation with the face group ID in the Query parameter to retrieve the list of images in the group, as shown in the following example.
You can call the QueryFigureClusters operation to get the FigureClusterId, which is the face group ID, from the FigureClusters parameter in the response.
{
"Field ": "Figures.FigureClusterId ",
"Operation ": "eq ",
"Value ": "your-face-group-id"
}
New face groups not appearing in search results
Metadata indexing is an asynchronous process. It takes time for image indexing, face clustering, and search availability to complete. When designing your application logic, consider the potential for data consistency issues caused by this delay.
-
Image indexing: Calling the IndexFileMeta operation to index an image typically takes about 10 seconds.
-
Face clustering: Calling the CreateFigureClusteringTask operation to perform face clustering can take up to 180 seconds. The actual time depends on the number of images indexed in a single batch but usually completes in a few seconds.
ImportantThe
CreateFigureClusteringTaskoperation depends on theIndexFileMetaoperation to detect faces in images. If you use Message Service (MNS) to subscribe to the results of theIndexFileMetacall, wait at least 10 seconds after theIndexFileMetacall completes before callingCreateFigureClusteringTask. This ensures thatCreateFigureClusteringTaskcan access the latest face information. -
After asynchronous operations like
IndexFileMetaandCreateFigureClusteringTaskcomplete, it may take up to 10 seconds for theSimpleQueryoperation to return the latest results.
Call CreateFigureClusteringTask for each indexed image?
This is not recommended. The CreateFigureClusteringTask operation performs incremental clustering. You can call it once to process a batch of newly indexed images. Consider the following two approaches:
-
Simple approach: For each dataset, call the
CreateFigureClusteringTaskoperation at a fixed interval, such as every 5 minutes. -
Recommended approach: Each time you call the IndexFileMeta operation, push the corresponding dataset into a delayed queue. Periodically retrieve the
DatasetNamefrom this queue to identify datasets with new images. Call theCreateFigureClusteringTaskoperation 10 seconds after the most recentIndexFileMetacall for that dataset.
Grouping multiple people in one image
Face clustering operates at the individual face level. If an image contains multiple people, each face is independently evaluated and may be assigned to a different face group.
Why SimpleQuery results include other faces
The SimpleQuery operation returns results at the image level, returning all faces and tags within a matching image. To find the specific face information for the person you searched for, iterate through the Figures field in the response. Retrieve the face object where the FigureClusterId matches the one in your query. This object will contain details like the face's position, expression, and age.
How to get CreateFacesSearchingTask results without notifications
The CreateFacesSearchingTask operation delivers results only through notifications. The GetTask operation can query the task status but cannot retrieve the search results.
Does calling CreateStory again modify an existing story?
When you call the CreateStory operation, if you do not pass the ObjectId parameter, a new story is created. If you pass an ObjectId, the existing story with that ID is updated.
Does image stitching support AI processing?
No. It does not support AI processing. It performs a simple image merge without content analysis.