MobileFaceSwap 모델의 기능을 수행하기 위한 test 코드를 리뷰해보자.
https://github.com/Seanseattle/MobileFaceSwap
해당 모델의 깃허브를 클론하게 되면
image_test.py 와 같이 모델을 사용해서 결과물을 가져올 수 있는 코드가 작성되어 있다.
이 코드를 리뷰해서 내 프로젝트에 적용할 수 있도록 해보자.
image_test.py
이미지를 처리하는 test 코드다.
이번 포스트에서는 이 코드만을 리뷰해 보자.
총 3개의 함수가 있고,
파이썬 파일을 실행했을 때 기능을 바로 실행할 수 있도록
if __name__ == '__main__':
이러한 조건문을 주었다.
이 조건문을 먼저 살펴보자.
파이썬 파일을 실행할 때 argument 값을 받을 수 있는데,
그 값들을 받아오는 코드가 밑에 있다.
default 값이 없는 source_img_path 와 target_img_path 가 필수적으로 필요해 보인다.
그 밑으로 내려가보면 얼굴 부분만을 잘라서 저장해주는 함수인 face_align 을
sourc_img와 target_img를 대상으로 호출했다.
그 후 image_test 함수를 호출해서 딥페이크 기능을 수행한다.
face_align()
이번에는 이 함수를 살펴보자.
이 함수는 이미지의 경로를 필수적으로 매개변수로 받아야 한다.
해당 경로에 실제로 파일이 있는지 확인한 후
align_img()를 호출해서 처리 후 cv2.imwiret로 파일을 저장해준다.
image_test()
실제로 이미지를 딥페이크하는 기능을 수행하는 함수이다.
모델을 실행시키기 위한 준비과정(계산에 필요한 값들, 모델의 가중치등을 세팅) 후에
align된 이미지를 opencv를 통해 열고 paddle 형식으로 전환 후 모델을 실행시켜준다.
그 후 나온 결과물 파일을 opencv 형식으로 전환해서 결과물로 output_dir 경로에 저장해준다.
get_id_emb()
이 함수는 image_test() 함수 내에서 사용된다.
모델을 사용할 때 필요한 수학적 계산을 위한 코드들이 담겨있는 것으로 보인다.
차후에 더욱 자세하게 모델의 코드를 직접 리뷰해보는 시간을 가져야겠다...
'AI > ComputerVision' 카테고리의 다른 글
[AI] MobileFaceSwap 환경 설정 2 (0) | 2022.12.06 |
---|---|
[AI] MobileFaceSwap 환경 세팅 (0) | 2022.12.06 |