Face Parsing Task를 수행하기 위한 전처리 알고리즘 코드입니다.
모든 코드는 직접 작성되었습니다.
코드의 기능, 입력, 출력을 위주로 간단히 설명드리겠습니다.
코드 내의 모든 경로는 절대 경로로 작성되어있으며, 필요 시 "path" 변수를 변경하시면 됩니다.
더욱 자세한 설명은 코드 내 주석을 참고하시길 바랍니다.
This code is designed to verify whether all pixel values in the image are 0~1 or not.
Helen Dataset을 Face Align 하는 코드입니다.
Helen Dataset은 face가 align이 되어있지 않고, size가 다른 데이터셋입니다.
이 데이터셋을 그대로 학습에 넣을 수 있지만, 더 효과적인 학습을 위해 align 한 뒤의 얼굴을 넣을 수도 있습니다.
Helen Dataset은 각 이미지별 landmark 정보가 있는 landmark_txt.txt 파일을 제공합니다.
여기에서 왼/오른쪽 눈, 코, 왼/오른쪽 입 끝 부분에 대한 위치는 각각 105, 106, 55, 85, 101 번째 라인에 저장되어있습니다.
이를 저희가 설정한 포인트들로 align하고, 원하는 크기로 자르면 최종적으로 Face Align이 완료됩니다.
http://www.ifp.illinois.edu/~vuongle2/helen/
왼/오른쪽 눈, 코, 왼/오른쪽 입 끝 부분을 [[182, 229], [295, 229], [238, 301], [190, 349], [288, 349]]로 옮기고, (473x473) 사이즈로 자른 예시입니다.
- Input Image
- Output Image
위의 경우와 동일합니다.
무슨 이유인지는 모르겠으나 공식 홈페이지에서 다운로드 링크를 내렸다(..)
왼/오른쪽 눈, 코, 왼/오른쪽 입 끝 부분을 [[182, 229], [295, 229], [238, 301], [190, 349], [288, 349]]로 옮기고, (473x473) 사이즈로 자른 예시입니다.
- Input Image
- Output Image
Face Parsing 학습에 사용되는 train_list.txt, valid_lisst.txt, test_list.txt를 만드는 코드입니다.
train_list.txt를 만들기 위해서는 데이터셋의 train/images 폴더 내의 이미지 파일 이름을 읽어와야 합니다.
코드 내의 input_path 변수를 당신의 경로에 맞게 변경하여야 합니다.
input_path = '$your_dataset_path&/train/images'
그 결과 train_list.txt 는 다음과 같이 저장됩니다.
'images/10001868414_0.jpg labels/10001868414_0.png'
'images/10009865324_0.jpg labels/10009865324_0.png'
'images/10012551673_5.jpg labels/10012551673_5.png'
...