@dieselslk

Не понимаю как решить ошибку в DeepFace?

from deepface import DeepFace
import json
import os

def face_analyze(image=None):
try:
result_dict = DeepFace.analyze(img_path='faces\\' + image, actions=['gender'], enforce_detection=True)
return result_dict

except Exception as _ex:
return _ex

def main():

images = os.listdir('faces')

result_all = {}
for image in images:
gender = face_analyze(image).get('gender')
result_all.update({image: gender})
print(f'Gender of {image}: ' + gender)

with open('genders.json', 'w', encoding='utf-8') as file:
json.dump(result_all, file, indent=4, ensure_ascii=False)

if __name__ == '__main__':
main()

p.s. Если указан параметр enforce_detection=False, то всё работает, но мне надо чтобы работало при True, но вылезает ошибка:
gender = face_analyze(image).get('gender')
AttributeError: 'ValueError' object has no attribute 'get'
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
Почему бы с английского не перевести ошибку и не попробовать разобраться в ней ,
gender = face_analyze(image).get('gender')
при face_analyze(image) вероятно возвращается ошибка ValueError, а следующая часть конструкции .get(... пытается вызвать для нее функцию get('gender'), которая есть у нормального объекта, возвращаемого face_analyze(image), но нет у ошибки.
Итого - face_analyze(image) в данном скрипте не работает. Почему - ищите в документации и в интернете.
Это на первом же image происходит или в процессе перебора ?
см. тут так же -
https://github.com/serengil/deepface/issues/161
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы