如何使用 face_recognition 动态调用已知面孔名称
How can I Dynamically call Known Faces names with face_recognition
我在 python 中使用 face_recognition 作为 fr 包。我正在使用 glob 包从文件夹加载图像。
all_images = glob.glob('images/*.jpg')
在这里,我只是将其缩短为名称而不是整个路径。
for_images = ""
for images in all_images:
images = images[7:-4]
images = f'''"{images}",
'''
for_images += images
for_images = for_images[:-2]
print(for_images)
这里我用face_recogniton package as fr:
一张一张加载图片
image = fr.load_image_file("images/Asad.jpg")
face_encoding = fr.face_encodings(image)[0]
asad_image = fr.load_image_file("images/Farhan.jpg")
asad_face_encoding = fr.face_encodings(asad_image)[0]
image_r = fr.load_image_file("images/Kashif.jpg")
face_encoding_r = fr.face_encodings(image_r)[0]
k_image = fr.load_image_file("images/Rameez.jpg")
k_face_encoding = fr.face_encodings(k_image)[0]
r_image = fr.load_image_file("images/Rizwan.jpg")
r_face_encoding = fr.face_encodings(r_image)[0]
# Create arrays of known face encodings and their names
known_face_encodings = [
face_encoding,
asad_face_encoding,
face_encoding_r,
k_face_encoding,
r_face_encoding
]
我给他们这样的硬编码名称:
known_face_names = [
"Asad",
"Farhan",
"Kashif",
"Rameez",
"Rizwan"
]
但现在我是动态传递的:
known_face_names = [
for_images
]
但是它不像以前那样工作了,我到底做错了什么,请给我正确的答案。
如果你只是将它缩短到文件的精确名称而不是整个路径,你应该这样做:
for_names = ""
for names in all_images:
names = names[7:-4]
names = f'{names},'
for_names += names
for_names = for_names.split(',')
而且既然现在是列表项,当动态定义为known_face_names时,应该是这样的:
known_face_names = for_names
我在 python 中使用 face_recognition 作为 fr 包。我正在使用 glob 包从文件夹加载图像。
all_images = glob.glob('images/*.jpg')
在这里,我只是将其缩短为名称而不是整个路径。
for_images = ""
for images in all_images:
images = images[7:-4]
images = f'''"{images}",
'''
for_images += images
for_images = for_images[:-2]
print(for_images)
这里我用face_recogniton package as fr:
一张一张加载图片image = fr.load_image_file("images/Asad.jpg")
face_encoding = fr.face_encodings(image)[0]
asad_image = fr.load_image_file("images/Farhan.jpg")
asad_face_encoding = fr.face_encodings(asad_image)[0]
image_r = fr.load_image_file("images/Kashif.jpg")
face_encoding_r = fr.face_encodings(image_r)[0]
k_image = fr.load_image_file("images/Rameez.jpg")
k_face_encoding = fr.face_encodings(k_image)[0]
r_image = fr.load_image_file("images/Rizwan.jpg")
r_face_encoding = fr.face_encodings(r_image)[0]
# Create arrays of known face encodings and their names
known_face_encodings = [
face_encoding,
asad_face_encoding,
face_encoding_r,
k_face_encoding,
r_face_encoding
]
我给他们这样的硬编码名称:
known_face_names = [
"Asad",
"Farhan",
"Kashif",
"Rameez",
"Rizwan"
]
但现在我是动态传递的:
known_face_names = [
for_images
]
但是它不像以前那样工作了,我到底做错了什么,请给我正确的答案。
如果你只是将它缩短到文件的精确名称而不是整个路径,你应该这样做:
for_names = ""
for names in all_images:
names = names[7:-4]
names = f'{names},'
for_names += names
for_names = for_names.split(',')
而且既然现在是列表项,当动态定义为known_face_names时,应该是这样的:
known_face_names = for_names