Заголовок: "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 не может открыть файл модели и как это исправить?
Дополнительная информация:
Файл модели был загружен по этой ссылке, распакован и помещен в правильный каталог. Я настроил виртуальное окружение в папке проекта. Буду благодарен за любую помощь или предложения!