You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决AWS Rekognition中多个人脸BoundingBox重复打印首个的问题?

解决AWS Rekognition多个人脸BoundingBox打印问题

嘿,我一眼就看出你代码里的问题啦!你当前的循环逻辑完全搞错了方向,才会导致不管循环多少次都只输出第一个人脸的BoundingBox。

问题根源

你遍历的是整个response对象,而不是里面存储所有人脸信息的FaceDetails列表;而且手动固定了i=0,每次循环都硬取第一个人脸的数据,自然重复输出同一个结果。

正确解法

直接遍历response['FaceDetails']这个列表就好——列表里的每一个元素都对应一张人脸的完整详情,包括它的BoundingBox属性,根本不需要手动维护索引变量。

修正后的代码示例

# 遍历所有人脸详情
for face_detail in response['FaceDetails']:
    print('Found face at...')
    bbox = face_detail['BoundingBox']
    # 打印BoundingBox的各项参数
    print(f"BoundingBox Width: {bbox['Width']}%")
    print(f"BoundingBox Height: {bbox['Height']}%")
    print(f"BoundingBox Left: {bbox['Left']}%")
    print(f"BoundingBox Top: {bbox['Top']}%")
    print('---')  # 分隔不同人脸的信息

如果想同时标注人脸的序号(比如第1张、第2张),可以用enumerate函数来获取索引:

# 带序号的遍历,start=1让序号从1开始计数
for face_num, face_detail in enumerate(response['FaceDetails'], start=1):
    print(f'Found face {face_num} at...')
    bbox = face_detail['BoundingBox']
    # 保留两位小数让输出更整洁
    print(f"Width: {bbox['Width']:.2f}%")
    print(f"Height: {bbox['Height']:.2f}%")
    print(f"Left: {bbox['Left']:.2f}%")
    print(f"Top: {bbox['Top']:.2f}%")
    print('---')

这样不管图片里有几张人脸,都会逐个输出它们的BoundingBox信息啦!

内容的提问来源于stack exchange,提问作者H.Dai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:35:45