1adrianb / face-alignment

:fire: 2D and 3D Face alignment library build using pytorch
https://www.adrianbulat.com
BSD 3-Clause "New" or "Revised" License
7.03k stars 1.34k forks source link

It seems a bug in function "get_landmarks_from_directory( )" #303

Open BIGJUN777 opened 2 years ago

BIGJUN777 commented 2 years ago

Hi there,

When I used the _get_landmarks_fromdirectory( ) function as recommended here, it was strange that the detected results of some images were wrong. Please check the images below: image

While when I used the _getlandmarks( ) 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

I tried to dive into the source code to figure out if there were any bugs in _get_landmarks_fromdirectory( ) function but everything seemed good, which made me confused. I attach two images in which I got wrong results when using _get_landmarks_fromdirectory( ). Please test them. Thanks a lot. 14527 19432