Как распознавать лица с помощью imutils?

В настоящее время я создаю приложение django для определения/распознавания лиц, чтобы отмечать посещаемость сотрудников, однако я столкнулся с некоторыми проблемами при захвате сигнала с камеры и определении лиц на нем.

Нижеприведенные функции в файле view.py предназначены для обнаружения лица сотрудника и захвата 300 изображений вошедшего в систему сотрудника - По сути, цель этого вопроса заключается в решении проблемы обнаружения лица, и проблема заключается конкретно в face_aligned = fa.align(frame, gray_frame, face).

views.py:

Трассировка стека, связанная с ошибкой:

Traceback (most recent call last):
  File "/Users/xxxx/Desktop/djangoWebcamTest/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/Users/xxxx/Desktop/djangoWebcamTest/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/xxxx/Desktop/djangoWebcamTest/venv/lib/python3.9/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/Users/xxxx/Desktop/djangoWebcamTest/users/views.py", line 204, in add_photos
    create_dataset(user)
  File "/Users/xxxx/Desktop/djangoWebcamTest/users/views.py", line 157, in create_dataset
    face_aligned = fa.align(frame, gray_frame, face)
  File "/Users/xxxx/Desktop/djangoWebcamTest/venv/lib/python3.9/site-packages/imutils/face_utils/facealigner.py", line 68, in align
    M = cv2.getRotationMatrix2D(eyesCenter, angle, scale)

Exception Type: TypeError at /vidstream/
Exception Value: Can't parse 'center'. Sequence item with index 0 has a wrong type

Любая помощь в решении этой проблемы будет очень признательна

Проверьте значение входов в:

face_aligned = fa.align(frame, gray_frame, face)

Хотя это не упоминается в документации, fa.align() кажется, что ожидаются данные/объекты, см: https://github.com/PyImageSearch/imutils/blob/master/imutils/face_utils/facealigner.py#L23

С аргументами функции .align() внутри ее тела происходит не так уж много. Скорее всего, переменная face в вызове вашей функции fa.align(frame, gray_frame, face) представляет собой строку 'center' (или список таких строк), тогда как это должен быть список с ограничивающими рамками или что-то подобное.

Вы получаете ошибку на: M = cv2.getRotationMatrix2D(eyesCenter, angle, scale), см: https://github.com/PyImageSearch/imutils/blob/master/imutils/face_utils/facealigner.py#L68 . Одно из следующих: eyesCenter, angle, scale имеет значение 'center', в то время как, вероятно, ожидается список или массив (не строка).

Вернуться на верх