1adrianb / 1adrianb/face-alignment
Detector fails with gray images
- 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