Tensor size mismatch getting predictions for a picture

Author: InfundibulumCreated Nov 27, 2024Updated Dec 14, 2024

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.