Knowhow/Vision

Facescape 모델 68 keypoint/landmark index

침닦는수건 2024. 8. 28. 18:42
반응형

https://facescape.nju.edu.cn/

 

FaceScape

 

facescape.nju.edu.cn

 

위 데이터셋 중 TU model은 topology가 통일되어 있으므로 landmark에 해당하는 vertex index만 알면 모든 데이터의 landmark를 찾아낼 수 있다. 

 

https://github.com/zhuhao-nju/facescape/tree/master/toolkit/predef

 

facescape/toolkit/predef at master · zhuhao-nju/facescape

FaceScape (PAMI2023 & CVPR2020). Contribute to zhuhao-nju/facescape development by creating an account on GitHub.

github.com

 

저자들이 제공해주는 landmark index가 있지만 직접 찍어보니 부정확하다. 

 

def facescape_lmk_index(device="cuda"):

    lmk_list = [5696, 23350, 5702, 4651, 4650, 20322, 21351, 5013, 1681, 1692,
                11486, 10439, 1338, 1339, 2369, 13524, 2363, 24759, 3549, 24702,
                24687, 24632, 14837, 14899, 14914, 237, 14968, 6053, 6041, 1870,
                1855, 4728, 4870, 1807, 1551, 1419, 3434, 3414, 3447, 3457, 3309,
                3373, 3179, 151, 127, 143, 3236, 47, 21018, 4985, 4898, 6571, 1575,
                1663, 1599, 1899, 12138, 5231, 21978, 5101, 21067, 21239, 11378, 11369,
                11553, 12048, 5212, 21892]

    lmk_index = np.asarray(lmk_list)
    lmk_index = torch.from_numpy(lmk_index).reshape(1,68).to(device=device)
    return lmk_index

 

이렇게 쓰는 것이 훨씬 낫다.

 

Note

2024.08.28 - [Knowhow/Vision] - Facescape 모델 displacement map 사용법, detailed mesh 얻어내는 방법

 

이전 글에서 facescape 모델을 subdivision해서 해상도를 끌어올려 사용하는 방법을 설명한 적 있는데, subdivison을 하더라도 기존 vertex 순서 그대로 두고 뒤에 이어붙이는 방식이기 때문에 landmark index는 그대로다. 

 

 

반응형