我使用this algorithm对Wiki图像集进行性别和年龄预测。获取以下错误。我在这里做了大量的研究,发现这个错误通常意味着图像不存在。我添加了一个打印语句来显示每张照片的名称。抛出错误的照片,10_0ŌNozomiŌ哈希.jpg,确实存在,如下图所示。你知道吗
0_1_OleksiyKartunov.jpg
10_0_AmiraWillighagen.jpg
10_0_AngelikaHellmann.jpg
10_0_CandyHsu.jpg
10_0_Catharina-Amalia,PrincessofOrange.jpg
10_0_EmilyAlynLind.jpg
10_0_KarenPendleton.jpg
10_0_LadyLouiseWindsor.jpg
10_0_NozomiŌhashi.jpg
Traceback (most recent call last):
File "preprocess.py", line 246, in <module>
align_faces(clean = True)
File "preprocess.py", line 172, in align_faces
aligned = FL.getAligns(picname)
File "C:\Users\abc\Downloads\Age-Gender-Pred-master\align_faces.py", line 45, in getAligns
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
我认为可能是文件名中的外来字符导致了错误,因此我使用regex replace (^[a-zA-z]+$)
编辑了所有文件名,并且脚本能够在没有任何外来字符的照片上运行相似数量的照片,然后在出现相同错误的情况下失败。然后我删除了字符串替换,因为这显然不是问题所在。我现在不知道是什么导致了这一切。你知道吗
失败的代码:
def getAligns(self,
img,
use_cnn = False,
savepath = None,
return_info = False):
"""
get face alignment picture
:param img: original BGR image or a path to it
:param use_cnn: using CNN to extract aligned faces, if set, dlib
be compiled with cuda support
:param savepath: savepath, format "xx/xx/xx.png"
:param return_info: if set, return face positinos [(x, y, w, h)]
:return: aligned faces, (opt) rects
"""
if type(img) == str:
img = cv2.imread(img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
最后一行失败了。你知道吗
运行在Azure虚拟机、Windows 10、Python 3.7、64GB ram上。 提前感谢您的任何见解。你知道吗
检查
cv2.imread
是否按预期执行;即,它可能返回None或其他非图像值。你知道吗可能是图像读取不正确,或者文件本身已损坏。你知道吗
另见:OpenCV !_src.empty() in function 'cvtColor' error
相关问题 更多 >
编程相关推荐