2018년 5월 14일 월요일

OpenFaceSwap (1) - 소개 및 설치 방법


기존 툴인 FakeApp 쿠다8.0으로 동작한다.

  소개

  이 글에서는 OpenFaceSwap프로그램을 설치해보도록 하겠습니다. OpenFaceSwap은 해당 사이트(링크)에 따르면 기존 딥페이크 프로그램인 FakeApp, Dfaker에 비해 속도가 빠르고 성능이 좋다고 하네요(그만큼 VGA를 잘 이용하지만 동시에 다른 작업을 시도하면 OOM에러와 함께 패일이 발생할 가능성이 높음.). 기존 FakeApp을 이용해도 구축한 모델파일이 있으면 시간이 크게 소요되지는 않으므로 아직 프로그램을 갈아탈 이유는 없어 보입니다.
  다만 장기적으로 볼때 FakeApp과는 달리 지속적인 업데이트가 이뤄질 가능성이 있고 설치방법이 간단하므로, 처음 모델파일 구축을 위한 시간을 투자한다면 좋은 결과를 얻을 수 있을 거라 생각합니다.

OpenFaceSwap 쿠다 9.0을 기반으로 동작한다.

  프로그램은 업데이트가 이루어짐에 따라 명령창에서 명령을 타이핑하는것이 아닌 GUI창에서 클릭을 통해 편히 사용할 수 있도록 개선되었습니다. 또한 FakeApp에 비해 얼굴의 인식률이 올라갔다고 하네요.
  다행인 점은 Date.180514 기준으로 올라와있는 버전은 Align데이터를 추출할 때 256x256버전을 이용하므로 이전 FakeApp에서 추출하였던 얼굴데이터를 그대로 이용할 수 있습니다.(물론 트레이닝은 다시 해야함.)

설치

우선 OpenFaceSwap 설치 프로그램 다운로드를 받도록 하겠습니다. (링크)


다음으로는 필요한 것들을 설치하겠습니다.
Microsoft Visual Studio Redistributable 2015 (링크)
를 설치해주세요. 이미 설치되어있는 분들은 넘어가시면 됩니다.
  쿠다 9.0(버전에 유의)을 다음 그림을 참고하여 본인의 컴퓨터에
 맞는버전으로 설치하여 줍니다. (링크)

  쿠다 설치는 아래 그림과 같이 사용자 정의 설치 옵션을 통해
 CUDA항목만 설치하면 됩니다. 이후 패치 1, 2를 순서대로 진행해 주세요.

 (혹시 문제가 발생하여 재설치를 진행할 경우 [제어판]-[프로그램 추가/제거]에서
 CUDA9.0과 관련된 것을 모두 삭제해주시고 진행하면 됩니다.

 이 때 재설치를 수행함에 있어 실패한다면 동일하거나 새로운 버전이 있어
 설치가 중단되기 때문입니다. 이런 경우에는 아래 그림에서 체크된 항목중 Visual Studio Intergration 항목을 체크해제하고 진행하시면 됩니다.)

  
  쿠다 설치 후 CuDNN 7.0.5설치를 진행하겠습니다. (링크)
CuDNN을 다운로드 하기위해서는 엔비디아에 가입을 해야합니다.
 아래그림에서 DOWNLOAD CUDNN버튼을 클릭해주세요.

 

버튼을 눌러 진행하시면 아래 창과 같이 계정 생성을 위한 창이 나타납니다.
공란을 채워 계정을 생성한 후 입력하였던 이메일로 들어가 인증확인을 
진행하면 됩니다.


다시 위의 (링크)를 누른 후 Download CuDNN 페이지를 누르시면
계정 생성 후 로그인이 되어있는 상태 이므로 CuDNN을 다운로드
할 수 있는 페이지로 접속합니다.


접속하면 다운로드 페이지로 갈 수 있는데 이 때 CuDNN의 버전을
선택하기 위해서  Archived cuDNN Releases 을 눌러주시면 버전(7.
0.5 for CUDA 9.0)을 선택하여 다운로드 할 수 있도록 나타납니다.


다운로드한 CuDNN파일의 압축을 풀면 폴더 3개와 텍스트 파일이 들어있습니다.
폴더 3개(bin, include, lib)파일을 이전에 설치한 
CUDA 9.0폴더에 붙여넣습니다. 경로는 다음과 같습니다.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
경로 안에는 폴더 3개와 동일한 이름의 폴더가 있으므로 합쳐주시면 됩니다.

엔비디아의 그래픽 드라이버가 깔려있지 않은 분들은 설치를 진행해주시고요.
미리 다운로드 받아두었던 OpenFaceSwap파일을 통해 설치를 진행합니다.
next랑 ok만 눌러주시면 아래 그림과 같이 설치가 진행이 됩니다.

설치 진행 초반에 멈춘것처럼 보일 수 있는데 처음이 약간 원래 느립니다.


실행을 위한 권장사항으로는 CPU 샌디브릿지 이후 세대입니다.
윈도우 7도 동작 가능하며 명령어를 수동으로
 입력해야 하는 번거로움은 있습니다.

최초로 OpenFaceSwap을 실행할 경우 시간이 소요되며
이는 정상입니다. 이후에 다른 기능들을 최초로 사용할 때에도
대기 시간이 소요될 수 있으며 이는 정상입니다.

다음에는 사용방법을 알아 보겠습니다.
다음 글 링크

댓글 18개:

  1. 안녕하세요 GMdori님 제 가 궁금한 건 다름이 아니오라
    동영상에서 어떤 신체부위 만 바꿨으면 하는데 (복근 등..)
    deepfake나 OpenFaceSwap에서 그런 기능을 활용 할 수 있나요?

    가능하다면 이미 동영상 합성이 이루어진 파일에
    2차 작업이 가능 할 가요 (예를 들어 제 wbff영상에 제 얼굴은 넣은 뒤 복근을 합성한다든지.)

    상당히 특히한 질문이라 죄송합니다 ㅠㅜ

    답글삭제
    답글
    1. 그렇게 하려면 이미지내에서 복근의 위치를 인식하여 추출하여야 하는데 그런 기능은 제공되지 않습니다. 따라서 별도로 관련기술에 대해 알아보지 않는다면 힘들 것 같네요.

      삭제
  2. Gmdori님. 안녕하십니까. Openfaceswap 실행에 문제가 생겨 질문해봅니다.
    Openfaceswap 설치 후 실행을 하니 바로 "Microsoft Visual C++ Runtime Library."라는 제목과 함께 "Runtime Error! This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."라는 경고창이 뜨고 실행이 되질 않습니다. cuda도 몇번 다시 깔아보고 Visual C++ Redistributable 구버전도 지워보고 별의별 짓을 다해봐도 경고창이 계속뜨고 실행이 되질 않습니다. 참고로 윈도우는 7이고요. 검색을 해봐도 해결책이 나오질 않아 이렇게 물어봅니다.

    답글삭제
  3. 안녕하세요. 설명서 잘 읽었습니다.
    다만 문제가 하나있습니다.
    설명대로 잘 따라하고 설치하는데 오류 하나도 안나고 정상적으로 설치가됬습니다.
    하지만 정작 제일 중요한 OpenFace 앱이 실행이 안되는데
    실행 시키자마자 바로 0.1초만에 종료가됩니다. 이유가 무엇일까요?
    사용 환경은 윈10/64bit 입니다.

    답글삭제
    답글
    1. 추가로 c++ 2015 재배포 패키지가 설치가 안됩니다.
      이미 다른버전이 설치되어있다면서 설치가 진행이 안되네요.
      프로그램설치화면보니 2005부터 2017까지 각종 버전이있는데 2015버전만 없네요.
      이것만 단독으로 어떻게 설치해야되나요?

      삭제
    2. 재배포 패키지는 제일 높은 20xx패키지와 중복되서 설치가 안되는 것 같은데 2015버전보다 높은버전의것만 제거해보세요

      삭제
    3. 답변에 감사합니다.
      덕분에 2015재배포 패키지는 해결이 됬습니다.
      하지만 여전히 OpenFace 앱이 실행 되자마자 0.1초만에 종료가되는데... 혹시 이건 윈도우10에선 작동이 안되는건가요?

      삭제
    4. 저도 OpenFace 앱 자체가 실행이 안되어서 이것저것 찾아보다가 해외 포럼에서 비슷한 증상 해결 방법을 보고 공유차 올립니다
      http://shoesrb.com/downloads/ 에서 Shoes 3.2 윈도우 버전 받고 깔면 실행프로그램이 열립니다
      그 프로그램으로 openfaceswap.rb 파일 선택하시면 시작됩니다

      삭제
  4. 'cscript'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    Traceback (most recent call last):
    File "faceswap\faceswap.py", line 8, in
    from lib.cli import FullHelpArgumentParser
    File "C:\OpenFaceSwap\faceswap\lib\cli.py", line 7, in
    from lib.FaceFilter import FaceFilter
    File "C:\OpenFaceSwap\faceswap\lib\FaceFilter.py", line 3, in
    import face_recognition
    File "C:\OpenFaceSwap\python\python-3.6.3.amd64\lib\site-packages\face_recognition\__init__.py", line 7, in
    from .api import load_image_file, face_locations, batch_face_locations, face_landmarks, face_encodings, compare_faces, face_distance
    File "C:\OpenFaceSwap\python\python-3.6.3.amd64\lib\site-packages\face_recognition\api.py", line 4, in
    import dlib
    ImportError: DLL load failed: 지정된 모듈을 찾을 수 없습니다.
    이건 대체 뭐가 문제인가요?

    답글삭제
  5. 도대체 까는 과정에서 exe 로컬이나 네크워크는 어디서 확인하고 뜻이 뭐죠?

    답글삭제
  6. 다 깔아봤는데, this application has requested the runtime to terminate it in an unusual way. please contact the application support team for more information.
    이라고 뜹니다. 제발 도와주세요...

    답글삭제
  7. 얼굴을 추출하는 과정을 진행하려고 하면

    Traceback (most recent call last):
    File "faceswap\faceswap.py", line 8, in
    from lib.cli import FullHelpArgumentParser
    File "C:\OpenFaceSwap\faceswap\lib\cli.py", line 8, in
    from lib.faces_detect import detect_faces, DetectedFace
    File "C:\OpenFaceSwap\faceswap\lib\faces_detect.py", line 1, in
    from lib import FaceLandmarksExtractor
    File "C:\OpenFaceSwap\faceswap\lib\FaceLandmarksExtractor\__init__.py", line 1, in
    from .FaceLandmarksExtractor import extract
    File "C:\OpenFaceSwap\faceswap\lib\FaceLandmarksExtractor\FaceLandmarksExtractor.py", line 25, in
    class TorchBatchNorm2D(keras.engine.topology.Layer):
    AttributeError: module 'keras.engine' has no attribute 'topology'

    라고 에러가 뜨는데 원인이 뭔지 알 수 있을까요?

    답글삭제
  8. 런타임 에러가 지속적으로 뜹니다. shoe에서도 뜹니다. 레지스트리 변경 이런걸 해도 바뀌질 않습니다.

    답글삭제
  9. 아니 도대체 오픈 스웨이스가 어디있다는 겁니까!?! 사이트 들어가도 딥페이스 랩 이거 밖에 없는데

    답글삭제
  10. 좋은 정보는 감사드립니다만. 설명이 예전부터 느끼기에 설명이 너무 부실 합니다.

    링크 들어가라는데 들어가도 없거나 바뀐 경우도 많고 명령어도 그렇고

    답글삭제
  11. 맨처음다운로드링크를타고들어간다음에 뭘눌어야하는지모르겠습니다ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ

    답글삭제
  12. 엔비디아의 그래픽 드라이버가 깔려있지 않은 사람은 뭔가 다른 프로그램을 추가로 설치해야 하나요? 아래 오류가 계속 뜨는데, 아마도 그래픽카드 문제인거 같아서요.. (참고로, 인텔 UHD Graphics 620 사용 중입니다)

    Error while calling cudaGetDevice(&the_device_id) in file D:\pythonfs\scripts\dlib\dlib\dnn\gpu_data.cpp:178. code: 35, reason: CUDA driver version is insufficient for CUDA runtime version

    답글삭제
  13. 프로그램다운경로가 다막혔네요 ㅠ

    답글삭제