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

调用face_recognition.face_encodings()出现IndexError:列表索引越界

解决 face_recognition.face_encodings() 返回空列表导致的 IndexError

你遇到的IndexError: list index out of range,本质是face_recognition.face_encodings(lmm_image)没有检测到任何人脸,返回了空列表,这时用[0]去索引自然会报错。下面我帮你拆解可能的原因和对应的解决办法:

可能的原因

  • 图片中无有效人脸:你的目标图片wajah_depan_syahdan.jpg里可能没有清晰、完整的人脸,或者人脸占比太小、过于模糊,导致dlib的人脸检测器无法识别。
  • 人脸被遮挡:图片里的人脸被口罩、墨镜、帽子或其他物体严重遮挡,超出了检测器的识别范围。
  • 图片路径错误:脚本没有正确加载目标图片——比如图片不在当前工作目录,你用了相对路径但路径不对,导致加载的是一张空图或者错误的图片。
  • 图片损坏/格式异常:图片文件本身损坏,或者格式不被支持(虽然JPG一般没问题,但特殊编码的图片可能无法被正确解析)。

解决办法

1. 先确认图片内容和加载状态

打开wajah_depan_syahdan.jpg,检查是否有清晰无遮挡的人脸。同时在代码里加一行打印,确认图片是否成功加载:

import face_recognition
import cv2

lmm_image = face_recognition.load_image_file("wajah_depan_syahdan.jpg")
print("图片形状:", lmm_image.shape)  # 正常输出应该是 (高度, 宽度, 3)

如果输出不是类似(xxx, xxx, 3)的格式,说明路径错误,你需要改用绝对路径加载图片,比如:

# Windows示例
lmm_image = face_recognition.load_image_file("C:/your_project_path/wajah_depan_syahdan.jpg")
# Linux/macOS示例
lmm_image = face_recognition.load_image_file("/home/your_username/your_project_path/wajah_depan_syahdan.jpg")

2. 先检测人脸位置,确认是否能被识别

在提取编码前,先用人脸定位函数确认检测器是否能找到人脸:

face_locations = face_recognition.face_locations(lmm_image)
print(f"检测到的人脸数量:{len(face_locations)}")

如果输出是0,说明确实检测不到人脸,你需要:

  • 换一张人脸清晰、无遮挡的图片;
  • 对原图片进行预处理:比如裁剪出人脸区域、调整亮度/对比度,让人脸更明显;
  • 调整检测参数,提高精度:
# 增加采样次数和上采样次数,提升检测率
face_locations = face_recognition.face_locations(lmm_image, number_of_times_to_upsample=2)
lmm_face_encodings = face_recognition.face_encodings(lmm_image, face_locations=face_locations, num_jitters=10)

3. 修改代码,避免直接索引空列表

为了避免程序崩溃,建议先判断编码列表是否为空,再进行后续操作:

lmm_image = face_recognition.load_image_file("wajah_depan_syahdan.jpg")
lmm_face_encodings = face_recognition.face_encodings(lmm_image)

if not lmm_face_encodings:
    print("错误:未在目标图片中检测到人脸,请检查图片内容!")
    # 这里可以添加退出程序或其他处理逻辑
    exit()

lmm_face_encoding = lmm_face_encodings[0]
known_faces = [lmm_face_encoding]

4. 检查图片完整性

如果图片看起来正常但无法被识别,可以尝试用图片查看器重新保存为标准JPG/PNG格式,排除文件损坏的可能。

内容的提问来源于stack exchange,提问作者Maqhfira Putri Rachmat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:26