Заголовок: "RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat в библиотеке face_recognition на Windows"

Пытаюсь создать Telegram-бота, который использует распознавание лиц для определения лиц на изображениях. Я настроил окружение и установил все необходимые пакеты, но сталкиваюсь с ошибкой при попытке запустить скрипт. Вот код, который я использую:

import os
import telebot
import face_recognition
import cv2
from PIL import Image
from io import BytesIO

# Убедитесь, что файл модели существует по указанному пути
model_path = 'D:/python/бот для пробива/python/Lib/site-packages/face_recognition_models/models/shape_predictor_68_face_landmarks.dat'

if not os.path.exists(model_path):
    raise FileNotFoundError(f"Файл модели не найден по пути: {model_path}")

print(f"Файл модели найден по пути: {model_path}")

# Ваш API токен от BotFather
API_TOKEN = 'YOUR_API_TOKEN'
bot = telebot.TeleBot(API_TOKEN)

@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(message, "Добро пожаловать! Отправьте мне фото, и я попробую распознать лицо.")

@bot.message_handler(content_types=['photo'])
def handle_photo(message):
    file_info = bot.get_file(message.photo[-1].file_id)
    downloaded_file = bot.download_file(file_info.file_path)
    image = Image.open(BytesIO(downloaded_file))

    # Сохраните изображение во временный файл
    temp_image_path = 'temp_image.jpg'
    image.save(temp_image_path)

    # Загрузите изображение с использованием face_recognition
    image = face_recognition.load_image_file(temp_image_path)
    face_locations = face_recognition.face_locations(image)

    if face_locations:
        bot.reply_to(message, "Найдено {} лиц(а) на фото.".format(len(face_locations)))
    else:
        bot.reply_to(message, "Лиц не найдено на фото.")

    # Очистите временный файл
    os.remove(temp_image_path)

bot.polling()

Когда я запускаю этот код, получаю следующую ошибку:

Traceback (most recent call last):
  File "D:\python\бот для пробива\main.py", line 3, in <module>
    import face_recognition
  File "D:\python\бот для пробива\python\Lib\site-packages\face_recognition\__init__.py", line 7, in <module>
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
  File "D:\python\бот для пробива\python\Lib\site-packages\face_recognition\api.py", line 20, in <module>
    pose_predictor_68_point = dlib.shape_predictor(predictor_68_point_model)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Unable to open D:\python\бот для пробива\python\Lib\site-packages\face_recognition_models\models\shape_predictor_68_face_landmarks.dat

Process finished with exit code 1

Я проверил, что файл shape_predictor_68_face_landmarks.dat существует по указанному пути. Дополнительная информация:

Операционная система: Windows 10 Версия Python: 3.11 Версия face_recognition: Последняя (установлена через pip) Версия dlib: Последняя (установлена через pip) Я также убедился, что на моей системе установлены необходимые инструменты для сборки C++.

Может кто-нибудь помочь мне понять, почему библиотека face_recognition не может открыть файл модели и как это исправить?

Дополнительная информация:

Файл модели был загружен по этой ссылке, распакован и помещен в правильный каталог. Я настроил виртуальное окружение в папке проекта. Буду благодарен за любую помощь или предложения!


Ответы (0 шт):