1adrianb / 1adrianb/face-alignment

Detector fails with gray images

Open
#154 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
7.5k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

When dealing with single channel images, the following error was raised:
`Traceback (most recent call last):
File "face_align.py", line 5, in
lms = fa.get_landmarks_from_directory(dir)
File "/usr/local/lib/python3.5/dist-packages/face_alignment/api.py", line 223, in get_landmarks_from_directory
detected_faces = self.face_detector.detect_from_directory(path, extensions, recursive, show_progress_bar)
File "/usr/local/lib/python3.5/dist-packages/face_alignment/detection/core.py", line 97, in detect_from_directory
predictions[image_path] = self.detect_from_image(image_path)
File "/usr/local/lib/python3.5/dist-packages/face_alignment/detection/sfd/sfd_detector.py", line 51, in detect_from_image
bboxlist = detect(self.face_detector, image, device=self.device)
File "/usr/local/lib/python3.5/dist-packages/face_alignment/detection/sfd/detect.py", line 20, in detect
img = img - np.array([104, 117, 123])
ValueError: operands could not be broadcast together with shapes (398,377) (3,)`

Contributor guide

No contributing guide indexed for this repository

Research direction

The error occurs in face_alignment/detection/sfd/detect.py line 20 where a single-channel image cannot subtract a 3-channel array. Start by reading the detect function and the SFD detector's image loading logic. Check how images are converted to RGB and handle grayscale inputs. Run the failing test with a grayscale image to reproduce the error, then modify the preprocessing step to support single-channel images.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
computer-vision
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.