Python 索引器:列表索引超出范围/Facenet

Python 索引器:列表索引超出范围/Facenet,python,numpy,opencv,Python,Numpy,Opencv,我正在试用一个使用Facenet算法的人脸识别程序。一切都很好,识别能力很好,但当我因为这个错误快速移动头部时,程序就会退出 Traceback (most recent call last): File "vf.py", line 122, in <module> if HumanNames[best_class_indices[0]] == H_i: IndexError: list index out of range for H_i in HumanN

我正在试用一个使用Facenet算法的人脸识别程序。一切都很好,识别能力很好,但当我因为这个错误快速移动头部时,程序就会退出

Traceback (most recent call last):
  File "vf.py", line 122, in <module>
    if HumanNames[best_class_indices[0]] == H_i:
IndexError: list index out of range




  for H_i in HumanNames:
       if HumanNames[best_class_indices[0]] == H_i:
       result_names = HumanNames[best_class_indices[0]]
       cv2.putText(frame, result_names, (text_x, text_y),  cv2.FONT_HERSHEY_COMPLEX_SMALL,1, (0, 0, 255), thickness=1, lineType=2)
回溯(最近一次呼叫最后一次):
文件“vf.py”,第122行,在
如果人名[best_class_Index[0]==H_i:
索引器:列表索引超出范围
对于人名中的H_i:
如果人名[best_class_Index[0]==H_i:
结果名称=人名[最佳类索引[0]]
cv2.putText(框架,结果名称,(文本x,文本y),cv2.FONT\u HERSHEY\u COMPLEX\u SMALL,1,(0,0,255),厚度=1,线型=2)

人名中似乎没有存储任何值,如果是这样,那么访问列表中的第一项将抛出错误是有意义的

首先,您应该检查人名数组的大小,并在调试过程中添加以下行:

print(len(HumanNames))
# The rest of the code from the example....

给你一点提示:查看
最佳类索引[0]
。不客气。这是一个数组中的一个数组。所以这是正确的。还有其他一些问题。