1adrianb / 1adrianb/face-alignment

It seems a bug in function "get_landmarks_from_directory( )"

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

Description

Hi there,

**When I used the _get_landmarks_from_directory( )_ function as recommended [here](https://github.com/1adrianb/face-alignment#process-an-entire-directory-in-one-go), it was strange that the detected results of some images were wrong. Please check the images below:**
![image](https://user-images.githubusercontent.com/35102882/148214858-a01456ca-8e2e-4c0b-8064-f491169adf23.png)

**While when I used the _get_landmarks( )_ function to process each image with the code below, it turned out that all detected results seemed good.**
```
def my_get_landmarks_from_directory(fa, path):
img_list_raw = glob.glob(os.path.join(path, '*'))
img_list = [p for p in img_list_raw if is_image(p)]
predictions, no_face_detected = {}, []
for p in tqdm(img_list):
input = cv2.imread(p)
preds = fa.get_landmarks(input[..., ::-1])
if preds is None:
no_face_detected.append(p)
predictions[p] = preds if preds is None else preds[0].tolist()

return predictions, no_face_detected
```
![image](https://user-images.githubusercontent.com/35102882/148216194-bd8c01fc-6a03-4a5f-8997-ba76d9ee4989.png)

**I tried to dive into the source code to figure out if there were any bugs in _get_landmarks_from_directory( )_ function but everything seemed good, which made me confused. I attach two images in which I got wrong results when using _get_landmarks_from_directory( )_. Please test them. Thanks a lot.**
![14527](https://user-images.githubusercontent.com/35102882/148217270-1317615d-85cf-4adf-99db-66816f78c0a0.jpg)
![19432](https://user-images.githubusercontent.com/35102882/148217273-7a2fa437-96b8-4138-943b-27efc15e6129.jpg)

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue is about a discrepancy between `get_landmarks_from_directory()` and `get_landmarks()`. Start by examining the `get_landmarks_from_directory` function in the source code, likely in the main module. Compare its image loading and preprocessing steps with the user's custom function. Test with the provided sample images to reproduce the bug. Check for differences in color channel handling (BGR vs RGB) or batch processing effects.

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
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.