2014-06-12 2 views
1

opencv를 사용하여 라이브 비디오에서 얼굴을 변형시키는 방법에 대한 아이디어를 얻을 수 있습니까? Face substitution을 시도했지만 openFrameworks을 사용하여 구현되었습니다.opencv를 사용하여 얼굴 모핑

opencv를 사용하여 동일한 기능을 구현하고 싶습니다. opencv에서 OpenFrameworks의 Face 대체 코드를 직접적으로 이식하는 것보다 다른 방법이 있습니까?

나는 또한 link을 처리했지만 소수의 사람들이 face morphing is deprecated in opencv으로 언급 했습니까?

+0

이미지 모핑 (블로그 링크) 라이브 비디오 모핑 완전히 다릅니다 - 무엇 오픈 프레임 웍스 않는 모든 일을하지 않습니다 및 OpenCV의, 그것은 당신의 GitHub의 프로젝트가 사용하는 이유 BOTH – Gabor

+0

은 어쩌면 당신은 calcOpticalFlowFarneback를 사용할 수 있습니다. 이 유튜브 링크를 참조하십시오 : https://www.youtube.com/watch?v=F4k9q-HXT7Y 또한 opencv 고밀도 옵티컬 플로우 자습서 (페이지 하단)를 참조하십시오. http://docs.opencv.org/trunk/ doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html. – user391339

답변

0

특별히이 작업을 수행하는 라이브러리를 모르겠지만 뭔가 혼자서 함께 할 수 있습니다. 모든 얼굴에서 참조 할 수있는 일반적인 fiducial points 세트가 필요합니다. 그렇다면 그 점을 사용하여 Delaunay triangulation을 수행하고 싶습니다.

이제는 한 섀시에서 다른 섀시로 변환을 직접 수행하거나 중간 정규화 된 얼굴에 변환을 수행하고 변경 한 다음 아무 곳이나 쓸 수 있습니다.

6

저는 최근에 OpenCV를 사용하여 얼굴 모핑에 관한 기사를 작성했습니다. C++/Python에서 코드를 공유했습니다. 여기

http://www.learnopencv.com/face-morph-using-opencv-cpp-python/

를 세부 사항을 찾을 수 있지만 다음과 같이 기본 개념이다.

  1. 두 입력 이미지에서 점 대응을 찾습니다.
  2. 포인트에서 델 로니 삼각 측량을 수행하십시오.
  3. 모핑 량은 매개 변수 alpha에 의해 제어됩니다. 예 : alpha = 0 인 경우, 아래 예제에서 Ted Cruz를 얻고 알파 = 1이면 Hillary Clinton을 얻습니다. 다른 알파의 경우 둘 사이의 혼합이됩니다. 알파를 사용하여 두 입력 이미지 점의 가중 평균을 취하여 출력 (변형) 이미지의 점 위치를 계산합니다.
  4. 입력 이미지의 모든 삼각형과 대상 이미지 (변형 된 이미지) 간의 아핀 변환을 계산합니다.
  5. 각 입력 이미지에서 출력 이미지까지의 삼각형을 뒤틀어 알파를 기준으로 픽셀을 블렌드합니다. 모든 삼각형에 대해 이렇게하면 출력이 변형 된 이미지를 얻습니다. 이 도움이

희망.

enter image description here