Как распознавать лица с помощью 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'
, в то время как, вероятно, ожидается список или массив (не строка).