Hi,
This is my code, modeled after the sample in description.
import face_alignment
from skimage import io
model = face_alignment.FaceAlignment(landmarks_type= face_alignment.LandmarksType.THREE_D,device='cpu',flip_input=False)
input = io.imread('test.png')
preds = model.get_landmarks(input)
Running it I get the error:
Traceback (most recent call last):
File ~\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec exec(code, globals, locals)
File facealignment.py:14 preds = model.get_landmarks(input)
File ~\anaconda3\Lib\site-packages\face_alignment\api.py:113 in get_landmarks return self.get_landmarks_from_image(image_or_path, detected_faces, return_bboxes, return_landmark_score)
File ~\anaconda3\Lib\site-packages\torch\utils\_contextlib.py:116 in decorate_context return func(*args, **kwargs)
File ~\anaconda3\Lib\site-packages\face_alignment\api.py:144 in get_landmarks_from_image detected_faces = self.face_detector.detect_from_image(image.copy())
File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\sfd_detector.py:45 in detect_from_image bboxlist = detect(self.face_detector, image, device=self.device)[0]
File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\detect.py:17 in detect return batch_detect(net, img, device)
File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\detect.py:33 in batch_detect img_batch = img_batch - torch.tensor([104.0, 117.0, 123.0], device=device).view(1, 3, 1, 1)
RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 1
I've tried different types of files, different models (dlib and default sfd, 2D and 3D) and it always results in the same. I'm running Python 3.11 and torch 2.5.1.
Hi,
This is my code, modeled after the sample in description.
import face_alignmentfrom skimage import iomodel = face_alignment.FaceAlignment(landmarks_type= face_alignment.LandmarksType.THREE_D,device='cpu',flip_input=False)input = io.imread('test.png')preds = model.get_landmarks(input)Running it I get the error:
Traceback (most recent call last):File ~\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec exec(code, globals, locals)File facealignment.py:14 preds = model.get_landmarks(input)File ~\anaconda3\Lib\site-packages\face_alignment\api.py:113 in get_landmarks return self.get_landmarks_from_image(image_or_path, detected_faces, return_bboxes, return_landmark_score)File ~\anaconda3\Lib\site-packages\torch\utils\_contextlib.py:116 in decorate_context return func(*args, **kwargs)File ~\anaconda3\Lib\site-packages\face_alignment\api.py:144 in get_landmarks_from_image detected_faces = self.face_detector.detect_from_image(image.copy())File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\sfd_detector.py:45 in detect_from_image bboxlist = detect(self.face_detector, image, device=self.device)[0]File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\detect.py:17 in detect return batch_detect(net, img, device)File ~\anaconda3\Lib\site-packages\face_alignment\detection\sfd\detect.py:33 in batch_detect img_batch = img_batch - torch.tensor([104.0, 117.0, 123.0], device=device).view(1, 3, 1, 1)RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 1I've tried different types of files, different models (dlib and default sfd, 2D and 3D) and it always results in the same. I'm running Python 3.11 and torch 2.5.1.