文档

图片管理常见问题

更新时间:

本文介绍使用智能媒体管理过程中可能遇到的图片管理相关问题。

数据集图片数量是否有限制?

数据集图片数量不能超过数据集设置的最大文件数量。其他限制信息,请参见限额配置

数据集的粒度如何设计?

不支持跨数据集进行搜索查询和人脸聚类,建议以此为依据进行划分。例如云相册场景,建议每个终端用户创建一个媒体集。

人脸聚类为什么无法生成人脸分组?

为了确保人脸分组的准确性,生成分组需要满足如下条件:

  • 使用IndexFileMeta - 索引文件元信息接口将图片添加到数据集。

  • 同一个人物在媒体集中的图片必须大于或等于3张,并且至少有3张符合如下标准的高清人脸图片:

    • 人脸尺寸大于75×75像素。

    • 人脸的偏转角HeadPose的三个子项的绝对值均小于30°。

    • 人脸的质量FaceQuality大于0.8。

分组生成后,数据集中不满足上述高清人脸标准的图片,也有机会被划分为同一组人脸。

如何查询某个人脸分组中的图片列表?

调用SimpleQuery - 简单查询接口,在参数Query传入分组ID,可以查询分组中的图片列表,具体内容如下所示。

说明

您可以调用QueryFigureClusters - 查询人物聚类接口获取FigureClusters参数中的ObjectId,即为分组ID。

{
  "Field ": "Figures.FigureClusterId ",
  "Operation ": "eq ",
  "Value ": "人脸分组ID"
}

为什么生成的人脸分组无法搜索到?

由于元数据索引机制为异步处理,从图片索引、人脸分组、人脸分组能被搜索到均需要一定的时间,所以在设计业务逻辑时,请考虑延迟带来的数据一致性问题。

  • 图片索引:通常调用IndexFileMeta - 索引文件元信息接口对图片进行索引需要10秒 。

  • 人脸分组:调用CreateFigureClusteringTask - 创建人物聚类任务接口进行人脸聚类分组操作最多需要180秒。时间和单次索引的图片数量有关,一般数秒完成。

    重要

    CreateFigureClusteringTask接口依赖IndexFileMeta接口完成图片中人脸的检测。如果您使用MNS消息订阅了IndexFileMeta接口调用返回结果,则应当在IndexFileMeta接口调用完成后,至少等待10秒再调用CreateFigureClusteringTask接口,以便CreateFigureClusteringTask接口能够获得最新的图片中的人脸信息。

  • 调用IndexFileMeta、CreateFigureClusteringTask等异步接口完成后,您可以通过SimpleQuery接口搜索到最新结果的时间间隔为10秒。

每次索引图片后都需要调用一次CreateFigureClusteringTask接口吗?

不建议如此操作。CreateFigureClusteringTask - 创建人物聚类任务接口为增量分组接口,您可以在一批图片完成索引后,一次性调用CreateFigureClusteringTask接口来进行批量聚类。推荐如下两个方案:

  • 简单方法:对每一个数据集,每隔固定间隔(例如5分钟)调用一次CreateFigureClusteringTask接口进行聚类。

  • 更佳方案:每次调用IndexFileMeta - 索引文件元信息接口时,将对应的数据集推入一个延迟队列,定时从该队列中获取DatasetName,即可得到有新图片的数据集。在最后一次调用IndexFileMeta接口的10秒后调用CreateFigureClusteringTask接口。

一张图片中有很多人会怎么分组?

人脸聚类是按照人脸的维度来分组的,如果一张图片中有多个人物,每个人脸均有机会被分到某个组。

SimpleQuery接口按照聚类分组(FigureClusterId)搜索,为什么返回结果中有其他人脸?

SimpleQuery接口返回的维度是图片,因此图片内的所有人脸、标签均会被返回。如果需要找到图片中所搜索的组(人物)的人脸信息,请通过遍历结果中的Figures字段,并检索其中的FigureClusterId和您搜索的FigureClusterId一致的人脸Object,即可了解对应人脸的位置、表情、年龄等信息。

  • 本页导读 (1)