FileNotFoundError: путь не существует при использовании mediapipe для обнаружения рук

Я пытаюсь выполнить обнаружение рук в потоке веб-камеры с помощью mediapipe, но когда я запускаю код, я получаю следующую ошибку:

      **File "D:\HandTracking\handtracking.py", line 9, in <module>
    hands = mpHands.Hands()**

  **File "C:\Users\Θανάσης\AppData\Local\Programs\Python\Python39\lib\site-packages\mediapipe\python\solutions\hands.py", line 109, in __init__
    super().__init__(**

  **File "C:\Users\Θανάσης\AppData\Local\Programs\Python\Python39\lib\site-packages\mediapipe\python\solution_base.py", line 237, in __init__
    validated_graph.initialize(
FileNotFoundError: The path does not exist.**

**[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-1i5nllza\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback**

Код такой:

      import cv2 as cv
import mediapipe as mp

capture = cv.VideoCapture(0)
mpHands = mp.solutions.hands
hands = mpHands.Hands()

while True:
    isTrue, frame = capture.read()
    frameRGB = cv.cvtColor(frame, cv.COLOR_BGR2RGB)
    results = hands.process(frameRGB)
    cv.imshow("Frame", frame)

    if cv.waitKey(20) & 0xFF == ord('d'):
        break

capture.release()
cv.destroyAllWindows()

3 ответа

Эта ошибка возникает, когда в пути к проекту есть символы, отличные от Юникода. Это связано не только с именем пользователя, но и со всеми символами, включенными в путь. Например, если в пути к вашему проекту есть такие символы, как «ç», «ş», «ü», «ğ», «ı», «ö» и т. д., у вас будет эта ошибка.

Чтобы устранить эту ошибку, создайте свой проект в папке, в которой нет символов, отличных от юникода.

Это действительно сработало для меня...

Я решил проблему, используя здесь. Я думаю, что проблема заключается в кодировке пути в имени пути.

Итак, основная идея состоит в том, чтобы изменить имя пользовательской папки на английское.

Microsoft предоставила способ изменить папку пользователя для справки.

  1. Войдите в систему, используя другую учетную запись администратора.

Примечание. Сначала вам может потребоваться создать новую учетную запись администратора.

  1. Перейдите в папку C:\users\ и переименуйте вложенную папку с исходным именем пользователя в новое имя пользователя.
  2. Перейдите в реестр и измените значение реестра ProfileImagePath на новый путь. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList<ID пользователя>\

Примечание. Замените новым именем, которое вы хотите изменить на свою учетную запись пользователя.

  1. Выйдите из системы и войдите снова, используя пользователя, чье имя было изменено, и пользователь должен использовать предыдущий профиль с новым именем пути.

Это сработало и для меня...

«Эта ошибка возникает, когда в пути к проекту есть символы, отличные от Юникода. Это связано не только с именем пользователя, но и со всеми символами, включенными в путь. Например, если у вас есть символы в имени пути вашего проекта. например, «ç», «ş», «ü», «ğ», «ı», «ö» и т. д. у вас будет эта ошибка».

Другие вопросы по тегам