Как получить кодировку face_recognition из множества изображений в каталоге и сохранить их в файле CSV? - PullRequest
0 голосов
/ 02 июня 2018

Это код, который у меня есть, и он работает для отдельных изображений:

Загрузка изображений и применение кодировки

from face_recognition.face_recognition_cli import image_files_in_folder

Image1 = face_recognition.load_image_file("Folder/Image1.jpg")
Image_encoding1 = face_recognition.face_encodings(Image1)
Image2 = face_recognition.load_image_file("Folder/Image2.jpg")
Image_encoding2 = face_recognition.face_encodings(Image2)

Кодировки лиц сохраняются в первом массиве, после column_stack мы имеемчтобы изменить размер

Encodings_For_File = np.column_stack(([Image_encoding1[0]], 
[Image_encoding2[0]]))
Encodings_For_File.resize((2, 128))

Преобразовать массив в кадр данных pandas и записать в csv

Encodings_For_File_Panda = pd.DataFrame(Encodings_For_File)
Encodings_For_File_Panda.to_csv("Celebrity_Face_Encoding.csv")

Как зациклить изображения в «Папке» и извлечь кодировку в файл CSV?Я должен сделать это со многими изображениями и не могу сделать это вручную.Я попробовал несколько подходов, но ни один из них не работает для меня.Cv2 можно использовать вместо load_image_file?

1 Ответ

0 голосов
/ 04 июня 2018

Попробуйте это

Примечание: я предполагаю, что вам не нужно указывать путь к папке перед именем файла в вашей команде.Этот код покажет вам, как перебирать каталог, чтобы вывести список файлов и обработать их

import os
from face_recognition.face_recognition_cli import image_files_in_folder
my_dir = 'folder/path/' # Folder where all your image files reside. Ensure it ends with '/
encoding_for_file = [] # Create an empty list for saving encoded files
for i in os.listdir(my_dir): # Loop over the folder to list individual files
    image = my_dir + i
    image = face_recognition.load_image_file(image) # Run your load command
    image_encoding = face_recognition.face_encodings(image) # Run your encoding command
    encoding_for_file.append(image_encoding[0]) # Append the results to encoding_for_file list

encoding_for_file.resize((2, 128)) # Resize using your command

Затем вы можете конвертировать в pandas и экспортировать в csv.Дайте мне знать, как это происходит

...